Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

CVPySDK (Commvault の Developer SDK for Python) について

はじめに

CVPySDK は Commvault の各種操作を Python から実行するための SDK です。
CVPySDK をインストールすることにより、他の Commvault のモジュールをインストールすることなく Commvault の操作をすることが可能です。

ソース等は https://github.com/Commvault/cvpysdk から参照できます。

CVPySDK の前提条件

  • Python v3 以降
  • Python のパッケージ (future、requests および xmltodict)
    pip で依存コンポーネントとしてインストールされますので、事前に個別でインストールする必要はありません。
  • Commvault V11 SP7 以降
    内部的には Commvault の Web Server に対して REST API を発行しますので、CVPySDK を使用するためには Web Server がセットアップされている必要があります。

CVPySDK のインストール

CVPySDK は pip からインストールすることが可能です。

c:\>pip install cvpysdk
Collecting cvpysdk
  Using cached cvpysdk-11.20-py2.py3-none-any.whl (842 kB)
Collecting future
  Using cached future-0.18.2.tar.gz (829 kB)
Collecting requests
  Using cached requests-2.24.0-py2.py3-none-any.whl (61 kB)
Collecting xmltodict
  Using cached xmltodict-0.12.0-py2.py3-none-any.whl (9.2 kB)
Collecting certifi>=2017.4.17
  Using cached certifi-2020.6.20-py2.py3-none-any.whl (156 kB)
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1
  Using cached urllib3-1.25.10-py2.py3-none-any.whl (127 kB)
Collecting chardet<4,>=3.0.2
  Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting idna<3,>=2.5
  Using cached idna-2.10-py2.py3-none-any.whl (58 kB)
Using legacy setup.py install for future, since package 'wheel' is not installed.
Installing collected packages: future, certifi, urllib3, chardet, idna, requests, xmltodict, cvpysdk
    Running setup.py install for future ... done
Successfully installed certifi-2020.6.20 chardet-3.0.4 cvpysdk-11.20 future-0.18.2 idna-2.10 requests-2.24.0 urllib3-1.25.10 xmltodict-0.12.0
WARNING: You are using pip version 20.1.1; however, version 20.2.2 is available.
You should consider upgrading via the 'c:\program files\python38\python.exe -m pip install --upgrade pip' command.

c:\>

pip list で cvpysdk パッケージがインストールされていることを確認します。

c:\>pip list
Package    Version
---------- ---------
certifi    2020.6.20
chardet    3.0.4
cvpysdk    11.20
future     0.18.2
idna       2.10
pip        20.1.1
requests   2.24.0
setuptools 47.1.0
urllib3    1.25.10
xmltodict  0.12.0
WARNING: You are using pip version 20.1.1; however, version 20.2.2 is available.
You should consider upgrading via the 'c:\program files\python38\python.exe -m pip install --upgrade pip' command.

c:\>

CVPySDK による操作

いくつかの操作を試してみます。

Commcell モジュールのインポート

>>> from cvpysdk.commcell import Commcell
>>>

ログイン

# ログイン (指定するホスト名は CommServe ホストではなく Web Server ホストです)
>>> commcell = Commcell("webserver_hostname","admin","password")
# ログイン情報の確認
>>> print(commcell)
Commcell class instance of Commcell: "commserve", for User: "admin"
>>>

クライアント情報の表示

>>> print(commcell.clients)
S. No.         Client

  1     commserve
  2     webserver

qcommand の実行 (ジョブ情報の表示 : qlist job)

# qlist job の実行
>>> qcmd = commcell.execute_qcommand("qlist job")
>>>
# 実行結果の表示
>>> print(qcmd.text)
JOBID    OPERATION    STATUS     PHASE             JOB DESCRIPTION    COMPLETE PERCENTAGE
-----    ---------    ------     -----             ---------------    -------------------
598      Backup       Waiting    Backup                               0
600      Backup       Pending    Scan                                 5
778      Aux Copy     Waiting    Auxiliary Copy                       0

>>>

スクリプトの実行 (ジョブの実行 qoperation execute)

# スクリプト (C:\scripts\backup01.xml) の読込み
>>> with open("C:\scripts\backup01.xml") as qcmd_file:
...      qcmd_xml = qcmd_file.read()
...
>>>
# qoperation execute の実行
>>> qcmd = commcell.execute_qcommand("qoperation execute", qcmd_xml)
>>>
# 実行結果の表示
>>> import json
>>> qcmd_response = qcmd.json()
>>> print (qcmd_response)
{'taskId': 167, 'jobIds': ['779']}
>>>
# 

ログアウト

>>> commcell.logout()
'User logged out'
>>>
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?