def init_vm_details(self): '''Populate the self.zones structure - with a physically ordered representation of the VMs in a scale set. ''' self.init_zones() # get the model view self.vm_model_view = azurerm.list_vmss_vms(self.access_token, self.sub_id, self.rgname, self.name) # get the instance view self.vm_instance_view = azurerm.list_vmss_vm_instance_view( self.access_token, self.sub_id, self.rgname, self.name) # do a loop through the number of VMs and populate VMs properties in the zones structure # make an assumption that len(vm_model_view) == len(vm_instance_view) # - true if not actively scaling for idx in range(len(self.vm_model_view['value'])): vm_id = self.vm_model_view['value'][idx]['instanceId'] zone_num = self.vm_model_view['value'][idx]['zones'][0] power_state = self.get_power_state( self.vm_instance_view['value'][idx]['properties'] ['instanceView']['statuses']) fault_domain = self.vm_instance_view['value'][idx]['properties'][ 'instanceView']['platformFaultDomain'] vm_data = {'vmid': vm_id, 'power_state': power_state} self.zones[int(zone_num) - 1]['fds'][fault_domain]['vms'].append(vm_data)
def main(): '''Main routine.''' # process arguments if len(sys.argv) < 3: usage() rgname = sys.argv[1] vmss = sys.argv[2] # Load Azure app defaults try: with open('azurermconfig.json') as config_file: config_data = json.load(config_file) except FileNotFoundError: sys.exit("Error: Expecting azurermconfig.json in current folder") tenant_id = config_data['tenantId'] app_id = config_data['appId'] app_secret = config_data['appSecret'] subscription_id = config_data['subscriptionId'] access_token = azurerm.get_access_token(tenant_id, app_id, app_secret) # loop through resource groups instances = azurerm.list_vmss_vm_instance_view(access_token, subscription_id, rgname, vmss) print( json.dumps(instances, sort_keys=False, indent=2, separators=(',', ': ')))
def main(): '''main routine''' # process arguments if len(sys.argv) < 3: usage() rgname = sys.argv[1] vmss_name = sys.argv[2] # Load Azure app defaults try: with open('azurermconfig.json') as config_file: config_data = json.load(config_file) except FileNotFoundError: sys.exit('Error: Expecting azurermonfig.json in current folder') tenant_id = config_data['tenantId'] app_id = config_data['appId'] app_secret = config_data['appSecret'] subscription_id = config_data['subscriptionId'] access_token = azurerm.get_access_token(tenant_id, app_id, app_secret) instanceviewlist = azurerm.list_vmss_vm_instance_view(access_token, subscription_id, rgname, vmss_name) for vmi in instanceviewlist['value']: instance_id = vmi['instanceId'] upgrade_domain = vmi['properties']['instanceView']['platformUpdateDomain'] fault_domain = vmi['properties']['instanceView']['platformFaultDomain'] print('Instance ID: ' + instance_id + ', UD: ' + str(upgrade_domain) + ', FD: ' + str(fault_domain))
def get_vm_ids_by_ud(access_token, subscription_id, resource_group, vmssname, updatedomain): instanceviewlist = azurerm.list_vmss_vm_instance_view(access_token, subscription_id, resource_group, vmssname) # print(json.dumps(instanceviewlist, sort_keys=False, indent=2, separators=(',', ': '))) # loop through the instance view list, and build the vm id list of VMs in the matching UD udinstancelist = [] for instanceView in instanceviewlist['value']: vmud = instanceView['properties']['instanceView']['platformUpdateDomain'] if vmud == updatedomain: udinstancelist.append(instanceView['instanceId']) udinstancelist.sort() return udinstancelist
def get_vm_ids_by_ud(access_token, subscription_id, resource_group, vmssname, updatedomain): instanceviewlist = azurerm.list_vmss_vm_instance_view( access_token, subscription_id, resource_group, vmssname) # print(json.dumps(instanceviewlist, sort_keys=False, indent=2, separators=(',', ': '))) # loop through the instance view list, and build the vm id list of VMs in the matching UD udinstancelist = [] for instanceView in instanceviewlist['value']: vmud = instanceView['properties']['instanceView'][ 'platformUpdateDomain'] if vmud == updatedomain: udinstancelist.append(instanceView['instanceId']) udinstancelist.sort() return udinstancelist
def getvmss(rgname, vmssname): global vmss_properties try: vmssget = azurerm.get_vmss(access_token, subscription_id, rgname, vmssname) vmss_properties['name'] = vmssget['name'] vmss_properties['capacity'] = vmssget['sku']['capacity'] vmss_properties['location'] = vmssget['location'] vmss_properties['vmsize'] = vmssget['sku']['name'] vmss_properties['tier'] = vmssget['sku']['tier'] vmss_properties['offer'] = vmssget['properties']['virtualMachineProfile']['storageProfile']['imageReference'][ 'offer'] vmss_properties['version'] = vmssget['properties']['virtualMachineProfile']['storageProfile']['imageReference'][ 'version'] vmss_properties['sku'] = vmssget['properties']['virtualMachineProfile']['storageProfile']['imageReference'][ 'sku'] vmss_properties['provisioningState'] = vmssget['properties']['provisioningState'] except KeyError: statusmsg('KeyError: azurerm.get_vmss() returned: ' + json.dumps(vmssget)) return # get an instance view list in order to build a heatmap vmssinstances = azurerm.list_vmss_vm_instance_view(access_token, subscription_id, rgname, vmssname) draw_vms(vmssinstances)
def init_vm_instance_view(self): '''get the VMSS instance view and set the class property''' # get an instance view list in order to build a heatmap self.vm_instance_view = \ azurerm.list_vmss_vm_instance_view(self.access_token, self.sub_id, self.rgname, self.name)
import json import azurerm # Load Azure app defaults try: with open('azurermconfig.json') as configFile: configData = json.load(configFile) except FileNotFoundError: print("Error: Expecting vmssConfig.json in current folder") sys.exit() tenant_id = configData['tenantId'] app_id = configData['appId'] app_secret = configData['appSecret'] subscription_id = configData['subscriptionId'] rg = configData['resourceGroup'] vmss = configData['vmssName'] access_token = azurerm.get_access_token(tenant_id, app_id, app_secret) # loop through resource groups instances = azurerm.list_vmss_vm_instance_view(access_token, subscription_id, rg, vmss) print(json.dumps(instances, sort_keys=False, indent=2, separators=(',', ': ')))
#!/usr/bin/env python import json import azurerm # Load Azure app defaults try: with open('azurermconfig.json') as configFile: configData = json.load(configFile) except FileNotFoundError: print("Error: Expecting vmssConfig.json in current folder") sys.exit() tenant_id = configData['tenantId'] app_id = configData['appId'] app_secret = configData['appSecret'] subscription_id = configData['subscriptionId'] access_token = azurerm.get_access_token(tenant_id, app_id, app_secret) resource_group = 'ah1' vmssname = 'ah1' instanceviewlist = azurerm.list_vmss_vm_instance_view(access_token, subscription_id, resource_group, vmssname) for vm in instanceviewlist['value']: ud = vm['properties']['instanceView']['platformUpdateDomain'] fd = vm['properties']['instanceView']['platformFaultDomain'] print('UD: ' + str(ud) + ', FD: ' + str(fd)) # print(json.dumps(instanceviewlist, sort_keys=False, indent=2, separators=(',', ': '))) # vms = azurerm.list_vmss_vms(access_token, subscription_id, 'ah1', 'ah1') # print(json.dumps(vms, sort_keys=False, indent=2, separators=(',', ': ')))
def init_vm_instance_view(self): # get an instance view list in order to build a heatmap self.vm_instance_view = \ azurerm.list_vmss_vm_instance_view(self.access_token, self.sub_id, self.rgname, self.name)
import azurerm import json # Load Azure app defaults try: with open('azurermconfig.json') as configFile: configData = json.load(configFile) except FileNotFoundError: print("Error: Expecting vmssConfig.json in current folder") sys.exit() tenant_id = configData['tenantId'] app_id = configData['appId'] app_secret = configData['appSecret'] subscription_id = configData['subscriptionId'] access_token = azurerm.get_access_token(tenant_id, app_id, app_secret) resource_group = 'ah1' vmssname = 'ah1' instanceviewlist = azurerm.list_vmss_vm_instance_view(access_token, subscription_id, resource_group, vmssname) for vm in instanceviewlist['value']: ud = vm['properties']['instanceView']['platformUpdateDomain'] fd = vm['properties']['instanceView']['platformFaultDomain'] print('UD: ' + str(ud) + ', FD: ' + str(fd)) #print(json.dumps(instanceviewlist, sort_keys=False, indent=2, separators=(',', ': '))) #vms = azurerm.list_vmss_vms(access_token, subscription_id, 'ah1', 'ah1') #print(json.dumps(vms, sort_keys=False, indent=2, separators=(',', ': ')))
import azurerm import json # Load Azure app defaults try: with open('azurermconfig.json') as configFile: configData = json.load(configFile) except FileNotFoundError: print("Error: Expecting vmssConfig.json in current folder") sys.exit() tenant_id = configData['tenantId'] app_id = configData['appId'] app_secret = configData['appSecret'] subscription_id = configData['subscriptionId'] rg = configData['resourceGroup'] vmss = configData['vmssName'] access_token = azurerm.get_access_token(tenant_id, app_id, app_secret) # loop through resource groups instances = azurerm.list_vmss_vm_instance_view(access_token, subscription_id, rg, vmss) print(json.dumps(instances, sort_keys=False, indent=2, separators=(',', ': ')))