Skip to content

Commit

Permalink
Implement datacenter.perf.counter.info vPoller method
Browse files Browse the repository at this point in the history
  • Loading branch information
dnaeon committed Jan 6, 2015
1 parent 7866367 commit ecb3b7e
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions src/vpoller/agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,10 +118,18 @@ def __init__(self, user, pwd, host):
'method': self.datacenter_get,
'required': ['hostname', 'name', 'properties'],
},
'datacenter.perf.counter.info': {
'method': self.datacenter_perf_counter_info,
'required': ['hostname', 'name'],
},
'datacenter.alarm.get': {
'method': self.datacenter_alarm_get,
'required': ['hostname', 'name'],
},
'cluster.perf.counter.info': {
'method': self.cluster_perf_counter_info,
'required': ['hostname', 'name'],
},
'cluster.discover': {
'method': self.cluster_discover,
'required': ['hostname'],
Expand Down Expand Up @@ -974,6 +982,40 @@ def datacenter_discover(self, msg):

return r

def datacenter_perf_counter_info(self, msg):
"""
Get performance counters available for a vim.Datacenter object
Example client message would be:
{
"method": "datacenter.perf.counter.info",
"hostname": "vc01.example.org",
"name": "MyDatacenter"
}
Returns:
Information about the supported performance counters for the object
"""
obj = self.get_object_by_property(
property_name='name',
property_value=msg['name'],
obj_type=pyVmomi.vim.Datacenter
)

try:
metric_id = self.si.content.perfManager.QueryAvailablePerfMetric(entity=obj)
except pyVmomi.vim.InvalidArgument as e:
return {
'success': 1,
'msg': 'Cannot retrieve performance counters for %s: %s' % (msg['name'], e)
}

counter_id = [m.counterId for m in metric_id]

return self._get_perf_counter_info(counter_id=counter_id)

def datacenter_get(self, msg):
"""
Get properties of a single vim.Datacenter managed object
Expand Down

0 comments on commit ecb3b7e

Please sign in to comment.