Skip to main content

pinkopy

Build Status PyPI Version PyPI Downloads Join the chat at https://gitter.im/theherk/pinkopy

pinkopy is a Python wrapper for the Commvault api. Support for Commvault v11 api was added in v2.0.0.

Installation

from PyPI

pip install pinkopy

from source

git clone git@github.com:theherk/pinkopy.git
pip install pinkopy

Usage

from pinkopy import CommvaultSession

config = {
    'service': 'service url',
    'user': 'username',
    'pw': 'password'
}

with CommvaultSession(**config) as commvault:
    client_jobs = commvault.jobs.get_jobs('1234', job_filter="Backup")
    cust_jobs = commvault.jobs.get_subclient_jobs(client_jobs, '12345678', last=3)
    # multi status
    for job in cust_jobs:
        job_id = job['jobSummary']['jobId']
        job_details = commvault.jobs.get_job_details('1234', job_id)
        job_vmstatus = commvault.jobs.get_job_vmstatus(job_details)

pinkopy doesn't have to be used as a context manager.

commvault = CommvaultSession(**config)

pinkopy used to have all the methods on one class. Now, the methods are divided among several classes and are similar to how the api, itself, is laid out. However, the methods that existed when the modularity was introduced, a shim was also introduced to be backwards compatible. So those methods can be called on the CommvaultSession instance directly.

client_properties = commvault.clients.get_client_properties('2234')
# or the old way
client_properties = commvault.get_client_properties('2234')

This way, you old code works. In addition, you can instantiate just the session you need if you prefer.

with SubclientSession(**config) as subclients:
    subclients = subclients.get_subclients('2234')

Cache

The biggest introduction in 2.0.0 was an improved take on caching. Rather than implementing our own ill-conceived cache, we implemented a great ttl_cache that uses lru_cache from the core library. It is from a library called cachetools. The implementation allows you to pass in a list of methods you want to use this cache or provides very sensible defaults if you don't.

The cache, for the duration of cache_ttl, will respond with the previous return value without running the function. So, for instance, the get_clients call could take several seconds on the first call, but only a few milliseconds on following calls.

By default, we cache for 20 minutes, but you can set this value, too.

cache_methods = ['get_clients', 'get_subclients']
with CommvaultSession(cache_ttl=120, cache_methods=cache_methods, **config) as commvault:
    clients1 = commvault.clients.get_clients() # slow
    clients2 = commvault.clients.get_clients() # fast
    # ... fast

Or turn off the cache entirely.

with CommvaultSession(use_cache=False, **config) as commvault:
    clients1 = commvault.clients.get_clients() # slow
    clients2 = commvault.clients.get_clients() # slow but fresh

Contribution

Please do contribute to this repository. It currently only supports a small set of the api provided by Commvault. However, if you do contribute, please follow these guidelines.

Guidelines

  • Use Gitflow. Your pull requests must come from a Gitflow branch.
    • feature/yourfeature
    • bugfix/issuenumber
  • ONLY imperative commit messages. Line one is one imperative, brief sentence. Following lines may have more details.
  • Builds must pass (which should be pretty easy right now, since there are no tests).
  • Never commit binary files.
  • Make sure you are committing with your Github user.

Name

The name was originally going to be commpy, but then I liked commiepy. From here it was only a small leap to pinkopy, a tribute to a dear friend of mine.

Metadata

Release files for commvault-client 2.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for commvault-client 2.3.0
File Size Uploaded Provenance Actions
commvault_client-2.3.0.tar.gz 12.4 kB Without provenance Details for commvault_client-2.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for commvault-client 2.3.0
File Interpreter ABI Platform Actions
commvault_client-2.3.0-py3-none-any.whl Python 3 none any Details for commvault_client-2.3.0-py3-none-any.whl

Total release size: 28.9 kB

Release files / commvault_client-2.3.0.tar.gz

Download URL commvault_client-2.3.0.tar.gz
Size 12.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1cfa6cf1dbd96acde8eea2016c3730dcf9dc240c32b32706392f760266316af7
BLAKE2b-256 checksum
How to use checksums
b1044a13809a83f9d8c9e770e0e525565d7b3e3e2547e99b33c67b6239a3ae31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.4

Release files / commvault_client-2.3.0-py3-none-any.whl

Download URL commvault_client-2.3.0-py3-none-any.whl
Size 16.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f2016cecb10019b9f5089977b32e74b231ef999c54843b51ad34ae91c0ef2eba
BLAKE2b-256 checksum
How to use checksums
89ca114ffa068a3dce40c2c74f175c9f9f71337744f1eba7c259284bb8dccc11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.4

Security for commvault-client 2.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page