예제 #1
0
    def deploy_to_secure(self, info):
        fmlogging.debug("Google deployer called for securing service:%s" %
                        info['service_name'])

        work_dir = ''

        cloud_details = ast.literal_eval(info['cloud_details'])
        user_email = cloud_details['user_email']
        project_id = cloud_details['project_id']

        if info['service_name']:
            service_name = info['service_name']
            service_version = info['service_version']
            if not work_dir:
                work_dir = (
                    constants.SERVICE_STORE_PATH +
                    "/{service_name}/{service_version}/{service_name}").format(
                        service_name=service_name,
                        service_version=service_version)
            if service_name:
                parts = service_name.split("-")
                if parts[0] == 'mysql':
                    mysql_handler = gh.MySQLServiceHandler(self.task_def)
                    mysql_handler.make_secure(project_id, info)

        # update service status to SECURING
        utils.update_service_status(info, constants.SECURING_COMPLETE)
예제 #2
0
    def __init__(self, task_def):
        self.task_def = task_def
        if task_def.app_data:
            self.app_dir = task_def.app_data['app_location']
            self.app_name = task_def.app_data['app_name']
            self.app_version = task_def.app_data['app_version']

        self.services = {}

        if task_def.service_data:
            self.service_obj = service.Service(task_def.service_data[0])
            if self.service_obj.get_service_type() == 'mysql':
                self.services['mysql'] = gh.MySQLServiceHandler(self.task_def)

        self.docker_client = Client(base_url='unix://var/run/docker.sock', version='1.18')
        self.docker_handler = docker_lib.DockerLib()
예제 #3
0
    def generate_for_delete(self, info):
        work_dir = ''
        df = self.docker_handler.get_dockerfile_snippet('google')
        df = df + ("RUN /google-cloud-sdk/bin/gcloud config set account {user_email} \ \n"
              "    && /google-cloud-sdk/bin/gcloud config set project {project_id} \ \n"
              "    && /google-cloud-sdk/bin/gcloud config set app/use_appengine_api false \ \n")

        if info['app_name']:
            fmlogging.debug("Google generator called for delete for app:%s" % info['app_name'])

            app_name = info['app_name']
            app_version = info['app_version']
            work_dir = (constants.APP_STORE_PATH + "/{app_name}/{app_version}/{app_name}").format(app_name=app_name,
                                                                                                 app_version=app_version)
            self._generate_app_yaml_delete(work_dir)
            df = df + ("    && /google-cloud-sdk/bin/gcloud app deploy --quiet \ \n")

        service_terminate_cmd = ''
        if info['service_name']:
            service_name = info['service_name']
            service_version = info['service_version']
            if not work_dir:
                work_dir = (constants.SERVICE_STORE_PATH + "/{service_name}/{service_version}/{service_name}").format(service_name=service_name,
                                                                                                                      service_version=service_version)
            if service_name:
                parts = service_name.split("-")
                if parts[0] == 'mysql':
                    mysql_handler = gh.MySQLServiceHandler(self.task_def)
                    service_terminate_cmd = mysql_handler.get_terminate_cmd(info)
                    df = df + (" && {terminate_cmd}")

        cloud_details = ast.literal_eval(info['cloud_details'])
        user_email = cloud_details['user_email']
        project_id = cloud_details['project_id']

        if service_terminate_cmd:
            df = df.format(user_email=user_email, project_id=project_id, terminate_cmd=service_terminate_cmd)
        else:
            df = df.format(user_email=user_email, project_id=project_id)

        fp = open(work_dir + "/Dockerfile.delete", "w")
        fp.write(df)
        fp.flush()
        fp.close()
예제 #4
0
    def __init__(self, task_def):
        self.task_def = task_def
        #self.logger = fmlogging.getLogger(name=self.__class__.__name__)
        #handler = lh.RotatingFileHandler(constants.LOG_FILE_NAME,
        #                                maxBytes=5000000, backupCount=0)
        #self.logger.addHandler(handler)

        if task_def.app_data:
            self.app_dir = task_def.app_data['app_location']
            self.app_name = task_def.app_data['app_name']
            self.app_version = task_def.app_data['app_version']
            self.access_token_cont_name = "google-access-token-cont-" + self.app_name + "-" + self.app_version
            self.create_db_cont_name = "google-create-db-" + self.app_name + "-" + self.app_version
            self.app_obj = app.App(self.task_def.app_data)

        self.services = {}

        if task_def.service_data:
            self.service_obj = service.Service(task_def.service_data[0])
            if self.service_obj.get_service_type() == 'mysql':
                self.services['mysql'] = gh.MySQLServiceHandler(self.task_def)

        self.docker_handler = docker_lib.DockerLib()
예제 #5
0
    def __init__(self, task_def):
        self.task_def = task_def
        self.instance_name = ''
        self.instance_version = ''
        self.instance_prov_workdir = ''

        if task_def.app_data:
            self.app_type = task_def.app_data['app_type']
            self.app_dir = task_def.app_data['app_location']
            self.app_name = task_def.app_data['app_name']
            self.entry_point = app.App(task_def.app_data).get_entrypoint_file_name()
            if 'app_variables' in task_def.app_data:
                self.app_variables = task_def.app_data['app_variables']

        self.services = {}
        if task_def.service_data:
            self.service_obj = service.Service(task_def.service_data[0])
            self.service_details = ''

            if self.service_obj.get_service_type() == 'mysql':
                self.services['mysql'] = gh.MySQLServiceHandler(self.task_def)

        self.docker_handler = docker_lib.DockerLib()