Quantcast
Channel: VMware Communities : All Content - All Communities
Viewing all articles
Browse latest Browse all 179681

How to WaitForUpdates of VMs in a particular cluster?

$
0
0

I am using VMWare VSphere WS SDK in Python using the suds client. I want to wait for any changes to VMs. I am specifically interested in VMs of a particular cluster. Is there a way in the propertyfilterspec to say that? I tried setting the managed object reference of the cluster in the ObjectSpec with no avail. Is there anything I am missing?


Concerned piece of code is :


    object_spec = client_factory.create('ns0:ObjectSpec')

    object_spec.obj = clu_mor

    object_spec.skip = False

    object_spec.selectSet = build_recursive_traversal_spec(client_factory)

 

def build_selection_spec(client_factory, name):

    """Builds the selection spec."""

    sel_spec = client_factory.create('ns0:SelectionSpec')

    sel_spec.name = name

    return sel_spec

 

def build_traversal_spec(client_factory, name, spec_type, path, skip,

                         select_set):

    """Builds the traversal spec object."""

    traversal_spec = client_factory.create('ns0:TraversalSpec')

    traversal_spec.name = name

    traversal_spec.type = spec_type

    traversal_spec.path = path

    traversal_spec.skip = skip

    traversal_spec.selectSet = select_set

    return traversal_spec

 

def build_recursive_traversal_spec(client_factory):

    """

    Builds the Recursive Traversal Spec to traverse the object managed

    object hierarchy.

    """

    visit_folders_select_spec = build_selection_spec(client_factory,

                                    "visitFolders")

    # For getting to hostFolder from datacenter

    dc_to_hf = build_traversal_spec(client_factory, "dc_to_hf", "Datacenter",

                                    "hostFolder", False,

                                    [visit_folders_select_spec])

    # For getting to vmFolder from datacenter

    dc_to_vmf = build_traversal_spec(client_factory, "dc_to_vmf", "Datacenter",

                                     "vmFolder", False,

                                     [visit_folders_select_spec])

    # For getting Host System to virtual machine

    h_to_vm = build_traversal_spec(client_factory, "h_to_vm", "HostSystem",

                                   "vm", False,

                                   [visit_folders_select_spec])

 

 

    # For getting to networkfolder from datacenter

    dc_to_nwf = build_traversal_spec(client_factory, "dc_to_nwf", "Datacenter",

                                     "networkFolder", False,

                                     [visit_folders_select_spec])

   

    # For getting to Host System from Compute Resource

    cr_to_h = build_traversal_spec(client_factory, "cr_to_h",

                                   "ComputeResource", "host", False, [])

 

 

    # For getting to datastore from Compute Resource

    cr_to_ds = build_traversal_spec(client_factory, "cr_to_ds",

                                    "ComputeResource", "datastore", False, [])

 

 

    rp_to_rp_select_spec = build_selection_spec(client_factory, "rp_to_rp")

    rp_to_vm_select_spec = build_selection_spec(client_factory, "rp_to_vm")

    # For getting to resource pool from Compute Resource

    cr_to_rp = build_traversal_spec(client_factory, "cr_to_rp",

                                "ComputeResource", "resourcePool", False,

                                [rp_to_rp_select_spec, rp_to_vm_select_spec])

 

 

    # For getting to child res pool from the parent res pool

    rp_to_rp = build_traversal_spec(client_factory, "rp_to_rp", "ResourcePool",

                                "resourcePool", False,

                                [rp_to_rp_select_spec, rp_to_vm_select_spec])

 

 

    # For getting to Virtual Machine from the Resource Pool

    rp_to_vm = build_traversal_spec(client_factory, "rp_to_vm", "ResourcePool",

                                "vm", False,

                                [rp_to_rp_select_spec, rp_to_vm_select_spec])

 

 

    # Get the assorted traversal spec which takes care of the objects to

    # be searched for from the root folder

    traversal_spec = build_traversal_spec(client_factory, "visitFolders",

                                  "Folder", "childEntity", False,

                                  [visit_folders_select_spec, dc_to_hf,

                                   dc_to_vmf, dc_to_nwf, cr_to_ds, cr_to_h, cr_to_rp,

                                   rp_to_rp, h_to_vm, rp_to_vm])

    return traversal_spec


Viewing all articles
Browse latest Browse all 179681

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>