vPoller version 0.2.0 - pyVmomi support, new features & highlights
The v0.2.0 release of vPoller comes with a lot of new features, bug fixes and lots of new methods for discovery and collecting of vSphere Object properties!
Below you will a summary of the changes in vPoller
version 0.2.0
along with a detailed changelog.
For more information about vPoller
please refer to this article,
which explains the design and goals of vPoller.
You can also find the vPoller project repository at Github.
What’s New in vPoller
Below you can find the summary of new features, improvements and
highlights in vPoller
version 0.2.0:
- Integration with pyVmomi API bindings
- Implemented efficient way for retrieving object properties using vSphere Views
- Improved performance during discovery and polling (thanks to pyVmomi!)
- Lots of new discovery and polling methods for various vSphere Managed Objects
vSphere Agent
configuration is now managed by an SQLite backend- … and other small fixes and improvements
Please read further for more details on what’s new in vPoller
version 0.2.0
Integration with pyVmomi API bindings
Before release v0.2.0, vPoller was using pysphere for managing connections to the vSphere host and retrieving of properties.
pysphere is good enough for most of the things we do, but unfortunately it can be quite slow when we need to deal with lots of properties and objects, so we had to look for a way to improve this.
Somewhere last year (near Christmas, 2013) VMware has officially released the VMware’s vSphere API Python bindings. Compared to pysphere, the pyVmomi bindings seems to be much better.
A few (but very important!) advantages of pyVmomi
worth mentioning
here:
- Official API bindings released by VMware
- Function and object names map directly to what is documented in the vSphere Web Services SDK
- Feature-full API bindings
- Much better performance
- … and more …
The only disadvantage of pyVmomi
I can find so far is the lack of
documentation, so it takes some time getting used to it. Though, once
you wrap your head around you start to really appreciate how good
pyVmomi
is.
So, in summary having pyVmomi
integration in vPoller
is a great
improvement by itself!
Better way to retrieve object properties
Starting with vPoller version 0.2.0
we are now collecting vSphere
object properties using vSphere
Views.
By using pyVmomi with vSphere Views we are able to efficiently select a subset of the objects in inventory and collect their properties. And this gives us a better performance!
Unified configuration of vPoller
From v0.2.0 of vPoller the configuration of all components now resides in a single file, which makes it easier to maintain and configure.
In previous versions of vPoller
we were using separate config file
for each component - Proxy
, Worker
and Client
, but now all that
resides in a single file.
Example configuration file for vPoller version 0.2.0
:
[proxy]
frontend = tcp://*:10123
backend = tcp://*:10124
mgmt = tcp://*:9999
[worker]
db = /var/lib/vconnector/vconnector.db
proxy = tcp://localhost:10124
mgmt = tcp://*:10000
The table below provides information about the config entries used along with a description for each of them.
Section | Option | Description |
---|---|---|
proxy | frontend | Endpoint to which clients connect and send their requests to |
proxy | backend | Endpoint to which vPoller Workers connect and get requests for processing |
proxy | mgmt | Management endpoint, used for sending management messages to the vPoller Proxy |
worker | db | Path to the vSphere Agents SQLite database file |
worker | proxy | Endpoint to the vPoller Proxy backend to which the vPoller Worker connects |
worker | mgmt | Management endpoint, used for sending management messages to the vPoller Worker |
More vPoller methods supported
The list of supported vPoller methods is growing. The table below summarizes the supported vPoller methods as of version 0.2.0:
vPoller Method | Description |
---|---|
about | Get ‘about’ information for the vSphere host this agent is connected to |
event.latest | Get the latest registered event in the vSphere host the agent is connected to |
datacenter.discover | Discover all vim.Datacenter managed objects |
datacenter.get | Get properties for a vim.Datacenter managed object |
cluster.discover | Discover all vim.ClusterComputeResource managed objects |
cluster.get | Get properties for a vim.ClusterComputeResource managed object |
resource.pool.discover | Discover all vim.ResourcePool managed objects |
resource.pool.get | Get properties for a vim.ResourcePool managed object |
host.discover | Discover all vim.HostSystem managed objects |
host.get | Get properties for a vim.HostSystem managed object |
host.vm.get | Get all Virtual Machines running on a specified vim.HostSystem |
host.datastore.get | Get all datastores available to a vim.HostSystem |
vm.discover | Discover all vim.VirtualMachine managed objects |
vm.disk.discover | Discover all guest disks on a vim.VirtualMachine object |
vm.net.discover | Discover all network adapters on a vim.VirtualMachine object |
vm.get | Get properties for a vim.VirtualMachine object |
vm.datastore.get | Get all datastore used by a vim.VirtualMachine object |
vm.disk.get | Get information about a guest disk for a vim.VirtualMachine object |
vm.host.get | Get the HostSystem in which a specified vim.VirtualMachine is running on |
datastore.discover | Discover all vim.Datastore objects |
datastore.get | Get properties for a vim.Datastore object |
vSphere Agents configuration is handled by an SQLite backend
The vSphere Agents
are responsible for managing connections and
retrieve properties from a vSphere host. Their configuration such as
username, password, hostname, etc. used to be stored in plain text
files in previous versions.
With vPoller version 0.2.0 all that has been moved to an SQLite
database and the whole configuration can now be done from the
command-line using the vconnector-cli
tool.
Here is how to add a new vSphere Agent in version 0.2.0 of vPoller.
$ sudo vconnector-cli -H vc01.example.org -U root -P p4ssw0rd add
Make sure you enable the vSphere Agent
, otherwise it will not be
used by the vPoller Worker
:
$ sudo vconnector-cli -H vc01.example.org enable
At any time you can view the currently registered vSphere Agents
by
running the vconnector-cli get
command, e.g.:
$ sudo vconnector-cli get
+--------------+---------------------+-------------+-----------+
| Hostname | Username | Password | Enabled |
+==============+=====================+=============+===========+
| vc01 | root | p4ssw0rd | 1 |
+--------------+---------------------+-------------+-----------+