From 8ebd1eaf244d01a305c5087ab1e9c9c9c6ee3cb2 Mon Sep 17 00:00:00 2001 From: Marin Atanasov Nikolov Date: Sun, 30 Mar 2014 17:16:41 +0300 Subject: [PATCH] Add 'datacenter.get' method for retrieving properties for a single Datacenter managed object --- src/vpoller/agent.py | 32 ++++++++++++++++++++++++++++++++ src/vpoller/worker.py | 4 ++++ 2 files changed, 36 insertions(+) diff --git a/src/vpoller/agent.py b/src/vpoller/agent.py index c2bb8c4..bc9bf17 100644 --- a/src/vpoller/agent.py +++ b/src/vpoller/agent.py @@ -184,6 +184,38 @@ def datacenter_discover(self, msg): return self._discover_objects(properties=properties, obj_type=pyVmomi.vim.Datacenter) + def datacenter_get(self, msg): + """ + Get properties of a single pyVmomi.vim.Datacenter managed object + + Example client message would be: + + { + "method": "datacenter.get", + "hostname": "vc01.example.org", + "name": "MyDatacenter", + "properties": [ + "name", + "overallStatus" + ] + } + + Returns: + The managed object properties in JSON format + + """ + # Property names to be collected + properties = ['name'] + if msg.has_key('properties') and msg['properties']: + properties.extend(msg['properties']) + + return self._get_object_properties( + properties=properties, + obj_type=pyVmomi.vim.Datacenter, + obj_property_name='name', + obj_property_value=msg['name'] + ) + def cluster_discover(self, msg): """ Discover all pyVmomi.vim.ClusterComputeResource managed objects diff --git a/src/vpoller/worker.py b/src/vpoller/worker.py index 95c0cb8..54356f1 100644 --- a/src/vpoller/worker.py +++ b/src/vpoller/worker.py @@ -294,6 +294,10 @@ def process_client_msg(self, msg): 'method': self.agents[vsphere_host].datacenter_discover, 'msg_attr': ('method', 'hostname'), }, + 'datacenter.get': { + 'method': self.agents[vsphere_host].datacenter_get, + 'msg': ('method', 'hostname', 'name', 'properties'), + }, 'cluster.discover': { 'method': self.agents[vsphere_host].cluster_discover, 'msg_attr': ('method', 'hostname'),