Ejemplo n.º 1
0
    def execute(self, context: 'Context') -> None:
        hook = CloudSQLHook(
            gcp_conn_id=self.gcp_conn_id,
            api_version=self.api_version,
            impersonation_chain=self.impersonation_chain,
        )
        self._validate_body_fields()
        if not self._check_if_instance_exists(self.instance, hook):
            hook.create_instance(project_id=self.project_id, body=self.body)
        else:
            self.log.info(
                "Cloud SQL instance with ID %s already exists. Aborting create.",
                self.instance)

        CloudSQLInstanceLink.persist(
            context=context,
            task_instance=self,
            cloud_sql_instance=self.instance,
            project_id=self.project_id or hook.project_id,
        )

        instance_resource = hook.get_instance(project_id=self.project_id,
                                              instance=self.instance)
        service_account_email = instance_resource["serviceAccountEmailAddress"]
        task_instance = context['task_instance']
        task_instance.xcom_push(key="service_account_email",
                                value=service_account_email)
Ejemplo n.º 2
0
    def execute(self, context):
        hook = CloudSQLHook(gcp_conn_id=self.gcp_conn_id,
                            api_version=self.api_version)
        self._validate_body_fields()
        if not self._check_if_instance_exists(self.instance, hook):
            hook.create_instance(project_id=self.project_id, body=self.body)
        else:
            self.log.info(
                "Cloud SQL instance with ID %s already exists. "
                "Aborting create.", self.instance)

        instance_resource = hook.get_instance(project_id=self.project_id,
                                              instance=self.instance)
        service_account_email = instance_resource["serviceAccountEmailAddress"]
        task_instance = context['task_instance']
        task_instance.xcom_push(key="service_account_email",
                                value=service_account_email)