Beispiel #1
0
    def __init__(self, args):
        self.service_list = []

        task_definition_config_json = render.load_json(args.task_definition_config_json)
        files = os.listdir(args.task_definition_template_dir)
        for file in files:
            try:
                task_definitions = render.render_definition(args.task_definition_template_dir, file, task_definition_config_json, args.task_definition_config_env)
                self.service_list.extend(self.import_service_from_task_definitions(task_definitions))
            except:
                error("Template error. file: %s.\n%s" % (file, traceback.format_exc()))
                sys.exit(1)
        if args.deploy_service_group:
            self.deploy_service_list = list(filter(lambda service:service.task_environment.service_group == args.deploy_service_group, self.service_list))
        else:
            self.deploy_service_list = self.service_list
        if len(self.deploy_service_list) == 0:
            error("Deployment target service is None.")
            sys.exit(1)
        self.ecs_service = ECSService(access_key=args.key, secret_key=args.secret, region=args.region)
        self.is_service_zero_keep = args.service_zero_keep
        self.environment = task_definition_config_json['environment']
        self.template_group = args.template_group

        self.cluster_list = []
        for service in self.service_list:
            if service.task_environment.cluster_name not in self.cluster_list:
                self.cluster_list.append(service.task_environment.cluster_name)

        self.error = False
 def __init__(self, webhook_url, regions, message, tag_key, tag_value,
              lifetime_tag_key, behavior_type):
     self.logger = logging.getLogger()
     self.logger.setLevel(logging.INFO)
     self.regions = regions
     self.behavior_type = behavior_type
     self.slack_service = slack.Slack.get_instance(webhook_url, message,
                                                   tag_key, tag_value,
                                                   lifetime_tag_key)
     self.ec2_service = EC2Service(tag_key, tag_value, lifetime_tag_key,
                                   behavior_type, self.logger)
     self.rds_service = RDSService(tag_key, tag_value, lifetime_tag_key,
                                   behavior_type, self.logger)
     self.ecs_service = ECSService(tag_key, tag_value, lifetime_tag_key,
                                   behavior_type, self.logger)
parser.add_argument('--service-name', dest='service_name', required=False)
parser.add_argument('--minimum-running-tasks',
                    type=int,
                    dest='minimum_running_tasks',
                    default=1,
                    required=False)
args = parser.parse_args()

try:

    serviceMode = args.service_name is not None

    # Step: Configuring AWS
    h1("Step: Configuring AWS")
    ecs = ECSService(access_key=args.key,
                     secret_key=args.secret,
                     region=args.region)
    success("Configuring AWS succeeded")

    # Step: Check ECS cluster
    h1("Step: Check ECS cluster")
    ecs.describe_cluster(cluster=args.cluster_name)
    success("Checking cluster '%s' succeeded" % args.cluster_name)

    # Step: Check ECS Service
    if serviceMode:
        h1("Step: Check ECS Service")
        response = ecs.describe_service(cluster=args.cluster_name,
                                        service=args.service_name)
        original_running_count = (
            response.get('services')[0]).get('runningCount')
Beispiel #4
0
 def __init__(self, key, secret, region):
     super().__init__()
     self.ecs_service = ECSService(access_key=key, secret_key=secret, region=region)