https://github.com/dnaeon/py-vconnector
VMware vSphere Connector Module for Python
https://github.com/dnaeon/py-vconnector
Last synced: 4 months ago
JSON representation
VMware vSphere Connector Module for Python
- Host: GitHub
- URL: https://github.com/dnaeon/py-vconnector
- Owner: dnaeon
- License: other
- Created: 2014-01-07T10:20:29.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2020-09-07T04:40:55.000Z (over 5 years ago)
- Last Synced: 2025-08-24T01:55:13.312Z (5 months ago)
- Language: Python
- Homepage:
- Size: 82 KB
- Stars: 49
- Watchers: 9
- Forks: 27
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
vConnector - VMware vSphere Connector Module for Python
=======================================================
.. image:: https://img.shields.io/pypi/v/vconnector.svg
:target: https://pypi.python.org/pypi/vconnector/
:alt: Latest Version
.. image:: https://img.shields.io/pypi/dm/vconnector.svg
:target: https://pypi.python.org/pypi/vconnector/
:alt: Downloads
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
============
* `Python 2.7.x, 3.2.x or later `_
* `docopt `_
* `pyVmomi `_
* `tabulate `_
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``:
.. code-block:: bash
$ pip install vconnector
In order to install the latest version of vConnector from the
Github repository simply execute these commands instead:
.. code-block:: bash
$ git clone https://github.com/dnaeon/py-vconnector.git
$ cd py-vconnector
$ python setup.py install
Applications using vConnector module
====================================
* `vPoller - Distributed vSphere API Proxy `_
* `vEvents - VMware vSphere Events from the command-line `_
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:
.. code-block:: bash
$ vconnector-cli init
Here is how to add a new vSphere host to the vConnector database:
.. code-block:: bash
$ 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:
.. code-block:: bash
$ vconnector-cli -H vc01.example.org -U root -P newp4ssw0rd update
Here is how to remove a vSphere host using vconnector-cli:
.. code-block:: bash
$ vconnector-cli -H vc01.example.org remove
Here is how to enable a vSphere host using vconnector-cli:
.. code-block:: bash
$ vconnector-cli -H vc01.example.org enable
Here this is how to disable a vSphere host:
.. code-block:: bash
$ vconnector-cli -H vc01.example.org disable
And here is how to get the currently registered vSphere hosts from
the vConnector database:
.. code-block:: bash
$ 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:
.. code-block:: python
>>> from vconnector.core import VConnector
>>> client = VConnector(
... user='root',
... pwd='p4ssw0rd',
... host='vc01.example.org'
...)
>>> client.connect()
Disconnecting from a vSphere host:
.. code-block:: python
>>> client.disconnect()
Re-connecting to a vSphere host:
.. code-block:: python
>>> client.reconnect()
How to get a ``VMware vSphere View`` of all ``VirtualMachine``
managed objects:
.. code-block:: python
>>> 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``:
.. code-block:: python
>>> 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:
.. code-block:: python
>>> 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()