Skip to main content

SolidFire Python SDK

Project description

Python SDK library for interacting with SolidFire Element API

pypy python format downloads license

Current Release

Version 1.7.0.152

Description

The SolidFire Python SDK is a collection of libraries that facilitate integration and orchestration between proprietary systems and third-party applications. The Python SDK allows developers to deeply integrate SolidFire system API with the Python programming language. The SolidFire Python SDK reduces the amount of additional coding time required for integration.

Compatibility

Component

Version

SolidFire Element OS

10.0 - 12.2

Getting Help

If you have any questions or comments about this product, contact ng-sf-host-integrations-sdk@netapp.com or reach out to the online developer community at ThePub. Your feedback helps us focus our efforts on new features and capabilities.

Documentation

Latest Docs

Release Notes

Installation

From PyPI

pip install solidfire-sdk-python

From Source

Note: It is recommended using virtualenv for isolating the python environment to only the required libraries.

Alternatively, for development purposes or to inspect the source, the following will work:

Unzip the tar.gz file downloaded from the pypi portal into your directory.
cd solidfire-sdk-python
pip install -e ".[dev, test, docs, release]"
python setup.py install

Then append the location of this directory to the PYTHONPATH environment variable to use the SDK in other python scripts:

export PYTHONPATH=$PYTHONPATH:/path/to/sf-python-sdk/

That’s it – you are ready to start interacting with your SolidFire cluster using Python!

Examples

Step 1 - Build an Element object using the factory

This is the preferred way to construct the Element object. The factory will make a call to the SolidFire cluster using the credentials supplied to test the connection. It will also set the version to communicate with based on the highest number supported by the SDK and Element OS. Optionally, you can choose to set the version manually and whether or not to verify SSL. Read more about it in the ElementFactory documentation.

from solidfire.factory import ElementFactory

# Use ElementFactory to get a SolidFireElement object.
sfe = ElementFactory.create("ip-address-of-cluster", "username", "password")

Step 2 - Call the API method and retrieve the result

All service methods in SolidFireElement call API endpoints and they all return result objects. The naming convention is [method_name]_result. For example, list_accounts returns a list_accounts_result object which has a property called accounts that can be iterated.

This example sends a request to list accounts then pulls the first account from the add_account_result object.

# Send the request and wait for the result then pull the AccountID
list_accounts_result = sfe.list_accounts()
account = list_accounts_result.accounts[0];

More examples using the Python SDK

from solidfire.factory import ElementFactory

# Create connection to SF Cluster
sfe = ElementFactory.create("ip-address-of-cluster", "username", "password")

# --------- EXAMPLE 1 - CREATE AN ACCOUNT -----------
# Send the request with required parameters and gather the result
add_account_result = sfe.add_account(username="example-account")
# Pull the account ID from the result object
account_id = add_account_result.account_id

# --------- EXAMPLE 2 - CREATE A VOLUME -------------
# Send the request with required parameters and gather the result
create_volume_result = sfe.create_volume(name="example-volume",
                                         account_id=account_id,
                                         total_size=1000000000,
                                         enable512e=False)
# Pull the VolumeID off the result object
volume_id = create_volume_result.volume_id

# --------- EXAMPLE 3 - LIST ONE VOLUME FOR AN ACCOUNT -------------
# Send the request with desired parameters and pull the first volume in the
# result
volume = sfe.list_volumes(accounts=[account_id], limit=1).volumes[0]
# pull the iqn from the volume
iqn = volume.iqn

# --------- EXAMPLE 3 - MODIFY A VOLUME -------------
# Send the request with the desired parameters
sfe.modify_volume(volume_id=volume_id, total_size=2000000000)

More Examples

More specific examples are available here

Logging

To configure logging responses, execute the following:

import logging
from solidfire import common
common.setLogLevel(logging.DEBUG)

To access the logger for the Element instance:

from solidfire.common import LOG

Timeouts

Connection timeout (useful for failing fast when a host becomes unreachable):

from solidfire.factory import ElementFactory
sfe = ElementFactory.create("ip-address-of-cluster", "username", "password")
sfe.timeout(600)

Read timeout (useful for extending time for a service call to return):

from solidfire.factory import ElementFactory
sfe = ElementFactory.create("ip-address-of-cluster", "username", "password")
sf.read_timeout(600)

License

Copyright © 2020, 2021 NetApp, Inc. All rights reserved.

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

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

solidfire-sdk-python-1.7.0.152.tar.gz (223.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

solidfire_sdk_python-1.7.0.152-py2.py3-none-any.whl (230.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file solidfire-sdk-python-1.7.0.152.tar.gz.

File metadata

  • Download URL: solidfire-sdk-python-1.7.0.152.tar.gz
  • Upload date:
  • Size: 223.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for solidfire-sdk-python-1.7.0.152.tar.gz
Algorithm Hash digest
SHA256 574b8600627bba8955e6b2ba3ac4d524954a9e669ebd755bed2121bdd0a2587b
MD5 609c39b71784acca65e4c4afa0051ddd
BLAKE2b-256 eb0987bcf291620005acf54d75b6eeeaaf1d95cb793fc3a6e7b2ee4d93f118b4

See more details on using hashes here.

File details

Details for the file solidfire_sdk_python-1.7.0.152-py2.py3-none-any.whl.

File metadata

  • Download URL: solidfire_sdk_python-1.7.0.152-py2.py3-none-any.whl
  • Upload date:
  • Size: 230.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for solidfire_sdk_python-1.7.0.152-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1fee79fe5d7d82c9b3f06716bf67d00fad8a50c89905a7efda1515e6ea43fa0f
MD5 90598626007ab76276f8683a672bc87c
BLAKE2b-256 5bef85bd10b031a9172db344cf4ad6e0cb1829668920f229fdb8f5a11df149dc

See more details on using hashes here.

Supported by

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