Ejemplo n.º 1
0
    def update(self):
        '''
            Create and execute changeset for existing CloudFormation template
            for ECS service and related dependencies
        '''

        log_bold("Starting to update service")
        self.service_configuration.edit_config()
        try:
            template_generator = ServiceTemplateGenerator(
                self.service_configuration, self.environment_stack)
            service_template_body = template_generator.generate_service()
            change_set = create_change_set(self.client, service_template_body,
                                           self.stack_name, "",
                                           self.environment)
            self.service_configuration.update_cloudlift_version()
            log_bold("Executing changeset. Checking progress...")
            self.client.execute_change_set(
                ChangeSetName=change_set['ChangeSetId'])
            self._print_progress()
        except ClientError as exc:
            if "No updates are to be performed." in str(exc):
                log_err("No updates are to be performed")
            else:
                raise exc
Ejemplo n.º 2
0
 def run_update(self, update_ecs_agents):
     if update_ecs_agents:
         self.__run_ecs_container_agent_udpate()
     try:
         log("Initiating environment stack update.")
         environment_stack_template_body = ClusterTemplateGenerator(
             self.environment,
             self.configuration,
             self.__get_desired_count()
         ).generate_cluster()
         log("Template generation complete.")
         change_set = create_change_set(
             self.client,
             environment_stack_template_body,
             self.cluster_name,
             self.__get_parameter_values(),
             self.environment
         )
         self.existing_events = get_stack_events(
             self.client,
             self.cluster_name
         )
         if change_set is None:
             return
         log_bold("Executing changeset. Checking progress...")
         self.client.execute_change_set(
             ChangeSetName=change_set['ChangeSetId']
         )
         self.__print_progress()
     except ClientError as e:
         log_err("No updates are to be performed")
     except Exception as e:
         raise e
Ejemplo n.º 3
0
    def update(self):
        '''
            Create and execute changeset for existing CloudFormation template
            for ECS service and related dependencies
        '''

        log_bold("Starting to update service")
        self.service_configuration.edit_config()
        self.service_configuration.validate()

        information_fetcher = ServiceInformationFetcher(
            self.service_configuration.service_name,
            self.environment,
            self.service_configuration.get_config(),
        )
        try:
            current_image_uri = information_fetcher.get_current_image_uri()
            desired_counts = information_fetcher.fetch_current_desired_count()

            template_generator = ServiceTemplateGenerator(
                self.service_configuration,
                self.environment_stack,
                self.env_sample_file,
                current_image_uri,
                desired_counts,
            )
            service_template_body = template_generator.generate_service()
            change_set = create_change_set(self.client, service_template_body,
                                           self.stack_name, None,
                                           self.environment)
            if change_set is None:
                return
            self.service_configuration.update_cloudlift_version()
            log_bold("Executing changeset. Checking progress...")
            self.client.execute_change_set(
                ChangeSetName=change_set['ChangeSetId'])
            self._print_progress()
        except ClientError as exc:
            if "No updates are to be performed." in str(exc):
                log_err("No updates are to be performed")
            else:
                raise exc