diff --git a/plugins/module_utils/gcp_utils.py b/plugins/module_utils/gcp_utils.py index dd4ef01..44cca39 100644 --- a/plugins/module_utils/gcp_utils.py +++ b/plugins/module_utils/gcp_utils.py @@ -119,6 +119,30 @@ class GcpSession(object): kwargs.update({'json': body}) return self.full_patch(url, **kwargs) + def list(self, url, callback, params=None, array_name='items', + pageToken='nextPageToken', **kwargs): + """ + This should be used for calling the GCP list APIs. It will return + an array of items + + This takes a callback to a `return_if_object(module, response)` + function that will decode the response + return a dictionary. Some + modules handle the decode + error processing differently, so we should + defer to the module to handle this. + """ + resp = callback(self.module, self.full_get(url, params, **kwargs)) + items = resp.get(array_name) if resp.get(array_name) else [] + while resp.get(pageToken): + if params: + params['pageToken'] = resp.get(pageToken) + else: + params = {'pageToken': resp[pageToken]} + + resp = callback(self.module, self.full_get(url, params, **kwargs)) + if resp.get(array_name): + items = items + resp.get(array_name) + return items + # The following methods fully mimic the requests API and should be used. def full_get(self, url, params=None, **kwargs): kwargs['headers'] = self._set_headers(kwargs.get('headers')) diff --git a/plugins/modules/gcp_appengine_firewall_rule_info.py b/plugins/modules/gcp_appengine_firewall_rule_info.py index b24673b..e2b6317 100644 --- a/plugins/modules/gcp_appengine_firewall_rule_info.py +++ b/plugins/modules/gcp_appengine_firewall_rule_info.py @@ -101,12 +101,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - items = fetch_list(module, collection(module)) - if items.get('ingressRules'): - items = items.get('ingressRules') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -116,8 +111,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'appengine') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='ingressRules') def return_if_object(module, response): diff --git a/plugins/modules/gcp_bigquery_dataset_info.py b/plugins/modules/gcp_bigquery_dataset_info.py index 9af87b9..3cc270f 100644 --- a/plugins/modules/gcp_bigquery_dataset_info.py +++ b/plugins/modules/gcp_bigquery_dataset_info.py @@ -208,12 +208,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/bigquery'] - items = fetch_list(module, collection(module)) - if items.get('datasets'): - items = items.get('datasets') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -223,8 +218,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'bigquery') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='datasets') def return_if_object(module, response): diff --git a/plugins/modules/gcp_bigquery_table_info.py b/plugins/modules/gcp_bigquery_table_info.py index 8ed6377..1491dee 100644 --- a/plugins/modules/gcp_bigquery_table_info.py +++ b/plugins/modules/gcp_bigquery_table_info.py @@ -546,12 +546,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/bigquery'] - items = fetch_list(module, collection(module)) - if items.get('tables'): - items = items.get('tables') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -561,8 +556,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'bigquery') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='tables') def return_if_object(module, response): diff --git a/plugins/modules/gcp_cloudbuild_trigger_info.py b/plugins/modules/gcp_cloudbuild_trigger_info.py index dabacbd..ec581c6 100644 --- a/plugins/modules/gcp_cloudbuild_trigger_info.py +++ b/plugins/modules/gcp_cloudbuild_trigger_info.py @@ -324,12 +324,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - items = fetch_list(module, collection(module)) - if items.get('triggers'): - items = items.get('triggers') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -339,8 +334,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'cloudbuild') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='triggers') def return_if_object(module, response): diff --git a/plugins/modules/gcp_cloudfunctions_cloud_function_info.py b/plugins/modules/gcp_cloudfunctions_cloud_function_info.py index 8cfc952..34aa2c1 100644 --- a/plugins/modules/gcp_cloudfunctions_cloud_function_info.py +++ b/plugins/modules/gcp_cloudfunctions_cloud_function_info.py @@ -224,12 +224,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - items = fetch_list(module, collection(module)) - if items.get('functions'): - items = items.get('functions') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -239,8 +234,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'cloudfunctions') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='functions') def return_if_object(module, response): diff --git a/plugins/modules/gcp_cloudscheduler_job_info.py b/plugins/modules/gcp_cloudscheduler_job_info.py index 8315751..7aee6c8 100644 --- a/plugins/modules/gcp_cloudscheduler_job_info.py +++ b/plugins/modules/gcp_cloudscheduler_job_info.py @@ -311,12 +311,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - items = fetch_list(module, collection(module)) - if items.get('jobs'): - items = items.get('jobs') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -326,8 +321,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'cloudscheduler') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='jobs') def return_if_object(module, response): diff --git a/plugins/modules/gcp_cloudtasks_queue_info.py b/plugins/modules/gcp_cloudtasks_queue_info.py index b84e6a6..0598c87 100644 --- a/plugins/modules/gcp_cloudtasks_queue_info.py +++ b/plugins/modules/gcp_cloudtasks_queue_info.py @@ -216,12 +216,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - items = fetch_list(module, collection(module)) - if items.get('queues'): - items = items.get('queues') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -231,8 +226,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'cloudtasks') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='queues') def return_if_object(module, response): diff --git a/plugins/modules/gcp_compute_address_info.py b/plugins/modules/gcp_compute_address_info.py index 93e3ee8..a7791ea 100644 --- a/plugins/modules/gcp_compute_address_info.py +++ b/plugins/modules/gcp_compute_address_info.py @@ -159,12 +159,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -174,8 +169,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_autoscaler_info.py b/plugins/modules/gcp_compute_autoscaler_info.py index 1848184..8c957f8 100644 --- a/plugins/modules/gcp_compute_autoscaler_info.py +++ b/plugins/modules/gcp_compute_autoscaler_info.py @@ -224,12 +224,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -239,8 +234,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_backend_bucket_info.py b/plugins/modules/gcp_compute_backend_bucket_info.py index c7d214b..2d6c62a 100644 --- a/plugins/modules/gcp_compute_backend_bucket_info.py +++ b/plugins/modules/gcp_compute_backend_bucket_info.py @@ -142,12 +142,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -157,8 +152,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_backend_service_info.py b/plugins/modules/gcp_compute_backend_service_info.py index f153515..5d52912 100644 --- a/plugins/modules/gcp_compute_backend_service_info.py +++ b/plugins/modules/gcp_compute_backend_service_info.py @@ -379,12 +379,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -394,8 +389,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_disk_info.py b/plugins/modules/gcp_compute_disk_info.py index 0c4451f..7e15d94 100644 --- a/plugins/modules/gcp_compute_disk_info.py +++ b/plugins/modules/gcp_compute_disk_info.py @@ -302,12 +302,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -317,8 +312,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_firewall_info.py b/plugins/modules/gcp_compute_firewall_info.py index 2349358..1013fa4 100644 --- a/plugins/modules/gcp_compute_firewall_info.py +++ b/plugins/modules/gcp_compute_firewall_info.py @@ -258,12 +258,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -273,8 +268,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_forwarding_rule_info.py b/plugins/modules/gcp_compute_forwarding_rule_info.py index 0ce70ff..c4b9763 100644 --- a/plugins/modules/gcp_compute_forwarding_rule_info.py +++ b/plugins/modules/gcp_compute_forwarding_rule_info.py @@ -260,12 +260,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -275,8 +270,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_global_address_info.py b/plugins/modules/gcp_compute_global_address_info.py index 0dfd07d..e6a115a 100644 --- a/plugins/modules/gcp_compute_global_address_info.py +++ b/plugins/modules/gcp_compute_global_address_info.py @@ -159,12 +159,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -174,8 +169,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_global_forwarding_rule_info.py b/plugins/modules/gcp_compute_global_forwarding_rule_info.py index de5b4cd..c10fc01 100644 --- a/plugins/modules/gcp_compute_global_forwarding_rule_info.py +++ b/plugins/modules/gcp_compute_global_forwarding_rule_info.py @@ -189,12 +189,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -204,8 +199,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_health_check_info.py b/plugins/modules/gcp_compute_health_check_info.py index d2bae2c..3e54f67 100644 --- a/plugins/modules/gcp_compute_health_check_info.py +++ b/plugins/modules/gcp_compute_health_check_info.py @@ -369,12 +369,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -384,8 +379,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_http_health_check_info.py b/plugins/modules/gcp_compute_http_health_check_info.py index 62bb56f..5284605 100644 --- a/plugins/modules/gcp_compute_http_health_check_info.py +++ b/plugins/modules/gcp_compute_http_health_check_info.py @@ -159,12 +159,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -174,8 +169,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_https_health_check_info.py b/plugins/modules/gcp_compute_https_health_check_info.py index 7101935..868b051 100644 --- a/plugins/modules/gcp_compute_https_health_check_info.py +++ b/plugins/modules/gcp_compute_https_health_check_info.py @@ -159,12 +159,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -174,8 +169,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_image_info.py b/plugins/modules/gcp_compute_image_info.py index b7a128e..6d8c14b 100644 --- a/plugins/modules/gcp_compute_image_info.py +++ b/plugins/modules/gcp_compute_image_info.py @@ -301,12 +301,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -316,8 +311,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_instance_group_info.py b/plugins/modules/gcp_compute_instance_group_info.py index 493a579..59d2785 100644 --- a/plugins/modules/gcp_compute_instance_group_info.py +++ b/plugins/modules/gcp_compute_instance_group_info.py @@ -168,12 +168,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -183,8 +178,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_instance_group_manager_info.py b/plugins/modules/gcp_compute_instance_group_manager_info.py index ef7b9d4..aa872bd 100644 --- a/plugins/modules/gcp_compute_instance_group_manager_info.py +++ b/plugins/modules/gcp_compute_instance_group_manager_info.py @@ -243,12 +243,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -258,8 +253,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_instance_info.py b/plugins/modules/gcp_compute_instance_info.py index fc4ee5a..988e67c 100644 --- a/plugins/modules/gcp_compute_instance_info.py +++ b/plugins/modules/gcp_compute_instance_info.py @@ -530,12 +530,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -545,8 +540,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_instance_template_info.py b/plugins/modules/gcp_compute_instance_template_info.py index 1db5b29..5974e9c 100644 --- a/plugins/modules/gcp_compute_instance_template_info.py +++ b/plugins/modules/gcp_compute_instance_template_info.py @@ -488,12 +488,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -503,8 +498,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_interconnect_attachment_info.py b/plugins/modules/gcp_compute_interconnect_attachment_info.py index 12be2a8..8ccb8aa 100644 --- a/plugins/modules/gcp_compute_interconnect_attachment_info.py +++ b/plugins/modules/gcp_compute_interconnect_attachment_info.py @@ -225,12 +225,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -240,8 +235,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_network_info.py b/plugins/modules/gcp_compute_network_info.py index aea0a38..4ea9cc1 100644 --- a/plugins/modules/gcp_compute_network_info.py +++ b/plugins/modules/gcp_compute_network_info.py @@ -162,12 +162,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -177,8 +172,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_region_disk_info.py b/plugins/modules/gcp_compute_region_disk_info.py index 9f14ae6..008162b 100644 --- a/plugins/modules/gcp_compute_region_disk_info.py +++ b/plugins/modules/gcp_compute_region_disk_info.py @@ -248,12 +248,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -263,8 +258,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_route_info.py b/plugins/modules/gcp_compute_route_info.py index cbe4caf..a3c05e6 100644 --- a/plugins/modules/gcp_compute_route_info.py +++ b/plugins/modules/gcp_compute_route_info.py @@ -162,12 +162,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -177,8 +172,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_router_info.py b/plugins/modules/gcp_compute_router_info.py index d24bf62..f3a9f82 100644 --- a/plugins/modules/gcp_compute_router_info.py +++ b/plugins/modules/gcp_compute_router_info.py @@ -178,12 +178,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -193,8 +188,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_snapshot_info.py b/plugins/modules/gcp_compute_snapshot_info.py index de4e0dc..3ee3336 100644 --- a/plugins/modules/gcp_compute_snapshot_info.py +++ b/plugins/modules/gcp_compute_snapshot_info.py @@ -191,12 +191,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -206,8 +201,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_ssl_certificate_info.py b/plugins/modules/gcp_compute_ssl_certificate_info.py index bf782b5..c97bad2 100644 --- a/plugins/modules/gcp_compute_ssl_certificate_info.py +++ b/plugins/modules/gcp_compute_ssl_certificate_info.py @@ -126,12 +126,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -141,8 +136,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_ssl_policy_info.py b/plugins/modules/gcp_compute_ssl_policy_info.py index 7509097..dcc1cf3 100644 --- a/plugins/modules/gcp_compute_ssl_policy_info.py +++ b/plugins/modules/gcp_compute_ssl_policy_info.py @@ -164,12 +164,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -179,8 +174,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_subnetwork_info.py b/plugins/modules/gcp_compute_subnetwork_info.py index 7d3419b..f167cab 100644 --- a/plugins/modules/gcp_compute_subnetwork_info.py +++ b/plugins/modules/gcp_compute_subnetwork_info.py @@ -187,12 +187,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -202,8 +197,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_target_http_proxy_info.py b/plugins/modules/gcp_compute_target_http_proxy_info.py index 0188497..5e0b89d 100644 --- a/plugins/modules/gcp_compute_target_http_proxy_info.py +++ b/plugins/modules/gcp_compute_target_http_proxy_info.py @@ -120,12 +120,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -135,8 +130,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_target_https_proxy_info.py b/plugins/modules/gcp_compute_target_https_proxy_info.py index c1fee8f..80ff74e 100644 --- a/plugins/modules/gcp_compute_target_https_proxy_info.py +++ b/plugins/modules/gcp_compute_target_https_proxy_info.py @@ -143,12 +143,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -158,8 +153,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_target_pool_info.py b/plugins/modules/gcp_compute_target_pool_info.py index ddaa80a..6db2ec7 100644 --- a/plugins/modules/gcp_compute_target_pool_info.py +++ b/plugins/modules/gcp_compute_target_pool_info.py @@ -179,12 +179,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -194,8 +189,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_target_ssl_proxy_info.py b/plugins/modules/gcp_compute_target_ssl_proxy_info.py index 1c5e023..607bed6 100644 --- a/plugins/modules/gcp_compute_target_ssl_proxy_info.py +++ b/plugins/modules/gcp_compute_target_ssl_proxy_info.py @@ -139,12 +139,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -154,8 +149,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_target_tcp_proxy_info.py b/plugins/modules/gcp_compute_target_tcp_proxy_info.py index 2058f6b..80feecb 100644 --- a/plugins/modules/gcp_compute_target_tcp_proxy_info.py +++ b/plugins/modules/gcp_compute_target_tcp_proxy_info.py @@ -125,12 +125,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -140,8 +135,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_target_vpn_gateway_info.py b/plugins/modules/gcp_compute_target_vpn_gateway_info.py index 797f0f4..8b94e93 100644 --- a/plugins/modules/gcp_compute_target_vpn_gateway_info.py +++ b/plugins/modules/gcp_compute_target_vpn_gateway_info.py @@ -141,12 +141,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -156,8 +151,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_url_map_info.py b/plugins/modules/gcp_compute_url_map_info.py index 5ab2e6d..0b8bcdb 100644 --- a/plugins/modules/gcp_compute_url_map_info.py +++ b/plugins/modules/gcp_compute_url_map_info.py @@ -221,12 +221,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -236,8 +231,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_compute_vpn_tunnel_info.py b/plugins/modules/gcp_compute_vpn_tunnel_info.py index 6ae88cd..f88cc10 100644 --- a/plugins/modules/gcp_compute_vpn_tunnel_info.py +++ b/plugins/modules/gcp_compute_vpn_tunnel_info.py @@ -168,12 +168,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - items = fetch_list(module, collection(module), query_options(module.params['filters'])) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} module.exit_json(**return_value) @@ -183,8 +178,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'compute') - response = auth.get(link, params={'filter': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items', params={'filter': query}) def query_options(filters): diff --git a/plugins/modules/gcp_container_cluster_info.py b/plugins/modules/gcp_container_cluster_info.py index 53823bf..c23957e 100644 --- a/plugins/modules/gcp_container_cluster_info.py +++ b/plugins/modules/gcp_container_cluster_info.py @@ -586,12 +586,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - items = fetch_list(module, collection(module)) - if items.get('clusters'): - items = items.get('clusters') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -601,8 +596,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'container') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='clusters') def return_if_object(module, response): diff --git a/plugins/modules/gcp_container_node_pool_info.py b/plugins/modules/gcp_container_node_pool_info.py index 1558d66..7ca6811 100644 --- a/plugins/modules/gcp_container_node_pool_info.py +++ b/plugins/modules/gcp_container_node_pool_info.py @@ -371,12 +371,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - items = fetch_list(module, collection(module)) - if items.get('nodePools'): - items = items.get('nodePools') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -387,8 +382,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'container') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='nodePools') def return_if_object(module, response): diff --git a/plugins/modules/gcp_dns_managed_zone_info.py b/plugins/modules/gcp_dns_managed_zone_info.py index a31adc6..af3b3f1 100644 --- a/plugins/modules/gcp_dns_managed_zone_info.py +++ b/plugins/modules/gcp_dns_managed_zone_info.py @@ -214,12 +214,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/ndev.clouddns.readwrite'] - items = fetch_list(module, collection(module), module.params['dns_name']) - if items.get('managedZones'): - items = items.get('managedZones') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module), module.params['dns_name'])} module.exit_json(**return_value) @@ -229,8 +224,7 @@ def collection(module): def fetch_list(module, link, query): auth = GcpSession(module, 'dns') - response = auth.get(link, params={'dnsName': query}) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='managedZones', params={'dnsName': query}) def return_if_object(module, response): diff --git a/plugins/modules/gcp_dns_resource_record_set_info.py b/plugins/modules/gcp_dns_resource_record_set_info.py index 409c18b..9ce382c 100644 --- a/plugins/modules/gcp_dns_resource_record_set_info.py +++ b/plugins/modules/gcp_dns_resource_record_set_info.py @@ -117,12 +117,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/ndev.clouddns.readwrite'] - items = fetch_list(module, collection(module)) - if items.get('rrsets'): - items = items.get('rrsets') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -133,8 +128,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'dns') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='rrsets') def return_if_object(module, response): diff --git a/plugins/modules/gcp_iam_role_info.py b/plugins/modules/gcp_iam_role_info.py index 85a1820..8c30235 100644 --- a/plugins/modules/gcp_iam_role_info.py +++ b/plugins/modules/gcp_iam_role_info.py @@ -112,12 +112,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/iam'] - items = fetch_list(module, collection(module)) - if items.get('roles'): - items = items.get('roles') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -127,8 +122,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'iam') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='roles') def return_if_object(module, response): diff --git a/plugins/modules/gcp_iam_service_account_info.py b/plugins/modules/gcp_iam_service_account_info.py index 2f22bde..f3f5649 100644 --- a/plugins/modules/gcp_iam_service_account_info.py +++ b/plugins/modules/gcp_iam_service_account_info.py @@ -111,12 +111,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/iam'] - items = fetch_list(module, collection(module)) - if items.get('accounts'): - items = items.get('accounts') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -126,8 +121,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'iam') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='accounts') def return_if_object(module, response): diff --git a/plugins/modules/gcp_mlengine_model_info.py b/plugins/modules/gcp_mlengine_model_info.py index 4605c08..0dfdcf2 100644 --- a/plugins/modules/gcp_mlengine_model_info.py +++ b/plugins/modules/gcp_mlengine_model_info.py @@ -120,12 +120,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - items = fetch_list(module, collection(module)) - if items.get('models'): - items = items.get('models') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -135,8 +130,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'mlengine') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='models') def return_if_object(module, response): diff --git a/plugins/modules/gcp_mlengine_version_info.py b/plugins/modules/gcp_mlengine_version_info.py index de02cb2..86eb878 100644 --- a/plugins/modules/gcp_mlengine_version_info.py +++ b/plugins/modules/gcp_mlengine_version_info.py @@ -211,12 +211,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - items = fetch_list(module, collection(module)) - if items.get('versions'): - items = items.get('versions') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -227,8 +222,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'mlengine') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='versions') def return_if_object(module, response): diff --git a/plugins/modules/gcp_pubsub_subscription_info.py b/plugins/modules/gcp_pubsub_subscription_info.py index a0d4c48..7748f93 100644 --- a/plugins/modules/gcp_pubsub_subscription_info.py +++ b/plugins/modules/gcp_pubsub_subscription_info.py @@ -190,12 +190,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/pubsub'] - items = fetch_list(module, collection(module)) - if items.get('subscriptions'): - items = items.get('subscriptions') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -205,8 +200,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'pubsub') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='subscriptions') def return_if_object(module, response): diff --git a/plugins/modules/gcp_pubsub_topic_info.py b/plugins/modules/gcp_pubsub_topic_info.py index 6692347..648070d 100644 --- a/plugins/modules/gcp_pubsub_topic_info.py +++ b/plugins/modules/gcp_pubsub_topic_info.py @@ -117,12 +117,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/pubsub'] - items = fetch_list(module, collection(module)) - if items.get('topics'): - items = items.get('topics') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -132,8 +127,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'pubsub') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='topics') def return_if_object(module, response): diff --git a/plugins/modules/gcp_redis_instance_info.py b/plugins/modules/gcp_redis_instance_info.py index 213b0c7..72fdca3 100644 --- a/plugins/modules/gcp_redis_instance_info.py +++ b/plugins/modules/gcp_redis_instance_info.py @@ -188,12 +188,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - items = fetch_list(module, collection(module)) - if items.get('instances'): - items = items.get('instances') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -203,8 +198,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'redis') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='instances') def return_if_object(module, response): diff --git a/plugins/modules/gcp_resourcemanager_project_info.py b/plugins/modules/gcp_resourcemanager_project_info.py index 1f5fd17..64cf786 100644 --- a/plugins/modules/gcp_resourcemanager_project_info.py +++ b/plugins/modules/gcp_resourcemanager_project_info.py @@ -138,12 +138,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - items = fetch_list(module, collection(module)) - if items.get('projects'): - items = items.get('projects') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -153,8 +148,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'resourcemanager') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='projects') def return_if_object(module, response): diff --git a/plugins/modules/gcp_sourcerepo_repository_info.py b/plugins/modules/gcp_sourcerepo_repository_info.py index baecdd4..2e9cef2 100644 --- a/plugins/modules/gcp_sourcerepo_repository_info.py +++ b/plugins/modules/gcp_sourcerepo_repository_info.py @@ -98,12 +98,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - items = fetch_list(module, collection(module)) - if items.get('repos'): - items = items.get('repos') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -113,8 +108,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'sourcerepo') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='repos') def return_if_object(module, response): diff --git a/plugins/modules/gcp_spanner_database_info.py b/plugins/modules/gcp_spanner_database_info.py index 24c6d32..8f35a88 100644 --- a/plugins/modules/gcp_spanner_database_info.py +++ b/plugins/modules/gcp_spanner_database_info.py @@ -111,12 +111,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/spanner.admin'] - items = fetch_list(module, collection(module)) - if items.get('databases'): - items = items.get('databases') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -127,8 +122,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'spanner') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='databases') def return_if_object(module, response): diff --git a/plugins/modules/gcp_spanner_instance_info.py b/plugins/modules/gcp_spanner_instance_info.py index 375ea6d..5f286b8 100644 --- a/plugins/modules/gcp_spanner_instance_info.py +++ b/plugins/modules/gcp_spanner_instance_info.py @@ -114,12 +114,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/spanner.admin'] - items = fetch_list(module, collection(module)) - if items.get('instances'): - items = items.get('instances') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -129,8 +124,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'spanner') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='instances') def return_if_object(module, response): diff --git a/plugins/modules/gcp_sql_database_info.py b/plugins/modules/gcp_sql_database_info.py index 6d1b346..c60f1e3 100644 --- a/plugins/modules/gcp_sql_database_info.py +++ b/plugins/modules/gcp_sql_database_info.py @@ -108,12 +108,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/sqlservice.admin'] - items = fetch_list(module, collection(module)) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -123,8 +118,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'sql') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items') def return_if_object(module, response): diff --git a/plugins/modules/gcp_sql_instance_info.py b/plugins/modules/gcp_sql_instance_info.py index 11bec27..ac3a4d7 100644 --- a/plugins/modules/gcp_sql_instance_info.py +++ b/plugins/modules/gcp_sql_instance_info.py @@ -391,12 +391,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/sqlservice.admin'] - items = fetch_list(module, collection(module)) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -406,8 +401,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'sql') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items') def return_if_object(module, response): diff --git a/plugins/modules/gcp_sql_user_info.py b/plugins/modules/gcp_sql_user_info.py index 36e9204..8e69002 100644 --- a/plugins/modules/gcp_sql_user_info.py +++ b/plugins/modules/gcp_sql_user_info.py @@ -114,12 +114,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/sqlservice.admin'] - items = fetch_list(module, collection(module)) - if items.get('items'): - items = items.get('items') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -130,8 +125,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'sql') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='items') def return_if_object(module, response): diff --git a/plugins/modules/gcp_tpu_node_info.py b/plugins/modules/gcp_tpu_node_info.py index 57e63b4..a509a62 100644 --- a/plugins/modules/gcp_tpu_node_info.py +++ b/plugins/modules/gcp_tpu_node_info.py @@ -167,12 +167,7 @@ def main(): if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - items = fetch_list(module, collection(module)) - if items.get('nodes'): - items = items.get('nodes') - else: - items = [] - return_value = {'resources': items} + return_value = {'resources': fetch_list(module, collection(module))} module.exit_json(**return_value) @@ -182,8 +177,7 @@ def collection(module): def fetch_list(module, link): auth = GcpSession(module, 'tpu') - response = auth.get(link) - return return_if_object(module, response) + return auth.list(link, return_if_object, array_name='nodes') def return_if_object(module, response):