vConnector - VMware vSphere Connector Module for Python
vConnector is a wrapper module around pyVmomi VMware vSphere bindings, which provides methods for connecting and retrieving of objects from a VMware vSphere server.
The purpose of vConnector is to provide the basic primitives for building complex applications. vConnector can also be used for managing the user/pass/host credentials for your vSphere environment using an SQLite database, which in turn can be shared between multiple applications requiring access to your vSphere environment through a common interface.
Requirements
Contributions
vConnector is hosted on Github. Please contribute by reporting issues, suggesting features or by sending patches using pull requests.
Installation
The easiest way to install vConnector is by using pip:
$ pip install vconnector
In order to install the latest version of vConnector from the Github repository simply execute these commands instead:
$ git clone https://github.com/dnaeon/py-vconnector.git
$ cd py-vconnector
$ python setup.py install
Applications using vConnector module
Using the vconnector-cli tool
Using the vconnector-cli tool you can manage the user/pass/host credentials of your vSphere environment. The vconnector-cli tool stores this information in an SQLite database file, which also makes it easy to be shared between applications.
First, initialize the vConnector database by executing the command below:
$ vconnector-cli init
Here is how to add a new vSphere host to the vConnector database:
$ vconnector-cli -H vc01.example.org -U root -P p4ssw0rd add
Here is how to update an already existing vSphere host from the vConnector database:
$ vconnector-cli -H vc01.example.org -U root -P newp4ssw0rd update
Here is how to remove a vSphere host using vconnector-cli:
$ vconnector-cli -H vc01.example.org remove
Here is how to enable a vSphere host using vconnector-cli:
$ vconnector-cli -H vc01.example.org enable
Here this is how to disable a vSphere host:
$ vconnector-cli -H vc01.example.org disable
And here is how to get the currently registered vSphere hosts from the vConnector database:
$ vconnector-cli get
+---------------------------+---------------------+--------------+-----------+
| Hostname | Username | Password | Enabled |
+===========================+=====================+==============+===========+
| vc01.example.org | root | p4ssw0rd | 0 |
+---------------------------+---------------------+--------------+-----------+
Using the vConnector API
Here are a few examples of using the vconnector module API.
Connecting to a vSphere host:
>>> from vconnector.core import VConnector
>>> client = VConnector(
... user='root',
... pwd='p4ssw0rd',
... host='vc01.example.org'
...)
>>> client.connect()
Disconnecting from a vSphere host:
>>> client.disconnect()
Re-connecting to a vSphere host:
>>> client.reconnect()
How to get a VMware vSphere View of all VirtualMachine managed objects:
>>> from __future__ import print_function
>>> from vconnector.core import VConnector
>>> client = VConnector(
... user='root',
... pwd='p4ssw0rd',
... host='vc01.example.org'
...)
>>> client.connect()
>>> vms = client.get_vm_view()
>>> print(vms.view)
(ManagedObject) [
'vim.VirtualMachine:vm-36',
'vim.VirtualMachine:vm-129',
'vim.VirtualMachine:vm-162',
'vim.VirtualMachine:vm-146',
'vim.VirtualMachine:vm-67',
'vim.VirtualMachine:vm-147',
'vim.VirtualMachine:vm-134',
'vim.VirtualMachine:vm-88'
]
>>> client.disconnect()
How to get a Managed Object by a specific property, e.g. find the Managed Object of an ESXi host which name is esxi01.example.org:
>>> from __future__ import print_function
>>> import pyVmomi
>>> from vconnector.core import VConnector
>>> client = VConnector(
... user='root',
... pwd='p4ssw0rd',
... host='vc01.example.org'
... )
>>> client.connect()
>>> host = client.get_object_by_property(
... property_name='name',
... property_value='esxi01.example.org',
... obj_type=pyVmomi.vim.HostSystem
... )
>>> print(host.name)
'esxi01.example.org'
>>> client.disconnect()
How to collect properties for vSphere Managed Objects, e.g. get the name and capacity properties for all Datastore managed objects:
>>> from __future__ import print_function
>>> import pyVmomi
>>> from vconnector.core import VConnector
>>> client = VConnector(
... user='root',
... pwd='p4ssw0rd',
... host='vc01.example.org'
... )
>>> client.connect()
>>> datastores = client.get_datastore_view()
>>> result = client.collect_properties(
... view_ref=datastores,
... obj_type=pyVmomi.vim.Datastore,
... path_set=['name', 'summary.capacity']
...)
>>> print(result)
[{u'summary.capacity': 994821799936L, u'name': 'datastore1'}]
>>> client.disconnect()
Metadata
Release files for vconnector 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| vconnector-0.6.0.tar.gz | 12.3 kB | Without provenance | Details for vconnector-0.6.0.tar.gz |
Release files / vconnector-0.6.0.tar.gz
| Download URL | vconnector-0.6.0.tar.gz |
|---|---|
| Size | 12.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
57d6bdc1f464da9e00034fc3b9bd106c6fb9eedd8df57547ce4ddd19d1d08239
|
|
BLAKE2b-256 checksum How to use checksums |
229e52cae036555ec85f0508e2d294b6bf491e496c3463784853d6f88a905662
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Python-urllib/3.7
|
Security for vconnector 0.6.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.