Metadata-Version: 2.1
Name: ixnetwork-restpy
Version: 1.0.20
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. For a list of recent minor changes see the change log at the bottom of this document.
- 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
* Fri Feb 1 07:03:52 2019 -0800: fix for get files when using chassis
* Tue Jan 29 17:20:23 2019 -0800: reduce retrieved property set, fix clear overlays
* Tue Jan 29 16:32:01 2019 -0800: add clear all overlays
* Tue Jan 29 16:24:21 2019 -0800: allow overlay on multivalue
* Mon Jan 14 13:55:37 2019 -0800: statview assistant and iterator fixes
* Wed Dec 12 14:10:44 2018 -0800: update doc main page with gettting started sample
* Wed Dec 12 12:43:16 2018 -0800: Merge branch 'main' of https://ixca-gitswarm.lbj.is.keysight.com/IxNetwork-FW/ixnetwork_python_client into main
* Wed Dec 12 12:42:50 2018 -0800: log current version number of ixnetwork-restpy
* Wed Dec 12 12:01:39 2018 -0800: Updated start page to show a sample from samples collection instead of static sample
* Wed Dec 12 11:31:19 2018 -0800: new samples.json
* Wed Dec 12 11:28:21 2018 -0800: add getting started sample
* Mon Dec 10 17:29:33 2018 -0800: remove unused code
* Mon Dec 10 17:29:00 2018 -0800: Merge branch 'main' of https://ixca-gitswarm.lbj.is.keysight.com/IxNetwork-FW/ixnetwork_python_client into main
* Mon Dec 10 17:28:17 2018 -0800: fix spelling
* Mon Dec 10 14:25:54 2018 -0800: increased samples column width to avoid scroll bars
* Mon Dec 10 09:20:42 2018 -0800: add statistics samples
* Mon Dec 10 09:20:27 2018 -0800: fix class property get to use external property name
* Mon Dec 10 09:19:09 2018 -0800: update build script
* Fri Dec 7 08:13:14 2018 -0800: build failed: packages-1.0.0.2 branch://packages/ixnetwork_python_client/main anchor:ixnetwork_python_client
* Fri Dec 7 06:49:47 2018 -0800: fix sample


