smartdc 0.4.0 → 1.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.
Files changed (100) hide show
  1. data/.document +0 -1
  2. data/.travis.yml +5 -0
  3. data/Gemfile +7 -10
  4. data/README.md +42 -69
  5. data/Rakefile +47 -0
  6. data/VERSION +1 -1
  7. data/bin/sdc +327 -0
  8. data/lib/cli_helper.rb +131 -8
  9. data/lib/configure.rb +73 -0
  10. data/lib/smartdc.rb +16 -1
  11. data/lib/smartdc/api/analytics.rb +29 -7
  12. data/lib/smartdc/api/analytics/heatmap.rb +20 -0
  13. data/lib/smartdc/api/datacenters.rb +6 -7
  14. data/lib/smartdc/api/datasets.rb +6 -7
  15. data/lib/smartdc/api/keys.rb +10 -11
  16. data/lib/smartdc/api/machine/metadata.rb +9 -15
  17. data/lib/smartdc/api/machine/snapshots.rb +16 -16
  18. data/lib/smartdc/api/machine/tags.rb +11 -12
  19. data/lib/smartdc/api/machines.rb +23 -23
  20. data/lib/smartdc/api/packages.rb +7 -8
  21. data/lib/smartdc/client.rb +14 -18
  22. data/lib/smartdc/request.rb +41 -51
  23. data/lib/smartdc/response.rb +24 -0
  24. data/lib/smartdc/response/raise_error.rb +1 -1
  25. data/smartdc.gemspec +51 -90
  26. data/spec/fixtures/analytics.json +26 -0
  27. data/spec/fixtures/datacenter.json +4 -0
  28. data/spec/fixtures/datacenters.json +3 -0
  29. data/spec/fixtures/datasets.json +38 -0
  30. data/spec/fixtures/keys.json +14 -0
  31. data/spec/fixtures/machines.json +36 -0
  32. data/spec/fixtures/packages.json +18 -0
  33. data/spec/fixtures/snapshots.json +8 -0
  34. data/spec/fixtures/tag.json +3 -0
  35. data/spec/spec_helper.rb +3 -12
  36. data/spec/unit/smartdc/api/analytics_spec.rb +53 -0
  37. data/spec/unit/smartdc/api/datacenters_spec.rb +31 -0
  38. data/spec/unit/smartdc/api/datasets_spec.rb +31 -0
  39. data/spec/unit/smartdc/api/keys_spec.rb +53 -0
  40. data/spec/unit/smartdc/api/machine/metadata_spec.rb +42 -0
  41. data/spec/unit/smartdc/api/machine/snapshots_spec.rb +132 -0
  42. data/spec/unit/smartdc/api/machine/tags_spec.rb +53 -0
  43. data/spec/unit/smartdc/api/machines_spec.rb +53 -0
  44. data/spec/unit/smartdc/api/packages_spec.rb +31 -0
  45. data/spec/{smartdc → unit/smartdc}/client_spec.rb +0 -6
  46. data/spec/{smartdc_spec.rb → unit/smartdc_spec.rb} +1 -1
  47. metadata +72 -140
  48. data/LICENSE.md +0 -20
  49. data/bin/sdc-addmachinemetadata +0 -29
  50. data/bin/sdc-addmachinetag +0 -29
  51. data/bin/sdc-createinstrumentation +0 -27
  52. data/bin/sdc-createkey +0 -32
  53. data/bin/sdc-createmachine +0 -39
  54. data/bin/sdc-createmachinesnapshot +0 -27
  55. data/bin/sdc-deleteinstrumentation +0 -12
  56. data/bin/sdc-deletekey +0 -12
  57. data/bin/sdc-deletemachine +0 -12
  58. data/bin/sdc-deletemachinemetadata +0 -29
  59. data/bin/sdc-deletemachinesnapshot +0 -29
  60. data/bin/sdc-deletemachinetag +0 -29
  61. data/bin/sdc-describeanalytics +0 -10
  62. data/bin/sdc-getdatacenter +0 -10
  63. data/bin/sdc-getdataset +0 -10
  64. data/bin/sdc-getinstrumentation +0 -31
  65. data/bin/sdc-getkey +0 -10
  66. data/bin/sdc-getmachine +0 -12
  67. data/bin/sdc-getmachinemetadata +0 -12
  68. data/bin/sdc-getmachinesnapshot +0 -27
  69. data/bin/sdc-getmachinetag +0 -27
  70. data/bin/sdc-getpackage +0 -10
  71. data/bin/sdc-listdatacenters +0 -10
  72. data/bin/sdc-listdatasets +0 -10
  73. data/bin/sdc-listinstrumentations +0 -10
  74. data/bin/sdc-listkeys +0 -10
  75. data/bin/sdc-listmachines +0 -10
  76. data/bin/sdc-listmachinesnapshots +0 -10
  77. data/bin/sdc-listmachinetags +0 -10
  78. data/bin/sdc-listpackages +0 -10
  79. data/bin/sdc-rebootmachine +0 -12
  80. data/bin/sdc-resizemachine +0 -34
  81. data/bin/sdc-setup +0 -67
  82. data/bin/sdc-startmachine +0 -12
  83. data/bin/sdc-startmachinefromsnapshot +0 -29
  84. data/bin/sdc-stopmachine +0 -12
  85. data/config/fixtures/instrumentation.json +0 -4
  86. data/config/fixtures/key.json +0 -4
  87. data/config/fixtures/tag.json +0 -3
  88. data/lib/smartdc/api/analytics/instrumentations.rb +0 -44
  89. data/lib/smartdc/response/mashify.rb +0 -29
  90. data/lib/smartdc/response/parse_json.rb +0 -26
  91. data/spec/smartdc/api/analytics_spec.rb +0 -32
  92. data/spec/smartdc/api/datacenters_spec.rb +0 -16
  93. data/spec/smartdc/api/datasets_spec.rb +0 -16
  94. data/spec/smartdc/api/keys_spec.rb +0 -32
  95. data/spec/smartdc/api/machine/metadata_spec.rb +0 -59
  96. data/spec/smartdc/api/machine/snapshots_spec.rb +0 -70
  97. data/spec/smartdc/api/machine/tags_spec.rb +0 -65
  98. data/spec/smartdc/api/machines_spec.rb +0 -92
  99. data/spec/smartdc/api/packages_spec.rb +0 -16
  100. data/spec/smartdc/request_spec.rb +0 -12
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Smartdc::Api::Machine::Tags" do
4
+
5
+ before(:all) do
6
+ @object = Object.new
7
+ @request = Smartdc::Request
8
+ end
9
+
10
+ describe ".create" do
11
+ it "should return a tag" do
12
+ @object.stub(:content) {fixture('tag')}
13
+ tag = @object.content
14
+ @request.stub_chain(:new, :post).with('my/machines/id/tags/', tag) {@object}
15
+
16
+ tags = Smartdc::Api::Machine::Tags.new('id', {})
17
+ tags.create(tag).content.should == tag
18
+ end
19
+ end
20
+
21
+ describe ".read" do
22
+ it "should return a tag" do
23
+ @object.stub(:content) {fixture('tag')}
24
+ key = @object.content.first[0]
25
+ @request.stub_chain(:new, :get).with('my/machines/id/tags/' + key) {@object}
26
+
27
+ tags = Smartdc::Api::Machine::Tags.new('id', {})
28
+ tags.read(key).content.first[0].should == key
29
+ end
30
+ end
31
+
32
+ describe ".all" do
33
+ it "should return some tags" do
34
+ @object.stub(:content) {fixture('tag')}
35
+ @request.stub_chain(:new, :get).with('my/machines/id/tags', {}) {@object}
36
+
37
+ tags = Smartdc::Api::Machine::Tags.new('id', {})
38
+ tags.all.content.count.should > 0
39
+ end
40
+ end
41
+
42
+ describe ".delete" do
43
+ it "should return a tag" do
44
+ @object.stub(:status) {204}
45
+ key = fixture('tag').first[0]
46
+ @request.stub_chain(:new, :del).with('my/machines/id/tags/' + key) {@object}
47
+
48
+ tags = Smartdc::Api::Machine::Tags.new('id', {})
49
+ tags.destroy(key).status.should == 204
50
+ end
51
+ end
52
+
53
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Smartdc::Api::Machines" do
4
+
5
+ before(:all) do
6
+ @object = Object.new
7
+ @request = Smartdc::Request
8
+ end
9
+
10
+ describe ".create" do
11
+ it "should return a machine" do
12
+ @object.stub(:content) {fixture('machines')[0]}
13
+ machine = @object.content
14
+ @request.stub_chain(:new, :post).with('my/machines/', machine) {@object}
15
+
16
+ machines = Smartdc::Api::Machines.new({})
17
+ machines.create(machine).content['name'].should == machine['name']
18
+ end
19
+ end
20
+
21
+ describe ".read" do
22
+ it "should return a machine" do
23
+ @object.stub(:content) {fixture('machines')[0]}
24
+ name = @object.content['name']
25
+ @request.stub_chain(:new, :get).with('my/machines/' + name) {@object}
26
+
27
+ machines = Smartdc::Api::Machines.new({})
28
+ machines.read(name).content['name'].should == name
29
+ end
30
+ end
31
+
32
+ describe ".all" do
33
+ it "should return some machines" do
34
+ @object.stub(:content) {fixture('machines')}
35
+ @request.stub_chain(:new, :get).with('my/machines', {}) {@object}
36
+
37
+ machines = Smartdc::Api::Machines.new({})
38
+ machines.all.content.count.should > 0
39
+ end
40
+ end
41
+
42
+ describe ".delete" do
43
+ it "should return true when success" do
44
+ machine = fixture('machines')[0]
45
+ @object.stub(:status) {204}
46
+ @request.stub_chain(:new, :del).with('my/machines/' + machine['name']) {@object}
47
+
48
+ machines = Smartdc::Api::Machines.new({})
49
+ machines.destroy(machine['name']).status.should == 204
50
+ end
51
+ end
52
+
53
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Smartdc::Api::Packages" do
4
+
5
+ before(:all) do
6
+ @object = Object.new
7
+ @request = Smartdc::Request
8
+ end
9
+
10
+ describe ".read" do
11
+ it "should return a package" do
12
+ @object.stub(:content) {fixture('packages')[0]}
13
+ name = @object.content['name']
14
+ @request.stub_chain(:new, :get).with('my/packages/' + name) {@object}
15
+
16
+ packages = Smartdc::Api::Packages.new({})
17
+ packages.read(name).content['name'].should == name
18
+ end
19
+ end
20
+
21
+ describe ".all" do
22
+ it "should return some packages" do
23
+ @object.stub(:content) {fixture('packages')}
24
+ @request.stub_chain(:new, :get).with('my/packages', {}) {@object}
25
+
26
+ packages = Smartdc::Api::Packages.new({})
27
+ packages.all.content.count.should > 0
28
+ end
29
+ end
30
+
31
+ end
@@ -1,12 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "Smartdc::Client" do
4
- describe ".initialize" do
5
- it "should return a Smartdc::Request" do
6
- Smartdc::Client.new(fixture('config', 'config')).request.should be_a Smartdc::Request
7
- end
8
- end
9
-
10
4
  describe ".keys" do
11
5
  it "should return a Smartdc::Api::Keys" do
12
6
  Smartdc::Client.new.keys.should be_a Smartdc::Api::Keys
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
1
+ require 'spec_helper'
2
2
 
3
3
  describe "Smartdc" do
4
4
  describe ".new" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smartdc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,199 +9,124 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-08 00:00:00.000000000 Z
12
+ date: 2012-12-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
16
- requirement: &70117794072540 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 0.7.6
21
+ version: '0.8'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70117794072540
25
- - !ruby/object:Gem::Dependency
26
- name: hashie
27
- requirement: &70117794072060 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
28
25
  none: false
29
26
  requirements:
30
27
  - - ~>
31
28
  - !ruby/object:Gem::Version
32
- version: 1.2.0
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: *70117794072060
29
+ version: '0.8'
36
30
  - !ruby/object:Gem::Dependency
37
- name: multi_json
38
- requirement: &70117794071580 !ruby/object:Gem::Requirement
31
+ name: thor
32
+ requirement: !ruby/object:Gem::Requirement
39
33
  none: false
40
34
  requirements:
41
35
  - - ~>
42
36
  - !ruby/object:Gem::Version
43
- version: 1.1.0
37
+ version: '0.16'
44
38
  type: :runtime
45
39
  prerelease: false
46
- version_requirements: *70117794071580
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '0.16'
47
46
  - !ruby/object:Gem::Dependency
48
- name: multipart-post
49
- requirement: &70117794071100 !ruby/object:Gem::Requirement
47
+ name: terminal-table
48
+ requirement: !ruby/object:Gem::Requirement
50
49
  none: false
51
50
  requirements:
52
51
  - - ~>
53
52
  - !ruby/object:Gem::Version
54
- version: 1.1.4
53
+ version: '1.4'
55
54
  type: :runtime
56
55
  prerelease: false
57
- version_requirements: *70117794071100
58
- - !ruby/object:Gem::Dependency
59
- name: rspec
60
- requirement: &70117794070620 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
61
57
  none: false
62
58
  requirements:
63
59
  - - ~>
64
60
  - !ruby/object:Gem::Version
65
- version: 2.8.0
66
- type: :development
67
- prerelease: false
68
- version_requirements: *70117794070620
61
+ version: '1.4'
69
62
  - !ruby/object:Gem::Dependency
70
63
  name: bundler
71
- requirement: &70117794070140 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
72
65
  none: false
73
66
  requirements:
74
67
  - - ~>
75
68
  - !ruby/object:Gem::Version
76
- version: 1.0.0
69
+ version: '1.1'
77
70
  type: :development
78
71
  prerelease: false
79
- version_requirements: *70117794070140
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '1.1'
80
78
  - !ruby/object:Gem::Dependency
81
79
  name: jeweler
82
- requirement: &70117794069660 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
83
81
  none: false
84
82
  requirements:
85
83
  - - ~>
86
84
  - !ruby/object:Gem::Version
87
- version: 1.8.3
85
+ version: '1.8'
88
86
  type: :development
89
87
  prerelease: false
90
- version_requirements: *70117794069660
91
- - !ruby/object:Gem::Dependency
92
- name: rcov
93
- requirement: &70117794069180 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
94
89
  none: false
95
90
  requirements:
96
91
  - - ~>
97
92
  - !ruby/object:Gem::Version
98
- version: 0.9.11
99
- type: :development
100
- prerelease: false
101
- version_requirements: *70117794069180
93
+ version: '1.8'
102
94
  - !ruby/object:Gem::Dependency
103
- name: uuid
104
- requirement: &70117794085080 !ruby/object:Gem::Requirement
95
+ name: rspec
96
+ requirement: !ruby/object:Gem::Requirement
105
97
  none: false
106
98
  requirements:
107
99
  - - ~>
108
100
  - !ruby/object:Gem::Version
109
- version: 2.3.4
101
+ version: '2.12'
110
102
  type: :development
111
103
  prerelease: false
112
- version_requirements: *70117794085080
113
- description: smartdc is SmartDataCenter Public API.
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: '2.12'
110
+ description: SmartDataCenter client and SmartDataCenter Command Line Interface.
114
111
  email: ogom@hotmail.co.jp
115
112
  executables:
116
- - sdc-addmachinemetadata
117
- - sdc-addmachinetag
118
- - sdc-createinstrumentation
119
- - sdc-createkey
120
- - sdc-createmachine
121
- - sdc-createmachinesnapshot
122
- - sdc-deleteinstrumentation
123
- - sdc-deletekey
124
- - sdc-deletemachine
125
- - sdc-deletemachinemetadata
126
- - sdc-deletemachinesnapshot
127
- - sdc-deletemachinetag
128
- - sdc-describeanalytics
129
- - sdc-getdatacenter
130
- - sdc-getdataset
131
- - sdc-getinstrumentation
132
- - sdc-getkey
133
- - sdc-getmachine
134
- - sdc-getmachinemetadata
135
- - sdc-getmachinesnapshot
136
- - sdc-getmachinetag
137
- - sdc-getpackage
138
- - sdc-listdatacenters
139
- - sdc-listdatasets
140
- - sdc-listinstrumentations
141
- - sdc-listkeys
142
- - sdc-listmachines
143
- - sdc-listmachinesnapshots
144
- - sdc-listmachinetags
145
- - sdc-listpackages
146
- - sdc-rebootmachine
147
- - sdc-resizemachine
148
- - sdc-setup
149
- - sdc-startmachine
150
- - sdc-startmachinefromsnapshot
151
- - sdc-stopmachine
113
+ - sdc
152
114
  extensions: []
153
115
  extra_rdoc_files:
154
- - LICENSE.md
155
116
  - README.md
156
117
  files:
157
118
  - .document
119
+ - .travis.yml
158
120
  - Gemfile
159
- - LICENSE.md
160
121
  - README.md
122
+ - Rakefile
161
123
  - VERSION
162
- - bin/sdc-addmachinemetadata
163
- - bin/sdc-addmachinetag
164
- - bin/sdc-createinstrumentation
165
- - bin/sdc-createkey
166
- - bin/sdc-createmachine
167
- - bin/sdc-createmachinesnapshot
168
- - bin/sdc-deleteinstrumentation
169
- - bin/sdc-deletekey
170
- - bin/sdc-deletemachine
171
- - bin/sdc-deletemachinemetadata
172
- - bin/sdc-deletemachinesnapshot
173
- - bin/sdc-deletemachinetag
174
- - bin/sdc-describeanalytics
175
- - bin/sdc-getdatacenter
176
- - bin/sdc-getdataset
177
- - bin/sdc-getinstrumentation
178
- - bin/sdc-getkey
179
- - bin/sdc-getmachine
180
- - bin/sdc-getmachinemetadata
181
- - bin/sdc-getmachinesnapshot
182
- - bin/sdc-getmachinetag
183
- - bin/sdc-getpackage
184
- - bin/sdc-listdatacenters
185
- - bin/sdc-listdatasets
186
- - bin/sdc-listinstrumentations
187
- - bin/sdc-listkeys
188
- - bin/sdc-listmachines
189
- - bin/sdc-listmachinesnapshots
190
- - bin/sdc-listmachinetags
191
- - bin/sdc-listpackages
192
- - bin/sdc-rebootmachine
193
- - bin/sdc-resizemachine
194
- - bin/sdc-setup
195
- - bin/sdc-startmachine
196
- - bin/sdc-startmachinefromsnapshot
197
- - bin/sdc-stopmachine
198
- - config/fixtures/instrumentation.json
199
- - config/fixtures/key.json
200
- - config/fixtures/tag.json
124
+ - bin/sdc
201
125
  - lib/cli_helper.rb
126
+ - lib/configure.rb
202
127
  - lib/smartdc.rb
203
128
  - lib/smartdc/api/analytics.rb
204
- - lib/smartdc/api/analytics/instrumentations.rb
129
+ - lib/smartdc/api/analytics/heatmap.rb
205
130
  - lib/smartdc/api/datacenters.rb
206
131
  - lib/smartdc/api/datasets.rb
207
132
  - lib/smartdc/api/keys.rb
@@ -213,23 +138,30 @@ files:
213
138
  - lib/smartdc/client.rb
214
139
  - lib/smartdc/error.rb
215
140
  - lib/smartdc/request.rb
216
- - lib/smartdc/response/mashify.rb
217
- - lib/smartdc/response/parse_json.rb
141
+ - lib/smartdc/response.rb
218
142
  - lib/smartdc/response/raise_error.rb
219
143
  - smartdc.gemspec
220
- - spec/smartdc/api/analytics_spec.rb
221
- - spec/smartdc/api/datacenters_spec.rb
222
- - spec/smartdc/api/datasets_spec.rb
223
- - spec/smartdc/api/keys_spec.rb
224
- - spec/smartdc/api/machine/metadata_spec.rb
225
- - spec/smartdc/api/machine/snapshots_spec.rb
226
- - spec/smartdc/api/machine/tags_spec.rb
227
- - spec/smartdc/api/machines_spec.rb
228
- - spec/smartdc/api/packages_spec.rb
229
- - spec/smartdc/client_spec.rb
230
- - spec/smartdc/request_spec.rb
231
- - spec/smartdc_spec.rb
144
+ - spec/fixtures/analytics.json
145
+ - spec/fixtures/datacenter.json
146
+ - spec/fixtures/datacenters.json
147
+ - spec/fixtures/datasets.json
148
+ - spec/fixtures/keys.json
149
+ - spec/fixtures/machines.json
150
+ - spec/fixtures/packages.json
151
+ - spec/fixtures/snapshots.json
152
+ - spec/fixtures/tag.json
232
153
  - spec/spec_helper.rb
154
+ - spec/unit/smartdc/api/analytics_spec.rb
155
+ - spec/unit/smartdc/api/datacenters_spec.rb
156
+ - spec/unit/smartdc/api/datasets_spec.rb
157
+ - spec/unit/smartdc/api/keys_spec.rb
158
+ - spec/unit/smartdc/api/machine/metadata_spec.rb
159
+ - spec/unit/smartdc/api/machine/snapshots_spec.rb
160
+ - spec/unit/smartdc/api/machine/tags_spec.rb
161
+ - spec/unit/smartdc/api/machines_spec.rb
162
+ - spec/unit/smartdc/api/packages_spec.rb
163
+ - spec/unit/smartdc/client_spec.rb
164
+ - spec/unit/smartdc_spec.rb
233
165
  homepage: http://github.com/ogom/ruby-smartdc
234
166
  licenses:
235
167
  - MIT
@@ -245,7 +177,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
245
177
  version: '0'
246
178
  segments:
247
179
  - 0
248
- hash: -933495277461786696
180
+ hash: -3018539287908921547
249
181
  required_rubygems_version: !ruby/object:Gem::Requirement
250
182
  none: false
251
183
  requirements:
@@ -254,8 +186,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
254
186
  version: '0'
255
187
  requirements: []
256
188
  rubyforge_project:
257
- rubygems_version: 1.8.15
189
+ rubygems_version: 1.8.23
258
190
  signing_key:
259
191
  specification_version: 3
260
- summary: SmartDataCenter CloudApi client by ruby.
192
+ summary: Joyent SmartDataCenter CloudApi client by ruby.
261
193
  test_files: []