Python SDK library for interacting with SolidFire Element API
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.
|SolidFire Element OS||10.0 - 12.2|
If you have any questions or comments about this product, open an issue on our GitHub repo or reach out to the online developer community at ThePub. Your feedback helps us focus our efforts on new features and capabilities.
pip install solidfire-sdk-python
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:
git clone firstname.lastname@example.org:solidfire/solidfire-sdk-python.git cd solidfire-sdk-python git checkout develop pip install -e ".[dev, test, docs, release]" python setup.py install
Then append the location of this directory to the
environment variable to use the SDK in other python scripts:
That's it -- you are ready to start interacting with your SolidFire cluster using Python!
This video is a walkthrough of getting started with the SolidFire Python SDK. You will see how install the SDK, connect to a SolidFire cluster, and use it to perform simple operations like retrieving and modifying accounts and volumes.
Element object using the factoryStep 1 - Build an
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;
More examples using the Python SDK
from solidfire.factory import ElementFactory from solidfire.models import * # 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", initiator_secret=CHAPSecret(secret="asdfghjkl")) # 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 # 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 specific examples are available here
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
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.connect_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") sfe.timeout(600)
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
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.