Merge "Generate kolla config when running database commands"

This commit is contained in:
Zuul 2022-01-06 17:02:12 +00:00 committed by Gerrit Code Review
commit 30efba2b0a
3 changed files with 92 additions and 8 deletions

View File

@ -1268,6 +1268,10 @@ class OvercloudDatabaseBackup(KollaAnsibleMixin, KayobeAnsibleMixin,
def take_action(self, parsed_args):
self.app.LOG.debug("Performing overcloud database backup")
# First prepare configuration.
self.generate_kolla_ansible_config(parsed_args, service_config=False)
extra_args = []
if parsed_args.incremental:
extra_args.append('--incremental')
@ -1292,6 +1296,10 @@ class OvercloudDatabaseRecover(KollaAnsibleMixin, KayobeAnsibleMixin,
def take_action(self, parsed_args):
self.app.LOG.debug("Performing overcloud database recovery")
extra_vars = {}
# First prepare configuration.
self.generate_kolla_ansible_config(parsed_args, service_config=True)
if parsed_args.force_recovery_host:
extra_vars['mariadb_recover_inventory_name'] = (
parsed_args.force_recovery_host)

View File

@ -1480,14 +1480,27 @@ class TestCase(unittest.TestCase):
]
self.assertEqual(expected_calls, mock_kolla_run.call_args_list)
@mock.patch.object(commands.KayobeAnsibleMixin,
"run_kayobe_playbooks")
@mock.patch.object(commands.KollaAnsibleMixin,
"run_kolla_ansible_overcloud")
def test_overcloud_database_backup(self, mock_run):
def test_overcloud_database_backup(self, mock_kolla_run, mock_run):
command = commands.OvercloudDatabaseBackup(TestApp(), [])
parser = command.get_parser("test")
parsed_args = parser.parse_args([])
result = command.run(parsed_args)
self.assertEqual(0, result)
expected_calls = [
mock.call(
mock.ANY,
[utils.get_data_files_path("ansible", "kolla-ansible.yml")],
tags="config",
ignore_limit=True,
),
]
self.assertEqual(expected_calls, mock_run.call_args_list)
expected_calls = [
mock.call(
mock.ANY,
@ -1495,16 +1508,30 @@ class TestCase(unittest.TestCase):
extra_args=[]
),
]
self.assertEqual(expected_calls, mock_run.call_args_list)
self.assertEqual(expected_calls, mock_kolla_run.call_args_list)
@mock.patch.object(commands.KayobeAnsibleMixin,
"run_kayobe_playbooks")
@mock.patch.object(commands.KollaAnsibleMixin,
"run_kolla_ansible_overcloud")
def test_overcloud_database_backup_incremental(self, mock_run):
def test_overcloud_database_backup_incremental(self, mock_kolla_run,
mock_run):
command = commands.OvercloudDatabaseBackup(TestApp(), [])
parser = command.get_parser("test")
parsed_args = parser.parse_args(["--incremental"])
result = command.run(parsed_args)
self.assertEqual(0, result)
expected_calls = [
mock.call(
mock.ANY,
[utils.get_data_files_path("ansible", "kolla-ansible.yml")],
tags="config",
ignore_limit=True,
),
]
self.assertEqual(expected_calls, mock_run.call_args_list)
expected_calls = [
mock.call(
mock.ANY,
@ -1512,16 +1539,37 @@ class TestCase(unittest.TestCase):
extra_args=["--incremental"]
),
]
self.assertEqual(expected_calls, mock_run.call_args_list)
self.assertEqual(expected_calls, mock_kolla_run.call_args_list)
@mock.patch.object(commands.KayobeAnsibleMixin,
"run_kayobe_playbooks")
@mock.patch.object(commands.KollaAnsibleMixin,
"run_kolla_ansible_overcloud")
def test_overcloud_database_recover(self, mock_run):
def test_overcloud_database_recover(self, mock_kolla_run, mock_run):
command = commands.OvercloudDatabaseRecover(TestApp(), [])
parser = command.get_parser("test")
parsed_args = parser.parse_args([])
result = command.run(parsed_args)
self.assertEqual(0, result)
expected_calls = [
mock.call(
mock.ANY,
[utils.get_data_files_path("ansible", "kolla-ansible.yml")],
tags="config",
ignore_limit=True,
),
mock.call(
mock.ANY,
[
utils.get_data_files_path("ansible",
"kolla-openstack.yml"),
],
ignore_limit=True,
),
]
self.assertEqual(expected_calls, mock_run.call_args_list)
expected_calls = [
mock.call(
mock.ANY,
@ -1529,16 +1577,38 @@ class TestCase(unittest.TestCase):
extra_vars={}
),
]
self.assertEqual(expected_calls, mock_run.call_args_list)
self.assertEqual(expected_calls, mock_kolla_run.call_args_list)
@mock.patch.object(commands.KayobeAnsibleMixin,
"run_kayobe_playbooks")
@mock.patch.object(commands.KollaAnsibleMixin,
"run_kolla_ansible_overcloud")
def test_overcloud_database_recover_force_host(self, mock_run):
def test_overcloud_database_recover_force_host(self, mock_kolla_run,
mock_run):
command = commands.OvercloudDatabaseRecover(TestApp(), [])
parser = command.get_parser("test")
parsed_args = parser.parse_args(["--force-recovery-host", "foo"])
result = command.run(parsed_args)
self.assertEqual(0, result)
expected_calls = [
mock.call(
mock.ANY,
[utils.get_data_files_path("ansible", "kolla-ansible.yml")],
tags="config",
ignore_limit=True,
),
mock.call(
mock.ANY,
[
utils.get_data_files_path("ansible",
"kolla-openstack.yml"),
],
ignore_limit=True,
),
]
self.assertEqual(expected_calls, mock_run.call_args_list)
expected_calls = [
mock.call(
mock.ANY,
@ -1548,7 +1618,7 @@ class TestCase(unittest.TestCase):
}
),
]
self.assertEqual(expected_calls, mock_run.call_args_list)
self.assertEqual(expected_calls, mock_kolla_run.call_args_list)
@mock.patch.object(commands.KayobeAnsibleMixin,
"run_kayobe_playbooks")

View File

@ -0,0 +1,6 @@
---
fixes:
- |
The set of commands starting with ``kayobe overcloud database`` now
generate the kolla configuration necessary to login to the nodes
running the database.