nifty-cloud-sdk 1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +112 -0
- data/Gemfile +4 -0
- data/INSTALL +30 -0
- data/LICENSE.txt +58 -0
- data/README.rdoc +375 -0
- data/Rakefile +61 -0
- data/lib/NIFTY.rb +405 -0
- data/lib/NIFTY/Cloud.rb +24 -0
- data/lib/NIFTY/Cloud/availability_zones.rb +23 -0
- data/lib/NIFTY/Cloud/certificates.rb +283 -0
- data/lib/NIFTY/Cloud/images.rb +134 -0
- data/lib/NIFTY/Cloud/instances.rb +372 -0
- data/lib/NIFTY/Cloud/keypairs.rb +76 -0
- data/lib/NIFTY/Cloud/load_balancers.rb +433 -0
- data/lib/NIFTY/Cloud/security_groups.rb +357 -0
- data/lib/NIFTY/Cloud/volumes.rb +140 -0
- data/lib/NIFTY/config.rb +41 -0
- data/lib/NIFTY/exceptions.rb +32 -0
- data/lib/NIFTY/responses.rb +19 -0
- data/lib/NIFTY/version.rb +3 -0
- data/nifty-cloud-sdk.gemspec +28 -0
- data/sample/availability_zones/describe-availability-zones.rb +37 -0
- data/sample/certificate/create-ssl-certificate.rb +41 -0
- data/sample/certificate/delete-ssl-certificate.rb +28 -0
- data/sample/certificate/describe-ssl-certificate-attribute.rb +58 -0
- data/sample/certificate/describe-ssl-certificates.rb +49 -0
- data/sample/certificate/download-ssl-certificate.rb +31 -0
- data/sample/certificate/modify-ssl-certificate-attribute.rb +29 -0
- data/sample/certificate/register-corporate-info-for-certificate.rb +57 -0
- data/sample/certificate/upload-ssl-certificate.rb +32 -0
- data/sample/images/create-image.rb +33 -0
- data/sample/images/delete-image.rb +26 -0
- data/sample/images/describe-images.rb +70 -0
- data/sample/images/modify-image-attribute.rb +33 -0
- data/sample/instances/cancel_copy_instances.rb +26 -0
- data/sample/instances/copy-instances.rb +41 -0
- data/sample/instances/describe-instance-attribute.rb +78 -0
- data/sample/instances/describe-instances.rb +100 -0
- data/sample/instances/modify-instance-attribute.rb +30 -0
- data/sample/instances/reboot-instances.rb +29 -0
- data/sample/instances/run-instances.rb +104 -0
- data/sample/instances/start-instances.rb +36 -0
- data/sample/instances/stop-instances.rb +35 -0
- data/sample/instances/terminate-instances.rb +34 -0
- data/sample/keypairs/create-key-pair.rb +31 -0
- data/sample/keypairs/delete-key-pair.rb +28 -0
- data/sample/keypairs/describe-key-pairs.rb +31 -0
- data/sample/load_balancers/configure-health-check.rb +41 -0
- data/sample/load_balancers/create-load-balancer.rb +35 -0
- data/sample/load_balancers/delete-load-balancer.rb +28 -0
- data/sample/load_balancers/deregister-instances-from-load-balancer.rb +35 -0
- data/sample/load_balancers/describe-instance-health.rb +36 -0
- data/sample/load_balancers/describe-load-balancers.rb +89 -0
- data/sample/load_balancers/register-instances-with-load-balancer.rb +33 -0
- data/sample/load_balancers/register-port-with-load-balancer.rb +37 -0
- data/sample/load_balancers/set-filter-for-load-balancer.rb +38 -0
- data/sample/load_balancers/update-load-balancer.rb +33 -0
- data/sample/security_groups/authorize-security-group-ingress.rb +36 -0
- data/sample/security_groups/create-security-group.rb +29 -0
- data/sample/security_groups/delete-security-group.rb +28 -0
- data/sample/security_groups/deregister-instances-from-security-group.rb +31 -0
- data/sample/security_groups/describe-security-activities.rb +33 -0
- data/sample/security_groups/describe-security-groups.rb +59 -0
- data/sample/security_groups/register-instances-with-security-group.rb +31 -0
- data/sample/security_groups/revoke-security-group-ingress.rb +36 -0
- data/sample/security_groups/update-security-group.rb +30 -0
- data/sample/volumes/attach-volumes.rb +34 -0
- data/sample/volumes/create-volume.rb +38 -0
- data/sample/volumes/delete-volume.rb +28 -0
- data/sample/volumes/describe-volumes.rb +44 -0
- data/sample/volumes/detach-volume.rb +35 -0
- data/test/test_Cloud.rb +186 -0
- data/test/test_Cloud_availability_zones.rb +50 -0
- data/test/test_Cloud_certificates.rb +627 -0
- data/test/test_Cloud_images.rb +284 -0
- data/test/test_Cloud_instances.rb +941 -0
- data/test/test_Cloud_keypairs.rb +177 -0
- data/test/test_Cloud_load_balancers.rb +1183 -0
- data/test/test_Cloud_responses.rb +43 -0
- data/test/test_Cloud_security_groups.rb +699 -0
- data/test/test_Cloud_volumes.rb +325 -0
- data/test/test_helper.rb +23 -0
- metadata +275 -0
data/CHANGELOG
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
-----------------------------
|
2
|
+
ニフティクラウド SDK for Ruby
|
3
|
+
-----------------------------
|
4
|
+
|
5
|
+
|
6
|
+
2011-07-31 SDK for Ruby Version.1.7
|
7
|
+
-------------------------------------------------------------------------------
|
8
|
+
* 新規リリース
|
9
|
+
- API Version 1.7 に対応
|
10
|
+
|
11
|
+
オリジナルからの変更点
|
12
|
+
|
13
|
+
* lib/NIFTY.rb
|
14
|
+
- ファイル名を"AWS.rb"から"NIFTY.rb"へ変更
|
15
|
+
- Baseクラスのinitializeオプションを追加
|
16
|
+
- pathlist、pathhashlistのバリデーションを追加
|
17
|
+
- pathlist、pathhashlistで、パラメータ値がnilまたは空の場合は除外する処理を追加
|
18
|
+
- pathkvlistを削除
|
19
|
+
- リクエストでタイムアウトが出た場合、リトライするよう変更
|
20
|
+
- 署名バージョン、署名生成に使用するアルゴリズムを選択できるよう変更
|
21
|
+
- サーバーからのエラー応答に対応するエラークラスを1つのクラスに統合
|
22
|
+
|
23
|
+
* lib/NIFTY
|
24
|
+
- ディレクトリ名を"AWS"から"NIFTY"へ変更
|
25
|
+
- Autoscaling/を削除
|
26
|
+
- Cloudwatch/を削除
|
27
|
+
- ELB/を削除
|
28
|
+
- RDS/を削除
|
29
|
+
- Autoscaling.rbを削除
|
30
|
+
- Cloudwatch.rbを削除
|
31
|
+
- ELB.rbを削除
|
32
|
+
- RDS.rbを削除
|
33
|
+
|
34
|
+
* lib/NIFTY/Cloud
|
35
|
+
- "AWS/EC2"の名前を"NIFTY/Cloud"へ変更
|
36
|
+
- console.rbを削除
|
37
|
+
- devpay.rbを削除
|
38
|
+
- elastic_ips.rbを削除
|
39
|
+
- image_attributes.rbを削除
|
40
|
+
- password.rbを削除
|
41
|
+
- products.rbを削除
|
42
|
+
- snapshots.rbを削除
|
43
|
+
- spot_instance_requests.rbを削除
|
44
|
+
- spot_prices.rbを削除
|
45
|
+
- subnets.rbを削除
|
46
|
+
- tags.rbを削除
|
47
|
+
|
48
|
+
* lib/NIFTY/Cloud.rb
|
49
|
+
- initializeでconfigの値をセットするよう変更
|
50
|
+
|
51
|
+
* lib/NIFTY/config.rb
|
52
|
+
- 新規作成(ユーザー定義値の設定)
|
53
|
+
|
54
|
+
* lib/NIFTY/exceptions.rb
|
55
|
+
- ConfigurationErrorを追加
|
56
|
+
- ResponseFormatErrorを追加
|
57
|
+
- ResponseErrorを追加(APIエラーレスポンスの共通エラークラス)
|
58
|
+
- エラー毎のエラークラスを削除
|
59
|
+
|
60
|
+
* lib/NIFTY/version.rb
|
61
|
+
- VERSIONを変更
|
62
|
+
|
63
|
+
* lib/NIFTY/Cloud/availability_zones
|
64
|
+
- 指定不可パラメータを除外できるよう変更
|
65
|
+
|
66
|
+
* lib/NIFTY/Cloud/certificates.rb
|
67
|
+
- 新規作成(SSL作成・削除など)
|
68
|
+
|
69
|
+
* lib/NIFTY/Cloud/images.rb
|
70
|
+
- バリデーションの追加
|
71
|
+
- 指定不可パラメータを除外できるよう変更
|
72
|
+
- deregister_imageを削除
|
73
|
+
- register_imageを削除
|
74
|
+
- modity_image_attributeを追加
|
75
|
+
|
76
|
+
* lib/NIFTY/Cloud/instances.rb
|
77
|
+
- バリデーションの追加
|
78
|
+
- 指定不可パラメータを除外できるよう変更
|
79
|
+
- reset_instance_attributeを削除
|
80
|
+
- monitor_instancesを削除
|
81
|
+
- unmonitor_instancesを削除
|
82
|
+
- describe_reserved_instancesを削除
|
83
|
+
- describe_reserved_instances_offeringsを削除
|
84
|
+
- purchase_reserved_instances_offeringを削除
|
85
|
+
|
86
|
+
* lib/NIFTY/Cloud/keypairs.rb
|
87
|
+
- バリデーションの追加
|
88
|
+
|
89
|
+
* lib/NIFTY/Cloud/load_balancers.rb
|
90
|
+
- AWS/ELB/load_balancers.rbから移動
|
91
|
+
- バリデーションの追加
|
92
|
+
- 指定不可パラメータを除外できるよう変更
|
93
|
+
- disable_availability_zones_for_load_balancerを削除
|
94
|
+
- enable_availability_zones_for_load_balancerを削除
|
95
|
+
- resister_port_with_load_balancerを追加
|
96
|
+
- update_load_balancerを追加
|
97
|
+
- set_filter_for_load_balancerを追加
|
98
|
+
|
99
|
+
* lib/NIFTY/Cloud/security_groups.rb
|
100
|
+
- バリデーションの追加
|
101
|
+
- 指定不可パラメータを除外できるよう変更
|
102
|
+
- deregister_instances_from_security_groupを追加
|
103
|
+
- register_instances_with_security_groupを追加
|
104
|
+
- describe_security_activitiesを追加
|
105
|
+
- update_security_groupを追加
|
106
|
+
|
107
|
+
* lib/NIFTY/Cloud/volumes.rb
|
108
|
+
- バリデーションの追加
|
109
|
+
- 指定不可パラメータを除外できるよう変更
|
110
|
+
|
111
|
+
|
112
|
+
Copyright 2011 NIFTY Corporation All Rights Reserved.
|
data/Gemfile
ADDED
data/INSTALL
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
-----------------------------
|
2
|
+
ニフティクラウド SDK for Ruby
|
3
|
+
-----------------------------
|
4
|
+
|
5
|
+
ニフティクラウド SDK for Ruby のインストールは、以下の手順で行います。
|
6
|
+
|
7
|
+
1. ソースアーカイブの解凍
|
8
|
+
|
9
|
+
% unzip NIFTY_Cloud_SDK_for_Ruby.zip
|
10
|
+
% cd NIFTY_Cloud_SDK_for_Ruby
|
11
|
+
|
12
|
+
2. 依存ライブラリの解決 ※bundlerがインストールされていること
|
13
|
+
|
14
|
+
% bundle install
|
15
|
+
|
16
|
+
3. テストコードの実行
|
17
|
+
|
18
|
+
% rake test
|
19
|
+
|
20
|
+
4. nifty-cloud-sdk のgemパッケージ作成
|
21
|
+
|
22
|
+
% rake build
|
23
|
+
|
24
|
+
5. nifty-cloud-sdk をインストール(gemへ登録)
|
25
|
+
|
26
|
+
% rake install
|
27
|
+
|
28
|
+
|
29
|
+
Copyright 2011 NIFTY Corporation All Rights Reserved.
|
30
|
+
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.co.jp>.
|
2
|
+
You can redistribute it and/or modify it under either the terms of the GPL
|
3
|
+
(see COPYING.txt file), or the conditions below:
|
4
|
+
|
5
|
+
1. You may make and give away verbatim copies of the source form of the
|
6
|
+
software without restriction, provided that you duplicate all of the
|
7
|
+
original copyright notices and associated disclaimers.
|
8
|
+
|
9
|
+
2. You may modify your copy of the software in any way, provided that
|
10
|
+
you do at least ONE of the following:
|
11
|
+
|
12
|
+
a) place your modifications in the Public Domain or otherwise
|
13
|
+
make them Freely Available, such as by posting said
|
14
|
+
modifications to Usenet or an equivalent medium, or by allowing
|
15
|
+
the author to include your modifications in the software.
|
16
|
+
|
17
|
+
b) use the modified software only within your corporation or
|
18
|
+
organization.
|
19
|
+
|
20
|
+
c) rename any non-standard executables so the names do not conflict
|
21
|
+
with standard executables, which must also be provided.
|
22
|
+
|
23
|
+
d) make other distribution arrangements with the author.
|
24
|
+
|
25
|
+
3. You may distribute the software in object code or executable
|
26
|
+
form, provided that you do at least ONE of the following:
|
27
|
+
|
28
|
+
a) distribute the executables and library files of the software,
|
29
|
+
together with instructions (in the manual page or equivalent)
|
30
|
+
on where to get the original distribution.
|
31
|
+
|
32
|
+
b) accompany the distribution with the machine-readable source of
|
33
|
+
the software.
|
34
|
+
|
35
|
+
c) give non-standard executables non-standard names, with
|
36
|
+
instructions on where to get the original software distribution.
|
37
|
+
|
38
|
+
d) make other distribution arrangements with the author.
|
39
|
+
|
40
|
+
4. You may modify and include the part of the software into any other
|
41
|
+
software (possibly commercial). But some files in the distribution
|
42
|
+
are not written by the author, so that they are not under this terms.
|
43
|
+
|
44
|
+
They are gc.c(partly), utils.c(partly), regex.[ch], st.[ch] and some
|
45
|
+
files under the ./missing directory. See each file for the copying
|
46
|
+
condition.
|
47
|
+
|
48
|
+
5. The scripts and library files supplied as input to or produced as
|
49
|
+
output from the software do not automatically fall under the
|
50
|
+
copyright of the software, but belong to whomever generated them,
|
51
|
+
and may be sold commercially, and may be aggregated with this
|
52
|
+
software.
|
53
|
+
|
54
|
+
6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
55
|
+
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
56
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
57
|
+
PURPOSE.
|
58
|
+
|
data/README.rdoc
ADDED
@@ -0,0 +1,375 @@
|
|
1
|
+
= ニフティクラウド SDK for Ruby
|
2
|
+
|
3
|
+
== 概要
|
4
|
+
|
5
|
+
ニフティクラウド SDK for Ruby は、サーバーの作成・起動・停止やステータス参照などの操作を可能にする Ruby API です。
|
6
|
+
この SDK を利用して、ニフティクラウド管理アプリケーションの開発、リソースコントロールの自動化などをより容易に実現することができます。
|
7
|
+
|
8
|
+
詳しくは、下記のページをご覧ください。
|
9
|
+
|
10
|
+
http://cloud.nifty.com/api/#ruby
|
11
|
+
|
12
|
+
== ニフティクラウド SDK for Ruby に含まれているもの
|
13
|
+
|
14
|
+
* ニフティクラウド Ruby ライブラリ
|
15
|
+
ニフティクラウドAPI(REST)との通信、処理を実装した Ruby API です。
|
16
|
+
RESTの知識がなくても、お使いの Ruby 環境を利用してアプリケーションの開発をすることが可能です。
|
17
|
+
|
18
|
+
* サンプルコード
|
19
|
+
アプリケーション開発のためのライブラリ利用例を内包しています。
|
20
|
+
|
21
|
+
* テストコード
|
22
|
+
テスト用のファイルを内包しています。
|
23
|
+
|
24
|
+
* ドキュメント
|
25
|
+
* README.rdoc
|
26
|
+
ニフティクラウド SDK for Ruby の説明を記述しています。
|
27
|
+
|
28
|
+
* INSTALL
|
29
|
+
インストール手順について記述しています。
|
30
|
+
|
31
|
+
* LICENSE.txt
|
32
|
+
Ruby License の内容になります。
|
33
|
+
|
34
|
+
* CHANGELOG
|
35
|
+
変更箇所について記述しています。
|
36
|
+
|
37
|
+
* パッケージ関連ファイル
|
38
|
+
* Gemfile
|
39
|
+
* Rakefile
|
40
|
+
* nifty-cloud-sdk.gempsec
|
41
|
+
|
42
|
+
== 動作環境
|
43
|
+
|
44
|
+
* Ruby 1.8.7
|
45
|
+
* RubyGems 1.7.2
|
46
|
+
* bundler 1.0.12
|
47
|
+
* xml-simple 1.0.12
|
48
|
+
* mocha 0.9.9
|
49
|
+
* test-unix 2.1.2
|
50
|
+
* test-spec 0.10.0
|
51
|
+
* rcov 0.9.9
|
52
|
+
* perftools 0.5.4
|
53
|
+
* yard 0.6.2
|
54
|
+
|
55
|
+
== 導入
|
56
|
+
|
57
|
+
=== API 認証キーの取得
|
58
|
+
|
59
|
+
ニフティクラウド SDK for Ruby を利用する前に、ニフティクラウドのアカウントを取得する必要があります。
|
60
|
+
|
61
|
+
詳しくは、下記のページをご覧ください。
|
62
|
+
|
63
|
+
http://cloud.nifty.com/api/#sdk
|
64
|
+
|
65
|
+
=== ニフティクラウド SDK for Ruby のインストール
|
66
|
+
|
67
|
+
INSTALL ファイルをご覧ください。
|
68
|
+
|
69
|
+
|
70
|
+
== 利用方法
|
71
|
+
|
72
|
+
ニフティクラウド SDK for Ruby を利用するためのインタフェースクラスは NIFTY::Cloud::Base です。
|
73
|
+
|
74
|
+
=== 準備
|
75
|
+
|
76
|
+
API認証キー(公開キー・秘密キー)は、事前に必ず設定してください。
|
77
|
+
※それ以外の設定できる値は、環境に合わせて変更してください。
|
78
|
+
|
79
|
+
設定方法は下記方法の何れかで設定できます。
|
80
|
+
|
81
|
+
* 環境変数
|
82
|
+
* 定義ファイル
|
83
|
+
* オブジェクト生成時の引数
|
84
|
+
|
85
|
+
すべての方法で設定した場合は、下記優先度に従い設定されます。
|
86
|
+
|
87
|
+
オブジェクト生成時の引数 > 環境変数 > 定義ファイル
|
88
|
+
|
89
|
+
認証バージョン・APIの認証ロジックで設定できる値は、APIリファレンスをご覧ください。
|
90
|
+
|
91
|
+
http://cloud.nifty.com/api/rest/
|
92
|
+
|
93
|
+
|
94
|
+
==== 環境変数での設定
|
95
|
+
|
96
|
+
[ NIFTY_CLOUD_ACCESS_KEY ] 公開キー
|
97
|
+
[ NIFTY_CLOUD_SECRET_KEY ] 秘密キー
|
98
|
+
[ NIFTY_CLOUD_ENDPOINT_URL ] エンドポイント
|
99
|
+
[ NIFTY_CLOUD_PROXY_SERVER ] プロキシサーバーURL
|
100
|
+
[ NIFTY_CLOUD_USER_AGENT ] ユーザーエージェント
|
101
|
+
[ NIFTY_CLOUD_MAX_RETRY ] 最大リトライ回数
|
102
|
+
[ NIFTY_CLOUD_CONNECTION_TIMEOUT ] 接続タイムアウト(秒)
|
103
|
+
[ NIFTY_CLOUD_SOCKET_TIMEOUT ] ソケットタイムアウト(秒)
|
104
|
+
[ NIFTY_CLOUD_SIGNATURE_VERSION ] 認証バージョン
|
105
|
+
[ NIFTY_CLOUD_SIGNATURE_METHOD ] APIの認証ロジック
|
106
|
+
|
107
|
+
環境変数の指定方法は下記のようになります。
|
108
|
+
|
109
|
+
例) 公開キーを環境変数で設定する場合(Linux)
|
110
|
+
% export NIFTY_CLOUD_ACCESS_KEY="<Your Access Key>"
|
111
|
+
|
112
|
+
==== 定義ファイルでの設定
|
113
|
+
|
114
|
+
定義ファイルは、lib/NIFTY/config.rb になります。
|
115
|
+
|
116
|
+
[ ACCESS_KEY ] 公開キー (default: '<default access key>')
|
117
|
+
[ SECRET_KEY ] 秘密キー (default: '<default secret key>')
|
118
|
+
[ ENDPOINT_URL ] エンドポイント (default: 'https://cp.cloud.nifty.com/api/1.7/')
|
119
|
+
[ PROXY_SERVER ] プロキシサーバーURL (default: nil)
|
120
|
+
[ USER_AGENT ] ユーザーエージェント (default: 'NIFTY Cloud API Ruby SDK')
|
121
|
+
[ MAX_RETRY ] 最大リトライ回数 (default: 3)
|
122
|
+
[ CONNECTION_TIMEOUT ] 接続タイムアウト(秒) (default: 30)
|
123
|
+
[ SOCKET_TIMEOUT ] ソケットタイムアウト(秒) (default: 30)
|
124
|
+
[ SIGNATURE_VERSION ] 認証バージョン (default: '2')
|
125
|
+
[ SIGNATURE_METHOD ] APIの認証ロジック (default: 'HmacSHA256')
|
126
|
+
|
127
|
+
==== オブジェクト生成時の引数での設定
|
128
|
+
|
129
|
+
[ :access_key ] 公開キー
|
130
|
+
[ :secret_key ] 秘密キー
|
131
|
+
[ :use_ssl ] SSL暗号化(現状true以外は認めていない)
|
132
|
+
[ :server ] ニフティクラウドAPI ホスト名
|
133
|
+
[ :port ] ニフティクラウドAPI ポート番号
|
134
|
+
[ :path ] ニフティクラウドAPI パス
|
135
|
+
[ :proxy_server ] プロキシサーバーURL
|
136
|
+
[ :user_agent ] ユーザーエージェント
|
137
|
+
[ :max_retry ] 最大リトライ回数
|
138
|
+
[ :connection_timeout ] 接続タイムアウト(秒)
|
139
|
+
[ :socket_timeout ] ソケットタイムアウト(秒)
|
140
|
+
[ :signature_version ] 認証バージョン
|
141
|
+
[ :signature_method ] APIの認証ロジック
|
142
|
+
|
143
|
+
オブジェクト生成時の引数での設定例は、下記「基本操作」の項をご覧ください。
|
144
|
+
|
145
|
+
==== プロキシサーバー利用時の設定方法
|
146
|
+
|
147
|
+
プロキシサーバーを使用する場合は、プロキシサーバーURLを指定する必要があります。
|
148
|
+
※設定例はLinux使用時のものとなります。
|
149
|
+
|
150
|
+
<ユーザー認証がない場合>
|
151
|
+
|
152
|
+
設定例)
|
153
|
+
|
154
|
+
% export NIFTY_CLOUD_PROXY_SERVER='//<host>:<port>'
|
155
|
+
|
156
|
+
<ユーザー認証がある場合>
|
157
|
+
|
158
|
+
設定例)
|
159
|
+
|
160
|
+
% export NIFTY_CLOUD_PROXY_SERVER='//<user>:<password>@<host>:<port>'
|
161
|
+
|
162
|
+
* <user> プロキシサーバーに接続するためのユーザー名
|
163
|
+
* <password> プロキシサーバーに接続するためのパスワード
|
164
|
+
* <host> プロキシサーバーのホスト名
|
165
|
+
* <port> プロキシサーバーのポート番号
|
166
|
+
|
167
|
+
=== 基本操作
|
168
|
+
|
169
|
+
ニフティクラウド SDK for Rubyを利用するためのインタフェースクラスを用いて操作を行います。
|
170
|
+
|
171
|
+
NIFTY::Cloud::Base
|
172
|
+
|
173
|
+
オブジェクトの生成は以下のように行います。
|
174
|
+
|
175
|
+
<環境変数・定義ファイルの設定値を使う場合>
|
176
|
+
|
177
|
+
@nifty = NIFTY::Cloud::Base.new
|
178
|
+
|
179
|
+
<オブジェクト生成時の引数を指定する場合>
|
180
|
+
|
181
|
+
@nifty = NIFTY::Cloud::Base.new(:access_key => "<Your Access Key>", :secret_key => "<Your Secret Access Key>")
|
182
|
+
|
183
|
+
※注意
|
184
|
+
ニフティクラウド用に用意しているパブリックメソッドは、APIリファレンス(REST)に記載のあるAPI名とは異なっています。
|
185
|
+
例えば 'RunInstances' は、'@nifty.run_instances()' となります。
|
186
|
+
|
187
|
+
オブジェクト生成後、利用したいAPIに対応したメソッドを呼び出します。
|
188
|
+
|
189
|
+
res = @nifty.run_instances( options )
|
190
|
+
|
191
|
+
※optionsには必要なオプションを設定
|
192
|
+
|
193
|
+
res にレスポンス結果が格納されます。
|
194
|
+
|
195
|
+
|
196
|
+
=== サンプルスクリプト
|
197
|
+
|
198
|
+
sample ディレクトリ内をご覧ください。
|
199
|
+
|
200
|
+
=== Ruby script 利用例:
|
201
|
+
|
202
|
+
RunInstances の例)
|
203
|
+
|
204
|
+
#!/usr/bin/env ruby
|
205
|
+
|
206
|
+
require 'rubygems'
|
207
|
+
require "NIFTY"
|
208
|
+
require 'pp'
|
209
|
+
|
210
|
+
ACCESS_KEY = ENV["NIFTY_CLOUD_ACCESS_KEY"] || "<Your Access Key ID>"
|
211
|
+
SECRET_KEY = ENV["NIFTY_CLOUD_SECRET_KEY"] || "<Your Secret Access Key>"
|
212
|
+
|
213
|
+
|
214
|
+
ncs4r = NIFTY::Cloud::Base.new(:access_key => ACCESS_KEY, :secret_key => SECRET_KEY)
|
215
|
+
|
216
|
+
options = {
|
217
|
+
:image_id => "imageId",
|
218
|
+
:key_name => "keyName",
|
219
|
+
:security_group => ["groupName"],
|
220
|
+
:instance_type => "instanceType",
|
221
|
+
:disable_api_termination => false,
|
222
|
+
:accounting_type => "accountingType",
|
223
|
+
:instance_id => "instanceId",
|
224
|
+
:admin => "admin",
|
225
|
+
:password => "password",
|
226
|
+
:ip_type => "static"
|
227
|
+
}
|
228
|
+
|
229
|
+
pp response = ncs4r.run_instances(options)
|
230
|
+
|
231
|
+
=== Ruby on Rails 利用例:
|
232
|
+
|
233
|
+
<プラグインとして追加>
|
234
|
+
|
235
|
+
プラグイン作成コマンドを実行します。
|
236
|
+
|
237
|
+
% script/generate plugin nifty_cloud_api
|
238
|
+
|
239
|
+
作成されたライブラリディレクトリにSDKを展開します。
|
240
|
+
|
241
|
+
${RAILS_HOME}/vendor/plugins/nifty_cloud_api/lib/NIFTY/…
|
242
|
+
NIFTY.rb
|
243
|
+
|
244
|
+
また、作成されたinit.rbファイルを編集し、
|
245
|
+
|
246
|
+
# init.rb
|
247
|
+
# Include hook code here
|
248
|
+
require 'NIFTY'
|
249
|
+
|
250
|
+
アプリケーション初期化時に読み込まれるように設定します。
|
251
|
+
|
252
|
+
RunInstances の例)
|
253
|
+
|
254
|
+
ncs4r = NIFTY::Cloud::Base.new(:access_key => ACCESS_KEY, :secret_key => SECRET_KEY)
|
255
|
+
options = { ... }
|
256
|
+
pp response = ncs4r.run_instances(options)
|
257
|
+
|
258
|
+
=== レスポンス結果の取り扱い
|
259
|
+
|
260
|
+
ニフティクラウドからのレスポンスはXML形式で返ってきます。
|
261
|
+
|
262
|
+
ニフティクラウド SDK for Ruby では、返ってきたレスポンスをハッシュ構造体にしてユーザーに返却します。
|
263
|
+
|
264
|
+
==== レスポンス例
|
265
|
+
|
266
|
+
<RunInstancesResponse xmlns="https://cp.cloud.nifty.com/api/1.7/">
|
267
|
+
<requestId>22e11cc4-0e5a-4815-9892-b1ed6aeed6c4</requestId>
|
268
|
+
<reservationId/>
|
269
|
+
<ownerId/>
|
270
|
+
<groupSet>
|
271
|
+
<item>
|
272
|
+
<groupId>groupName</groupId>
|
273
|
+
</item>
|
274
|
+
</groupSet>
|
275
|
+
<instancesSet>
|
276
|
+
<item>
|
277
|
+
<instanceId>instanceId</instanceId>
|
278
|
+
<imageId>imageId</imageId>
|
279
|
+
<instanceState>
|
280
|
+
<code>0</code>
|
281
|
+
<name>pending</name>
|
282
|
+
</instanceState>
|
283
|
+
<privateDnsName/>
|
284
|
+
<dnsName/>
|
285
|
+
<keyName>keyName</keyName>
|
286
|
+
<admin/>
|
287
|
+
<instanceType>instanceType</instanceType>
|
288
|
+
<launchTime>2011-07-01T13:21:59.074+09:00</launchTime>
|
289
|
+
<placement>
|
290
|
+
<availabilityZone>ap-japan-1a</availabilityZone>
|
291
|
+
</placement>
|
292
|
+
<platform>centos</platform>
|
293
|
+
<monitoring>
|
294
|
+
<state>monitoring-disabled</state>
|
295
|
+
</monitoring>
|
296
|
+
<privateIpAddress/>
|
297
|
+
<ipAddress/>
|
298
|
+
<privateIpAddressV6/>
|
299
|
+
<ipAddressV6/>
|
300
|
+
<architecture>i386</architecture>
|
301
|
+
<rootDeviceType>disk</rootDeviceType>
|
302
|
+
<blockDeviceMapping/>
|
303
|
+
<accountingType>accountingType</accountingType>
|
304
|
+
<ipType>static</ipType>
|
305
|
+
</item>
|
306
|
+
</instancesSet>
|
307
|
+
</RunInstancesResponse>
|
308
|
+
|
309
|
+
==== アクセス方法
|
310
|
+
|
311
|
+
上記レスポンスが返ってくるとした場合、imageIdを参照したい時は下記操作で参照できます。
|
312
|
+
|
313
|
+
puts res.instancesSet.item[0].imageId # => imageId
|
314
|
+
|
315
|
+
|
316
|
+
=== 例外処理
|
317
|
+
|
318
|
+
何らかの理由で処理が失敗した時は、例外が発生します。
|
319
|
+
例外の定義は lib/NIFTY/exception.rb で定義されています。
|
320
|
+
|
321
|
+
ニフティクラウド SDK for Ruby で発生させる例外は下記になります。
|
322
|
+
|
323
|
+
==== 定義エラー
|
324
|
+
定義値に不正があった場合に出力されれます。
|
325
|
+
|
326
|
+
ConfigurationError
|
327
|
+
|
328
|
+
==== 引数エラー
|
329
|
+
引数に不正があった場合に出力されれます。
|
330
|
+
|
331
|
+
ArgumentError
|
332
|
+
|
333
|
+
==== フォーマットエラー
|
334
|
+
サーバーからのレスポンスが解析できない場合に出力されます。
|
335
|
+
|
336
|
+
ResponseFormatError
|
337
|
+
|
338
|
+
==== レスポンスエラー
|
339
|
+
サーバーからのレスポンスがエラーの場合に出力されれます。
|
340
|
+
|
341
|
+
ResponseError
|
342
|
+
|
343
|
+
===== レスポンスエラー時のエラー情報取得方法について
|
344
|
+
レスポンスエラーの場合は、エラーコード・エラーメッセージがクラス内で定義されています。
|
345
|
+
|
346
|
+
begin
|
347
|
+
@nifty.describe_instances
|
348
|
+
rescue ResponseError => e
|
349
|
+
puts "Error Code: #{e.error_code}"
|
350
|
+
puts "Error Message: #{e.error_message}"
|
351
|
+
end
|
352
|
+
|
353
|
+
|
354
|
+
== 謝辞
|
355
|
+
|
356
|
+
Glenn Rempe氏のライブラリを改変して作成しております。
|
357
|
+
|
358
|
+
詳しくは下記ページをご覧ください。
|
359
|
+
|
360
|
+
https://github.com/grempe/amazon-ec2/tree/master
|
361
|
+
|
362
|
+
== ライセンス
|
363
|
+
|
364
|
+
このソフトフェアのライセンスは、Ruby License に従います。
|
365
|
+
|
366
|
+
== その他
|
367
|
+
|
368
|
+
=== ウェブサイト
|
369
|
+
|
370
|
+
* ニフティクラウド : http://cloud.nifty.com/
|
371
|
+
* ニフティクラウドAPI : http://cloud.nifty.com/api/
|
372
|
+
* rdoc : http://cloud.nifty.com/api/sdk/rdoc/
|
373
|
+
|
374
|
+
Copyright 2011 NIFTY Corporation All Rights Reserved.
|
375
|
+
|