def take_action(self, parsed_args): self.log.debug("take_action(%s)" % parsed_args) clients = self.app.client_manager stack = oooutils.get_stack(clients.orchestration, parsed_args.stack) stack_name = stack.stack_name # In case of update and upgrade we need to force the # update_plan_only. The heat stack update is done by the # packag_update mistral action parsed_args.update_plan_only = True # Add the update-prepare.yaml environment to set noops etc templates_dir = (parsed_args.templates or constants.TRIPLEO_HEAT_TEMPLATES) parsed_args.environment_files = oooutils.prepend_environment( parsed_args.environment_files, templates_dir, constants.UPDATE_PREPARE_ENV) # Throw deprecation warning if service is enabled and # ask user if update should still be continued. if parsed_args.environment_files: oooutils.check_deprecated_service_is_enabled( parsed_args.environment_files) super(UpdatePrepare, self).take_action(parsed_args) package_update.update(clients, container=stack_name) oooutils.get_config( clients, container=stack_name, container_config='{}-config'.format(stack.stack_name)) self.log.info("Update init on stack {0} complete.".format( parsed_args.stack))
def take_action(self, parsed_args): self.log.debug("take_action(%s)" % parsed_args) clients = self.app.client_manager stack = oooutils.get_stack(clients.orchestration, parsed_args.stack) stack_name = stack.stack_name container_registry = parsed_args.container_registry_file # Update the container registry: if container_registry: with open(os.path.abspath(container_registry)) as content: registry = yaml.load(content.read()) else: self.log.warning( "You have not provided a container registry file. Note " "that none of the containers on your environement will be " "updated. If you want to update your container you have " "to re-run this command and provide the registry file " "with: --container-registry-file option.") registry = None # Run update ceph_ansible_playbook = parsed_args.ceph_ansible_playbook # Run Overcloud deploy (stack update) # In case of update and upgrade we need to force the # update_plan_only. The heat stack update is done by the # packag_update mistral action parsed_args.update_plan_only = True super(UpdatePrepare, self).take_action(parsed_args) package_update.update(clients, container=stack_name, container_registry=registry, ceph_ansible_playbook=ceph_ansible_playbook) package_update.get_config(clients, container=stack_name) print("Update init on stack {0} complete.".format(parsed_args.stack))
def take_action(self, parsed_args): self.log.debug("take_action(%s)" % parsed_args) clients = self.app.client_manager stack = oooutils.get_stack(clients.orchestration, parsed_args.stack) stack_name = stack.stack_name registry = oooutils.load_container_registry( self.log, parsed_args.container_registry_file) # Run update ceph_ansible_playbook = parsed_args.ceph_ansible_playbook # In case of update and upgrade we need to force the # update_plan_only. The heat stack update is done by the # packag_update mistral action parsed_args.update_plan_only = True # Add the upgrade-prepare.yaml environment to set noops etc templates_dir = (parsed_args.templates or constants.TRIPLEO_HEAT_TEMPLATES) parsed_args.environment_files = oooutils.prepend_environment( parsed_args.environment_files, templates_dir, constants.UPGRADE_PREPARE_ENV) super(UpgradePrepare, self).take_action(parsed_args) package_update.update(clients, container=stack_name, container_registry=registry, ceph_ansible_playbook=ceph_ansible_playbook) package_update.get_config(clients, container=stack_name) overcloudrcs = deployment.create_overcloudrc(clients.workflow_engine, container=stack_name) oooutils.write_overcloudrc(stack_name, overcloudrcs) self.log.info("Completed Overcloud Upgrade Prepare for stack " "{0}".format(stack_name))
def take_action(self, parsed_args): self.log.debug("take_action(%s)" % parsed_args) clients = self.app.client_manager stack = oooutils.get_stack(clients.orchestration, parsed_args.stack) stack_name = stack.stack_name container_registry = parsed_args.container_registry_file if parsed_args.init_minor_update: # Update the container registry: if container_registry: with open(os.path.abspath(container_registry)) as content: registry = yaml.load(content.read()) else: self.log.warning( "You have not provided a container registry file. Note " "that none of the containers on your environement will be " "updated. If you want to update your container you have " "to re-run this command and provide the registry file " "with: --container-registry-file option.") registry = None # Execute minor update ceph_ansible_playbook = parsed_args.ceph_ansible_playbook package_update.update(clients, container=stack_name, container_registry=registry, ceph_ansible_playbook=ceph_ansible_playbook) print("Minor update init on stack {0} complete.".format( parsed_args.stack)) else: # Run ansible: nodes = parsed_args.nodes playbook = parsed_args.playbook inventory_file = parsed_args.static_inventory if inventory_file is None: inventory_file = '%s/%s' % (os.path.expanduser('~'), 'tripleo-ansible-inventory') try: processutils.execute('/bin/tripleo-ansible-inventory', '--static-inventory', inventory_file) except processutils.ProcessExecutionError as e: message = "Failed to generate inventory: %s" % str(e) raise exceptions.InvalidConfiguration(message) if os.path.exists(inventory_file): inventory = open(inventory_file, 'r').read() else: raise exceptions.InvalidConfiguration( "Inventory file %s can not be found." % inventory_file) package_update.update_ansible( clients, nodes=nodes, inventory_file=inventory, playbook=playbook, ansible_queue_name=constants.UPDATE_QUEUE)
def take_action(self, parsed_args): self.log.debug("take_action(%s)" % parsed_args) oooutils.ffwd_upgrade_operator_confirm(parsed_args.yes, self.log) clients = self.app.client_manager stack = oooutils.get_stack(clients.orchestration, parsed_args.stack) stack_name = stack.stack_name # ffwd-upgrade "init" run command on overcloud nodes package_update.run_on_nodes( clients, server_name='all', config_name='ffwd-upgrade-prepare', config=constants.FFWD_UPGRADE_PREPARE_SCRIPT, group='script', queue_name=constants.FFWD_UPGRADE_QUEUE) registry = oooutils.load_container_registry( self.log, parsed_args.container_registry_file) ceph_ansible_playbook = parsed_args.ceph_ansible_playbook # In case of update and upgrade we need to force the # update_plan_only. The heat stack update is done by the # packag_update mistral action parsed_args.update_plan_only = True # Add the prepare environment into the args to unset noop etc templates_dir = (parsed_args.templates or constants.TRIPLEO_HEAT_TEMPLATES) if not parsed_args.environment_files: parsed_args.environment_files = [] parsed_args.environment_files = oooutils.prepend_environment( parsed_args.environment_files, templates_dir, constants.FFWD_UPGRADE_PREPARE_ENV) super(FFWDUpgradePrepare, self).take_action(parsed_args) package_update.update(clients, container=stack_name, container_registry=registry, ceph_ansible_playbook=ceph_ansible_playbook) package_update.get_config(clients, container=stack_name) overcloudrcs = deployment.create_overcloudrc(clients.workflow_engine, container=stack_name) oooutils.write_overcloudrc(stack_name, overcloudrcs) self.log.info("FFWD Upgrade Prepare on stack {0} complete.".format( parsed_args.stack))
def take_action(self, parsed_args): self.log.debug("take_action(%s)" % parsed_args) oooutils.ffwd_upgrade_operator_confirm(parsed_args.yes, self.log) clients = self.app.client_manager stack = oooutils.get_stack(clients.orchestration, parsed_args.stack) stack_name = stack.stack_name # ffwd-upgrade "init" run command on overcloud nodes package_update.run_on_nodes( clients, server_name='all', config_name='ffwd-upgrade-prepare', config=constants.FFWD_UPGRADE_PREPARE_SCRIPT, group='script') # In case of update and upgrade we need to force the # update_plan_only. The heat stack update is done by the # packag_update mistral action parsed_args.update_plan_only = True # Add the prepare environment into the args to unset noop etc templates_dir = (parsed_args.templates or constants.TRIPLEO_HEAT_TEMPLATES) if not parsed_args.environment_files: parsed_args.environment_files = [] parsed_args.environment_files = oooutils.prepend_environment( parsed_args.environment_files, templates_dir, constants.FFWD_UPGRADE_PREPARE_ENV) super(FFWDUpgradePrepare, self).take_action(parsed_args) package_update.update(clients, container=stack_name) package_update.get_config(clients, container=stack_name) overcloudrcs = deployment.create_overcloudrc(clients, container=stack_name) oooutils.write_overcloudrc(stack_name, overcloudrcs) # refresh stack info and enable ssh admin for Ansible-via-Mistral stack = oooutils.get_stack(clients.orchestration, parsed_args.stack) deployment.get_hosts_and_enable_ssh_admin( self.log, clients, stack, parsed_args.overcloud_ssh_network, parsed_args.overcloud_ssh_user, parsed_args.overcloud_ssh_key) self.log.info("FFWD Upgrade Prepare on stack {0} complete.".format( parsed_args.stack))
def take_action(self, parsed_args): self.log.debug("take_action(%s)" % parsed_args) oooutils.ffwd_upgrade_operator_confirm(parsed_args.yes, self.log) clients = self.app.client_manager stack = oooutils.get_stack(clients.orchestration, parsed_args.stack) stack_name = stack.stack_name # In case of update and upgrade we need to force the # update_plan_only. The heat stack update is done by the # packag_update mistral action parsed_args.update_plan_only = True # Add the prepare environment into the args to unset noop etc templates_dir = (parsed_args.templates or constants.TRIPLEO_HEAT_TEMPLATES) if not parsed_args.environment_files: parsed_args.environment_files = [] parsed_args.environment_files = oooutils.prepend_environment( parsed_args.environment_files, templates_dir, constants.FFWD_UPGRADE_PREPARE_ENV) super(FFWDUpgradePrepare, self).take_action(parsed_args) package_update.update(clients, container=stack_name) oooutils.get_config( clients, container=stack_name, container_config='{}-config'.format(stack.stack_name)) overcloudrcs = deployment.create_overcloudrc( clients, container=stack_name) oooutils.write_overcloudrc(stack_name, overcloudrcs) # refresh stack info and enable ssh admin for Ansible-via-Mistral stack = oooutils.get_stack(clients.orchestration, parsed_args.stack) deployment.get_hosts_and_enable_ssh_admin( stack, parsed_args.overcloud_ssh_network, parsed_args.overcloud_ssh_user, self.get_key_pair(parsed_args), parsed_args.overcloud_ssh_port_timeout, verbosity=oooutils.playbook_verbosity(self=self) ) self.log.info("FFWD Upgrade Prepare on stack {0} complete.".format( parsed_args.stack))
def take_action(self, parsed_args): self.log.debug("take_action(%s)" % parsed_args) # Throw deprecation warning if service is enabled and # ask user if upgrade should still be continued. if parsed_args.environment_files: oooutils.check_deprecated_service_is_enabled( parsed_args.environment_files) clients = self.app.client_manager stack = oooutils.get_stack(clients.orchestration, parsed_args.stack) stack_name = stack.stack_name # In case of update and upgrade we need to force the # update_plan_only. The heat stack update is done by the # packag_update mistral action parsed_args.update_plan_only = True # Add the upgrade-prepare.yaml environment to set noops etc templates_dir = (parsed_args.templates or constants.TRIPLEO_HEAT_TEMPLATES) parsed_args.environment_files = oooutils.prepend_environment( parsed_args.environment_files, templates_dir, constants.UPGRADE_PREPARE_ENV) super(UpgradePrepare, self).take_action(parsed_args) package_update.update(clients, container=stack_name) oooutils.get_config(clients, container=stack_name, container_config='{}-config'.format( stack.stack_name)) overcloudrcs = deployment.create_overcloudrc(clients, container=stack_name) oooutils.write_overcloudrc(stack_name, overcloudrcs) # refresh stack info and enable ssh admin for Ansible-via-Mistral stack = oooutils.get_stack(clients.orchestration, parsed_args.stack) deployment.get_hosts_and_enable_ssh_admin( stack, parsed_args.overcloud_ssh_network, parsed_args.overcloud_ssh_user, self.get_key_pair(parsed_args), parsed_args.overcloud_ssh_port_timeout, verbosity=oooutils.playbook_verbosity(self=self)) self.log.info("Completed Overcloud Upgrade Prepare for stack " "{0}".format(stack_name))