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,
}