Socket
Socket
Sign inDemoInstall

tcpwave-client

Package Overview
Dependencies
0
Maintainers
1
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    tcpwave-client

Client for interacting with Tcpwave's IPAM


Maintainers
1

Readme


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

Keywords

FAQs


Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc