Metadata-Version: 2.1
Name: ixnetwork-restpy
Version: 1.0.6
Summary: IxNetwork REST API Python Client
Home-page: https://keysight.com
Author: Keysight ISG IxNetwork team
Author-email: ixnetwork@keysight.com
License: MIT
Keywords: ixnetwork l2l3 test tool ixia automation
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Requires-Python: >=2.7, <4
Description-Content-Type: text/markdown
Requires-Dist: requests

# IxNetwork REST API Client
This package is an IxNetwork object oriented pure python client package over a REST transport.  


## Features
### Static classes
- classes are generated from the latest released version of IxNetwork
  - the only class that can be directly instantiated is the TestPlatform class
  - all other classes are accessed via a child property on the parent class
  - classes have helper methods depending on the type of class
	- classes that represent a required node are automatically populated with one and only one instance of the node's data
	- classes that represent a user managed list have `add, remove, find` helper methods
	- classes that represent a system managed list have a `find` helper method
  - every instantiated class encapsulates instances retrieved from the server 
  - encapsulated instances can be accessed using iterators or indexes
  - class iterator/index support includes: `__iter__ __next__ __getitem__ __len__`

### Find method
- the main premise of the package is based around the `.find()` method
- offers named parameters for all properties in the class
- named parameters can be populated with regex to allow for **finding** specific instances
- allows the encapsulated data to be reduced to specific instances that you are interested in
- some examples:
	- `IxNetwork.Vport.find(Type='ethernet')` uses regex on the server to find and return all vports whose type is **ethernet**
	- `IxNetwork.Vport.find(Name='^Ethernet - 001$')` uses regex on the server to find and return a vport whose name exactly matches **Ethernet - 001**
	- `IxNetwork.Vport.find(ConnectionState='connectedLinkUp')` uses regex on the server to find and return all vports whose state is **connectedLinkUp**

### Documentation
- documentation is inlined in all generated classes  
  - documentation is also available via a static documentation browser distributed with the package under the docs folder
  - there is no need to connect to a running instance of IxNetwork to get API documentation

### Samples
- samples are distributed with the package under the tests folder
- these samples are also used to sanity test the package before posting it to pypi

## Limitations
- python support >= 2.7, 3.x
- IxNetwork support >= 8.42

## Getting Started
Install the package (**pip install -U ixnetwork-restpy**) and review the samples under ixnetwork_restpy/tests/...  

The samples demonstrate how to do the following:
- create a **TestPlatform**
- get an IxNetwork **Sessions** object and either find a session or add a new one
- get the root **Ixnetwork** object of the hierarchy
- add virtual ports, topologies, traffic

Finally visit the [OpenIxia IxNetwork restpy site](https://github.com/OpenIxia/IxNetwork/tree/master/RestApi/Python/RestPy) for  in depth end-to-end samples that demonstrate the following:
- building a configuration
	- from scratch
	- from an existing IxNetwork configuration
- running the configuration
	- connecting ports to hardware
	- starting protocols
	- starting traffic
- getting statistics
	- port stats
	- traffic stats


