Skip to content

CML でノードライセンスを超過した場合のエラー

以前に CML でノードライセンスを消費するノード・消費しないノード というメモを書きました。 CML は「同時に起動出来るノード数」は「インストールされているノードライセンス数」で決定されます。 これはあくまで「同時起動数」であり、起動しなければ無制限にノードを配置出来ます。 ライセンスがインストールされていない場合の挙動はバージョンによって異なります。

バージョン ライセンス未インストール時の挙動
2.8.0 未満 ノードは 1 台も起動出来ない (サードパーティノードであっても起動出来ない)
2.8.0 以降 ノードは 5 台まで起動出来る (6 台以上起動するとエラーになる)

ノードライセンスを超過した場合、Web UI では以下のようなエラーが表示されます。

file

今回は API アクセスしている場合のエラーをメモしておきます。 API アクセスには Python + virl2-client を用います。

検証環境

対象 バージョン
macOS 15.3
python 3.12.7
Cisco CML 2.8.0
virl2-client 2.8.0

サンプルコード

6 台のノードを起動するサンプルコードです。

sample.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env python

from virl2_client import ClientLibrary
from virl2_client.exceptions import APIError

address = "10.0.0.1"
username = "admin"
password = "password"

client = ClientLibrary(address, username, password, ssl_verify=False)
client.is_system_ready(wait=True)

lab = client.create_lab()

r1 = lab.create_node("r1", "iosv", 100, 0)
r2 = lab.create_node("r2", "iosv", 200, 0)
r3 = lab.create_node("r3", "iosv", 300, 0)
r4 = lab.create_node("r4", "iosv", 400, 0)
r5 = lab.create_node("r5", "iosv", 500, 0)
r6 = lab.create_node("r6", "iosv", 600, 0)

try:
    lab.start()
except APIError as e:
    print(e)

実行例

以下のエラーになりました。

% python sample.py
SSL Verification disabled
Client error - 5 of 5 node licenses are in use.