hpe3par-sdk 3.0
HPE Alletra MP, 9000, Primera and 3PAR Software Development Kit for Python

# HPE Alletra MP, 9000, Primera and 3PAR Software Development Kit for Python

This is a Client library that can talk to the HPE Alletra MP, 9000 and Primera
and 3PAR Storage array. The HPE Alletra 9000 and Primera and 3PAR storage
array has a REST web service interface and a command line interface. This
client library implements a simple interface for talking with either
interface, as needed. The python Requests library is used to communicate
with the REST interface.
The python paramiko library is used to communicate with the command line 
interface over an SSH connection.


# Requirements

HPE 3PAR: 3.1.3 MU1 or later.

HPE Primera: 4.5 or later.

HPE Alletra 9000: 9.5 or later.

HPE Alletra MP: 10.5 or later.

WSAPI service should be enabled on the HPE Alletra MP, 9000, Primera and 3PAR storage array


# Capabilities

* Create Volume
* Delete Volume
* Get all Volumes
* Get a Volume
* Modify a Volume
* Copy a Volume
* Create a Volume Snapshot
* Create CPG
* Delete CPG
* Get all CPGs
* Get a CPG
* Get a CPG’s Available Space
* Create a VLUN
* Delete a VLUN
* Get all VLUNs
* Get a VLUN
* Create a Host
* Delete a Host
* Get all Hosts
* Get a Host
* Get VLUNs for a Host
* Find a Host
* Find a Host Set for a Host
* Get all Host Sets
* Get a Host Set
* Create a Host Set
* Delete a Host Set
* Modify a Host Set
* Add Hosts to Host Set
* Remove Hosts from Host Set
* Get all Ports
* Get iSCSI Ports
* Get FC Ports
* Get IP Ports
* Set Volume Metadata
* Get Volume Metadata
* Get All Volume Metadata
* Find Volume Metadata
* Remove Volume Metadata
* Create a Volume Set
* Delete a Volume Set
* Modify a Volume Set
* Add Volumes to Volume Set
* Remove Volumes from Volume Set
* Get a Volume Set
* Get all Volume Sets
* Find one Volume Set containing a specified Volume
* Find all Volume Sets containing a specified Volume
* Create a QOS Rule
* Modify a QOS Rule
* Delete a QOS Rule
* Set a QOS Rule
* Query a QOS Rule
* Query all QOS Rules
* Get a Task
* Get all Tasks
* Get a Patch
* Get all Patches
* Get WSAPI Version
* Get WSAPI Configuration Info
* Get Storage System Info
* Get Overall System Capacity
* Stop Online Physical Copy
* Query Online Physical Copy Status
* Stop Offline Physical Copy
* Query Remote Copy Info
* Query a Remote Copy Group
* Query all Remote Copy Groups
* Create a Remote Copy Group
* Delete a Remote Copy Group
* Modify a Remote Copy Group
* Add a Volume to a Remote Copy Group
* Get Remote Copy Group Volumes
* Get Remote Copy Group Volume
* Remove a Volume from a Remote Copy Group
* Start Remote Copy on a Remote Copy Group
* Stop Remote Copy on a Remote Copy Group
* Synchronize a Remote Copy Group
* Recover a Remote Copy Group from a Disaster
* Enable/Disable Config Mirroring on a Remote Copy Target
* Promote Virtual Copy
* Create Snapshot Schedule
* Delete SnapShot Schedule
* Modify Snapshot Schedule
* Suspend Snapshot Schedule
* Resume Snapshot Schedule
* Get Snapshot Schedule
* Admit Remote Copy Links
* Dismiss Remote Copy Links
* Start Remote Copy Service
* Add Target to Remote Copy Group
* Remove Target from Remote Copy Group
* Remote Copy Group Status Check
* Get Remote Copy Group Volumes
* Get Remote Copy Group Volume


# Installation

To install::

```
$ sudo pip install .
```

Unit Tests To run all unit tests::

```
$ tox -e py27
```

To run a specific test::

```
$ tox -e py27 -- test/file.py:class_name.test_method_name
```

To run all unit tests with code coverage::

```
$ tox -e cover
```

The output of the coverage tests will be placed into the `coverage` dir.


# Folders

* docs – contains the documentation
* hpe3par_sdk -- the actual client.py library
* test – unit tests


# Documentation

To build the documentation::

```
$ tox -e docs
```

To view the built documentation point your browser to::

```
docs/html/index.html
```


# Running Simulators

The unit tests should automatically start/stop the simulators. To start
them manually use the following commands. To stop them, use ‘kill’.
Starting them manually before running unit tests also allows you to watch
the debug output.

* WSAPI::

```
$ python test/HPE3ParMockServer_flask.py -port 5001 -user <USERNAME> -password <PASSWORD> -debug
```

* SSH::

```
$ python test/HPE3ParMockServer_ssh.py [port]
```