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:
Takashi Kajinami
2025-02-02 23:18:47 +09:00
parent a92c5f582a
commit 4598e03711
4 changed files with 66 additions and 37 deletions

View File

@@ -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.
@@ -110,7 +110,7 @@ class octavia::task_flow (
$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'],
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'],
@@ -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')
}
}
}

View File

@@ -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>')

View 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

View File

@@ -0,0 +1,5 @@
type Octavia::JobboardBackendDriver = Enum[
'etcd_taskflow_driver',
'redis_taskflow_driver',
'zookeeper_taskflow_driver'
]