fix linux webapp java framework bug (#44753)

* fix linux web app java linux_fx_version

* fix lint

* fix test

* resolve comments
This commit is contained in:
Yunge Zhu 2018-08-28 15:55:19 +08:00 committed by Zim Kalinowski
parent 8a79d944a3
commit d5cbb53f5a
2 changed files with 39 additions and 9 deletions

View file

@ -77,6 +77,7 @@ options:
- node supported value sample, 6.6, 6.9. - node supported value sample, 6.6, 6.9.
- dotnetcore supported value sample, 1.0, 1,1, 1.2. - dotnetcore supported value sample, 1.0, 1,1, 1.2.
- ruby supported value sample, 2.3. - ruby supported value sample, 2.3.
- java supported value sample, 1.8, 1.9 for windows web app. 8 for linux web app.
settings: settings:
description: description:
- List of settings of the framework. - List of settings of the framework.
@ -254,10 +255,10 @@ EXAMPLES = '''
testkey: testvalue testkey: testvalue
frameworks: frameworks:
- name: "java" - name: "java"
version: "1.8" version: "8"
settings: settings:
java_container: "Tomcat" java_container: "Tomcat"
java_container_version: "8.0" java_container_version: "8.5"
''' '''
RETURN = ''' RETURN = '''
@ -299,8 +300,8 @@ deployment_source_spec = dict(
framework_settings_spec = dict( framework_settings_spec = dict(
java_container=dict(type='str'), java_container=dict(type='str', required=True),
java_container_version=dict(type='str') java_container_version=dict(type='str', required=True)
) )
@ -536,6 +537,17 @@ class AzureRMWebApps(AzureRMModuleBase):
self.fail('Unsupported framework {0} for Linux web app.'.format(self.frameworks[0]['name'])) self.fail('Unsupported framework {0} for Linux web app.'.format(self.frameworks[0]['name']))
self.site_config['linux_fx_version'] = (self.frameworks[0]['name'] + '|' + self.frameworks[0]['version']).upper() self.site_config['linux_fx_version'] = (self.frameworks[0]['name'] + '|' + self.frameworks[0]['version']).upper()
if self.frameworks[0]['name'] == 'java':
if self.frameworks[0]['version'] != '8':
self.fail("Linux web app only supports java 8.")
if self.frameworks[0]['settings'] and self.frameworks[0]['settings']['java_container'].lower() != 'tomcat':
self.fail("Linux web app only supports tomcat container.")
if self.frameworks[0]['settings'] and self.frameworks[0]['settings']['java_container'].lower() == 'tomcat':
self.site_config['linux_fx_version'] = 'TOMCAT|' + self.frameworks[0]['settings']['java_container_version'] + '-jre8'
else:
self.site_config['linux_fx_version'] = 'JAVA|8-jre8'
else: else:
for fx in self.frameworks: for fx in self.frameworks:
if fx.get('name') not in self.supported_windows_frameworks: if fx.get('name') not in self.supported_windows_frameworks:
@ -543,10 +555,9 @@ class AzureRMWebApps(AzureRMModuleBase):
else: else:
self.site_config[fx.get('name') + '_version'] = fx.get('version') self.site_config[fx.get('name') + '_version'] = fx.get('version')
for fx in self.frameworks: if 'settings' in fx and fx['settings'] is not None:
if 'settings' in fx and fx['settings'] is not None: for key, value in fx['settings'].items():
for key, value in fx['settings'].items(): self.site_config[key] = value
self.site_config[key] = value
if not self.app_settings: if not self.app_settings:
self.app_settings = dict() self.app_settings = dict()

View file

@ -232,4 +232,23 @@
- name: "node" - name: "node"
version: "6.6" version: "6.6"
register: fail_linux_one_framework_only register: fail_linux_one_framework_only
failed_when: fail_linux_one_framework_only.msg != "Can specify one framework only for Linux web app." failed_when: fail_linux_one_framework_only.msg != "Can specify one framework only for Linux web app."
- name: Create a linux web app with java tomcat container
azure_rm_webapp:
resource_group: "{{ resource_group }}"
name: "{{ win_app_name }}13"
plan:
resource_group: "{{ linux_app_plan_resource_group }}"
name: "{{ linux_plan_name }}"
frameworks:
- name: java
version: "8"
settings:
java_container: "tomcat"
java_container_version: "8.5"
register: output
- name: Assert the web app was created
assert:
that: output.changed