hyperb 0.3.3 → 0.4.0
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.
- checksums.yaml +4 -4
- data/README.md +1 -0
- data/examples/README.md +22 -0
- data/lib/hyperb/version.rb +1 -1
- data/lib/hyperb/volumes/volumes.rb +28 -0
- data/spec/fixtures/create_volume.json +9 -0
- data/spec/fixtures/inspect_volume.json +1 -1
- data/spec/{create_snapshot.rb → snapshots_spec.rb} +0 -0
- data/spec/volumes_spec.rb +28 -5
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a85a4a493a9700b5bb291c07bcf22d070270ad92
|
4
|
+
data.tar.gz: 5258bff3427542ebe431d727895c5f1033e5078b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69668e4a88193efe0c351d4791bad48d50d99942c88490ed75c479987074b4da4f9ddbf922a0dadeb91b0b2a6def4423e1d25bd1ae76571b915f2d112a2ffe39
|
7
|
+
data.tar.gz: 73257dbe7f6e14178f83a733efbd5d3f6b83bc7d7a085b4a360f7cfc388b1188fdbe203e51bbd5937a9da5474c72c26b75c78ce15ed6aaf9ef4188495242ba94
|
data/README.md
CHANGED
data/examples/README.md
CHANGED
@@ -234,6 +234,28 @@ client.rename_container id: 'django-server', name: 'its-actually-a-rails-server'
|
|
234
234
|
|
235
235
|
## Volumes API
|
236
236
|
|
237
|
+
#### create_volume
|
238
|
+
|
239
|
+
Returns a Hash containing volume information
|
240
|
+
|
241
|
+
```ruby
|
242
|
+
vol = client.create_volume name: 'vol'
|
243
|
+
# creates default (10gb) volume
|
244
|
+
{:name=>"vol", :driver=>"hyper", :mountpoint=>"", :labels=>{:size=>"10", :snapshot=>""}, :scope=>"", :createdat=>"0001-01-01T00:00:00Z"}
|
245
|
+
```
|
246
|
+
|
247
|
+
```ruby
|
248
|
+
vol = client.create_volume name: 'vol1', size: 35
|
249
|
+
# creates a 35GB size volume
|
250
|
+
{:name=>"vol1", :driver=>"hyper", :mountpoint=>"", :labels=>{:size=>"35", :snapshot=>""}, :scope=>"", :createdat=>"0001-01-01T00:00:00Z"}
|
251
|
+
```
|
252
|
+
|
253
|
+
```ruby
|
254
|
+
vol = client.create_volume name: 'vol1', snapshot: 'dddeeefff'
|
255
|
+
# creates a volume based on a snapshot
|
256
|
+
{:name=>"vol1", :driver=>"hyper", :mountpoint=>"", :labels=>{:size=>"10", :snapshot=>"dddeeefff"}, :scope=>"", :createdat=>"0001-01-01T00:00:00Z"}
|
257
|
+
```
|
258
|
+
|
237
259
|
#### remove_volume
|
238
260
|
|
239
261
|
```ruby
|
data/lib/hyperb/version.rb
CHANGED
@@ -10,6 +10,34 @@ module Hyperb
|
|
10
10
|
module Volumes
|
11
11
|
include Hyperb::Utils
|
12
12
|
|
13
|
+
# create volume
|
14
|
+
#
|
15
|
+
# @see https://docs.hyper.sh/Reference/API/2016-04-04%20[Ver.%201.23]/Volume/create.html
|
16
|
+
#
|
17
|
+
# @raise [Hyperb::Error::Unauthorized] raised when credentials are not valid.
|
18
|
+
# @raise [Hyperb::Error::InternalServerError] raised hyper server returns 5xx.
|
19
|
+
#
|
20
|
+
# @return [Hash] downcased symbolized volume information.
|
21
|
+
#
|
22
|
+
# @param params [Hash] A customizable set of params.
|
23
|
+
# @option params [String] :name volume's name
|
24
|
+
# @option params [Fixnum] :size volume size unit of GB, from 10-1000 (1TB).
|
25
|
+
# @option params [String] :snapshot snapshotId
|
26
|
+
def create_volume(params = {})
|
27
|
+
path = '/volumes/create'
|
28
|
+
body = {}
|
29
|
+
body[:driver] = 'hyper'
|
30
|
+
body[:name] = params[:name] if params.key?(:name)
|
31
|
+
|
32
|
+
# setup driver opts
|
33
|
+
body[:driveropts] = {}
|
34
|
+
body[:driveropts][:snapshot] = params[:snapshot]
|
35
|
+
body[:driveropts][:size] = params[:size].to_s
|
36
|
+
|
37
|
+
response = JSON.parse(Hyperb::Request.new(self, path, {}, 'post', body).perform)
|
38
|
+
downcase_symbolize(response)
|
39
|
+
end
|
40
|
+
|
13
41
|
# list volumes
|
14
42
|
#
|
15
43
|
# @see https://docs.hyper.sh/Reference/API/2016-04-04%20[Ver.%201.23]/Volume/list.html
|
File without changes
|
data/spec/volumes_spec.rb
CHANGED
@@ -18,13 +18,37 @@ RSpec.describe Hyperb::Volumes do
|
|
18
18
|
path = @base_path + '/id'
|
19
19
|
|
20
20
|
stub_request(:delete, path)
|
21
|
-
.to_return(body:
|
21
|
+
.to_return(body: "")
|
22
22
|
|
23
23
|
@client.remove_volume id: 'id'
|
24
24
|
expect(a_request(:delete, path)).to have_been_made
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
describe '#create_volume' do
|
29
|
+
|
30
|
+
it 'request to the correct path should be made' do
|
31
|
+
path = @base_path + '/create'
|
32
|
+
|
33
|
+
stub_request(:post, path)
|
34
|
+
.to_return(body: fixture('create_volume.json'))
|
35
|
+
|
36
|
+
@client.create_volume
|
37
|
+
expect(a_request(:post, path)).to have_been_made
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'correct attrs' do
|
41
|
+
path = @base_path + '/create'
|
42
|
+
|
43
|
+
stub_request(:post, path)
|
44
|
+
.to_return(body: fixture('create_volume.json'))
|
45
|
+
|
46
|
+
vol = @client.create_volume
|
47
|
+
expect(vol[:name]).to eql 'tardis'
|
48
|
+
expect(vol[:driver]).to eql 'hyper'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
28
52
|
describe '#inspect_volume' do
|
29
53
|
|
30
54
|
it 'should raise ArgumentError when id is not provided' do
|
@@ -35,7 +59,7 @@ RSpec.describe Hyperb::Volumes do
|
|
35
59
|
path = @base_path + '/id'
|
36
60
|
|
37
61
|
stub_request(:get, path)
|
38
|
-
.to_return(body: fixture('
|
62
|
+
.to_return(body: fixture('inspect_volume.json'))
|
39
63
|
|
40
64
|
@client.inspect_volume id: 'id'
|
41
65
|
expect(a_request(:get, path)).to have_been_made
|
@@ -53,7 +77,7 @@ RSpec.describe Hyperb::Volumes do
|
|
53
77
|
end
|
54
78
|
end
|
55
79
|
|
56
|
-
describe '#
|
80
|
+
describe '#volumes' do
|
57
81
|
|
58
82
|
it 'request to the correct path should be made' do
|
59
83
|
stub_request(:get, @base_path)
|
@@ -63,7 +87,7 @@ RSpec.describe Hyperb::Volumes do
|
|
63
87
|
expect(a_request(:get, @base_path)).to have_been_made
|
64
88
|
end
|
65
89
|
|
66
|
-
it 'return array of
|
90
|
+
it 'return array of volumes' do
|
67
91
|
stub_request(:get, @base_path)
|
68
92
|
.to_return(body: fixture('volumes.json'))
|
69
93
|
|
@@ -84,5 +108,4 @@ RSpec.describe Hyperb::Volumes do
|
|
84
108
|
end
|
85
109
|
end
|
86
110
|
end
|
87
|
-
|
88
111
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hyperb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- drish
|
@@ -164,7 +164,6 @@ files:
|
|
164
164
|
- spec/compose_spec.rb
|
165
165
|
- spec/container_spec.rb
|
166
166
|
- spec/containers_spec.rb
|
167
|
-
- spec/create_snapshot.rb
|
168
167
|
- spec/error_spec.rb
|
169
168
|
- spec/fixtures/auth_obj.json
|
170
169
|
- spec/fixtures/compose_rm.json
|
@@ -175,6 +174,7 @@ files:
|
|
175
174
|
- spec/fixtures/create_image.json
|
176
175
|
- spec/fixtures/create_service.json
|
177
176
|
- spec/fixtures/create_snapshot.json
|
177
|
+
- spec/fixtures/create_volume.json
|
178
178
|
- spec/fixtures/fip_allocate.json
|
179
179
|
- spec/fixtures/fips_ls.json
|
180
180
|
- spec/fixtures/images.json
|
@@ -192,6 +192,7 @@ files:
|
|
192
192
|
- spec/network_spec.rb
|
193
193
|
- spec/request_spec.rb
|
194
194
|
- spec/services_spec.rb
|
195
|
+
- spec/snapshots_spec.rb
|
195
196
|
- spec/version_spec.rb
|
196
197
|
- spec/volumes_spec.rb
|
197
198
|
homepage: https://github.com/drish/hyperb
|