Example #1
0
 def execute(self, context: Dict):
     hook = DataFusionHook(
         gcp_conn_id=self.gcp_conn_id,
         delegate_to=self.delegate_to,
         api_version=self.api_version,
         impersonation_chain=self.impersonation_chain,
     )
     self.log.info("Restarting Data Fusion instance: %s", self.instance_name)
     operation = hook.restart_instance(
         instance_name=self.instance_name, location=self.location, project_id=self.project_id,
     )
     hook.wait_for_operation(operation)
     self.log.info("Instance %s restarted successfully", self.instance_name)
Example #2
0
 def execute(self, context: Dict):
     hook = DataFusionHook(
         gcp_conn_id=self.gcp_conn_id,
         delegate_to=self.delegate_to,
         api_version=self.api_version,
     )
     self.log.info("Updating Data Fusion instance: %s", self.instance_name)
     operation = hook.patch_instance(
         instance_name=self.instance_name,
         instance=self.instance,
         update_mask=self.update_mask,
         location=self.location,
         project_id=self.project_id,
     )
     hook.wait_for_operation(operation)
     self.log.info("Instance %s updated successfully", self.instance_name)
Example #3
0
 def execute(self, context: Dict):
     hook = DataFusionHook(
         gcp_conn_id=self.gcp_conn_id,
         delegate_to=self.delegate_to,
         api_version=self.api_version,
     )
     self.log.info("Creating Data Fusion instance: %s", self.instance_name)
     try:
         operation = hook.create_instance(
             instance_name=self.instance_name,
             instance=self.instance,
             location=self.location,
             project_id=self.project_id,
         )
         instance = hook.wait_for_operation(operation)
         self.log.info("Instance %s created successfully",
                       self.instance_name)
     except HttpError as err:
         if err.resp.status not in (409, '409'):
             raise
         self.log.info("Instance %s already exists", self.instance_name)
         instance = hook.get_instance(instance_name=self.instance_name,
                                      location=self.location,
                                      project_id=self.project_id)
         # Wait for instance to be ready
         for time_to_wait in exponential_sleep_generator(initial=10,
                                                         maximum=120):
             if instance['state'] != 'CREATING':
                 break
             sleep(time_to_wait)
             instance = hook.get_instance(instance_name=self.instance_name,
                                          location=self.location,
                                          project_id=self.project_id)
     return instance
Example #4
0
    def execute(self, context: Dict):
        hook = DataFusionHook(
            gcp_conn_id=self.gcp_conn_id,
            delegate_to=self.delegate_to,
            api_version=self.api_version,
        )
        self.log.info("Creating Data Fusion instace: %s", self.instance_name)
        try:
            operation = hook.create_instance(
                instance_name=self.instance_name,
                instance=self.instance,
                location=self.location,
                project_id=self.project_id,
            )
            instance = hook.wait_for_operation(operation)
            self.log.info("Instance %s created successfully", self.instance_name)
        except HttpError as err:
            if err.resp.status != 409:
                raise
            self.log.info("Instance %s already exists", self.instance_name)
            instance = hook.get_instance(
                instance_name=self.instance_name, location=self.location, project_id=self.project_id
            )

        return instance
Example #5
0
    def execute(self, context: 'Context') -> None:
        hook = DataFusionHook(
            gcp_conn_id=self.gcp_conn_id,
            delegate_to=self.delegate_to,
            api_version=self.api_version,
            impersonation_chain=self.impersonation_chain,
        )
        self.log.info("Restarting Data Fusion instance: %s",
                      self.instance_name)
        operation = hook.restart_instance(
            instance_name=self.instance_name,
            location=self.location,
            project_id=self.project_id,
        )
        instance = hook.wait_for_operation(operation)
        self.log.info("Instance %s restarted successfully", self.instance_name)

        project_id = self.project_id or DataFusionPipelineLinkHelper.get_project_id(
            instance)
        DataFusionInstanceLink.persist(context=context,
                                       task_instance=self,
                                       project_id=project_id)