def get_network_backing(client, porggroup_name, datacenter_name, portgroup_type): """ Gets a standard portgroup network backing for a given Datacenter Note: The method assumes that there is only one standard portgroup and datacenter with the mentioned names. """ datacenter = datacenter_helper.get_datacenter(client, datacenter_name) if not datacenter: print("Datacenter '{}' not found".format(datacenter_name)) return None filter = Network.FilterSpec(datacenters=set([datacenter]), names=set([porggroup_name]), types=set([portgroup_type])) network_summaries = client.vcenter.Network.list(filter=filter) if len(network_summaries) > 0: network = network_summaries[0].network print("Selecting {} Portgroup Network '{}' ({})". format(portgroup_type, porggroup_name, network)) return network else: print("Portgroup Network not found in Datacenter '{}'". format(datacenter_name)) return None
def get_distributed_network_backing(client, dv_portgroup_name, datacenter_name): """ Gets a distributed portgroup network backing for a given Datacenter Note: The method assumes that there is only one distributed portgroup and datacenter with the mentioned names. """ datacenter = datacenter_helper.get_datacenter(client, datacenter_name) if not datacenter: print("Datacenter '{}' not found".format(datacenter_name)) return None filter = Network.FilterSpec(datacenters=set([datacenter]), names=set([dv_portgroup_name]), types=set([Network.Type.DISTRIBUTED_PORTGROUP ])) network_summaries = client.vcenter.Network.list(filter=filter) if len(network_summaries) > 0: network = network_summaries[0].network print("Selecting Distributed Portgroup Network '{}' ({})".format( dv_portgroup_name, network)) return network else: print("Distributed Portgroup Network not found in Datacenter '{}'". format(datacenter_name)) return None
def get_standard_network_backing(stub_config, std_porggroup_name, datacenter_name): """ Gets a standard portgroup network backing for a given Datacenter Note: The method assumes that there is only one standard portgroup and datacenter with the mentioned names. """ datacenter = datacenter_helper.get_datacenter(stub_config, datacenter_name) if not datacenter: print("Datacenter '{}' not found".format(datacenter_name)) return None network_svc = Network(stub_config) filter = Network.FilterSpec(datacenters=set([datacenter]), names=set([std_porggroup_name]), types=set([Network.Type.STANDARD_PORTGROUP])) network_summaries = network_svc.list(filter=filter) network = None if len(network_summaries) > 0: network = network_summaries[0].network print("Selecting Standard Portgroup Network '{}' ({})".format( std_porggroup_name, network)) return network else: print("Standard Portgroup Network not found in Datacenter '{}'".format( datacenter_name)) return None
def get_datastore(client, datacenter_name, datastore_name): """ Returns the identifier of a datastore Note: The method assumes that there is only one datastore and datacenter with the mentioned names. """ datacenter = datacenter_helper.get_datacenter(client, datacenter_name) if not datacenter: print("Datacenter '{}' not found".format(datacenter_name)) return None filter_spec = Datastore.FilterSpec(names=set([datastore_name]), datacenters=set([datacenter])) datastore_summaries = client.vcenter.Datastore.list(filter_spec) if len(datastore_summaries) > 0: datastore = datastore_summaries[0].datastore return datastore else: return None
def get_resource_pool(stub_config, datacenter_name): """ Returns the identifier of the first resourcepool in the datacenter """ datacenter = datacenter_helper.get_datacenter(stub_config, datacenter_name) if not datacenter: print("Datacenter '{}' not found".format(datacenter_name)) return None filter_spec = ResourcePool.FilterSpec(datacenters=set([datacenter])) resource_pool_svc = ResourcePool(stub_config) resource_pool_summaries = resource_pool_svc.list(filter_spec) if len(resource_pool_summaries) > 0: resource_pool = resource_pool_summaries[0].resource_pool print("Selecting ResourcePool '{}'".format(resource_pool)) return resource_pool else: print("ResourcePool not found in Datacenter '{}'".format( datacenter_name)) return None
def detect_vm_folder(context, datacenter_name, folder_name): """Find vm folder based on datacenter and folder name""" datacenter = datacenter_helper.get_datacenter(context.client, datacenter_name) if not datacenter: print("Datacenter '{}' not found".format(datacenter_name)) return None folder_summaries = context.client.vcenter.Folder.list( Folder.FilterSpec(type=Folder.Type.VIRTUAL_MACHINE, names=set([folder_name]), datacenters=set([datacenter]))) if len(folder_summaries) > 0: folder = folder_summaries[0].folder print("Detected VM Folder '{}' as {}".format(folder_name, folder)) context.testbed.entities['VM_FOLDER_IDS'][folder_name] = folder return True else: print("VM Folder '{}' missing in Datacenter {}". format(folder_name, datacenter_name)) return False
def get_cluster(client, datacenter_name, cluster_name): """ Returns the identifier of a cluster Note: The method assumes only one cluster and datacenter with the mentioned name. """ datacenter = datacenter_helper.get_datacenter(client, datacenter_name) if not datacenter: print("Datacenter '{}' not found".format(datacenter_name)) return None filter_spec = Cluster.FilterSpec(names=set([cluster_name]), datacenters=set([datacenter])) cluster_summaries = client.vcenter.Cluster.list(filter_spec) if len(cluster_summaries) > 0: cluster = cluster_summaries[0].cluster print("Detected cluster '{}' as {}".format(cluster_name, cluster)) return cluster else: print("Cluster '{}' not found".format(cluster_name)) return None
def get_folder(client, datacenter_name, folder_name): """ Returns the identifier of a folder Note: The method assumes that there is only one folder and datacenter with the mentioned names. """ datacenter = datacenter_helper.get_datacenter(client, datacenter_name) if not datacenter: print("Datacenter '{}' not found".format(datacenter_name)) return None filter_spec = Folder.FilterSpec(type=Folder.Type.VIRTUAL_MACHINE, names=set([folder_name]), datacenters=set([datacenter])) folder_summaries = client.vcenter.Folder.list(filter_spec) if len(folder_summaries) > 0: folder = folder_summaries[0].folder print("Detected folder '{}' as {}".format(folder_name, folder)) return folder else: print("Folder '{}' not found".format(folder_name)) return None
def get_resource_pool(client, datacenter_name, resource_pool_name=None): """ Returns the identifier of the resource pool with the given name or the first resource pool in the datacenter if the name is not provided. """ datacenter = datacenter_helper.get_datacenter(client, datacenter_name) if not datacenter: print("Datacenter '{}' not found".format(datacenter_name)) return None names = set([resource_pool_name]) if resource_pool_name else None filter_spec = ResourcePool.FilterSpec(datacenters=set([datacenter]), names=names) resource_pool_summaries = client.vcenter.ResourcePool.list(filter_spec) if len(resource_pool_summaries) > 0: resource_pool = resource_pool_summaries[0].resource_pool print("Selecting ResourcePool '{}'".format(resource_pool)) return resource_pool else: print("ResourcePool not found in Datacenter '{}'".format( datacenter_name)) return None