Add mistral::engine class
Adds a new class to manage the mistral-engine package/service. Change-Id: I8ea961a8f70edf50f69e7fa8c74016e6adbb861c
This commit is contained in:
parent
f46814e9a7
commit
ad7109f348
79
manifests/engine.pp
Normal file
79
manifests/engine.pp
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
# == Class: mistral::engine
|
||||||
|
#
|
||||||
|
# Installs & configure the Mistral Engine service
|
||||||
|
#
|
||||||
|
# === Parameters
|
||||||
|
# [*package_ensure*]
|
||||||
|
# (Optional) Ensure state for package.
|
||||||
|
# Defaults to present
|
||||||
|
#
|
||||||
|
# [*enabled*]
|
||||||
|
# (optional) Should the service be enabled.
|
||||||
|
# Defaults to 'true'.
|
||||||
|
#
|
||||||
|
# [*manage_service*]
|
||||||
|
# (optional) Whether the service should be managed by Puppet.
|
||||||
|
# Defaults to 'true'.
|
||||||
|
#
|
||||||
|
# [*host*]
|
||||||
|
# (Optional) Name of the engine node. This can be an opaque identifier.
|
||||||
|
# It is not necessarily a hostname, FQDN, or IP address. (string value)
|
||||||
|
# Defaults to $::os_service_default.
|
||||||
|
#
|
||||||
|
# [*topic*]
|
||||||
|
# (Optional) The message topic that the engine listens on.
|
||||||
|
# Defaults to $::os_service_default.
|
||||||
|
#
|
||||||
|
# [*version*]
|
||||||
|
# (Optional) The version of the engine. (string value)
|
||||||
|
# Defaults to $::os_service_default.
|
||||||
|
#
|
||||||
|
# [*execution_field_size_limit_kb*]
|
||||||
|
# (Optional) The default maximum size in KB of large text fields
|
||||||
|
# of runtime execution objects. Use -1 for no limit.
|
||||||
|
# Defaults to $::os_service_default.
|
||||||
|
#
|
||||||
|
class mistral::engine (
|
||||||
|
$package_ensure = present,
|
||||||
|
$manage_service = true,
|
||||||
|
$enabled = true,
|
||||||
|
$host = $::os_service_default,
|
||||||
|
$topic = $::os_service_default,
|
||||||
|
$version = $::os_service_default,
|
||||||
|
$execution_field_size_limit_kb = $::os_service_default,
|
||||||
|
) {
|
||||||
|
|
||||||
|
include ::mistral
|
||||||
|
include ::mistral::params
|
||||||
|
|
||||||
|
package { 'mistral-engine':
|
||||||
|
ensure => $package_ensure,
|
||||||
|
name => $::mistral::params::engine_package_name,
|
||||||
|
tag => ['openstack', 'mistral-package'],
|
||||||
|
}
|
||||||
|
|
||||||
|
if $manage_service {
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'mistral-engine':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::mistral::params::engine_service_name,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
tag => 'mistral-service',
|
||||||
|
}
|
||||||
|
|
||||||
|
mistral_config {
|
||||||
|
'engine/host' : value => $host;
|
||||||
|
'engine/topic' : value => $topic;
|
||||||
|
'engine/version' : value => $version;
|
||||||
|
'engine/execution_field_size_limit_kb' : value => $execution_field_size_limit_kb;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -15,11 +15,15 @@ class mistral::params {
|
|||||||
$common_package_name = 'openstack-mistral-common'
|
$common_package_name = 'openstack-mistral-common'
|
||||||
$api_package_name = 'openstack-mistral-api'
|
$api_package_name = 'openstack-mistral-api'
|
||||||
$api_service_name = 'openstack-mistral-api'
|
$api_service_name = 'openstack-mistral-api'
|
||||||
|
$engine_package_name = 'openstack-mistral-engine'
|
||||||
|
$engine_service_name = 'openstack-mistral-engine'
|
||||||
}
|
}
|
||||||
'Debian': {
|
'Debian': {
|
||||||
$common_package_name = 'mistral'
|
$common_package_name = 'mistral'
|
||||||
$api_package_name = 'mistral-api'
|
$api_package_name = 'mistral-api'
|
||||||
$api_service_name = 'mistral-api'
|
$api_service_name = 'mistral-api'
|
||||||
|
$engine_package_name = 'mistral-engine'
|
||||||
|
$engine_service_name = 'mistral-engine'
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
fail("Unsupported osfamily: ${::osfamily} operatingsystem: \
|
fail("Unsupported osfamily: ${::osfamily} operatingsystem: \
|
||||||
|
96
spec/classes/mistral_engine_spec.rb
Normal file
96
spec/classes/mistral_engine_spec.rb
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'mistral::engine' do
|
||||||
|
|
||||||
|
let :params do
|
||||||
|
{ :enabled => true,
|
||||||
|
:manage_service => true,
|
||||||
|
:host => 'foo_host',
|
||||||
|
:topic => 'foo_topic',
|
||||||
|
:version => '1.0',
|
||||||
|
:execution_field_size_limit_kb => '1234'}
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_examples_for 'mistral-engine' do
|
||||||
|
|
||||||
|
context 'config params' do
|
||||||
|
|
||||||
|
it { is_expected.to contain_class('mistral') }
|
||||||
|
it { is_expected.to contain_class('mistral::params') }
|
||||||
|
|
||||||
|
it { is_expected.to contain_mistral_config('engine/host').with_value( params[:host] ) }
|
||||||
|
it { is_expected.to contain_mistral_config('engine/topic').with_value( params[:topic] ) }
|
||||||
|
it { is_expected.to contain_mistral_config('engine/version').with_value( params[:version] ) }
|
||||||
|
it { is_expected.to contain_mistral_config('engine/execution_field_size_limit_kb').with_value( params[:execution_field_size_limit_kb] ) }
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
[{:enabled => true}, {:enabled => false}].each do |param_hash|
|
||||||
|
context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
|
||||||
|
before do
|
||||||
|
params.merge!(param_hash)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configures mistral-engine service' do
|
||||||
|
|
||||||
|
is_expected.to contain_service('mistral-engine').with(
|
||||||
|
:ensure => (params[:manage_service] && params[:enabled]) ? 'running' : 'stopped',
|
||||||
|
:name => platform_params[:engine_service_name],
|
||||||
|
:enable => params[:enabled],
|
||||||
|
:hasstatus => true,
|
||||||
|
:hasrestart => true,
|
||||||
|
:tag => 'mistral-service',
|
||||||
|
)
|
||||||
|
is_expected.to contain_service('mistral-engine').that_subscribes_to(nil)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with disabled service managing' do
|
||||||
|
before do
|
||||||
|
params.merge!({
|
||||||
|
:manage_service => false,
|
||||||
|
:enabled => false })
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configures mistral-engine service' do
|
||||||
|
|
||||||
|
is_expected.to contain_service('mistral-engine').with(
|
||||||
|
:ensure => nil,
|
||||||
|
:name => platform_params[:engine_service_name],
|
||||||
|
:enable => false,
|
||||||
|
:hasstatus => true,
|
||||||
|
:hasrestart => true,
|
||||||
|
:tag => 'mistral-service',
|
||||||
|
)
|
||||||
|
is_expected.to contain_service('mistral-engine').that_subscribes_to(nil)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on Debian platforms' do
|
||||||
|
let :facts do
|
||||||
|
{ :osfamily => 'Debian' }
|
||||||
|
end
|
||||||
|
|
||||||
|
let :platform_params do
|
||||||
|
{ :engine_service_name => 'mistral-engine' }
|
||||||
|
end
|
||||||
|
|
||||||
|
it_configures 'mistral-engine'
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on RedHat platforms' do
|
||||||
|
let :facts do
|
||||||
|
{ :osfamily => 'RedHat' }
|
||||||
|
end
|
||||||
|
|
||||||
|
let :platform_params do
|
||||||
|
{ :engine_service_name => 'openstack-mistral-engine' }
|
||||||
|
end
|
||||||
|
|
||||||
|
it_configures 'mistral-engine'
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user