updated dependencies to work with azure.py 1.0.1
This commit is contained in:
parent
582d0e2ec0
commit
854ffcb605
1 changed files with 15 additions and 19 deletions
|
@ -252,7 +252,7 @@ AZURE_ROLE_SIZES = ['ExtraSmall',
|
||||||
try:
|
try:
|
||||||
import azure as windows_azure
|
import azure as windows_azure
|
||||||
|
|
||||||
from azure import WindowsAzureError, WindowsAzureMissingResourceError
|
from azure.common import AzureException, AzureMissingResourceHttpError
|
||||||
from azure.servicemanagement import (ServiceManagementService, OSVirtualHardDisk, SSH, PublicKeys,
|
from azure.servicemanagement import (ServiceManagementService, OSVirtualHardDisk, SSH, PublicKeys,
|
||||||
PublicKey, LinuxConfigurationSet, ConfigurationSetInputEndpoints,
|
PublicKey, LinuxConfigurationSet, ConfigurationSetInputEndpoints,
|
||||||
ConfigurationSetInputEndpoint, Listener, WindowsConfigurationSet)
|
ConfigurationSetInputEndpoint, Listener, WindowsConfigurationSet)
|
||||||
|
@ -274,7 +274,7 @@ def _wait_for_completion(azure, promise, wait_timeout, msg):
|
||||||
if operation_result.status == "Succeeded":
|
if operation_result.status == "Succeeded":
|
||||||
return
|
return
|
||||||
|
|
||||||
raise WindowsAzureError('Timed out waiting for async operation ' + msg + ' "' + str(promise.request_id) + '" to complete.')
|
raise AzureException('Timed out waiting for async operation ' + msg + ' "' + str(promise.request_id) + '" to complete.')
|
||||||
|
|
||||||
def _delete_disks_when_detached(azure, wait_timeout, disk_names):
|
def _delete_disks_when_detached(azure, wait_timeout, disk_names):
|
||||||
def _handle_timeout(signum, frame):
|
def _handle_timeout(signum, frame):
|
||||||
|
@ -289,7 +289,7 @@ def _delete_disks_when_detached(azure, wait_timeout, disk_names):
|
||||||
if disk.attached_to is None:
|
if disk.attached_to is None:
|
||||||
azure.delete_disk(disk.name, True)
|
azure.delete_disk(disk.name, True)
|
||||||
disk_names.remove(disk_name)
|
disk_names.remove(disk_name)
|
||||||
except WindowsAzureError, e:
|
except AzureException, e:
|
||||||
module.fail_json(msg="failed to get or delete disk, error was: %s" % (disk_name, str(e)))
|
module.fail_json(msg="failed to get or delete disk, error was: %s" % (disk_name, str(e)))
|
||||||
finally:
|
finally:
|
||||||
signal.alarm(0)
|
signal.alarm(0)
|
||||||
|
@ -347,13 +347,13 @@ def create_virtual_machine(module, azure):
|
||||||
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
|
changed = True
|
||||||
except WindowsAzureError, e:
|
except AzureException, e:
|
||||||
module.fail_json(msg="failed to create the new service, error was: %s" % str(e))
|
module.fail_json(msg="failed to create the new service, error was: %s" % str(e))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# check to see if a vm with this name exists; if so, do nothing
|
# check to see if a vm with this name exists; if so, do nothing
|
||||||
azure.get_role(name, name, name)
|
azure.get_role(name, name, name)
|
||||||
except WindowsAzureMissingResourceError:
|
except AzureMissingResourceHttpError:
|
||||||
# vm does not exist; create it
|
# vm does not exist; create it
|
||||||
|
|
||||||
if os_type == 'linux':
|
if os_type == 'linux':
|
||||||
|
@ -419,13 +419,13 @@ def create_virtual_machine(module, azure):
|
||||||
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
|
changed = True
|
||||||
except WindowsAzureError, e:
|
except AzureException, 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)
|
||||||
except WindowsAzureError, e:
|
except AzureException, e:
|
||||||
module.fail_json(msg="failed to lookup the deployment information for %s, error was: %s" % (name, str(e)))
|
module.fail_json(msg="failed to lookup the deployment information for %s, error was: %s" % (name, str(e)))
|
||||||
|
|
||||||
|
|
||||||
|
@ -453,9 +453,9 @@ def terminate_virtual_machine(module, azure):
|
||||||
disk_names = []
|
disk_names = []
|
||||||
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)
|
||||||
except WindowsAzureMissingResourceError, e:
|
except AzureMissingResourceHttpError, e:
|
||||||
pass # no such deployment or service
|
pass # no such deployment or service
|
||||||
except WindowsAzureError, e:
|
except AzureException, e:
|
||||||
module.fail_json(msg="failed to find the deployment, error was: %s" % str(e))
|
module.fail_json(msg="failed to find the deployment, error was: %s" % str(e))
|
||||||
|
|
||||||
# Delete deployment
|
# Delete deployment
|
||||||
|
@ -468,13 +468,13 @@ def terminate_virtual_machine(module, azure):
|
||||||
role_props = azure.get_role(name, deployment.name, role.role_name)
|
role_props = azure.get_role(name, deployment.name, role.role_name)
|
||||||
if role_props.os_virtual_hard_disk.disk_name not in disk_names:
|
if role_props.os_virtual_hard_disk.disk_name not in disk_names:
|
||||||
disk_names.append(role_props.os_virtual_hard_disk.disk_name)
|
disk_names.append(role_props.os_virtual_hard_disk.disk_name)
|
||||||
except WindowsAzureError, e:
|
except AzureException, e:
|
||||||
module.fail_json(msg="failed to get the role %s, error was: %s" % (role.role_name, str(e)))
|
module.fail_json(msg="failed to get the role %s, error was: %s" % (role.role_name, str(e)))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
result = azure.delete_deployment(name, deployment.name)
|
result = azure.delete_deployment(name, deployment.name)
|
||||||
_wait_for_completion(azure, result, wait_timeout, "delete_deployment")
|
_wait_for_completion(azure, result, wait_timeout, "delete_deployment")
|
||||||
except WindowsAzureError, e:
|
except AzureException, e:
|
||||||
module.fail_json(msg="failed to delete the deployment %s, error was: %s" % (deployment.name, str(e)))
|
module.fail_json(msg="failed to delete the deployment %s, error was: %s" % (deployment.name, str(e)))
|
||||||
|
|
||||||
# It's unclear when disks associated with terminated deployment get detatched.
|
# It's unclear when disks associated with terminated deployment get detatched.
|
||||||
|
@ -482,14 +482,14 @@ def terminate_virtual_machine(module, azure):
|
||||||
# become detatched by polling the list of remaining disks and examining the state.
|
# become detatched by polling the list of remaining disks and examining the state.
|
||||||
try:
|
try:
|
||||||
_delete_disks_when_detached(azure, wait_timeout, disk_names)
|
_delete_disks_when_detached(azure, wait_timeout, disk_names)
|
||||||
except (WindowsAzureError, TimeoutError), e:
|
except (AzureException, TimeoutError), e:
|
||||||
module.fail_json(msg=str(e))
|
module.fail_json(msg=str(e))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Now that the vm is deleted, remove the cloud service
|
# Now that the vm is deleted, remove the cloud service
|
||||||
result = azure.delete_hosted_service(service_name=name)
|
result = azure.delete_hosted_service(service_name=name)
|
||||||
_wait_for_completion(azure, result, wait_timeout, "delete_hosted_service")
|
_wait_for_completion(azure, result, wait_timeout, "delete_hosted_service")
|
||||||
except WindowsAzureError, e:
|
except AzureException, e:
|
||||||
module.fail_json(msg="failed to delete the service %s, error was: %s" % (name, str(e)))
|
module.fail_json(msg="failed to delete the service %s, error was: %s" % (name, str(e)))
|
||||||
public_dns_name = urlparse(deployment.url).hostname
|
public_dns_name = urlparse(deployment.url).hostname
|
||||||
|
|
||||||
|
@ -545,11 +545,7 @@ def main():
|
||||||
subscription_id, management_cert_path = get_azure_creds(module)
|
subscription_id, management_cert_path = get_azure_creds(module)
|
||||||
|
|
||||||
wait_timeout_redirects = int(module.params.get('wait_timeout_redirects'))
|
wait_timeout_redirects = int(module.params.get('wait_timeout_redirects'))
|
||||||
if LooseVersion(windows_azure.__version__) <= "0.8.0":
|
azure = ServiceManagementService(subscription_id, management_cert_path)
|
||||||
# wrapper for handling redirects which the sdk <= 0.8.0 is not following
|
|
||||||
azure = Wrapper(ServiceManagementService(subscription_id, management_cert_path), wait_timeout_redirects)
|
|
||||||
else:
|
|
||||||
azure = ServiceManagementService(subscription_id, management_cert_path)
|
|
||||||
|
|
||||||
cloud_service_raw = None
|
cloud_service_raw = None
|
||||||
if module.params.get('state') == 'absent':
|
if module.params.get('state') == 'absent':
|
||||||
|
@ -597,7 +593,7 @@ class Wrapper(object):
|
||||||
while wait_timeout > time.time():
|
while wait_timeout > time.time():
|
||||||
try:
|
try:
|
||||||
return f()
|
return f()
|
||||||
except WindowsAzureError, e:
|
except AzureException, e:
|
||||||
if not str(e).lower().find("temporary redirect") == -1:
|
if not str(e).lower().find("temporary redirect") == -1:
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Reference in a new issue