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?

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

はじめに

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'
#
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?