Пример #1
0
def remove_batch_job_related_resources(compute_env_name, job_definition_name):
    deregister_ecs_task_definition_of_batch_job(job_definition_name)
    ecs_cluster = get_ecs_cluster_from_compute_env(compute_env_name)
    if ecs_cluster:
        ecs.stop_all_tasks_in_a_cluster(ecs_cluster, Settings.AWS_AUTH_CRED)

        ecs.delete_container_instances(ecs_cluster, Settings.AWS_AUTH_CRED)

        ecs.delete_cluster(ecs_cluster, Settings.AWS_AUTH_CRED)
Пример #2
0
    def inactivate_required_services_for_redeploy(self, resources_to_process,
                                                  dry_run):
        """
        Before redeploy get started or on redeploy happens stop the tasks and deregister task definition

        Args:
            resources_to_process (list): List of resources to be created/updated
            only_tasks (boolean): This flasg decides whther to deregister task definition or not
        """
        if dry_run:
            return

        for resource in resources_to_process:
            if self.terraform_thread.isAlive():
                resource_base_classes = inspect.getmro(resource.__class__)

                if ECSTaskDefinitionResource in resource_base_classes:
                    try:
                        deregister_task_definition(
                            Settings.AWS_ACCESS_KEY,
                            Settings.AWS_SECRET_KEY,
                            Settings.AWS_REGION,
                            resource.get_input_attr('family'),
                        )
                    except:
                        pass
                elif ECSClusterResource in resource_base_classes:
                    cluster_name = resource.get_input_attr('name')
            else:
                return

        for i in range(3):
            if self.terraform_thread.isAlive():
                try:
                    stop_all_tasks_in_a_cluster(cluster_name,
                                                Settings.AWS_ACCESS_KEY,
                                                Settings.AWS_SECRET_KEY,
                                                Settings.AWS_REGION)
                except:
                    pass
                time.sleep(20)
            else:
                return