Beispiel #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,
     )
     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
Beispiel #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("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