Virtual machine facts - retrieving instance view (#45128)

This commit is contained in:
Zim Kalinowski
2018-09-04 11:25:01 +08:00
committed by Yunge Zhu
parent 9bd702ef37
commit 1f8635fbd9
5 changed files with 26 additions and 4 deletions

View File

@@ -207,7 +207,7 @@ AZURE_PKG_VERSIONS = {
},
'ComputeManagementClient': {
'package_name': 'compute',
'expected_version': '2.1.0'
'expected_version': '3.0.0'
},
'ContainerInstanceManagementClient': {
'package_name': 'containerinstance',

View File

@@ -181,6 +181,11 @@ vms:
- Virtual machine size.
type: str
sample: Standard_D4
power_state:
description:
- Power state of the virtual machine.
type: str
sample: running
'''
try:
@@ -286,10 +291,25 @@ class AzureRMVirtualMachineFacts(AzureRMModuleBase):
'''
result = self.serialize_obj(vm, AZURE_OBJECT_CLASS, enum_modules=AZURE_ENUM_MODULES)
resource_group = re.sub('\\/.*', '', re.sub('.*resourceGroups\\/', '', result['id']))
instance = None
power_state = None
try:
instance = self.compute_client.virtual_machines.instance_view(resource_group, vm.name)
instance = self.serialize_obj(instance, AZURE_OBJECT_CLASS, enum_modules=AZURE_ENUM_MODULES)
except Exception as exc:
self.fail("Error getting virtual machine {0} instance view - {1}".format(vm.name, str(exc)))
for index in range(len(instance['statuses'])):
code = instance['statuses'][index]['code'].split('/')
if code[0] == 'PowerState':
power_state = code[1]
new_result = {}
new_result['power_state'] = power_state
new_result['id'] = vm.id
new_result['resource_group'] = re.sub('\\/.*', '', re.sub('.*resourceGroups\\/', '', result['id']))
new_result['resource_group'] = resource_group
new_result['name'] = vm.name
new_result['state'] = 'present'
new_result['location'] = vm.location