SoftLayer CLIを含むSoftLayer APIのパッケージは、リリース版がPyPIから、開発版がGitHubから提供されています。
GitHub版では、CLIがモジュールごとのファイルではなくてコマンド毎のファイルになるなど、ライブラリの構成が変わっています。機能を追加したり管理したりしやすくするためでしょう。
また、GitHub版の方が開発版で新しいはずなのですが、バージョン番号が古くなっていたりします。謎です。
PyPI版
インストール
$ sudo pip install softlayer
バージョン表示
$ sl --version
v3.3.1
Usage
$ sl <module> [<args>...]
ファイル
$ ls -l CLI/modules/
total 544
-rw-r--r--@ 1 user staff 356 Nov 3 23:14 __init__.py
-rw-r--r--@ 1 user staff 5679 Nov 3 23:14 cdn.py
-rw-r--r--@ 1 user staff 6459 Nov 3 23:14 config.py
-rwxr-xr-x@ 1 user staff 10400 Nov 3 23:14 dns.py*
-rw-r--r--@ 1 user staff 925 Nov 3 23:14 filters.py
-rwxr-xr-x@ 1 user staff 14813 Nov 3 23:14 firewall.py*
-rw-r--r--@ 1 user staff 5193 Nov 3 23:14 globalip.py
-rw-r--r--@ 1 user staff 908 Nov 3 23:14 help.py
-rw-r--r--@ 1 user staff 5913 Nov 3 23:14 image.py
-rw-r--r--@ 1 user staff 6057 Nov 3 23:14 iscsi.py
-rwxr-xr-x@ 1 user staff 20026 Nov 3 23:14 loadbal.py*
-rw-r--r--@ 1 user staff 16126 Nov 3 23:14 messaging.py
-rw-r--r--@ 1 user staff 6261 Nov 3 23:14 metadata.py
-rw-r--r--@ 1 user staff 1484 Nov 3 23:14 nas.py
-rw-r--r--@ 1 user staff 3376 Nov 3 23:14 rwhois.py
-rw-r--r--@ 1 user staff 39683 Nov 3 23:14 server.py
-rw-r--r--@ 1 user staff 4582 Nov 3 23:14 snapshot.py
-rw-r--r--@ 1 user staff 4757 Nov 3 23:14 sshkey.py
-rwxr-xr-x@ 1 user staff 5185 Nov 3 23:14 ssl.py*
-rw-r--r--@ 1 user staff 9760 Nov 3 23:14 subnet.py
-rw-r--r--@ 1 user staff 1240 Nov 3 23:14 summary.py
-rw-r--r--@ 1 user staff 8155 Nov 3 23:14 ticket.py
-rw-r--r--@ 1 user staff 5015 Nov 3 23:14 vlan.py
-rwxr-xr-x@ 1 user staff 42295 Nov 3 23:14 vs.py*
GitHub版
インストール
$ sudo pip install git+git://github.com/softlayer/softlayer-python.git
バージョン表示
$ sl --version
SoftLayer Command-line Client, version v3.3.0
Usage
$ sl [OPTIONS] COMMAND [ARGS]...
ファイル
$ ls -l CLI/
total 136
-rw-r--r-- 1 user staff 215 Jan 14 05:04 __init__.py
drwxr-xr-x 6 user staff 204 Jan 14 05:04 billing/
-rw-r--r-- 1 user staff 2449 Jan 14 05:04 call_api.py
drwxr-xr-x 10 user staff 340 Jan 14 05:04 cdn/
drwxr-xr-x 5 user staff 170 Jan 14 05:04 config/
-rw-r--r-- 1 user staff 6463 Jan 14 05:04 core.py
drwxr-xr-x 12 user staff 408 Jan 14 05:04 dns/
-rw-r--r-- 1 user staff 4202 Jan 14 05:04 environment.py
-rw-r--r-- 1 user staff 1289 Jan 14 05:04 exceptions.py
drwxr-xr-x 8 user staff 272 Jan 14 05:04 firewall/
-rw-r--r-- 1 user staff 9540 Jan 14 05:04 formatting.py
drwxr-xr-x 8 user staff 272 Jan 14 05:04 globalip/
-rw-r--r-- 1 user staff 1390 Jan 14 05:04 helpers.py
drwxr-xr-x 8 user staff 272 Jan 14 05:04 image/
drwxr-xr-x 7 user staff 238 Jan 14 05:04 iscsi/
drwxr-xr-x 19 user staff 646 Jan 14 05:04 loadbal/
-rw-r--r-- 1 user staff 2402 Jan 14 05:04 metadata.py
drwxr-xr-x 20 user staff 680 Jan 14 05:04 mq/
drwxr-xr-x 5 user staff 170 Jan 14 05:04 nas/
-rw-r--r-- 1 user staff 9675 Jan 14 05:04 routes.py
drwxr-xr-x 5 user staff 170 Jan 14 05:04 rwhois/
drwxr-xr-x 16 user staff 544 Jan 14 05:04 server/
drwxr-xr-x 8 user staff 272 Jan 14 05:04 snapshot/
drwxr-xr-x 8 user staff 272 Jan 14 05:04 sshkey/
drwxr-xr-x 8 user staff 272 Jan 14 05:04 ssl/
drwxr-xr-x 8 user staff 272 Jan 14 05:04 subnet/
-rw-r--r-- 1 user staff 1282 Jan 14 05:04 summary.py
-rw-r--r-- 1 user staff 1937 Jan 14 05:04 template.py
drwxr-xr-x 9 user staff 306 Jan 14 05:04 ticket/
drwxr-xr-x 17 user staff 578 Jan 14 05:04 virt/
drwxr-xr-x 5 user staff 170 Jan 14 05:04 vlan/
それぞれのフォルダの下に、モジュールごとのコマンドに対応したファイルがあります。例えばsl vs list
であれば、CLI/virt/list.pyというファイルが対応しています。
CLI/routes.py
にインポートされるモジュールが記載されているので、モジュールを追加する際はこのファイルを編集します。
$ ls -l CLI/virt/
total 144
-rw-r--r-- 1 user staff 1124 Jan 14 05:04 __init__.py
-rw-r--r-- 1 user staff 652 Jan 14 05:04 cancel.py
-rw-r--r-- 1 user staff 1330 Jan 14 05:04 capture.py
-rw-r--r-- 1 user staff 10393 Jan 14 05:04 create.py
-rw-r--r-- 1 user staff 3383 Jan 14 05:04 create_options.py
-rw-r--r-- 1 user staff 705 Jan 14 05:04 credentials.py
-rw-r--r-- 1 user staff 4426 Jan 14 05:04 detail.py
-rw-r--r-- 1 user staff 3556 Jan 14 05:04 dns.py
-rw-r--r-- 1 user staff 1562 Jan 14 05:04 edit.py
-rw-r--r-- 1 user staff 2589 Jan 14 05:04 list.py
-rw-r--r-- 1 user staff 787 Jan 14 05:04 network.py
-rw-r--r-- 1 user staff 3379 Jan 14 05:04 power.py
-rw-r--r-- 1 user staff 665 Jan 14 05:04 ready.py
-rw-r--r-- 1 user staff 1129 Jan 14 05:04 reload.py
-rw-r--r-- 1 user staff 1505 Jan 14 05:04 upgrade.py