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.
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
+