From 0d6e194c89300d0792911929fb49eae64a0b52cf Mon Sep 17 00:00:00 2001 From: Qingyi Liu Date: Mon, 14 Feb 2022 17:35:43 +0800 Subject: [PATCH 1/6] fix: add runtime version in build --- .../azext_spring_cloud/_buildservices_factory.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py b/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py index dce0c0fd415..4243ab3a03d 100644 --- a/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py +++ b/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py @@ -16,6 +16,7 @@ from .vendored_sdks.appplatform.v2022_01_01_preview import models from ._deployment_uploadable_factory import uploader_selector from ._log_stream import LogStream +from .vendored_sdks.appplatform.v2022_01_01_preview.models._app_platform_management_client_enums import SupportedRuntimeValue logger = get_logger(__name__) @@ -56,7 +57,7 @@ def _get_upload_info(self): except AttributeError as e: raise AzureInternalError("Failed to get a SAS URL to upload context. Error: {}".format(e)) - def _queue_build(self, relative_path=None, builder=None, target_module=None, app=None, **_): + def _queue_build(self, relative_path=None, builder=None, target_module=None, runtime_version=None, app=None, **_): subscription = get_subscription_id(self.cmd.cli_ctx) service_resource_id = '/subscriptions/{}/resourceGroups/{}/providers/Microsoft.AppPlatform/Spring/{}'.format(subscription, self.resource_group, self.service) properties = models.BuildProperties( @@ -64,6 +65,12 @@ def _queue_build(self, relative_path=None, builder=None, target_module=None, app agent_pool='{}/buildservices/default/agentPools/default'.format(service_resource_id), relative_path=relative_path, env={"BP_MAVEN_BUILT_MODULE": target_module} if target_module else None) + if(runtime_version == SupportedRuntimeValue.JAVA8): + properties.env.add({"BP_JVM_VERSION": "8.*"}) + elif(runtime_version == SupportedRuntimeValue.JAVA11): + properties.env.add({"BP_JVM_VERSION": "11.*"}) + elif(runtime_version == SupportedRuntimeValue.JAVA17): + properties.env.add({"BP_JVM_VERSION": "17.*"}) build = models.Build(properties=properties) try: return self.client.build_service.create_or_update_build(self.resource_group, From bc2d182c1b101edf36e4e8260ce2eadeaf0659a2 Mon Sep 17 00:00:00 2001 From: Qingyi Liu Date: Tue, 15 Feb 2022 09:48:12 +0800 Subject: [PATCH 2/6] fix npe --- .../_buildservices_factory.py | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py b/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py index 4243ab3a03d..2913454c7cd 100644 --- a/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py +++ b/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py @@ -64,13 +64,7 @@ def _queue_build(self, relative_path=None, builder=None, target_module=None, run builder='{}/buildservices/default/builders/{}'.format(service_resource_id, builder), agent_pool='{}/buildservices/default/agentPools/default'.format(service_resource_id), relative_path=relative_path, - env={"BP_MAVEN_BUILT_MODULE": target_module} if target_module else None) - if(runtime_version == SupportedRuntimeValue.JAVA8): - properties.env.add({"BP_JVM_VERSION": "8.*"}) - elif(runtime_version == SupportedRuntimeValue.JAVA11): - properties.env.add({"BP_JVM_VERSION": "11.*"}) - elif(runtime_version == SupportedRuntimeValue.JAVA17): - properties.env.add({"BP_JVM_VERSION": "17.*"}) + env = self._get_build_env(target_module, runtime_version)) build = models.Build(properties=properties) try: return self.client.build_service.create_or_update_build(self.resource_group, @@ -81,6 +75,27 @@ def _queue_build(self, relative_path=None, builder=None, target_module=None, run except (AttributeError, CloudError) as e: raise DeploymentError("Failed to create or update a build. Error: {}".format(e.message)) + + def _get_build_env(self, target_module, runtime_version): + if target_module is not None: + if(runtime_version == SupportedRuntimeValue.JAVA8): + env = {"BP_JVM_VERSION": "8.*", "BP_MAVEN_BUILT_MODULE": target_module} + elif(runtime_version == SupportedRuntimeValue.JAVA11): + env = {"BP_JVM_VERSION": "11.*", "BP_MAVEN_BUILT_MODULE": target_module} + elif(runtime_version == SupportedRuntimeValue.JAVA17): + env = {"BP_JVM_VERSION": "17.*", "BP_MAVEN_BUILT_MODULE": target_module} + else: + env = {"BP_MAVEN_BUILT_MODULE": target_module} + else: + if(runtime_version == SupportedRuntimeValue.JAVA8): + env = {"BP_JVM_VERSION": "8.*"} + elif(runtime_version == SupportedRuntimeValue.JAVA11): + env = {"BP_JVM_VERSION": "11.*"} + elif(runtime_version == SupportedRuntimeValue.JAVA17): + env = {"BP_JVM_VERSION": "17.*"} + return env + + def _wait_build_finished(self, build_result_id): ''' Wait build result finished and stream the log during the waiting From 801b43838b27919c57a18adc98eb59fd52315c70 Mon Sep 17 00:00:00 2001 From: Qingyi Liu Date: Tue, 15 Feb 2022 10:11:59 +0800 Subject: [PATCH 3/6] fix --- src/spring-cloud/azext_spring_cloud/_buildservices_factory.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py b/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py index 2913454c7cd..9ba480c226f 100644 --- a/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py +++ b/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py @@ -64,7 +64,7 @@ def _queue_build(self, relative_path=None, builder=None, target_module=None, run builder='{}/buildservices/default/builders/{}'.format(service_resource_id, builder), agent_pool='{}/buildservices/default/agentPools/default'.format(service_resource_id), relative_path=relative_path, - env = self._get_build_env(target_module, runtime_version)) + env=self._get_build_env(target_module, runtime_version)) build = models.Build(properties=properties) try: return self.client.build_service.create_or_update_build(self.resource_group, @@ -75,7 +75,6 @@ def _queue_build(self, relative_path=None, builder=None, target_module=None, run except (AttributeError, CloudError) as e: raise DeploymentError("Failed to create or update a build. Error: {}".format(e.message)) - def _get_build_env(self, target_module, runtime_version): if target_module is not None: if(runtime_version == SupportedRuntimeValue.JAVA8): @@ -95,7 +94,6 @@ def _get_build_env(self, target_module, runtime_version): env = {"BP_JVM_VERSION": "17.*"} return env - def _wait_build_finished(self, build_result_id): ''' Wait build result finished and stream the log during the waiting From e944eccbcd9235d9c552983c84ae8b3cb7999441 Mon Sep 17 00:00:00 2001 From: Qingyi Liu <34502364+smile37773@users.noreply.github.com> Date: Tue, 15 Feb 2022 13:14:39 +0800 Subject: [PATCH 4/6] Update src/spring-cloud/azext_spring_cloud/_buildservices_factory.py Co-authored-by: Yuwei Zhou --- .../_buildservices_factory.py | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py b/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py index 9ba480c226f..9668f8a6900 100644 --- a/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py +++ b/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py @@ -76,22 +76,19 @@ def _queue_build(self, relative_path=None, builder=None, target_module=None, run raise DeploymentError("Failed to create or update a build. Error: {}".format(e.message)) def _get_build_env(self, target_module, runtime_version): - if target_module is not None: - if(runtime_version == SupportedRuntimeValue.JAVA8): - env = {"BP_JVM_VERSION": "8.*", "BP_MAVEN_BUILT_MODULE": target_module} - elif(runtime_version == SupportedRuntimeValue.JAVA11): - env = {"BP_JVM_VERSION": "11.*", "BP_MAVEN_BUILT_MODULE": target_module} - elif(runtime_version == SupportedRuntimeValue.JAVA17): - env = {"BP_JVM_VERSION": "17.*", "BP_MAVEN_BUILT_MODULE": target_module} - else: - env = {"BP_MAVEN_BUILT_MODULE": target_module} - else: - if(runtime_version == SupportedRuntimeValue.JAVA8): - env = {"BP_JVM_VERSION": "8.*"} - elif(runtime_version == SupportedRuntimeValue.JAVA11): - env = {"BP_JVM_VERSION": "11.*"} - elif(runtime_version == SupportedRuntimeValue.JAVA17): - env = {"BP_JVM_VERSION": "17.*"} + if all(x is None for x in [target_module, runtime_version]): + return None + env = {} + if target_module: + env['BP_MAVEN_BUILT_MODULE'] = target_module + + runtime_version_table = { + SupportedRuntimeValue.JAVA8: '8.*', + SupportedRuntimeValue.JAVA11: '11.*', + SupportedRuntimeValue.JAVA17: '17.*' + } + if runtime_version: + env['BP_JVM_VERSION'] = runtime_version_table.get(runtime_version, '11.*') return env def _wait_build_finished(self, build_result_id): From 41affd7283684c4fd1b2fcf7cd0ae1819317f8bd Mon Sep 17 00:00:00 2001 From: Qingyi Liu Date: Tue, 15 Feb 2022 13:17:10 +0800 Subject: [PATCH 5/6] add test --- .../tests/latest/test_asc_app.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/spring-cloud/azext_spring_cloud/tests/latest/test_asc_app.py b/src/spring-cloud/azext_spring_cloud/tests/latest/test_asc_app.py index b4a428baaf8..9912d566571 100644 --- a/src/spring-cloud/azext_spring_cloud/tests/latest/test_asc_app.py +++ b/src/spring-cloud/azext_spring_cloud/tests/latest/test_asc_app.py @@ -265,7 +265,21 @@ def test_app_deploy_enterprise(self, file_mock): self.assertIsNone(resource.properties.source.version) self.assertEqual({'applicationConfigurationService': {'configFilePatterns': 'my-pattern'}},\ resource.properties.deployment_settings.addon_configs) - + + @mock.patch('azext_spring_cloud._deployment_uploadable_factory.FileUpload.upload_and_build') + def test_app_deploy_build_enterprise(self, file_mock): + file_mock.return_value = mock.MagicMock() + deployment=self._get_deployment() + self._execute('rg', 'asc', 'app', deployment=deployment, artifact_path='my-path', runtime_version='Java_8') + resource = self.put_build_resource + self.assertEqual({"BP_JVM_VERSION": "8.*"}, resource.properties.env) + self._execute('rg', 'asc', 'app', deployment=deployment, artifact_path='my-path', runtime_version='Java_11') + resource = self.put_build_resource + self.assertEqual({"BP_JVM_VERSION": "11.*"}, resource.properties.env) + self._execute('rg', 'asc', 'app', deployment=deployment, artifact_path='my-path', runtime_version='Java_17') + resource = self.put_build_resource + self.assertEqual({"BP_JVM_VERSION": "17.*"}, resource.properties.env) + @mock.patch('azext_spring_cloud._deployment_uploadable_factory.FolderUpload.upload_and_build') def test_app_deploy_folder_enterprise(self, file_mock): file_mock.return_value = mock.MagicMock() From 2a9f850777b36d68321107208007102799628661 Mon Sep 17 00:00:00 2001 From: Qingyi Liu Date: Tue, 15 Feb 2022 13:52:11 +0800 Subject: [PATCH 6/6] fix --- src/spring-cloud/azext_spring_cloud/_buildservices_factory.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py b/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py index 9668f8a6900..1e5fb111f48 100644 --- a/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py +++ b/src/spring-cloud/azext_spring_cloud/_buildservices_factory.py @@ -81,7 +81,7 @@ def _get_build_env(self, target_module, runtime_version): env = {} if target_module: env['BP_MAVEN_BUILT_MODULE'] = target_module - + runtime_version_table = { SupportedRuntimeValue.JAVA8: '8.*', SupportedRuntimeValue.JAVA11: '11.*',