From 9bf50ce571442fc39245b9b83f5be6df6e618f11 Mon Sep 17 00:00:00 2001 From: Telles Nobrega Date: Tue, 27 Nov 2018 09:18:11 -0300 Subject: [PATCH] APIv2 Changing return payload to project_id As part of the APIv2 work we need to change all tenant_id references to project_id on the return payload. Story: #2004505 Taks: #28227 Change-Id: I94bca161aa4f7bdd56d5528bae92fa81af188a43 --- ...api-v2-return-payload-a84a609db410228a.yaml | 4 ++++ sahara/api/v2/cluster_templates.py | 7 ++++++- sahara/api/v2/clusters.py | 6 ++++++ sahara/api/v2/data_sources.py | 14 +++++++++++--- sahara/api/v2/job_binaries.py | 15 +++++++++++---- sahara/api/v2/job_templates.py | 18 +++++++++++++----- sahara/api/v2/jobs.py | 4 ++++ sahara/api/v2/node_group_templates.py | 7 ++++++- sahara/utils/api.py | 5 +++++ 9 files changed, 66 insertions(+), 14 deletions(-) create mode 100644 releasenotes/notes/api-v2-return-payload-a84a609db410228a.yaml diff --git a/releasenotes/notes/api-v2-return-payload-a84a609db410228a.yaml b/releasenotes/notes/api-v2-return-payload-a84a609db410228a.yaml new file mode 100644 index 0000000000..fea7b3e272 --- /dev/null +++ b/releasenotes/notes/api-v2-return-payload-a84a609db410228a.yaml @@ -0,0 +1,4 @@ +--- +other: + - As part of the APIv2 work we changed all tenant_id references + to project_id on the return payload of REST calls. diff --git a/sahara/api/v2/cluster_templates.py b/sahara/api/v2/cluster_templates.py index fd9f7d4fd7..466ca8682e 100644 --- a/sahara/api/v2/cluster_templates.py +++ b/sahara/api/v2/cluster_templates.py @@ -33,6 +33,7 @@ def cluster_templates_list(): result = api.get_cluster_templates(**u.get_request_args().to_dict()) for ct in result: u._replace_hadoop_version_plugin_version(ct) + u._replace_tenant_id_project_id(ct) return u.render(res=result, name='cluster_templates') @@ -47,6 +48,7 @@ def cluster_templates_create(data): del data['plugin_version'] result = api.create_cluster_template(data).to_wrapped_dict() u._replace_hadoop_version_plugin_version(result['cluster_template']) + u._replace_tenant_id_project_id(result['cluster_template']) return u.render(result) @@ -57,6 +59,7 @@ def cluster_templates_get(cluster_template_id): result = u.to_wrapped_dict_no_render( api.get_cluster_template, cluster_template_id) u._replace_hadoop_version_plugin_version(result['cluster_template']) + u._replace_tenant_id_project_id(result['cluster_template']) return u.render(result) @@ -72,6 +75,7 @@ def cluster_templates_update(cluster_template_id, data): result = u.to_wrapped_dict_no_render( api.update_cluster_template, cluster_template_id, data) u._replace_hadoop_version_plugin_version(result['cluster_template']) + u._replace_tenant_id_project_id(result['cluster_template']) return u.render(result) @@ -88,7 +92,7 @@ def _cluster_template_export_helper(template): template.pop('id') template.pop('updated_at') template.pop('created_at') - template.pop('tenant_id') + template.pop('project_id') template.pop('is_default') template['default_image_id'] = '{default_image_id}' template['node_groups'] = '{node_groups}' @@ -101,6 +105,7 @@ def cluster_template_export(cluster_template_id): content = u.to_wrapped_dict_no_render( api.export_cluster_template, cluster_template_id) u._replace_hadoop_version_plugin_version(content['cluster_template']) + u._replace_tenant_id_project_id(content['cluster_template']) _cluster_template_export_helper(content['cluster_template']) res = u.render(content) res.headers.add('Content-Disposition', 'attachment', diff --git a/sahara/api/v2/clusters.py b/sahara/api/v2/clusters.py index 3d6381747f..c44b4bf3b6 100644 --- a/sahara/api/v2/clusters.py +++ b/sahara/api/v2/clusters.py @@ -35,6 +35,7 @@ def clusters_list(): result = api.get_clusters(**u.get_request_args().to_dict()) for c in result: u._replace_hadoop_version_plugin_version(c) + u._replace_tenant_id_project_id(c) return u.render(res=result, name='clusters') @@ -51,10 +52,12 @@ def clusters_create(data): result = api.create_multiple_clusters(data) for c in result['clusters']: u._replace_hadoop_version_plugin_version(c['cluster']) + u._replace_tenant_id_project_id(c['cluster']) return u.render(result) else: result = api.create_cluster(data).to_wrapped_dict() u._replace_hadoop_version_plugin_version(result['cluster']) + u._replace_tenant_id_project_id(c['cluster']) return u.render(result) @@ -66,6 +69,7 @@ def clusters_scale(cluster_id, data): result = u.to_wrapped_dict_no_render( api.scale_cluster, cluster_id, data) u._replace_hadoop_version_plugin_version(result['cluster']) + u._replace_tenant_id_project_id(result['cluster']) return u.render(result) @@ -79,6 +83,7 @@ def clusters_get(cluster_id): result = u.to_wrapped_dict_no_render( api.get_cluster, cluster_id, show_events) u._replace_hadoop_version_plugin_version(result['cluster']) + u._replace_tenant_id_project_id(result['cluster']) return u.render(result) @@ -90,6 +95,7 @@ def clusters_update(cluster_id, data): result = u.to_wrapped_dict_no_render( api.update_cluster, cluster_id, data) u._replace_hadoop_version_plugin_version(result['cluster']) + u._replace_tenant_id_project_id(result['cluster']) return u.render(result) diff --git a/sahara/api/v2/data_sources.py b/sahara/api/v2/data_sources.py index 2781bc3cc4..860e5300e6 100644 --- a/sahara/api/v2/data_sources.py +++ b/sahara/api/v2/data_sources.py @@ -31,6 +31,8 @@ rest = u.RestV2('data-sources', __name__) v.validate_sorting_data_sources) def data_sources_list(): result = api.get_data_sources(**u.get_request_args().to_dict()) + for ds in result: + u._replace_tenant_id_project_id(ds) return u.render(res=result, name='data_sources') @@ -38,14 +40,18 @@ def data_sources_list(): @acl.enforce("data-processing:data-sources:register") @v.validate(v_d_s_schema.DATA_SOURCE_SCHEMA, v_d_s.check_data_source_create) def data_source_register(data): - return u.render(api.register_data_source(data).to_wrapped_dict()) + result = api.register_data_source(data).to_wrapped_dict() + u._replace_tenant_id_project_id(result['data_source']) + return u.render(result) @rest.get('/data-sources/') @acl.enforce("data-processing:data-sources:get") @v.check_exists(api.get_data_source, 'data_source_id') def data_source_get(data_source_id): - return u.to_wrapped_dict(api.get_data_source, data_source_id) + result = u.to_wrapped_dict(api.get_data_source, data_source_id) + u._replace_tenant_id_project_id(result['data_source']) + return result @rest.delete('/data-sources/') @@ -61,4 +67,6 @@ def data_source_delete(data_source_id): @v.check_exists(api.get_data_source, 'data_source_id') @v.validate(v_d_s_schema.DATA_SOURCE_UPDATE_SCHEMA) def data_source_update(data_source_id, data): - return u.to_wrapped_dict(api.data_source_update, data_source_id, data) + result = u.to_wrapped_dict(api.data_source_update, data_source_id, data) + u._replace_tenant_id_project_id(result['data_source']) + return result diff --git a/sahara/api/v2/job_binaries.py b/sahara/api/v2/job_binaries.py index ac201fc95c..d50f13ae1e 100644 --- a/sahara/api/v2/job_binaries.py +++ b/sahara/api/v2/job_binaries.py @@ -28,7 +28,9 @@ rest = u.RestV2('job-binaries', __name__) @acl.enforce("data-processing:job-binaries:create") @v.validate(v_j_b_schema.JOB_BINARY_SCHEMA, v_j_b.check_job_binary) def job_binary_create(data): - return u.render(api.create_job_binary(data).to_wrapped_dict()) + result = api.create_job_binary(data).to_wrapped_dict() + u._replace_tenant_id_project_id(result['job_binary']) + return u.render(result) @rest.get('/job-binaries') @@ -38,6 +40,8 @@ def job_binary_create(data): v.validate_sorting_job_binaries) def job_binary_list(): result = api.get_job_binaries(**u.get_request_args().to_dict()) + for jb in result: + u._replace_tenant_id_project_id(jb) return u.render(res=result, name='binaries') @@ -45,7 +49,9 @@ def job_binary_list(): @acl.enforce("data-processing:job-binaries:get") @v.check_exists(api.get_job_binary, 'job_binary_id') def job_binary_get(job_binary_id): - return u.to_wrapped_dict(api.get_job_binary, job_binary_id) + result = api.get_job_binary(job_binary_id).to_wrapped_dict() + u._replace_tenant_id_project_id(result['job_binary']) + return u.render(result) @rest.delete('/job-binaries/') @@ -70,5 +76,6 @@ def job_binary_data(job_binary_id): @acl.enforce("data-processing:job-binaries:modify") @v.validate(v_j_b_schema.JOB_BINARY_UPDATE_SCHEMA, v_j_b.check_job_binary) def job_binary_update(job_binary_id, data): - return u.render(api.update_job_binary(job_binary_id, - data).to_wrapped_dict()) + result = api.update_job_binary(job_binary_id, data).to_wrapped_dict() + u._replace_tenant_id_project_id(result['job_binary']) + return u.render(result) diff --git a/sahara/api/v2/job_templates.py b/sahara/api/v2/job_templates.py index c1e268eb03..3cf69abeac 100644 --- a/sahara/api/v2/job_templates.py +++ b/sahara/api/v2/job_templates.py @@ -31,6 +31,8 @@ rest = u.RestV2('job-templates', __name__) v.validate_sorting_jobs) def job_templates_list(): result = api.get_job_templates(**u.get_request_args().to_dict()) + for jt in result: + u._replace_tenant_id_project_id(jt) return u.render(res=result, name='job_templates') @@ -38,15 +40,19 @@ def job_templates_list(): @acl.enforce("data-processing:job-templates:create") @v.validate(v_j_schema.JOB_SCHEMA, v_j.check_mains_libs, v_j.check_interface) def job_templates_create(data): - return u.render({'job_template': api.create_job_template(data).to_dict()}) + result = {'job_template': api.create_job_template(data).to_dict()} + u._replace_tenant_id_project_id(result['job_template']) + return u.render(result) @rest.get('/job-templates/') @acl.enforce("data-processing:job-templates:get") @v.check_exists(api.get_job_templates, id='job_templates_id') def job_templates_get(job_templates_id): - return u.render({'job_template': api.get_job_template( - job_templates_id).to_dict()}) + result = {'job_template': api.get_job_template( + job_templates_id).to_dict()} + u._replace_tenant_id_project_id(result['job_template']) + return u.render(result) @rest.patch('/job-templates/') @@ -54,8 +60,10 @@ def job_templates_get(job_templates_id): @v.check_exists(api.get_job_templates, id='job_templates_id') @v.validate(v_j_schema.JOB_UPDATE_SCHEMA) def job_templates_update(job_templates_id, data): - return u.render({'job_template': api.update_job_template( - job_templates_id, data).to_dict()}) + result = {'job_template': api.update_job_template( + job_templates_id, data).to_dict()} + u._replace_tenant_id_project_id(result['job_template']) + return u.render(result) @rest.delete('/job-templates/') diff --git a/sahara/api/v2/jobs.py b/sahara/api/v2/jobs.py index 3c4dcfc8cd..0e85b3100e 100644 --- a/sahara/api/v2/jobs.py +++ b/sahara/api/v2/jobs.py @@ -38,6 +38,7 @@ def jobs_list(): # removed for je in result: je.pop('oozie_job_id', force=True) + u._replace_tenant_id_project_id(je) return u.render(res=result, name='jobs') @@ -49,6 +50,7 @@ def jobs_execute(data): dict.update(result['job'], {'engine_job_id': result['job']['oozie_job_id']}) dict.pop(result['job'], 'oozie_job_id') + u._replace_tenant_id_project_id(result['job']) return u.render(result) @@ -61,6 +63,7 @@ def jobs_get(job_id): data.get('refresh_status', 'false')).lower() == 'true' result = {'job': api.get_job_execution(job_id, refresh_status)} result['job'].pop('oozie_job_id', force=True) + u._replace_tenant_id_project_id(result['job']) return u.render(result) @@ -72,6 +75,7 @@ def jobs_get(job_id): def jobs_update(job_id, data): result = {'job': api.update_job_execution(job_id, data)} result['job'].pop('oozie_job_id', force=True) + u._replace_tenant_id_project_id(result['job']) return u.render(result) diff --git a/sahara/api/v2/node_group_templates.py b/sahara/api/v2/node_group_templates.py index c0b20d0b4a..494f2898dd 100644 --- a/sahara/api/v2/node_group_templates.py +++ b/sahara/api/v2/node_group_templates.py @@ -34,6 +34,7 @@ def node_group_templates_list(): result = api.get_node_group_templates(**u.get_request_args().to_dict()) for ngt in result: u._replace_hadoop_version_plugin_version(ngt) + u._replace_tenant_id_project_id(ngt) return u.render(res=result, name="node_group_templates") @@ -48,6 +49,7 @@ def node_group_templates_create(data): del data['plugin_version'] result = api.create_node_group_template(data).to_wrapped_dict() u._replace_hadoop_version_plugin_version(result['node_group_template']) + u._replace_tenant_id_project_id(result['node_group_template']) return u.render(result) @@ -58,6 +60,7 @@ def node_group_templates_get(node_group_template_id): result = u.to_wrapped_dict_no_render( api.get_node_group_template, node_group_template_id) u._replace_hadoop_version_plugin_version(result['node_group_template']) + u._replace_tenant_id_project_id(result['node_group_template']) return u.render(result) @@ -73,6 +76,7 @@ def node_group_templates_update(node_group_template_id, data): result = u.to_wrapped_dict_no_render( api.update_node_group_template, node_group_template_id, data) u._replace_hadoop_version_plugin_version(result['node_group_template']) + u._replace_tenant_id_project_id(result['node_group_template']) return u.render(result) @@ -89,7 +93,7 @@ def _node_group_template_export_helper(template): template.pop('id') template.pop('updated_at') template.pop('created_at') - template.pop('tenant_id') + template.pop('project_id') template.pop('is_default') template['flavor_id'] = '{flavor_id}' template['security_groups'] = '{security_groups}' @@ -104,6 +108,7 @@ def node_group_template_export(node_group_template_id): content = u.to_wrapped_dict_no_render( api.export_node_group_template, node_group_template_id) u._replace_hadoop_version_plugin_version(content['node_group_template']) + u._replace_tenant_id_project_id(content['node_group_template']) _node_group_template_export_helper(content['node_group_template']) res = u.render(content) res.headers.add('Content-Disposition', 'attachment', diff --git a/sahara/utils/api.py b/sahara/utils/api.py index 847264fceb..6f35935c2f 100644 --- a/sahara/utils/api.py +++ b/sahara/utils/api.py @@ -354,3 +354,8 @@ def to_wrapped_dict_no_render(func, id, *args, **kwargs): def _replace_hadoop_version_plugin_version(obj): dict.update(obj, {'plugin_version': obj['hadoop_version']}) dict.pop(obj, 'hadoop_version') + + +def _replace_tenant_id_project_id(obj): + dict.update(obj, {'project_id': obj['tenant_id']}) + dict.pop(obj, 'tenant_id')