LoginSignup
0
0

More than 3 years have passed since last update.

REST API による Commvault へのログインおよび操作

Last updated at Posted at 2020-10-30

はじめに

Commvault では REST API による操作が可能です。
REST API のエンドポイントは CommServe ではなく Web Server になるので、REST API を使用するには Web Server のインストールが必要です。

Commvault の REST API 各コマンドの詳細は https://api.commvault.com/ を参照してください。

ログインおよびトークンの取得

手順 1) パスワードの Base64 エンコード文字列の取得

REST API でログインするときには、パスワードは Base64 エンコードされた文字列で渡す必要があります。
Linux であれば base64 コマンド等で生成することができます。

コマンド

echo -n password | base64

実行結果

# echo -n Password#123! | base64
UGFzc3dvcmQjMTIzIQ==

手順 2) ログイン

手順 1) で取得した Base64 エンコード文字列を使用して、ログインします。

コマンド

curl --location --request POST 'http://webserver/webconsole/api/Login' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  -d '{"username":"cvuser01", "password":"UGFzc3dvcmQjMTIzIQ=="}' \

実行結果 (json.tool を使用して整形しています)

# curl --location --request POST 'http://webserver/webconsole/api/Login' \
>  --header 'Accept: application/json' \
>  --header 'Content-Type: application/json' \
>  -d '{"username":"cvuser01", "password":"UGFzc3dvcmQjMTIzIQ=="}' \
> | python -m json.tool
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1197  100  1139  100    58   7084    360 --:--:-- --:--:-- --:--:--  7118
{
    "additionalResp": {
        "nameValues": [
            {
                "name": "USERNAME",
                "value": "cvuser01"
            }
        ]
    },
    "aliasName": "4",
    "capability": 4328650366975,
    "ccn": 0,
    "errList": [],
    "forcePasswordChange": false,
    "isAccountLocked": false,
    "loginAttempts": 0,
    "ownerOrganization": {
        "GUID": "95189d4e-4a7f-4cb3-969f-80d5871ac13f",
        "providerDomainName": "Commcell",
        "providerId": 0
    },
    "providerOrganization": {
        "GUID": "95189d4e-4a7f-4cb3-969f-80d5871ac13f",
        "providerDomainName": "Commcell",
        "providerId": 0
    },
    "providerType": 1,
    "remainingLockTime": 0,
    "smtpAddress": "foo@bar.com",
    "token": "QSDK 314187d6720cd125e92872bb9a34eb8ebb7b599c27157194f2d3cc6fec36fd313ff029d7b9865bbc83989a8ec7340653f0f10f8f3714e1ae6d4e260ba921913d1285979cb026b788789bd071b4a21091888c6b055272bd485225c5baacf97ea48739c594b2ebd8badeae8a5373be023f36a89f3a1cd25b63d0410a3a2cccffad1d4f9e82a11911b6dcf152071082671d98020a11cec41adc4bde60d207fd22dddaf1eb793f93589e7ce509933023999cf51a91010d2cb0665508287fc9c62b0939f821bc90b683baa4d41fc3d1a2fe1ac6abd802fb54e2449dc29d82fac6c89973dd973c406176bd264d82a50b70fc4aae56bca5a1edc0f0a10f7fceff8ef4e5d19b459d7f87d8873",
    "userGUID": "FF0AF463-2E34-45A1-8982-B18B93ECA6A1",
    "userName": "cvuser01"
}
#

ログインに成功すれば、トークン (QSDK ...) が表示されるで、以降の操作はこのトークンを使用します。

ログイン後の操作

ヘッダー部に Authtoken を指定して各コマンドを実行します。

例として GetId コマンドを実行します。GetId コマンドはクライアント名からそのクライアントの内部 ID を取得するためのコマンドです。

コマンド

curl --location --request GET 'http://10.1.0.32/webconsole/api/GetId?clientname=commserve' \
 --header 'Accept: application/json' \
 --header 'Authtoken: QSDK token'

実行例 (json.tool を使用して整形しています)

# curl --location --request GET 'http://10.1.0.32/webconsole/api/GetId?clientname=commserve' \
>  --header 'Accept: application/json' \
>  --header 'Authtoken: QSDK 314187d6720cd125e92872bb9a34eb8ebb7b599c27157194f2d3cc6fec36fd313ff029d7b9865bbc83989a8ec7340653f0f10f8f3714e1ae6d4e260ba921913d1285979cb026b788789bd071b4a21091888c6b055272bd485225c5baacf97ea48739c594b2ebd8badeae8a5373be023f36a89f3a1cd25b63d0410a3a2cccffad1d4f9e82a11911b6dcf152071082671d98020a11cec41adc4bde60d207fd22dddaf1eb793f93589e7ce509933023999cf51a91010d2cb0665508287fc9c62b0939f821bc90b683baa4d41fc3d1a2fe1ac6abd802fb54e2449dc29d82fac6c89973dd973c406176bd264d82a50b70fc4aae56bca5a1edc0f0a10f7fceff8ef4e5d19b459d7f87d8873' \
> | python -m json.tool
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    49  100    49    0     0    178      0 --:--:-- --:--:-- --:--:--   178
{
    "_type_": 3,
    "clientId": 2,
    "clientName": "commserve"
}
#

ログアウト

Logout コマンドでログアウトします。

コマンド

curl --location --request POST 'http://10.1.0.32/webconsole/api/Logout' \
 --header 'Accept: application/json' \
 --header 'Authtoken: QSDK 314187d6720cd125e92872bb9a34eb8ebb7b599c27157194f2d3cc6fec36fd313ff029d7b9865bbc83989a8ec7340653f0f10f8f3714e1ae6d4e260ba921913d1285979cb026b788789bd071b4a21091888c6b055272bd485225c5baacf97ea48739c594b2ebd8badeae8a5373be023f36a89f3a1cd25b63d0410a3a2cccffad1d4f9e82a11911b6dcf152071082671d98020a11cec41adc4bde60d207fd22dddaf1eb793f93589e7ce509933023999cf51a91010d2cb0665508287fc9c62b0939f821bc90b683baa4d41fc3d1a2fe1ac6abd802fb54e2449dc29d82fac6c89973dd973c406176bd264d82a50b70fc4aae56bca5a1edc0f0a10f7fceff8ef4e5d19b459d7f87d8873' \
 --header 'Content-Length: 0'

実行例

# curl --location --request POST 'http://10.1.0.32/webconsole/api/Logout' \
>  --header 'Accept: application/json' \
>  --header 'Authtoken: QSDK 314187d6720cd125e92872bb9a34eb8ebb7b599c27157194f2d3cc6fec36fd313ff029d7b9865bbc83989a8ec7340653f0f10f8f3714e1ae6d4e260ba921913d1285979cb026b788789bd071b4a21091888c6b055272bd485225c5baacf97ea48739c594b2ebd8badeae8a5373be023f36a89f3a1cd25b63d0410a3a2cccffad1d4f9e82a11911b6dcf152071082671d98020a11cec41adc4bde60d207fd22dddaf1eb793f93589e7ce509933023999cf51a91010d2cb0665508287fc9c62b0939f821bc90b683baa4d41fc3d1a2fe1ac6abd802fb54e2449dc29d82fac6c89973dd973c406176bd264d82a50b70fc4aae56bca5a1edc0f0a10f7fceff8ef4e5d19b459d7f87d8873' \
>  --header 'Content-Length: 0'
#
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0