Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update azure.mgmt.web #849

Merged
merged 10 commits into from
Jun 20, 2022
7 changes: 4 additions & 3 deletions plugins/module_utils/azure_rm_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def default_api_version(self):
'SearchManagementClient': '2020-08-01',
'StorageManagementClient': '2021-06-01',
'SubscriptionClient': '2019-11-01',
'WebSiteManagementClient': '2018-02-01',
'WebSiteManagementClient': '2021-03-01',
'PostgreSQLManagementClient': '2017-12-01',
'MySQLManagementClient': '2017-12-01',
'MariaDBManagementClient': '2019-03-01',
Expand Down Expand Up @@ -359,7 +359,7 @@ def normalize_location_name(name):
},
'WebSiteManagementClient': {
'package_name': 'web',
'expected_version': '0.41.0'
'expected_version': '6.1.0'
},
'TrafficManagerManagementClient': {
'package_name': 'trafficmanager',
Expand Down Expand Up @@ -1133,7 +1133,8 @@ def web_client(self):
if not self._web_client:
self._web_client = self.get_mgmt_svc_client(WebSiteManagementClient,
base_url=self._cloud_environment.endpoints.resource_manager,
api_version='2018-02-01')
is_track2=True,
api_version='2021-03-01')
return self._web_client

@property
Expand Down
27 changes: 12 additions & 15 deletions plugins/modules/azure_rm_appserviceplan.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,13 +103,10 @@
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase

try:
from msrestazure.azure_exceptions import CloudError
from msrest.polling import LROPoller
from azure.core.exceptions import ResourceNotFoundError
from azure.core.polling import LROPoller
from msrestazure.azure_operation import AzureOperationPoller
from msrest.serialization import Model
from azure.mgmt.web.models import (
app_service_plan, AppServicePlan, SkuDescription
)
from azure.mgmt.web.models import AppServicePlan, SkuDescription
except ImportError:
# This is handled in azure_rm_common
pass
Expand Down Expand Up @@ -309,13 +306,13 @@ def get_plan(self):
self.log("Get App Service Plan {0}".format(self.name))

try:
response = self.web_client.app_service_plans.get(self.resource_group, self.name)
response = self.web_client.app_service_plans.get(resource_group_name=self.resource_group, name=self.name)
if response:
self.log("Response : {0}".format(response))
self.log("App Service Plan : {0} found".format(response.name))

return appserviceplan_to_dict(response)
except CloudError as ex:
except ResourceNotFoundError:
self.log("Didn't find app service plan {0} in resource group {1}".format(self.name, self.resource_group))

return False
Expand All @@ -336,15 +333,17 @@ def create_or_update_plan(self):
plan_def = AppServicePlan(
location=self.location, app_service_plan_name=self.name, sku=sku_def, reserved=self.is_linux, tags=self.tags if self.tags else None)

response = self.web_client.app_service_plans.create_or_update(self.resource_group, self.name, plan_def)
response = self.web_client.app_service_plans.begin_create_or_update(resource_group_name=self.resource_group,
name=self.name,
app_service_plan=plan_def)

if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller):
response = self.get_poller_result(response)

self.log("Response : {0}".format(response))

return appserviceplan_to_dict(response)
except CloudError as ex:
except Exception as ex:
self.fail("Failed to create app service plan {0} in resource group {1}: {2}".format(self.name, self.resource_group, str(ex)))

def delete_plan(self):
Expand All @@ -355,12 +354,10 @@ def delete_plan(self):
'''
self.log("Deleting the App service plan {0}".format(self.name))
try:
response = self.web_client.app_service_plans.delete(resource_group_name=self.resource_group,
name=self.name)
except CloudError as e:
self.web_client.app_service_plans.delete(resource_group_name=self.resource_group, name=self.name)
except ResourceNotFoundError as e:
self.log('Error attempting to delete App service plan.')
self.fail(
"Error deleting the App service plan : {0}".format(str(e)))
self.fail("Error deleting the App service plan : {0}".format(str(e)))

return True

Expand Down
13 changes: 6 additions & 7 deletions plugins/modules/azure_rm_appserviceplan_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,7 @@
sample: 1
'''
try:
from msrestazure.azure_exceptions import CloudError
from azure.common import AzureMissingResourceHttpError, AzureHttpError
from azure.core.exceptions import ResourceNotFoundError
except Exception:
# This is handled in azure_rm_common
pass
Expand Down Expand Up @@ -174,8 +173,8 @@ def list_by_name(self):
result = []

try:
item = self.web_client.app_service_plans.get(self.resource_group, self.name)
except CloudError:
item = self.web_client.app_service_plans.get(resource_group_name=self.resource_group, name=self.name)
except ResourceNotFoundError:
pass

if item and self.has_tags(item.tags, self.tags):
Expand All @@ -187,8 +186,8 @@ def list_by_name(self):
def list_by_resource_group(self):
self.log('List app service plans in resource groups {0}'.format(self.resource_group))
try:
response = list(self.web_client.app_service_plans.list_by_resource_group(self.resource_group))
except CloudError as exc:
response = list(self.web_client.app_service_plans.list_by_resource_group(resource_group_name=self.resource_group))
except Exception as exc:
self.fail("Error listing app service plan in resource groups {0} - {1}".format(self.resource_group, str(exc)))

results = []
Expand All @@ -202,7 +201,7 @@ def list_all(self):
self.log('List app service plans in current subscription')
try:
response = list(self.web_client.app_service_plans.list())
except CloudError as exc:
except Exception as exc:
self.fail("Error listing app service plans: {0}".format(str(exc)))

results = []
Expand Down
40 changes: 14 additions & 26 deletions plugins/modules/azure_rm_functionapp.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,13 +160,8 @@
from ansible_collections.azure.azcollection.plugins.module_utils.azure_rm_common import AzureRMModuleBase

try:
from msrestazure.azure_exceptions import CloudError
from azure.mgmt.web.models import (
site_config, app_service_plan, Site, SiteConfig, NameValuePair, SiteSourceControl,
AppServicePlan, SkuDescription
)
from azure.mgmt.resource.resources import ResourceManagementClient
from msrest.polling import LROPoller
from azure.core.exceptions import ResourceNotFoundError
from azure.mgmt.web.models import Site, SiteConfig, NameValuePair
except ImportError:
# This is handled in azure_rm_common
pass
Expand Down Expand Up @@ -233,19 +228,16 @@ def exec_module(self, **kwargs):

try:
resource_group = self.rm_client.resource_groups.get(self.resource_group)
except CloudError:
except Exception:
self.fail('Unable to retrieve resource group')

self.location = self.location or resource_group.location

try:
function_app = self.web_client.web_apps.get(
resource_group_name=self.resource_group,
name=self.name
)
# Newer SDK versions (0.40.0+) seem to return None if it doesn't exist instead of raising CloudError
function_app = self.web_client.web_apps.get(resource_group_name=self.resource_group, name=self.name)
# Newer SDK versions (0.40.0+) seem to return None if it doesn't exist instead of raising error
exists = function_app is not None
except CloudError as exc:
except ResourceNotFoundError as exc:
exists = False

if self.state == 'absent':
Expand All @@ -254,12 +246,9 @@ def exec_module(self, **kwargs):
self.results['changed'] = True
return self.results
try:
self.web_client.web_apps.delete(
resource_group_name=self.resource_group,
name=self.name
)
self.web_client.web_apps.delete(resource_group_name=self.resource_group, name=self.name)
self.results['changed'] = True
except CloudError as exc:
except Exception as exc:
self.fail('Failure while deleting web app: {0}'.format(exc))
else:
self.results['changed'] = False
Expand All @@ -279,7 +268,7 @@ def exec_module(self, **kwargs):
if self.container_settings.get('registry_server_password'):
self.app_settings['DOCKER_REGISTRY_SERVER_PASSWORD'] = self.container_settings.get('registry_server_password')

if not self.plan and function_app:
if not self.plan and exists:
self.plan = function_app.server_farm_id

if not exists:
Expand Down Expand Up @@ -313,13 +302,12 @@ def exec_module(self, **kwargs):
self.results['state'] = function_app.as_dict()
elif self.results['changed']:
try:
new_function_app = self.web_client.web_apps.create_or_update(
resource_group_name=self.resource_group,
name=self.name,
site_envelope=function_app
).result()
response = self.web_client.web_apps.begin_create_or_update(resource_group_name=self.resource_group,
name=self.name,
site_envelope=function_app)
new_function_app = self.get_poller_result(response)
self.results['state'] = new_function_app.as_dict()
except CloudError as exc:
except Exception as exc:
self.fail('Error creating or updating web app: {0}'.format(exc))

return self.results
Expand Down
13 changes: 5 additions & 8 deletions plugins/modules/azure_rm_functionapp_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@
'''

try:
from msrestazure.azure_exceptions import CloudError
from azure.core.exceptions import ResourceNotFoundError
except Exception:
# This is handled in azure_rm_common
pass
Expand Down Expand Up @@ -157,11 +157,8 @@ def get_functionapp(self):
result = []

try:
function_app = self.web_client.web_apps.get(
self.resource_group,
self.name
)
except CloudError:
function_app = self.web_client.web_apps.get(resource_group_name=self.resource_group, name=self.name)
except ResourceNotFoundError:
pass

if function_app and self.has_tags(function_app.tags, self.tags):
Expand All @@ -172,7 +169,7 @@ def get_functionapp(self):
def list_resource_group(self):
self.log('List items')
try:
response = self.web_client.web_apps.list_by_resource_group(self.resource_group)
response = self.web_client.web_apps.list_by_resource_group(resource_group_name=self.resource_group)
except Exception as exc:
self.fail("Error listing for resource group {0} - {1}".format(self.resource_group, str(exc)))

Expand All @@ -185,7 +182,7 @@ def list_resource_group(self):
def list_all(self):
self.log('List all items')
try:
response = self.web_client.web_apps.list_by_resource_group(self.resource_group)
response = self.web_client.web_apps.list_by_resource_group(resource_group_name=self.resource_group)
except Exception as exc:
self.fail("Error listing all items - {0}".format(str(exc)))

Expand Down
Loading