Client for interacting with Tcpwave's IPAM
Project description
TCPWave's IPAM Client
Python client for communication with Tcpwave's IPAM.
Pre-requisites ############## Basic Authentication is not supported. Only certificates based authentication is supported. So client must have a proper certificate and these certificates must be added to IPAM.\
Certificate files required:
- client certificate.
- client key.
Supported Operations #################### Following operations are supported:
- Create/list/detail/delete Network
- Create/list/detail/delete Subnet
- Fetches Next Available IP in the Subnet
- Create/delete IP Object
Installing library ################## Run below command from python virtual environment::
pip install tcpwave-client
Sample Examples ###############
Create Network
Below is a complete program showing the use of this library.
This example shows how to create network in IPAM using this library::
from client.networks import NetworkManager
from client.exceptions import APICallFailedException
import json
def create_network():
"""
Create test network
:return:
"""
try:
nw_create_payload = {
'network_address': '153.168.0.0/16',
'name': 'Test Network 3',
'organization_name': 'Tcpwave',
'provider': provider
}
rsp = NetworkManager.create_network(network=json.dumps(nw_create_payload))
print(str(rsp))
except APICallFailedException as ex:
print(ex.msg)
if __name__ == "__main__":
provider = {
'cert': '/path/to/cert/client.crt',
'key': '/path/to/key/client.key',
'host': '192.168.0.116'
}
create_network()
List Network
This snippet shows only the complete payload required for thr API call to work for listing all networks::
def networks_list():
"""
List all networks
:return:
"""
try:
list_payload = {
'provider': {
'cert': '/path/to/client.crt',
'key': '/path/to/client.key',
'host': '192.168.0.116'
}
}
rsp = NetworkManager.list_all_networks(network=json.dumps(list_payload))
print("Networks Count : " + str(len(rsp)))
for i in range(0, len(rsp)):
print(str(rsp[i]))
except APICallFailedException as ex:
print(ex.msg)
Delete Network
This example shows the deletion of a network::
def test_network_delete():
"""
Deletes given network
:return:
"""
try:
nw_create_payload = {
'address': '153.168.0.0/16',
'organization_name': 'Tcpwave',
'provider': {
'cert': '/path/to/client.crt',
'key': '/path/to/client.key',
'host': '192.168.0.116'
}
}
rsp = NetworkManager.delete_network(network=json.dumps(nw_create_payload))
print(str(rsp))
except APICallFailedException as ex:
print(ex.msg)
Create Subnet
This example shows creation of a subnet::
def subnet_create():
"""
Creates test subnet
:return:
"""
try:
subnet_payload = {
'provider': {
'cert': '/path/to/client.crt',
'key': '/path/to/client.key',
'host': '192.168.0.116'
},
'organization_name': 'Tcpwave',
'name': 'Test Subnet 1',
'router_address': '153.168.0.1',
'network_address': '153.168.0.0/16',
'primary_domain': 'test.tcpwave.com'
}
rsp = NetworkManager.create_subnet(subnet=json.dumps(subnet_payload))
print(str(rsp))
except APICallFailedException as ex:
print(ex.msg)
Next Free IP
This fetch the next free IP::
def next_available_ip():
"""
Fetches next available ip
:return:
"""
try:
subnet_payload = {
'provider': {
'cert': '/path/to/client.crt',
'key': '/path/to/client.key',
'host': '192.168.0.116'
},
'organization_name': 'Tcpwave',
'subnet_address': '153.168.0.0/16'
}
rsp = NetworkManager.get_next_available_ip(subnet=json.dumps(subnet_payload))
print('Next available IP : ', str(rsp))
return str(rsp)
except APICallFailedException as ex:
print(ex.msg)
Creates IP Object
This example shows creating an object.::
def create_object():
"""
Creates IP Object
:return:
"""
try:
ip_payload = {
'provider': {
'cert': '/path/to/client.crt',
'key': '/path/to/client.key',
'host': '192.168.0.116'
},
'organization_name': 'Tcpwave',
'subnet_address': '153.168.0.0/16',
'ip_address': '153.168.0.5',
'name': 'tst obj 1',
'domain_name': 'test.tcpwave.com'
}
rsp = NetworkManager.create_ip(ip_payload=json.dumps(ip_payload))
print(str(rsp))
except APICallFailedException as ex:
print(ex.msg)
Deletes Object
This example shows deletion of an object::
def delete_object(ip):
"""
Releases the ip
:return:
"""
try:
ip_payload = {
'provider': {
'cert': '/path/to/client.crt',
'key': '/path/to/client.key',
'host': '192.168.0.116'
},
'organization_name': 'Tcpwave',
'ip_address': ip
}
rsp = NetworkManager.release_ip(ip_payload=json.dumps(ip_payload))
print(str(rsp))
except APICallFailedException as ex:
print(ex.msg)
1.0.2 (2020-04-15)
- packaging restructure
- imports reordering for bug fix
1.0.1 (2020-04-15)
- Updated README.rst with usage examples
1.0.0 (2020-04-15)
- code cleanup
0.0.1 (2020-04-15)
- Added connector to send API requests to Tcpwave's IPAM
- First release on PyPI.
- Supports operation as follows:
- Create/list/detail/delete Network
- Create/list/detail/delete Subnet
- Fetches Next Available IP in the Subnet
- Create/delete IP Object
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.