Install & Compatibility
Where this runs
tested against v3.4.2.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.910 runs
installs and imports cleanly · install 0.0s · import 0.000s · 25.7MB
glibcpy 3.10–3.910 runs
installs and imports cleanly · install 3.1s · import 0.000s · 26MB
26MB installed
● package 26MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
PyPowerStore
✓ import PyPowerStore
✗ from pypowerstore.client import PowerStoreClient
This quickstart initializes the PowerStoreClient and demonstrates fetching system information and a list of volumes. Ensure your PowerStore IP, username, and password are provided, preferably via environment variables. For production, manage SSL certificates properly instead of `verify_ssl=False`.
import os
from pypowerstore.client import PowerStoreClient
POWERSTORE_HOST = os.environ.get('POWERSTORE_HOST', 'your_powerstore_ip')
POWERSTORE_USER = os.environ.get('POWERSTORE_USER', 'admin')
POWERSTORE_PASSWORD = os.environ.get('POWERSTORE_PASSWORD', 'password')
if not all([POWERSTORE_HOST, POWERSTORE_USER, POWERSTORE_PASSWORD]):
print("Please set POWERSTORE_HOST, POWERSTORE_USER, and POWERSTORE_PASSWORD environment variables.")
exit(1)
# Initialize the client. For lab/dev environments, verify_ssl=False is common.
# For production, ensure proper SSL certificate handling by configuring trusted CAs.
client = PowerStoreClient(
host=POWERSTORE_HOST,
username=POWERSTORE_USER,
password=POWERSTORE_PASSWORD,
verify_ssl=False # Set to True and configure trusted CAs in production environments
)
try:
# Example: Get all systems
systems = client.system.get()
if systems:
print(f"Successfully connected to PowerStore: System ID: {systems[0]['id']}, Name: {systems[0]['name']}, Model: {systems[0]['model']}")
else:
print("No systems found.")
# Example: Get all volumes (if any exist)
volumes = client.volumes.get()
print(f"Found {len(volumes)} volumes.")
if volumes:
print(f"First volume ID: {volumes[0]['id']}, Name: {volumes[0]['name']}")
except Exception as e:
print(f"An error occurred: {e}")
Debug
Known issues
breakingMajor versions of `pypowerstore` (e.g., 2.x to 3.x) are designed to correspond with specific PowerStore OS versions. Using a library version incompatible with your PowerStore OS can lead to API call failures or unexpected behavior due to schema or endpoint changes.fixAlways check the `pypowerstore` documentation or release notes for the recommended PowerStore OS version. Ensure your installed `pypowerstore` version matches your PowerStore OS version.
affects: All major version upgrades (e.g., v2.x to v3.x, v3.x to v4.x)
gotchaSSL certificate verification is `True` by default, but many enterprise PowerStore deployments use self-signed certificates or internal CAs not trusted by default. The `verify_ssl=False` parameter is often used in examples for simplicity but is insecure for production.fixFor production, set `verify_ssl=True` and configure your Python environment to trust the PowerStore's certificate. This typically involves using `REQUESTS_CA_BUNDLE` environment variable or by adding the CA certificate to your system's trust store.
affects: All versions
gotchaThe PowerStore API requires specific user roles and permissions for certain operations. While an 'admin' user is often used in examples, in production, users with least privilege should be configured for security.fixEnsure the user account used for API access has the necessary roles (e.g., 'Storage Admin', 'Monitor') assigned on the PowerStore array to perform desired operations. Refer to PowerStore documentation for required privileges per API endpoint.
affects: All versions
Upgrade
Version history
3.4.2.0latest on PyPI · released Mar 17, 2026
Audit
Dependencies
requestsrequiredHTTP client for API communication.
urllib3requiredUnderlying HTTP connection management for requests.
packagingrequiredUsed for package version comparison and management.
pyvmomirequiredRequired for certain PowerStore integrations, potentially related to VMware environments.