Merge "[train-only] Add ipa config check to _cleanup_ipa" into stable/train

This commit is contained in:
Zuul 2020-09-04 06:51:21 +00:00 committed by Gerrit Code Review
commit 3d8e33fcaf
2 changed files with 42 additions and 2 deletions

View File

@ -15,6 +15,7 @@
import mock
from tripleoclient import exceptions
from tripleoclient.tests.v1.overcloud_deploy import fakes
from tripleoclient.v1 import overcloud_delete
@ -143,3 +144,25 @@ class TestDeleteOvercloud(fakes.TestDeployOvercloud):
self.cmd.take_action(parsed_args)
mock_overcloud_delete.assert_not_called()
@mock.patch('os.path.exists')
@mock.patch('tripleoclient.utils.get_tripleo_ansible_inventory')
def test_skip_ipa_cleanup_without_inventory(self, inventory_mock, os_mock):
arglist = ["overcloud", "-y"]
verifylist = [
("stack", "overcloud"),
("yes", True)
]
os_mock.return_value = True
inventory_mock.side_effect = exceptions.InvalidConfiguration()
self.cmd.log.warning = mock.MagicMock()
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
self.cmd.log.warning.assert_called_with(
"Unable to generate the necessary ansible inventory required to "
"cleanup IPA. Ignoring IPA cleanup. Please cleanup IPA resources "
"for overcloud stack manually."
)

View File

@ -26,6 +26,7 @@ from osc_lib import utils as osc_utils
from tripleoclient import command
from tripleoclient import constants
from tripleoclient import exceptions
from tripleoclient import utils
from tripleoclient.workflows import plan_management
from tripleoclient.workflows import stack_management
@ -101,6 +102,14 @@ class DeleteOvercloud(command.Command):
python_interpreter = \
"/usr/bin/python{}".format(sys.version_info[0])
playbook = '/usr/share/ansible/tripleo-playbooks/cli-cleanup-ipa.yml'
ipa_config = '/etc/ipa/default.conf'
if not os.path.exists(ipa_config):
self.log.debug(
"{} doesn't exist on system. "
"Ignoring IPA cleanup.".format(playbook)
)
return
if not os.path.exists(playbook):
self.log.debug(
@ -109,8 +118,16 @@ class DeleteOvercloud(command.Command):
)
return
static_inventory = utils.get_tripleo_ansible_inventory(
return_inventory_file_path=True)
try:
static_inventory = utils.get_tripleo_ansible_inventory(
return_inventory_file_path=True)
except exceptions.InvalidConfiguration:
self.log.warning(
"Unable to generate the necessary ansible inventory required "
"to cleanup IPA. Ignoring IPA cleanup. Please cleanup IPA "
"resources for {} stack manually.".format(stack_name)
)
return
# We don't technically need remote_user to generate an ansible.cfg for
# stack. The write_default_ansible_cfg() method treats this as an