Node library API
================

.. contents:: Table of contents

.. automodule:: ccnode

Global Interface
________________

.. automodule:: ccnode.interface
   :members:

Libvirt Wrapper Classes
_______________________

.. automodule:: ccnode.libvirtwrapper
   :members:

KVM Interface
_____________

.. automodule:: ccnode.kvm
   :members:
.. automethod:: ccnode.kvm.KvmHypervisor.__new__()

Exceptions
__________

.. automodule:: ccnode.exceptions
   :members:

Helper Functions
________________

.. autofunction:: ccnode.map_process

.. autofunction:: ccnode.find_process_id

Node Managment
______________

.. automodule:: ccnode.ccnode
   :members:
.. automodule:: ccnode.ccnodehandlers
   :members:


Examples
________

A basic usage of the node library looks like this::

    >>> #import the library
    >>> import ccnode

    >>> kvm = ccnode.KvmHypervisor()

    >>> hand = ccnode.ccnodehandlers.NodeHandler(kvm)

    # We can list all vms with None parameter
    >>> hand.list_vm(None)
    
    [{'cpu': 88,
      'status': 'Running',
      'vcpus': 1,
      'vm': 'squeeze',
      'vmem_avail': 0L,
      'vmem_total': 512L,
      'vmem_used': 512L},
     {'cpu': 47,
      'status': 'Running',
      'vcpus': 1,
      'vm': 'ldap',
      'vmem_avail': 0L,
      'vmem_total': 512L,
      'vmem_used': 512L},
     {'cpu': 0,
      'status': 'Running',
      'vcpus': 1,
      'vm': 'lenny',
      'vmem_avail': 0L,
      'vmem_total': 512L,
      'vmem_used': 512L}]

    We can give a list of vms to list
    >>> hand.list_vm(['squeeze', 'lenny'])

    [{'cpu': 51,
      'status': 'Running',
      'vcpus': 1,
      'vm': 'squeeze',
      'vmem_avail': 0L,
      'vmem_total': 512L,
      'vmem_used': 512L},
     {'cpu': 0,
      'status': 'Running',
      'vcpus': 1,
      'vm': 'lenny',
      'vmem_avail': 0L,
      'vmem_total': 512L,
      'vmem_used': 512L}]
    
    # And a tags list too
    >>> hand.list_vm(['squeeze', 'lenny'], tags=['vmem_used', 'vcpus'])
    
    [{'vcpus': 1, 'vm': 'squeeze', 'vmem_used': 512L},
     {'vcpus': 1, 'vm': 'lenny', 'vmem_used': 512L}]