def process()

in processors/loadbalancing.py [0:0]


    def process(self, output_var='loadbalancing'):
        if 'mode' not in self.config:
            raise NotConfiguredException(
                'No Cloud Load Balancing operation specified.')
        if 'backendService' not in self.config:
            raise NotConfiguredException(
                'No backend service name specified in the configuration.')

        credentials, credentials_project_id = google.auth.default()
        project = self._jinja_expand_string(
            self.config['project'],
            'project') if 'project' in self.config else credentials_project_id
        if not project:
            project = credentials.quota_project_id

        compute_service = discovery.build(
            'compute', 'v1', http=self._get_branded_http(credentials))

        timeout = self._jinja_expand_int(
            self.config['timeout']) if 'timeout' in self.config else 30
        backend_service = self._jinja_expand_string(
            self.config['backendService'], 'backend_service')

        if self.config['mode'] == 'backendservice.get':
            return {
                output_var:
                    self.get_backend(compute_service, project, backend_service)
            }

        if self.config['mode'] == 'regionbackendservice.get':
            region = self._jinja_expand_string(self.config['region'], 'region')
            return {
                output_var:
                    self.get_region_backend(compute_service, project, region,
                                            backend_service)
            }

        if 'patch' not in self.config:
            raise NotConfiguredException(
                'No backend service patch fields specified in the configuration.'
            )

        patches = self._jinja_expand_dict_all(self.config['patch'], 'patch')
        if self.config['mode'] == 'backendservice.patch':
            backend = self.get_backend(compute_service, project,
                                       backend_service)
            patch_request = compute_service.backendServices().patch(
                project=project, backendService=backend_service, body=patches)
            patch_response = patch_request.execute()
            if 'id' in patch_response:
                self.wait_for_operation_done(compute_service,
                                             patch_response['id'],
                                             patch_response['selfLink'],
                                             project, None, region, timeout)
                backend = self.get_backend(compute_service, project,
                                           backend_service)
            return {output_var: backend}

        if self.config['mode'] == 'regionbackendservice.patch':
            if 'region' not in self.config:
                raise NotConfiguredException(
                    'No backend service region specified in the configuration.')
            region = self._jinja_expand_string(self.config['region'], 'region')
            backend = self.get_region_backend(compute_service, project, region,
                                              backend_service)
            patch_request = compute_service.regionBackendServices().patch(
                project=project,
                region=region,
                backendService=backend_service,
                body=patches)
            patch_response = patch_request.execute()
            if 'id' in patch_response:
                self.wait_for_operation_done(compute_service,
                                             patch_response['id'],
                                             patch_response['selfLink'],
                                             project, None, region, timeout)
                backend = self.get_region_backend(compute_service, project,
                                                  region, backend_service)
            return {output_var: backend}

        return {
            output_var: None,
        }