Remove update converge
Update converge is largely unnecessary now with ephemeral Heat. There is no Heat stack to update, so we are doing nothing more than executing a standard deployment using Ansible. Removing the requirement for update converge will simplify the process and improve user experience by reducing the time it takes to perform minor updates. Depends-On: https://review.opendev.org/c/openstack/tripleo-upgrade/+/810134 Change-Id: I750a733b722353d1ea0c6f904bafc769d7ddb9ff
This commit is contained in:
parent
d21d177320
commit
19672ed3fa
|
@ -82,7 +82,6 @@ openstack.tripleoclient.v2 =
|
||||||
overcloud_support_report_collect = tripleoclient.v2.overcloud_support:ReportExecute
|
overcloud_support_report_collect = tripleoclient.v2.overcloud_support:ReportExecute
|
||||||
overcloud_update_prepare= tripleoclient.v1.overcloud_update:UpdatePrepare
|
overcloud_update_prepare= tripleoclient.v1.overcloud_update:UpdatePrepare
|
||||||
overcloud_update_run = tripleoclient.v1.overcloud_update:UpdateRun
|
overcloud_update_run = tripleoclient.v1.overcloud_update:UpdateRun
|
||||||
overcloud_update_converge= tripleoclient.v1.overcloud_update:UpdateConverge
|
|
||||||
overcloud_upgrade_prepare = tripleoclient.v1.overcloud_upgrade:UpgradePrepare
|
overcloud_upgrade_prepare = tripleoclient.v1.overcloud_upgrade:UpgradePrepare
|
||||||
overcloud_upgrade_run = tripleoclient.v1.overcloud_upgrade:UpgradeRun
|
overcloud_upgrade_run = tripleoclient.v1.overcloud_upgrade:UpgradeRun
|
||||||
overcloud_upgrade_converge = tripleoclient.v1.overcloud_upgrade:UpgradeConverge
|
overcloud_upgrade_converge = tripleoclient.v1.overcloud_upgrade:UpgradeConverge
|
||||||
|
|
|
@ -136,60 +136,3 @@ class TestOvercloudUpdateRun(fakes.TestOvercloudUpdateRun):
|
||||||
]
|
]
|
||||||
self.assertRaises(ParserException, lambda: self.check_parser(
|
self.assertRaises(ParserException, lambda: self.check_parser(
|
||||||
self.cmd, argslist, verifylist))
|
self.cmd, argslist, verifylist))
|
||||||
|
|
||||||
|
|
||||||
class TestOvercloudUpdateConverge(fakes.TestOvercloudUpdateConverge):
|
|
||||||
def setUp(self):
|
|
||||||
super(TestOvercloudUpdateConverge, self).setUp()
|
|
||||||
# Get the command object to test
|
|
||||||
app_args = mock.Mock()
|
|
||||||
app_args.verbose_level = 1
|
|
||||||
self.cmd = overcloud_update.UpdateConverge(self.app, app_args)
|
|
||||||
|
|
||||||
@mock.patch('tripleoclient.utils.get_key')
|
|
||||||
@mock.patch('tripleoclient.utils.get_default_working_dir')
|
|
||||||
@mock.patch('tripleoclient.utils.ensure_run_as_normal_user')
|
|
||||||
@mock.patch('tripleoclient.utils.prompt_user_for_confirmation',
|
|
||||||
return_value=True)
|
|
||||||
@mock.patch(
|
|
||||||
'tripleoclient.utils.run_ansible_playbook')
|
|
||||||
def test_update_converge(self, deploy_action, mock_confirm,
|
|
||||||
mock_usercheck, mock_dir, mock_key):
|
|
||||||
argslist = ['--stack', 'cloud']
|
|
||||||
verifylist = [
|
|
||||||
('stack', 'cloud')
|
|
||||||
]
|
|
||||||
mock_dir.return_value = "/home/stack/overcloud-deploy"
|
|
||||||
ansible_dir = "{}/config-download/cloud".format(
|
|
||||||
mock_dir.return_value
|
|
||||||
)
|
|
||||||
inventory = "{}/tripleo-ansible-inventory.yaml".format(
|
|
||||||
ansible_dir
|
|
||||||
)
|
|
||||||
ansible_cfg = "{}/ansible.cfg".format(
|
|
||||||
ansible_dir
|
|
||||||
)
|
|
||||||
mock_key.return_value = '/home/stack/.ssh/id_rsa_tripleo'
|
|
||||||
|
|
||||||
parsed_args = self.check_parser(self.cmd, argslist, verifylist)
|
|
||||||
with mock.patch('os.path.exists') as mock_exists, \
|
|
||||||
mock.patch('os.path.isfile') as mock_isfile:
|
|
||||||
mock_exists.return_value = True
|
|
||||||
mock_isfile.return_value = True
|
|
||||||
self.cmd.take_action(parsed_args)
|
|
||||||
mock_usercheck.assert_called_once()
|
|
||||||
deploy_action.assert_called_once_with(
|
|
||||||
playbook='deploy_steps_playbook.yaml',
|
|
||||||
inventory=inventory,
|
|
||||||
workdir=ansible_dir,
|
|
||||||
playbook_dir=ansible_dir,
|
|
||||||
ansible_cfg=ansible_cfg,
|
|
||||||
ssh_user='tripleo-admin',
|
|
||||||
reproduce_command=True,
|
|
||||||
forks=parsed_args.ansible_forks,
|
|
||||||
extra_env_variables={
|
|
||||||
"ANSIBLE_BECOME": True,
|
|
||||||
"ANSIBLE_PRIVATE_KEY_FILE":
|
|
||||||
"/home/stack/.ssh/id_rsa_tripleo"
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
|
@ -212,55 +212,3 @@ class UpdateRun(command.Command):
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.log.info("Completed Minor Update Run.")
|
self.log.info("Completed Minor Update Run.")
|
||||||
|
|
||||||
|
|
||||||
class UpdateConverge(DeployOvercloud):
|
|
||||||
"""Converge the update on Overcloud nodes.
|
|
||||||
This restores the plan and stack so that normal deployment
|
|
||||||
workflow is back in place.
|
|
||||||
"""
|
|
||||||
log = logging.getLogger(__name__ + ".UpdateConverge")
|
|
||||||
|
|
||||||
def get_parser(self, prog_name):
|
|
||||||
parser = super(UpdateConverge, self).get_parser(prog_name)
|
|
||||||
|
|
||||||
return parser
|
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
|
||||||
logging.register_options(CONF)
|
|
||||||
logging.setup(CONF, '')
|
|
||||||
self.log.debug("take_action(%s)" % parsed_args)
|
|
||||||
oooutils.ensure_run_as_normal_user()
|
|
||||||
|
|
||||||
if (not parsed_args.yes
|
|
||||||
and not oooutils.prompt_user_for_confirmation(
|
|
||||||
constants.UPDATE_PROMPT, self.log)):
|
|
||||||
raise OvercloudUpdateNotConfirmed(constants.UPDATE_NO)
|
|
||||||
|
|
||||||
ansible_dir = os.path.join(oooutils.get_default_working_dir(
|
|
||||||
parsed_args.stack
|
|
||||||
),
|
|
||||||
'config-download',
|
|
||||||
parsed_args.stack)
|
|
||||||
|
|
||||||
inventory = os.path.join(ansible_dir,
|
|
||||||
'tripleo-ansible-inventory.yaml')
|
|
||||||
|
|
||||||
ansible_cfg = os.path.join(ansible_dir, 'ansible.cfg')
|
|
||||||
key_file = oooutils.get_key(parsed_args.stack)
|
|
||||||
|
|
||||||
oooutils.run_ansible_playbook(
|
|
||||||
playbook='deploy_steps_playbook.yaml',
|
|
||||||
inventory=inventory,
|
|
||||||
workdir=ansible_dir,
|
|
||||||
playbook_dir=ansible_dir,
|
|
||||||
ansible_cfg=ansible_cfg,
|
|
||||||
ssh_user='tripleo-admin',
|
|
||||||
reproduce_command=True,
|
|
||||||
forks=parsed_args.ansible_forks,
|
|
||||||
extra_env_variables={
|
|
||||||
"ANSIBLE_BECOME": True,
|
|
||||||
"ANSIBLE_PRIVATE_KEY_FILE": key_file
|
|
||||||
}
|
|
||||||
)
|
|
||||||
self.log.info("Completed Minor Update Converge.")
|
|
||||||
|
|
Loading…
Reference in New Issue