Exemple #1
0
 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)
Exemple #2
0
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=(',', ': ')))
Exemple #3
0
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))
Exemple #4
0
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
Exemple #5
0
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
Exemple #6
0
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)
Exemple #7
0
 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)
Exemple #8
0
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=(',', ': ')))
Exemple #9
0
#!/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=(',', ': ')))
Exemple #10
0
 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)
Exemple #11
0
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=(',', ': ')))
Exemple #12
0
 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)
Exemple #13
0
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=(',', ': ')))