All Projects → EMCECS → python-ecsclient

EMCECS / python-ecsclient

Licence: other
Python library for interacting with the Dell ECS Management API

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to python-ecsclient

Oio Sds
High Performance Software-Defined Object Storage for Big Data and AI, that supports Amazon S3 and Openstack Swift
Stars: ✭ 465 (+3775%)
Mutual labels:  object-storage
Akubra
Simple solution to keep a independent S3 storages in sync
Stars: ✭ 79 (+558.33%)
Mutual labels:  object-storage
qscamel
qscamel is a command line tool to migrate data between different endpoint efficiently.
Stars: ✭ 34 (+183.33%)
Mutual labels:  object-storage
Lakefs
Git-like capabilities for your object storage
Stars: ✭ 847 (+6958.33%)
Mutual labels:  object-storage
Leto
A key value storage example powered by hashicorp raft and BadgerDB
Stars: ✭ 73 (+508.33%)
Mutual labels:  object-storage
Seaweedfs
SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. Filer supports Cloud Drive, cross-DC active-active replication, Kubernetes, POSIX FUSE mount, S3 API, S3 Gateway, Hadoop, WebDAV, encryption, Erasure Coding.
Stars: ✭ 13,380 (+111400%)
Mutual labels:  object-storage
Parse Server
API server module for Node/Express
Stars: ✭ 19,165 (+159608.33%)
Mutual labels:  object-storage
minio-dart
Unofficial MinIO Dart Client SDK that provides simple APIs to access any Amazon S3 compatible object storage server.
Stars: ✭ 42 (+250%)
Mutual labels:  object-storage
Sfs
The distributed object storage server used by PitchPoint Solutions to securely store billions of large and small files using minimal resources. Object data is stored in replicated volumes implemented like Facebooks Haystack Object Store. Object metadata which essentially maps an object name to a volume position is stored in an elasticsearch index.
Stars: ✭ 78 (+550%)
Mutual labels:  object-storage
ossperf
A lightweight tool for analyzing the performance and data integrity of object-based storage services
Stars: ✭ 67 (+458.33%)
Mutual labels:  object-storage
Minio Hs
MinIO Client SDK for Haskell
Stars: ✭ 39 (+225%)
Mutual labels:  object-storage
Cloudserver
Zenko CloudServer, an open-source Node.js implementation of the Amazon S3 protocol on the front-end and backend storage capabilities to multiple clouds, including Azure and Google.
Stars: ✭ 1,167 (+9625%)
Mutual labels:  object-storage
Dosa
DOSA is a data object abstraction layer
Stars: ✭ 172 (+1333.33%)
Mutual labels:  object-storage
Nitrite Java
Java embedded nosql document store
Stars: ✭ 538 (+4383.33%)
Mutual labels:  object-storage
upload-file-to-backblaze-b2-from-browser-example
Demonstrates calling the b2_upload_file Backblaze B2 Cloud Storage API from a web browser using AJAX.
Stars: ✭ 28 (+133.33%)
Mutual labels:  object-storage
Cortx
CORTX Community Object Storage is 100% open source object storage uniquely optimized for mass capacity storage devices.
Stars: ✭ 426 (+3450%)
Mutual labels:  object-storage
Storj
Ongoing Storj v3 development. Decentralized cloud object storage that is affordable, easy to use, private, and secure.
Stars: ✭ 1,278 (+10550%)
Mutual labels:  object-storage
php object storage
对象存储PHP简易代码,支持简单上传,删除,列表功能。支持网易,腾讯,七牛,UCloud,亚马逊
Stars: ✭ 17 (+41.67%)
Mutual labels:  object-storage
ufile-gosdk
UCloud 对象存储官方 SDK。
Stars: ✭ 34 (+183.33%)
Mutual labels:  object-storage
omnia
An open-source toolkit for deploying and managing high performance clusters for HPC, AI, and data analytics workloads.
Stars: ✭ 128 (+966.67%)
Mutual labels:  dell-emc

python-ecsclient

Build Status Read the docs Python Versions Version Coverage

This library is the Python Software Development Kit (SDK) for Dell EMC 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, 3 and 4
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_path No /tmp/ecsclient.tkn 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
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()

Add X-EMC-Override: "true" header

You can pass override_header to the client which means the user wants to add custom X-EMC-Override header into API request

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

Supported endpoints

The following table shows the supported endpoints per API version.

  v2 v3 `v4`_
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 ✓* ✓* ✓*
Tenant(Flex) ✓*
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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].