niftycloud-restful-read-api 0.0.0 → 0.0.1

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/README.md CHANGED
@@ -78,9 +78,22 @@ config.ru から require して使うこともできます。
78
78
  * /computing/addresses
79
79
  * 付替アドレス一覧を取得できます
80
80
 
81
+ ### RDB
82
+
83
+ * /rdb/db_instances
84
+ * DB サーバー一覧を取得できます
85
+ * /rdb/db_security_groups
86
+ * DB ファイアウォール一覧を取得できます
87
+ * /rdb/db_parameter_groups
88
+ * DB パラメーターグループ一覧を取得できます
89
+ * /rdb/db_snapshots
90
+ * DB スナップショット一覧を取得できます
91
+ * /rdb/db_engine_versions
92
+ * DB エンジンバージョン一覧を取得できます
93
+
81
94
  ## TODO
82
95
 
83
- * ニフティクラウド RDB/MQ/ESS/DNS/Automation
96
+ * ニフティクラウド MQ/ESS/DNS/Automation
84
97
 
85
98
  ## ライセンス
86
99
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.0
1
+ 0.0.1
@@ -1,7 +1,17 @@
1
+ require 'logger'
1
2
  require 'sinatra'
2
3
  require 'json'
3
4
  require 'NIFTY'
4
5
 
6
+ NIFTY::LOG.level = Logger::DEBUG
7
+
8
+ # monkey patch
9
+ class NIFTY::Base
10
+ def response_error?(response)
11
+ false
12
+ end
13
+ end
14
+
5
15
  class NiftycloudRestfulReadApi < Sinatra::Base
6
16
  class NiftyCloud
7
17
  class Computing
@@ -10,7 +20,7 @@ class NiftycloudRestfulReadApi < Sinatra::Base
10
20
  @api = NIFTY::Cloud::Base.new(
11
21
  :access_key => options[:access_key_id],
12
22
  :secret_key => options[:secret_access_key],
13
- :endpoint => "{options[:region]}.cp.cloud.nifty.com",
23
+ :server => "{options[:region]}.cp.cloud.nifty.com",
14
24
  :path => '/api'
15
25
  )
16
26
  end
@@ -65,7 +75,6 @@ class NiftycloudRestfulReadApi < Sinatra::Base
65
75
  def ssl_certificates
66
76
  response = @api.describe_ssl_certificates
67
77
  response.certsSet.item.to_a rescue []
68
- []
69
78
  end
70
79
 
71
80
  def addresses
@@ -73,6 +82,50 @@ class NiftycloudRestfulReadApi < Sinatra::Base
73
82
  response.addressesSet.item.to_a rescue []
74
83
  end
75
84
  end
85
+
86
+ class Rdb
87
+ def initialize(options)
88
+ @api = NIFTY::Cloud::Base.new(
89
+ :access_key => options[:access_key_id],
90
+ :secret_key => options[:secret_access_key],
91
+ :server => "rdb.jp-#{options[:region]}.api.cloud.nifty.com",
92
+ :path => '/'
93
+ )
94
+ end
95
+
96
+ def db_instances
97
+ response = @api.send(:response_generator, 'Action' => 'DescribeDBInstances')
98
+ [response.DescribeDBInstancesResult.DBInstances.DBInstance.to_a].flatten rescue []
99
+ end
100
+
101
+ def db_security_groups
102
+ response = @api.send(:response_generator, 'Action' => 'DescribeDBSecurityGroups')
103
+ [response.DescribeDBSecurityGroupsResult.DBSecurityGroups.DBSecurityGroup.to_a].flatten rescue []
104
+ end
105
+
106
+ def db_parameter_groups
107
+ response = @api.send(:response_generator, 'Action' => 'DescribeDBParameterGroups')
108
+ [response.DescribeDBParameterGroupsResult.DBParameterGroups.DBParameterGroup.to_a].flatten rescue []
109
+ end
110
+
111
+ def db_snapshots
112
+ response = @api.send(:response_generator, 'Action' => 'DescribeDBSnapshots')
113
+ p response
114
+ [response.DescribeDBSnapshotsResult.DBSnapshots.DBSnapshot.to_a].flatten rescue []
115
+ end
116
+
117
+ def db_engine_versions
118
+ response = @api.send(:response_generator, 'Action' => 'DescribeDBEngineVersions')
119
+ [response.DescribeDBEngineVersionsResult.DBEngineVersions.DBEngineVersion.to_a].flatten rescue []
120
+ end
121
+
122
+ # TODO: Engine
123
+ #def orderable_db_instance_options
124
+ # response = @api.send(:response_generator, 'Action' => 'DescribeOrderableDBInstanceOptions')
125
+ # p response
126
+ # [response.DescribeOrderableDBInstanceOptionsResult.OrderableDBInstanceOptions.OrderableDBInstanceOption.to_a].flatten rescue []
127
+ #end
128
+ end
76
129
  end
77
130
 
78
131
  helpers do
@@ -83,6 +136,14 @@ class NiftycloudRestfulReadApi < Sinatra::Base
83
136
  :secret_access_key => @secret_access_key
84
137
  )
85
138
  end
139
+
140
+ def rdb
141
+ @rdb ||= NiftyCloud::Rdb.new(
142
+ :region => @region,
143
+ :access_key_id => @access_key_id,
144
+ :secret_access_key => @secret_access_key
145
+ )
146
+ end
86
147
  end
87
148
 
88
149
  before do
@@ -95,4 +156,9 @@ class NiftycloudRestfulReadApi < Sinatra::Base
95
156
  post '/computing/:resources' do
96
157
  compute.send(params[:resources]).to_json
97
158
  end
159
+
160
+ post '/rdb/:resources' do
161
+ NIFTY::VERSION = '2013-05-15N2013-12-16'
162
+ rdb.send(params[:resources]).to_json
163
+ end
98
164
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: niftycloud-restful-read-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2014-06-25 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
16
- requirement: &41097780 !ruby/object:Gem::Requirement
16
+ requirement: &112748960 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *41097780
24
+ version_requirements: *112748960
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: nifty-cloud-sdk
27
- requirement: &41097180 !ruby/object:Gem::Requirement
27
+ requirement: &112748480 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *41097180
35
+ version_requirements: *112748480
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &41096580 !ruby/object:Gem::Requirement
38
+ requirement: &112748000 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *41096580
46
+ version_requirements: *112748000
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &41095980 !ruby/object:Gem::Requirement
49
+ requirement: &112747520 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *41095980
57
+ version_requirements: *112747520
58
58
  description: NIFTYCloud の情報取得系 API を RESTful に利用できるようにする Sinatra アプリ
59
59
  email: tily05@gmail.com
60
60
  executables:
@@ -90,7 +90,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
90
90
  version: '0'
91
91
  segments:
92
92
  - 0
93
- hash: 2482087528386462282
93
+ hash: 1998930701841461656
94
94
  required_rubygems_version: !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements: