nifty-cloud-sdk 1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. data/CHANGELOG +112 -0
  2. data/Gemfile +4 -0
  3. data/INSTALL +30 -0
  4. data/LICENSE.txt +58 -0
  5. data/README.rdoc +375 -0
  6. data/Rakefile +61 -0
  7. data/lib/NIFTY.rb +405 -0
  8. data/lib/NIFTY/Cloud.rb +24 -0
  9. data/lib/NIFTY/Cloud/availability_zones.rb +23 -0
  10. data/lib/NIFTY/Cloud/certificates.rb +283 -0
  11. data/lib/NIFTY/Cloud/images.rb +134 -0
  12. data/lib/NIFTY/Cloud/instances.rb +372 -0
  13. data/lib/NIFTY/Cloud/keypairs.rb +76 -0
  14. data/lib/NIFTY/Cloud/load_balancers.rb +433 -0
  15. data/lib/NIFTY/Cloud/security_groups.rb +357 -0
  16. data/lib/NIFTY/Cloud/volumes.rb +140 -0
  17. data/lib/NIFTY/config.rb +41 -0
  18. data/lib/NIFTY/exceptions.rb +32 -0
  19. data/lib/NIFTY/responses.rb +19 -0
  20. data/lib/NIFTY/version.rb +3 -0
  21. data/nifty-cloud-sdk.gemspec +28 -0
  22. data/sample/availability_zones/describe-availability-zones.rb +37 -0
  23. data/sample/certificate/create-ssl-certificate.rb +41 -0
  24. data/sample/certificate/delete-ssl-certificate.rb +28 -0
  25. data/sample/certificate/describe-ssl-certificate-attribute.rb +58 -0
  26. data/sample/certificate/describe-ssl-certificates.rb +49 -0
  27. data/sample/certificate/download-ssl-certificate.rb +31 -0
  28. data/sample/certificate/modify-ssl-certificate-attribute.rb +29 -0
  29. data/sample/certificate/register-corporate-info-for-certificate.rb +57 -0
  30. data/sample/certificate/upload-ssl-certificate.rb +32 -0
  31. data/sample/images/create-image.rb +33 -0
  32. data/sample/images/delete-image.rb +26 -0
  33. data/sample/images/describe-images.rb +70 -0
  34. data/sample/images/modify-image-attribute.rb +33 -0
  35. data/sample/instances/cancel_copy_instances.rb +26 -0
  36. data/sample/instances/copy-instances.rb +41 -0
  37. data/sample/instances/describe-instance-attribute.rb +78 -0
  38. data/sample/instances/describe-instances.rb +100 -0
  39. data/sample/instances/modify-instance-attribute.rb +30 -0
  40. data/sample/instances/reboot-instances.rb +29 -0
  41. data/sample/instances/run-instances.rb +104 -0
  42. data/sample/instances/start-instances.rb +36 -0
  43. data/sample/instances/stop-instances.rb +35 -0
  44. data/sample/instances/terminate-instances.rb +34 -0
  45. data/sample/keypairs/create-key-pair.rb +31 -0
  46. data/sample/keypairs/delete-key-pair.rb +28 -0
  47. data/sample/keypairs/describe-key-pairs.rb +31 -0
  48. data/sample/load_balancers/configure-health-check.rb +41 -0
  49. data/sample/load_balancers/create-load-balancer.rb +35 -0
  50. data/sample/load_balancers/delete-load-balancer.rb +28 -0
  51. data/sample/load_balancers/deregister-instances-from-load-balancer.rb +35 -0
  52. data/sample/load_balancers/describe-instance-health.rb +36 -0
  53. data/sample/load_balancers/describe-load-balancers.rb +89 -0
  54. data/sample/load_balancers/register-instances-with-load-balancer.rb +33 -0
  55. data/sample/load_balancers/register-port-with-load-balancer.rb +37 -0
  56. data/sample/load_balancers/set-filter-for-load-balancer.rb +38 -0
  57. data/sample/load_balancers/update-load-balancer.rb +33 -0
  58. data/sample/security_groups/authorize-security-group-ingress.rb +36 -0
  59. data/sample/security_groups/create-security-group.rb +29 -0
  60. data/sample/security_groups/delete-security-group.rb +28 -0
  61. data/sample/security_groups/deregister-instances-from-security-group.rb +31 -0
  62. data/sample/security_groups/describe-security-activities.rb +33 -0
  63. data/sample/security_groups/describe-security-groups.rb +59 -0
  64. data/sample/security_groups/register-instances-with-security-group.rb +31 -0
  65. data/sample/security_groups/revoke-security-group-ingress.rb +36 -0
  66. data/sample/security_groups/update-security-group.rb +30 -0
  67. data/sample/volumes/attach-volumes.rb +34 -0
  68. data/sample/volumes/create-volume.rb +38 -0
  69. data/sample/volumes/delete-volume.rb +28 -0
  70. data/sample/volumes/describe-volumes.rb +44 -0
  71. data/sample/volumes/detach-volume.rb +35 -0
  72. data/test/test_Cloud.rb +186 -0
  73. data/test/test_Cloud_availability_zones.rb +50 -0
  74. data/test/test_Cloud_certificates.rb +627 -0
  75. data/test/test_Cloud_images.rb +284 -0
  76. data/test/test_Cloud_instances.rb +941 -0
  77. data/test/test_Cloud_keypairs.rb +177 -0
  78. data/test/test_Cloud_load_balancers.rb +1183 -0
  79. data/test/test_Cloud_responses.rb +43 -0
  80. data/test/test_Cloud_security_groups.rb +699 -0
  81. data/test/test_Cloud_volumes.rb +325 -0
  82. data/test/test_helper.rb +23 -0
  83. metadata +275 -0
@@ -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
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in NIFTY.gemspec
4
+ gemspec
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
+
@@ -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
+
@@ -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
+