Skip to main content

A library for interacting with the ECS Management API

Project description

Build Status Read the docs Python Versions Version Coverage

This library is the Python Software Development Kit (SDK) for Dell EMC Elastic Cloud Storage (ECS). It allows developers to interact with the ECS Management API. You can find the ECS API specification here.

This library is the successor of ECS Minion.

Quick Start

You can install python-ecsclient using pip.

$ pip install python-ecsclient

Creating an instance of the ECSClient class allows the following arguments:

Name

Required

Default Value

Description

version

Yes

None

Version of the target ECS system. Options are 2 and 3

username

No

None

The username used to fetch the ECS token

password

No

None

The password used to fetch the ECS token

token

No

None

Pass a token to ECSClient (username/password are ignored then)

ecs_endpoint

Yes

None

The ECS API endpoint, ex: https://192.168.0.149:4443

token_endpoint

No

None

The ECS API endpoint, ex: https://192.168.0.149:4443/login

verify_ssl

No

False

Whether to check a host’s SSL certificate

token_filename

No

ecstoken.tkn

The filename of the temporary token

token_location

No

/tmp

The location to store the temporary token file

request_timeout

No

15.0

Stop waiting for a response after a given number of seconds, this is a decimal value. Ex: 10.0 is ten seconds

cache_token

No

True

Whether to cache the token, by default this is true you should only switch this to false when you want to directly fetch a token for a user

This is how you can instantiate the Client class and use the library.

from ecsclient.client import Client

client = Client('3',
                username='ecsadmin@internal',
                password='PASSWORD',
                token_endpoint='https://192.168.0.149:4443/login',
                ecs_endpoint='https://192.168.0.149:4443')

print(client.user_info.whoami())

Take a look at our documentation to find a list of all supported ECS endpoints and services.

Supply a token

You can pass an authentication token directly to the client which means you don’t need to supply a username/password.

client = Client('3',
                token='ALAcbGZtbjh6eVB3eUF1TzFEZWNmc0M2VVl2QjBVPQM',
                ecs_endpoint='https://192.168.1.146:4443')

Token caching

By default, the client caches the auth token. But you can disable caching by setting the cache_token parameter to false.

client = Client('3',
                username='someone',
                password='password',
                token_endpoint='https://192.168.1.146:4443/login',
                ecs_endpoint='https://192.168.1.146:4443',
                cache_token=False)

Alternatively, when token caching is enabled, you may want to force the client to obtain a new token on the next call. To do so, you can remove the cached token.

client.remove_cached_token()

Supported endpoints

The following table shows the supported endpoints per API version.

v2

v3

Configuration

Certificate

Configuration Properties

✓*

✓*

Licensing

Feature

Syslog

✓*

Snmp

✓*

CAS

CAS User Profile

✓*

✓*

File System Access

NFS

Metering

Billing

~

~

Migration

Transformation

Monitoring

Capacity

✓*

✓*

Dashboard

✓*

✓*

Events

✓*

✓*

Alerts

Multi-tenancy

Namespace

✓*

✓*

Geo-Replication

Replication Group

Temporary Failed Zone

✓*

✓*

Provisioning

Base URL

✓*

✓*

Bucket

✓*

Data Store

✓*

Node

~

~

Storage Pool

Virtual Data Center

VDC Keystore

Support

Call Home

User Management

Authentication Provider

~

~

Password Group (Swift)

Secret Key

Secret Key Self-Service

User (Object)

User (Management)

✓*

✓*

Other

Who am I

Legend:

Supported and tested

✓*

Supported but not tested yet

~

Partially supported

Not supported yet

Not available in this API version

Development

Getting Started

Assuming that you have Python and virtualenv installed, set up your environment and install the required dependencies like this instead of the pip install python-ecsclient defined above:

$ git clone https://github.com/EMCECS/python-ecsclient.git
$ cd python-ecsclient
$ virtualenv venv
...
$ . venv/bin/activate
$ pip install -r requirements.txt

Running Tests

You can run tests in all supported Python versions using tox. By default, it will run all of the unit tests, but you can also specify your own nosetests options. Note that this requires that you have all supported versions of Python installed, otherwise you must pass -e or run the nosetests command directly:

$ tox
$ tox -e py27,py35 tests/functional

You can also run individual tests with your default Python version:

$ nosetests tests/unit

License

This software library is released to you under the Apache License 2.0. See LICENSE for more information.


ECS is an Dell EMC product, trademarked, copyrighted, etc.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-ecsclient-1.1.2.tar.gz (55.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page