task_flow: Hard-code default jobboard_backend_driver
Hard-code the default driver name instead of guessing it for service default, to make the current logic more robust in potential change of the default value in octavia. Change-Id: Ie732af84f03770e3f665dd4b489f7bb6396762f4
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
#
|
||||
# [*jobboard_backend_driver*]
|
||||
# (optional) Jobboard backend driver that will monitor job state.
|
||||
# Defaults to $facts['os_service_default']
|
||||
# Defaults to 'redis_taskflow_driver'
|
||||
#
|
||||
# [*jobboard_backend_hosts*]
|
||||
# (optional) IP addresses of the redis backend for jobboard.
|
||||
@@ -106,31 +106,31 @@
|
||||
# Defaults to 'present'
|
||||
#
|
||||
class octavia::task_flow (
|
||||
$engine = $facts['os_service_default'],
|
||||
$max_workers = $facts['os_service_default'],
|
||||
$disable_revert = $facts['os_service_default'],
|
||||
$jobboard_enabled = $facts['os_service_default'],
|
||||
$jobboard_backend_driver = $facts['os_service_default'],
|
||||
$jobboard_backend_hosts = $facts['os_service_default'],
|
||||
$jobboard_backend_port = $facts['os_service_default'],
|
||||
$jobboard_backend_username = $facts['os_service_default'],
|
||||
$jobboard_backend_password = $facts['os_service_default'],
|
||||
$jobboard_backend_namespace = $facts['os_service_default'],
|
||||
$jobboard_redis_backend_db = $facts['os_service_default'],
|
||||
$jobboard_redis_sentinel = $facts['os_service_default'],
|
||||
$jobboard_redis_sentinel_username = $facts['os_service_default'],
|
||||
$jobboard_redis_sentinel_password = $facts['os_service_default'],
|
||||
$jobboard_redis_backend_ssl_options = $facts['os_service_default'],
|
||||
$jobboard_redis_sentinel_ssl_options = $facts['os_service_default'],
|
||||
$jobboard_zookeeper_ssl_options = $facts['os_service_default'],
|
||||
$jobboard_etcd_ssl_options = $facts['os_service_default'],
|
||||
$jobboard_etcd_timeout = $facts['os_service_default'],
|
||||
$jobboard_etcd_api_path = $facts['os_service_default'],
|
||||
$jobboard_expiration_time = $facts['os_service_default'],
|
||||
$jobboard_save_logbook = $facts['os_service_default'],
|
||||
$persistence_connection = $facts['os_service_default'],
|
||||
Boolean $manage_backend_package = true,
|
||||
$package_ensure = 'present',
|
||||
$engine = $facts['os_service_default'],
|
||||
$max_workers = $facts['os_service_default'],
|
||||
$disable_revert = $facts['os_service_default'],
|
||||
$jobboard_enabled = $facts['os_service_default'],
|
||||
Octavia::JobboardBackendDriver $jobboard_backend_driver = 'redis_taskflow_driver',
|
||||
$jobboard_backend_hosts = $facts['os_service_default'],
|
||||
$jobboard_backend_port = $facts['os_service_default'],
|
||||
$jobboard_backend_username = $facts['os_service_default'],
|
||||
$jobboard_backend_password = $facts['os_service_default'],
|
||||
$jobboard_backend_namespace = $facts['os_service_default'],
|
||||
$jobboard_redis_backend_db = $facts['os_service_default'],
|
||||
$jobboard_redis_sentinel = $facts['os_service_default'],
|
||||
$jobboard_redis_sentinel_username = $facts['os_service_default'],
|
||||
$jobboard_redis_sentinel_password = $facts['os_service_default'],
|
||||
$jobboard_redis_backend_ssl_options = $facts['os_service_default'],
|
||||
$jobboard_redis_sentinel_ssl_options = $facts['os_service_default'],
|
||||
$jobboard_zookeeper_ssl_options = $facts['os_service_default'],
|
||||
$jobboard_etcd_ssl_options = $facts['os_service_default'],
|
||||
$jobboard_etcd_timeout = $facts['os_service_default'],
|
||||
$jobboard_etcd_api_path = $facts['os_service_default'],
|
||||
$jobboard_expiration_time = $facts['os_service_default'],
|
||||
$jobboard_save_logbook = $facts['os_service_default'],
|
||||
$persistence_connection = $facts['os_service_default'],
|
||||
Boolean $manage_backend_package = true,
|
||||
$package_ensure = 'present',
|
||||
) {
|
||||
|
||||
include octavia::deps
|
||||
@@ -154,12 +154,7 @@ class octavia::task_flow (
|
||||
}
|
||||
|
||||
if $manage_backend_package {
|
||||
$jobboard_backend_driver_real = is_service_default($jobboard_backend_driver) ? {
|
||||
true => 'redis_taskflow_driver',
|
||||
default => $jobboard_backend_driver,
|
||||
}
|
||||
|
||||
case $jobboard_backend_driver_real {
|
||||
case $jobboard_backend_driver {
|
||||
'zookeeper_taskflow_driver': {
|
||||
ensure_packages('python-kazoo', {
|
||||
name => $::octavia::params::python_kazoo_package_name,
|
||||
@@ -180,7 +175,7 @@ class octavia::task_flow (
|
||||
-> Package['python-etcd3gw']
|
||||
-> Anchor['octavia::install::end']
|
||||
}
|
||||
'redis_taskflow_driver': {
|
||||
default: {
|
||||
ensure_packages('python-redis', {
|
||||
name => $::octavia::params::python_redis_package_name,
|
||||
ensure => $package_ensure,
|
||||
@@ -190,9 +185,6 @@ class octavia::task_flow (
|
||||
-> Package['python-redis']
|
||||
-> Anchor['octavia::install::end']
|
||||
}
|
||||
default: {
|
||||
fail('unsupported taskflow backend')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -7,7 +7,7 @@ describe 'octavia::task_flow' do
|
||||
should contain_octavia_config('task_flow/engine').with_value('<SERVICE DEFAULT>')
|
||||
should contain_octavia_config('task_flow/max_workers').with_value('<SERVICE DEFAULT>')
|
||||
should contain_octavia_config('task_flow/disable_revert').with_value('<SERVICE DEFAULT>')
|
||||
should contain_octavia_config('task_flow/jobboard_backend_driver').with_value('<SERVICE DEFAULT>')
|
||||
should contain_octavia_config('task_flow/jobboard_backend_driver').with_value('redis_taskflow_driver')
|
||||
should contain_octavia_config('task_flow/jobboard_enabled').with_value('<SERVICE DEFAULT>')
|
||||
should contain_octavia_config('task_flow/jobboard_backend_hosts').with_value('<SERVICE DEFAULT>')
|
||||
should contain_octavia_config('task_flow/jobboard_backend_port').with_value('<SERVICE DEFAULT>')
|
||||
|
32
spec/type_aliases/jobboardbackenddriver_spec.rb
Normal file
32
spec/type_aliases/jobboardbackenddriver_spec.rb
Normal file
@@ -0,0 +1,32 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'Octavia::JobboardBackendDriver' do
|
||||
describe 'valid types' do
|
||||
context 'with valid types' do
|
||||
[
|
||||
'etcd_taskflow_driver',
|
||||
'redis_taskflow_driver',
|
||||
'zookeeper_taskflow_driver'
|
||||
].each do |value|
|
||||
describe value.inspect do
|
||||
it { is_expected.to allow_value(value) }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'invalid types' do
|
||||
context 'with garbage inputs' do
|
||||
[
|
||||
'bad_taskflow_driver',
|
||||
'bad',
|
||||
''
|
||||
].each do |value|
|
||||
describe value.inspect do
|
||||
it { is_expected.not_to allow_value(value) }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
5
types/jobboardbackenddriver.pp
Normal file
5
types/jobboardbackenddriver.pp
Normal file
@@ -0,0 +1,5 @@
|
||||
type Octavia::JobboardBackendDriver = Enum[
|
||||
'etcd_taskflow_driver',
|
||||
'redis_taskflow_driver',
|
||||
'zookeeper_taskflow_driver'
|
||||
]
|
Reference in New Issue
Block a user