From 8ebf5194013457359d881f32159c375326fc2a16 Mon Sep 17 00:00:00 2001 From: Isabella Cai Date: Fri, 6 Dec 2019 13:58:55 -0800 Subject: [PATCH 1/4] added --credential-scopes flag and scopes to config file --- autorest/code_generator.py | 10 +++++++++- autorest/templates/config.py.jinja2 | 6 +++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/autorest/code_generator.py b/autorest/code_generator.py index a4a1c0674b1..7b5edaa9af8 100644 --- a/autorest/code_generator.py +++ b/autorest/code_generator.py @@ -273,7 +273,15 @@ def process(self) -> bool: # convert the names to python names NameConverter.convert_yaml_names(yaml_code_model) - options = {'azure_arm': azure_arm, 'credential': azure_arm or self._autorestapi.get_boolean_value("add-credentials") or self._autorestapi.get_boolean_value('add-credential')} + credential_scopes = self._autorestapi.get_value('credential-scope') + if not credential_scopes and azure_arm: + credential_scopes = "https://management.azure.com/.default" + + options = { + 'azure_arm': azure_arm, + 'credential': azure_arm or self._autorestapi.get_boolean_value("add-credentials") or self._autorestapi.get_boolean_value('add-credential'), + "credential_scopes": credential_scopes.split(",") if credential_scopes else None + } # save a new copy for debug #self._autorestapi.write_file("code-model-v4-no-tags-python.yaml", yaml.safe_dump(yaml_code_model)) diff --git a/autorest/templates/config.py.jinja2 b/autorest/templates/config.py.jinja2 index b2404546ad3..eb6290919ca 100644 --- a/autorest/templates/config.py.jinja2 +++ b/autorest/templates/config.py.jinja2 @@ -1,6 +1,7 @@ {% set version_import = ".._version" if async_mode else "._version" %} {% set async_prefix = "Async" if async_mode else "" %} {% set method_signature = code_model.global_parameters|join(', ', attribute='serialized_name') ~ (", " if code_model.global_parameters else "") %} +{% set credential_scopes = "*self.credential_scopes, " if code_model.options['credential_scopes'] else "" %} {# actual template starts here #} # coding=utf-8 # -------------------------------------------------------------------------- @@ -42,6 +43,9 @@ class {{ code_model.class_name }}Configuration(Configuration): {% for parameter in code_model.global_parameters %} self.{{ parameter.serialized_name }} = {{ parameter.serialized_name }} {% endfor %} + {% if code_model.options['credential_scopes'] %} + self.credential_scopes = {{ code_model.options['credential_scopes'] }} + {% endif %} self._configure(**kwargs) self.user_agent_policy.add_user_agent('azsdk-python-{{ code_model.class_name|lower }}/{}'.format(VERSION)) @@ -60,5 +64,5 @@ class {{ code_model.class_name }}Configuration(Configuration): self.authentication_policy = kwargs.get('authentication_policy') {% if code_model.options['credential'] %} if self.credential and not self.authentication_policy: - self.authentication_policy = policies.{{ async_prefix }}BearerTokenCredentialPolicy(self.credential, **kwargs) + self.authentication_policy = policies.{{ async_prefix }}BearerTokenCredentialPolicy(self.credential, {{ credential_scopes }}**kwargs) {% endif %} From a4f70a7f1f25421c8a1a80d60d6eace0aa787003 Mon Sep 17 00:00:00 2001 From: Laurent Mazuel Date: Fri, 6 Dec 2019 14:16:57 -0800 Subject: [PATCH 2/4] Update code_generator.py --- autorest/code_generator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/autorest/code_generator.py b/autorest/code_generator.py index 7b5edaa9af8..2dd3e7a1bd2 100644 --- a/autorest/code_generator.py +++ b/autorest/code_generator.py @@ -275,7 +275,7 @@ def process(self) -> bool: credential_scopes = self._autorestapi.get_value('credential-scope') if not credential_scopes and azure_arm: - credential_scopes = "https://management.azure.com/.default" + credential_scopes = ["https://management.azure.com/.default"] options = { 'azure_arm': azure_arm, @@ -320,4 +320,4 @@ def main(yaml_model_file): raise SystemExit("Process didn't finish gracefully") if __name__ == "__main__": - main(sys.argv[1]) \ No newline at end of file + main(sys.argv[1]) From 768bc2adb491cdf86e3c2a6e04a8c09a14a24603 Mon Sep 17 00:00:00 2001 From: Laurent Mazuel Date: Fri, 6 Dec 2019 14:17:41 -0800 Subject: [PATCH 3/4] Update code_generator.py --- autorest/code_generator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autorest/code_generator.py b/autorest/code_generator.py index 2dd3e7a1bd2..867c003731c 100644 --- a/autorest/code_generator.py +++ b/autorest/code_generator.py @@ -273,7 +273,7 @@ def process(self) -> bool: # convert the names to python names NameConverter.convert_yaml_names(yaml_code_model) - credential_scopes = self._autorestapi.get_value('credential-scope') + credential_scopes = self._autorestapi.get_value('credential-scopes') if not credential_scopes and azure_arm: credential_scopes = ["https://management.azure.com/.default"] From eb14a9cba8491525b0d20a29dfbec6f64532416f Mon Sep 17 00:00:00 2001 From: Laurent Mazuel Date: Fri, 6 Dec 2019 14:18:23 -0800 Subject: [PATCH 4/4] Update code_generator.py --- autorest/code_generator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autorest/code_generator.py b/autorest/code_generator.py index 867c003731c..acd149d178a 100644 --- a/autorest/code_generator.py +++ b/autorest/code_generator.py @@ -275,7 +275,7 @@ def process(self) -> bool: credential_scopes = self._autorestapi.get_value('credential-scopes') if not credential_scopes and azure_arm: - credential_scopes = ["https://management.azure.com/.default"] + credential_scopes = "https://management.azure.com/.default" options = { 'azure_arm': azure_arm,