Skip to main content

Python wrapper for Commvault api

Project description

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.

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

pinkopy-2.1.2.tar.gz (11.3 kB view details)

Uploaded Source

File details

Details for the file pinkopy-2.1.2.tar.gz.

File metadata

  • Download URL: pinkopy-2.1.2.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pinkopy-2.1.2.tar.gz
Algorithm Hash digest
SHA256 8be594a35bce418dd5326952290fc748c986bdc917ea0972fe3f241bbaac419d
MD5 95eb74b9743f27d43025a31495524834
BLAKE2b-256 bbe17589740bf65e59df966c75b5751f8621bc988515c1954ca71ccb3b1a0c32

See more details on using hashes here.

Supported by

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