Metadata-Version: 2.1
Name: ixnetwork-restpy
Version: 1.0.24
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.  

## What's New!
- The following is a summary of major changes. 
- Feb 2019 - 1.0.23
  - TestPlatform supports Connection Manager
  - iterator fixes
  - Session file upload and file down load functionality
  - Multivalue.Steps fixes that allow for setting/enabling steps such as port step
  - samples for connecting to Connection Manager platform and session file transfer
- Jan 2019 - 1.0.17
  - StatViewAssistant class that has ease of use features when working with statistics, such as row filters and condition checking, check out the sample.
  - container and iterator fixes with an iterator sample demonstrating some use cases
- Nov 2018 - 1.0.10
  - Base class infrastructure to allow for getting a list of device ids using regex searches that can be used on NGPF class methods that require device ids. See the sample ngpf_device_ids.py for multiple examples of retrieving device ids and using them in ngpf methods.


## 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
- it offers named parameters for all properties in the class
- each named parameter supports a regex to allow for **finding** specific instances
- this 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/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

## Change Log


