Racktables API
Python module for accessing and manipulating racktables objects.
- ipaddr module - https://code.google.com/p/ipaddr-py/
This module must be installed along with rtapi.
Simply copy rtapi and ipaddr into your projects folder or in place from where your project importing python modules.
NAME
rtapi
FILE
/home/wire/Projects/rtapi/__init__.py
DESCRIPTION
PyRacktables
Simple python Class for manipulation with objects in racktables database. For proper function, some methods need ipaddr module (https://pypi.python.org/pypi/ipaddr)
PACKAGE CONTENTS
CLASSES
RTObject
class RTObject
| Ractables object. Require database object as argument.
| | Methods defined here:
| | AddObject(self, name, server_type_id, asset_no, label)
| Add new object to racktables
| | AssignChassisSlot(self, chassis_name, slot_number, server_name)
| Assign server objects to server chassis
| | CleanIPAddresses(self, object_id, ip_addresses, device)
| Clean unused ip from object. ip addresses is list of IP addresses configured on device (device) on host (object_id)
| | CleanIPv6Addresses(self, object_id, ip_addresses, device)
| Clean unused ipv6 from object. ip_addresses mus be list of active IP addresses on device (device) on host (object_id)
| | CleanUnusedInterfaces(self, object_id, interface_list)
| Remove unused old interfaces
| | CleanVirtuals(self, object_id, virtual_servers)
| Clean dead virtuals from hypervisor. virtual_servers is list of active virtual servers on hypervisor (object_id)
| | GetAllServerChassisId(self)
| Get list of all server chassis IDs
| | GetAttributeId(self, searchstring)
| Search racktables database and get attribud id based on search string as argument
| | GetAttributeValue(self, object_id, attr_id)
| Search racktables database and get attribute values
| | GetDictionaryId(self, searchstring)
| Search racktables dictionary using searchstring and return id of dictionary element
| | GetIP4Pools(self)
| Get result list of IPv4 Pools
| | GetIP6Pools(self)
| Get result list of IPv6 Pools
| | GetInterfaceId(self, object_id, interface)
| Find id of specified interface
| | GetInterfaceName(self, object_id, interface_id)
| Find name of specified interface. Required object_id and interface_id argument
| | GetObjectComment(self, object_id)
| Get object comment
| | GetObjectId(self, name)
| Translate Object name to object id
| | GetObjectLabel(self, object_id)
| Get object label
| | GetObjectName(self, object_id)
| Translate Object ID to Object Name
| | GetObjectNameByAsset(self, service_tag)
| Translate Object AssetTag to Object Name
| | GetObjectTags(self, object_id)
| Get object tags
| | GetPortDeviceNameById(self, port_id)
| Get Device name and Port Name by port ID, return dictionary device_name, port_name
| | InsertAttribute(self, object_id, object_tid, attr_id, string_value, uint_value, name)
| Add or Update object attribute. | Require 6 arguments: object_id, object_tid, attr_id, string_value, uint_value, name
| | InsertLog(self, object_id, message)
| Attach log message to specific object
| | InterfaceAddIpv4IP(self, object_id, device, ip)
| Add/Update IPv4 IP on interface
| | InterfaceAddIpv6IP(self, object_id, device, ip)
| Add/Update IPv6 IP on interface
| | InterfaceAddMAC(self, object_id, interface, mac)
| Add MAC address to interface
| | LinkNetworkInterface(self, object_id, interface, switch_name, interface_switch)
| Link two devices togetger
| | LinkVirtualHypervisor(self, object_id, virtual_id)
| Assign virtual server to correct hypervisor
| | ListObjects(self)
| List all objects
| | ObjectExistName(self, name)
| Check if object exist in database based on name
| | ObjectExistST(self, service_tag)
| Check if object exist in database based on asset_no
| | ObjectExistSTName(self, name, asset_no)
| Check if object exist in database based on name
| | UpdateNetworkInterface(self, object_id, interface)
| Add network interfece to object if not exist
| | UpdateObjectComment(self, object_id, comment)
| Update comment on object
| | UpdateObjectLabel(self, object_id, label)
| Update label on object
| | UpdateObjectName(self, object_id, name)
| Update name on object
| | __init__(self, dbobject)
| Initialize Object
| | db_fetch_lastid(self)
| SQL function which return ID of last inserted row.
| | db_insert(self, sql)
| SQL insert/update function. Require sql query as parameter
| | db_query_all(self, sql)
| SQL query function, return all rows. Require sql query as parameter
| | db_query_one(self, sql)
| SQL query function, return one row. Require sql query as parameter
DATA
__all__ = ['RTObject']
__author__ = 'Robert Vojcik (robert@vojcik.net)'
__copyright__ = 'OpenSource'
__license__ = 'GPLv2'
__version__ = '0.0.1'
VERSION
0.0.1
AUTHOR
Robert Vojcik (robert@vojcik.net)
import ipaddr
import MySQLdb
import rtapi
# Create connection to database
try:
# Create connection to database
db = MySQLdb.connect(host='hostname',port=3306, passwd='mypass',db='racktables',user='racktables)
except MySQLdb.Error ,e:
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
# Initialize rtapi with database connection
rt = rtapi.RTObject(db)
# List all objects from database
print rt.ListObjects()