mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
azure check for hosted service and vm before creating
This commit is contained in:
parent
d8af3f3b67
commit
2091278ff0
1 changed files with 14 additions and 8 deletions
|
@ -242,7 +242,7 @@ def create_virtual_machine(module, azure):
|
||||||
azure: authenticated azure ServiceManagementService object
|
azure: authenticated azure ServiceManagementService object
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
True if a new virtual machine was created, false otherwise
|
True if a new virtual machine and/or cloud service was created, false otherwise
|
||||||
"""
|
"""
|
||||||
name = module.params.get('name')
|
name = module.params.get('name')
|
||||||
hostname = module.params.get('hostname') or name + ".cloudapp.net"
|
hostname = module.params.get('hostname') or name + ".cloudapp.net"
|
||||||
|
@ -258,18 +258,24 @@ def create_virtual_machine(module, azure):
|
||||||
wait = module.params.get('wait')
|
wait = module.params.get('wait')
|
||||||
wait_timeout = int(module.params.get('wait_timeout'))
|
wait_timeout = int(module.params.get('wait_timeout'))
|
||||||
|
|
||||||
|
changed = False
|
||||||
|
|
||||||
# Check if a deployment with the same name already exists
|
# Check if a deployment with the same name already exists
|
||||||
cloud_service_name_available = azure.check_hosted_service_name_availability(name)
|
cloud_service_name_available = azure.check_hosted_service_name_availability(name)
|
||||||
if not cloud_service_name_available.result:
|
if cloud_service_name_available.result:
|
||||||
changed = False
|
# cloud service does not exist; create it
|
||||||
else:
|
|
||||||
changed = True
|
|
||||||
# Create cloud service if necessary
|
|
||||||
try:
|
try:
|
||||||
result = azure.create_hosted_service(service_name=name, label=name, location=location)
|
result = azure.create_hosted_service(service_name=name, label=name, location=location)
|
||||||
_wait_for_completion(azure, result, wait_timeout, "create_hosted_service")
|
_wait_for_completion(azure, result, wait_timeout, "create_hosted_service")
|
||||||
|
changed = True
|
||||||
except WindowsAzureError as e:
|
except WindowsAzureError as e:
|
||||||
module.fail_json(msg="failed to create the new service name, it already exists: %s" % str(e))
|
module.fail_json(msg="failed to create the new service, error was: %s" % str(e))
|
||||||
|
|
||||||
|
try:
|
||||||
|
# check to see if a vm with this name exists; if so, do nothing
|
||||||
|
azure.get_role(name, name, name)
|
||||||
|
except WindowsAzureMissingResourceError:
|
||||||
|
# vm does not exist; create it
|
||||||
|
|
||||||
# Create linux configuration
|
# Create linux configuration
|
||||||
disable_ssh_password_authentication = not password
|
disable_ssh_password_authentication = not password
|
||||||
|
@ -322,10 +328,10 @@ def create_virtual_machine(module, azure):
|
||||||
role_type='PersistentVMRole',
|
role_type='PersistentVMRole',
|
||||||
virtual_network_name=virtual_network_name)
|
virtual_network_name=virtual_network_name)
|
||||||
_wait_for_completion(azure, result, wait_timeout, "create_virtual_machine_deployment")
|
_wait_for_completion(azure, result, wait_timeout, "create_virtual_machine_deployment")
|
||||||
|
changed = True
|
||||||
except WindowsAzureError as e:
|
except WindowsAzureError as e:
|
||||||
module.fail_json(msg="failed to create the new virtual machine, error was: %s" % str(e))
|
module.fail_json(msg="failed to create the new virtual machine, error was: %s" % str(e))
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
deployment = azure.get_deployment_by_name(service_name=name, deployment_name=name)
|
deployment = azure.get_deployment_by_name(service_name=name, deployment_name=name)
|
||||||
return (changed, urlparse(deployment.url).hostname, deployment)
|
return (changed, urlparse(deployment.url).hostname, deployment)
|
||||||
|
|
Loading…
Reference in a new issue