fog-aws 2.0.1 → 3.0.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 +5 -5
- data/CHANGELOG.md +18 -1
- data/README.md +4 -0
- data/fog-aws.gemspec +3 -3
- data/lib/fog/aws/models/compute/flavors.rb +150 -0
- data/lib/fog/aws/models/compute/volume.rb +19 -30
- data/lib/fog/aws/models/elb/backend_server_descriptions.rb +1 -1
- data/lib/fog/aws/models/elb/listeners.rb +3 -4
- data/lib/fog/aws/models/elb/load_balancer.rb +10 -2
- data/lib/fog/aws/models/elb/load_balancers.rb +5 -6
- data/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb +24 -21
- data/lib/fog/aws/version.rb +1 -1
- data/tests/models/compute/volume_tests.rb +30 -23
- metadata +13 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 8397c56917f7c1ee4e17de5f7ab0bd60878a95bb781f4c4bbada930ace0fea85
|
|
4
|
+
data.tar.gz: 6258fccc1a3bba86c6fe25c08a4cb59b3ce018d9d9b03ad1fccf2d9fa8f68e3f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5febe6270c40489d8c4c3eb2c0ae5cf25f026ebb86a33f91bfebcf15202bc558b542af6c6c4ea9ca2374be5e38d2ea46d5edfb19b143d3bfc7d8f760ae6c69c9
|
|
7
|
+
data.tar.gz: ae79ca65ce7c0d23ea19aafba363f9e5867a32062ef7b9f61d908454e9e35c1f502d08ad8bb5abc596a4a41fbfa961b376fd0e6131245086be21164f7f434ff9
|
data/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased](https://github.com/fog/fog-aws/tree/HEAD)
|
|
4
4
|
|
|
5
|
-
[Full Changelog](https://github.com/fog/fog-aws/compare/v2.0.
|
|
5
|
+
[Full Changelog](https://github.com/fog/fog-aws/compare/v2.0.1...HEAD)
|
|
6
|
+
|
|
7
|
+
**Closed issues:**
|
|
8
|
+
|
|
9
|
+
- Easily Delete S3 directory and it contents? [\#435](https://github.com/fog/fog-aws/issues/435)
|
|
10
|
+
- S3 upload help -- likely user error :\) [\#432](https://github.com/fog/fog-aws/issues/432)
|
|
11
|
+
- Fog not work without pry [\#317](https://github.com/fog/fog-aws/issues/317)
|
|
12
|
+
|
|
13
|
+
**Merged pull requests:**
|
|
14
|
+
|
|
15
|
+
- fix: attach volume on \#save, remove \#server= [\#443](https://github.com/fog/fog-aws/pull/443) ([lanej](https://github.com/lanej))
|
|
16
|
+
- Adding g3 flavors [\#440](https://github.com/fog/fog-aws/pull/440) ([AlexLamande](https://github.com/AlexLamande))
|
|
17
|
+
- Add c5 and m5 instance types. [\#439](https://github.com/fog/fog-aws/pull/439) ([rogersd](https://github.com/rogersd))
|
|
18
|
+
- Include link to full documentation [\#434](https://github.com/fog/fog-aws/pull/434) ([kylefox](https://github.com/kylefox))
|
|
19
|
+
- fog-core 2.x, fog-json 1.x [\#433](https://github.com/fog/fog-aws/pull/433) ([lanej](https://github.com/lanej))
|
|
20
|
+
|
|
21
|
+
## [v2.0.1](https://github.com/fog/fog-aws/tree/v2.0.1) (2018-02-28)
|
|
22
|
+
[Full Changelog](https://github.com/fog/fog-aws/compare/v2.0.0...v2.0.1)
|
|
6
23
|
|
|
7
24
|
**Closed issues:**
|
|
8
25
|
|
data/README.md
CHANGED
|
@@ -76,6 +76,10 @@ instance.destroy
|
|
|
76
76
|
|
|
77
77
|
Fog::AWS is more than EC2 since it supports many services provided by AWS. The best way to learn and to know about how many services are supported is to take a look at the source code. To review the tests directory and to play with the library in ```irb``` can be very helpful resources as well.
|
|
78
78
|
|
|
79
|
+
## Documentation
|
|
80
|
+
|
|
81
|
+
See the [online documentation](http://www.rubydoc.info/github/fog/fog-aws) for a complete API reference.
|
|
82
|
+
|
|
79
83
|
## Contributing
|
|
80
84
|
|
|
81
85
|
1. Fork it ( https://github.com/fog/fog-aws/fork )
|
data/fog-aws.gemspec
CHANGED
|
@@ -23,11 +23,11 @@ Gem::Specification.new do |spec|
|
|
|
23
23
|
|
|
24
24
|
spec.add_development_dependency 'bundler', '~> 1.15'
|
|
25
25
|
spec.add_development_dependency 'rake', '~> 10.0'
|
|
26
|
-
spec.add_development_dependency 'shindo', '~> 0.3'
|
|
27
26
|
spec.add_development_dependency 'rubyzip', '~> 1.2.1'
|
|
27
|
+
spec.add_development_dependency 'shindo', '~> 0.3'
|
|
28
28
|
|
|
29
|
-
spec.add_dependency 'fog-core', '~> 1
|
|
30
|
-
spec.add_dependency 'fog-json', '~> 1.
|
|
29
|
+
spec.add_dependency 'fog-core', '~> 2.1'
|
|
30
|
+
spec.add_dependency 'fog-json', '~> 1.1'
|
|
31
31
|
spec.add_dependency 'fog-xml', '~> 0.1'
|
|
32
32
|
spec.add_dependency 'ipaddress', '~> 0.8'
|
|
33
33
|
end
|
|
@@ -244,6 +244,66 @@ module Fog
|
|
|
244
244
|
:ebs_optimized_available => true,
|
|
245
245
|
:instance_store_volumes => 0
|
|
246
246
|
},
|
|
247
|
+
{
|
|
248
|
+
:id => 'c5.large',
|
|
249
|
+
:name => 'C5 Large',
|
|
250
|
+
:bits => 64,
|
|
251
|
+
:cores => 2,
|
|
252
|
+
:disk => 0,
|
|
253
|
+
:ram => 4096,
|
|
254
|
+
:ebs_optimized_available => true,
|
|
255
|
+
:instance_store_volumes => 0
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
:id => 'c5.xlarge',
|
|
259
|
+
:name => 'C5 Extra Large',
|
|
260
|
+
:bits => 64,
|
|
261
|
+
:cores => 4,
|
|
262
|
+
:disk => 0,
|
|
263
|
+
:ram => 8192,
|
|
264
|
+
:ebs_optimized_available => true,
|
|
265
|
+
:instance_store_volumes => 0
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
:id => 'c5.2xlarge',
|
|
269
|
+
:name => 'C5 Double Extra Large',
|
|
270
|
+
:bits => 64,
|
|
271
|
+
:cores => 8,
|
|
272
|
+
:disk => 0,
|
|
273
|
+
:ram => 16384,
|
|
274
|
+
:ebs_optimized_available => true,
|
|
275
|
+
:instance_store_volumes => 0
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
:id => 'c5.4xlarge',
|
|
279
|
+
:name => 'C5 Quadruple Extra Large',
|
|
280
|
+
:bits => 64,
|
|
281
|
+
:cores => 16,
|
|
282
|
+
:disk => 0,
|
|
283
|
+
:ram => 32768,
|
|
284
|
+
:ebs_optimized_available => true,
|
|
285
|
+
:instance_store_volumes => 0
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
:id => 'c5.9xlarge',
|
|
289
|
+
:name => 'C5 Nine Extra Large',
|
|
290
|
+
:bits => 64,
|
|
291
|
+
:cores => 36,
|
|
292
|
+
:disk => 0,
|
|
293
|
+
:ram => 73728,
|
|
294
|
+
:ebs_optimized_available => true,
|
|
295
|
+
:instance_store_volumes => 0
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
:id => 'c5.18xlarge',
|
|
299
|
+
:name => 'C5 Eighteen Extra Large',
|
|
300
|
+
:bits => 64,
|
|
301
|
+
:cores => 72,
|
|
302
|
+
:disk => 0,
|
|
303
|
+
:ram => 147456,
|
|
304
|
+
:ebs_optimized_available => true,
|
|
305
|
+
:instance_store_volumes => 0
|
|
306
|
+
},
|
|
247
307
|
{
|
|
248
308
|
:id => 'g2.2xlarge',
|
|
249
309
|
:name => 'GPU Double Extra Large',
|
|
@@ -694,6 +754,66 @@ module Fog
|
|
|
694
754
|
:ebs_optimized_available => true,
|
|
695
755
|
:instance_store_volumes => 0
|
|
696
756
|
},
|
|
757
|
+
{
|
|
758
|
+
:id => "m5.large",
|
|
759
|
+
:name => "M5 Large",
|
|
760
|
+
:bits => 64,
|
|
761
|
+
:cores => 2,
|
|
762
|
+
:ram => 8192,
|
|
763
|
+
:disk => 0,
|
|
764
|
+
:ebs_optimized_available => true,
|
|
765
|
+
:instance_store_volumes => 0
|
|
766
|
+
},
|
|
767
|
+
{
|
|
768
|
+
:id => "m5.xlarge",
|
|
769
|
+
:name => "M5 Extra Large",
|
|
770
|
+
:bits => 64,
|
|
771
|
+
:cores => 4,
|
|
772
|
+
:ram => 16384,
|
|
773
|
+
:disk => 0,
|
|
774
|
+
:ebs_optimized_available => true,
|
|
775
|
+
:instance_store_volumes => 0
|
|
776
|
+
},
|
|
777
|
+
{
|
|
778
|
+
:id => "m5.2xlarge",
|
|
779
|
+
:name => "M5 Double Extra Large",
|
|
780
|
+
:bits => 64,
|
|
781
|
+
:cores => 8,
|
|
782
|
+
:ram => 32768,
|
|
783
|
+
:disk => 0,
|
|
784
|
+
:ebs_optimized_available => true,
|
|
785
|
+
:instance_store_volumes => 0
|
|
786
|
+
},
|
|
787
|
+
{
|
|
788
|
+
:id => "m5.4xlarge",
|
|
789
|
+
:name => "M5 Quadruple Extra Large",
|
|
790
|
+
:bits => 64,
|
|
791
|
+
:cores => 16,
|
|
792
|
+
:ram => 65536,
|
|
793
|
+
:disk => 0,
|
|
794
|
+
:ebs_optimized_available => true,
|
|
795
|
+
:instance_store_volumes => 0
|
|
796
|
+
},
|
|
797
|
+
{
|
|
798
|
+
:id => "m5.12xlarge",
|
|
799
|
+
:name => "M5 Twelve Extra Large",
|
|
800
|
+
:bits => 64,
|
|
801
|
+
:cores => 48,
|
|
802
|
+
:ram => 196608,
|
|
803
|
+
:disk => 0,
|
|
804
|
+
:ebs_optimized_available => true,
|
|
805
|
+
:instance_store_volumes => 0
|
|
806
|
+
},
|
|
807
|
+
{
|
|
808
|
+
:id => "m5.24xlarge",
|
|
809
|
+
:name => "M5 Twenty Four Extra Large",
|
|
810
|
+
:bits => 64,
|
|
811
|
+
:cores => 96,
|
|
812
|
+
:ram => 393216,
|
|
813
|
+
:disk => 0,
|
|
814
|
+
:ebs_optimized_available => true,
|
|
815
|
+
:instance_store_volumes => 0
|
|
816
|
+
},
|
|
697
817
|
{
|
|
698
818
|
:id => "p2.xlarge",
|
|
699
819
|
:name => "General Purpose GPU Extra Large",
|
|
@@ -753,6 +873,36 @@ module Fog
|
|
|
753
873
|
:disk => 0,
|
|
754
874
|
:ebs_optimized_available => true,
|
|
755
875
|
:instance_store_volumes => 0
|
|
876
|
+
},
|
|
877
|
+
{
|
|
878
|
+
:id => 'g3.4xlarge',
|
|
879
|
+
:name => 'G3 Quadruple Extra Large',
|
|
880
|
+
:bits => 64,
|
|
881
|
+
:cores => 16,
|
|
882
|
+
:disk => 0,
|
|
883
|
+
:ram => 124928,
|
|
884
|
+
:ebs_optimized_available => true,
|
|
885
|
+
:instance_store_volumes => 0
|
|
886
|
+
},
|
|
887
|
+
{
|
|
888
|
+
:id => 'g3.8xlarge',
|
|
889
|
+
:name => 'G3 Octuple Extra Large',
|
|
890
|
+
:bits => 64,
|
|
891
|
+
:cores => 32,
|
|
892
|
+
:disk => 0,
|
|
893
|
+
:ram => 249856,
|
|
894
|
+
:ebs_optimized_available => true,
|
|
895
|
+
:instance_store_volumes => 0
|
|
896
|
+
},
|
|
897
|
+
{
|
|
898
|
+
:id => 'g3.16xlarge',
|
|
899
|
+
:name => 'G3 Sixteen Extra Large',
|
|
900
|
+
:bits => 64,
|
|
901
|
+
:cores => 64,
|
|
902
|
+
:disk => 0,
|
|
903
|
+
:ram => 499712,
|
|
904
|
+
:ebs_optimized_available => true,
|
|
905
|
+
:instance_store_volumes => 0
|
|
756
906
|
}
|
|
757
907
|
]
|
|
758
908
|
|
|
@@ -21,7 +21,7 @@ module Fog
|
|
|
21
21
|
|
|
22
22
|
def initialize(attributes = {})
|
|
23
23
|
# assign server first to prevent race condition with persisted?
|
|
24
|
-
|
|
24
|
+
@server = attributes.delete(:server)
|
|
25
25
|
super
|
|
26
26
|
end
|
|
27
27
|
|
|
@@ -59,27 +59,21 @@ module Fog
|
|
|
59
59
|
requires :availability_zone
|
|
60
60
|
requires_one :size, :snapshot_id
|
|
61
61
|
|
|
62
|
-
if type == 'io1'
|
|
63
|
-
requires :iops
|
|
64
|
-
end
|
|
62
|
+
requires :iops if type == 'io1'
|
|
65
63
|
|
|
66
64
|
data = service.create_volume(availability_zone, size, create_params).body
|
|
67
65
|
merge_attributes(data)
|
|
68
66
|
|
|
69
67
|
if tags = self.tags
|
|
70
68
|
# expect eventual consistency
|
|
71
|
-
Fog.wait_for {
|
|
72
|
-
service.create_tags(
|
|
73
|
-
self.identity,
|
|
74
|
-
tags
|
|
75
|
-
)
|
|
69
|
+
Fog.wait_for { service.volumes.get(identity) }
|
|
70
|
+
service.create_tags(identity, tags)
|
|
76
71
|
end
|
|
77
72
|
|
|
78
|
-
if @server
|
|
79
|
-
self.server = @server
|
|
80
|
-
end
|
|
81
|
-
true
|
|
73
|
+
attach(@server, device) if @server && device
|
|
82
74
|
end
|
|
75
|
+
|
|
76
|
+
true
|
|
83
77
|
end
|
|
84
78
|
|
|
85
79
|
def server
|
|
@@ -87,14 +81,6 @@ module Fog
|
|
|
87
81
|
service.servers.get(server_id)
|
|
88
82
|
end
|
|
89
83
|
|
|
90
|
-
def server=(new_server)
|
|
91
|
-
if new_server
|
|
92
|
-
attach(new_server)
|
|
93
|
-
else
|
|
94
|
-
detach
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
|
|
98
84
|
def snapshots
|
|
99
85
|
requires :id
|
|
100
86
|
service.snapshots(:volume => self)
|
|
@@ -109,22 +95,15 @@ module Fog
|
|
|
109
95
|
detach(true)
|
|
110
96
|
end
|
|
111
97
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
def attachmentSet=(new_attachment_set)
|
|
115
|
-
merge_attributes(new_attachment_set.first || {})
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
def attach(new_server)
|
|
98
|
+
def attach(new_server, new_device)
|
|
119
99
|
if !persisted?
|
|
120
100
|
@server = new_server
|
|
121
101
|
self.availability_zone = new_server.availability_zone
|
|
122
102
|
elsif new_server
|
|
123
|
-
requires :device
|
|
124
103
|
wait_for { ready? }
|
|
125
104
|
@server = nil
|
|
126
105
|
self.server_id = new_server.id
|
|
127
|
-
service.attach_volume(server_id, id,
|
|
106
|
+
service.attach_volume(server_id, id, new_device)
|
|
128
107
|
reload
|
|
129
108
|
end
|
|
130
109
|
end
|
|
@@ -138,6 +117,16 @@ module Fog
|
|
|
138
117
|
end
|
|
139
118
|
end
|
|
140
119
|
|
|
120
|
+
def server=(_)
|
|
121
|
+
raise NoMethodError, 'use Fog::Compute::AWS::Volume#attach(server, device)'
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
private
|
|
125
|
+
|
|
126
|
+
def attachmentSet=(new_attachment_set)
|
|
127
|
+
merge_attributes(new_attachment_set.first || {})
|
|
128
|
+
end
|
|
129
|
+
|
|
141
130
|
def create_params
|
|
142
131
|
{
|
|
143
132
|
'Encrypted' => encrypted,
|
|
@@ -12,17 +12,16 @@ module Fog
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def get(lb_port)
|
|
15
|
-
all.find{|listener| listener.lb_port == lb_port}
|
|
15
|
+
all.find { |listener| listener.lb_port == lb_port }
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
private
|
|
19
|
+
|
|
19
20
|
# Munge an array of ListenerDescription hashes like:
|
|
20
21
|
# {'Listener' => listener, 'PolicyNames' => []}
|
|
21
22
|
# to an array of listeners with a PolicyNames key
|
|
22
23
|
def munged_data
|
|
23
|
-
data.map {|description|
|
|
24
|
-
description['Listener'].merge('PolicyNames' => description['PolicyNames'])
|
|
25
|
-
}
|
|
24
|
+
data.map { |description| description['Listener'].merge('PolicyNames' => description['PolicyNames']) }
|
|
26
25
|
end
|
|
27
26
|
end
|
|
28
27
|
end
|
|
@@ -223,16 +223,24 @@ module Fog
|
|
|
223
223
|
end
|
|
224
224
|
|
|
225
225
|
def reload
|
|
226
|
-
super
|
|
227
226
|
@instance_health = nil
|
|
228
227
|
@policy_descriptions = nil
|
|
229
|
-
|
|
228
|
+
super
|
|
230
229
|
end
|
|
231
230
|
|
|
232
231
|
def destroy
|
|
233
232
|
requires :id
|
|
234
233
|
service.delete_load_balancer(id)
|
|
235
234
|
end
|
|
235
|
+
|
|
236
|
+
protected
|
|
237
|
+
|
|
238
|
+
def all_associations_and_attributes
|
|
239
|
+
super.merge(
|
|
240
|
+
'ListenerDescriptions' => attributes['ListenerDescriptions'],
|
|
241
|
+
'BackendServerDescriptions' => attributes['BackendServerDescriptions'],
|
|
242
|
+
)
|
|
243
|
+
end
|
|
236
244
|
end
|
|
237
245
|
end
|
|
238
246
|
end
|
|
@@ -6,7 +6,7 @@ module Fog
|
|
|
6
6
|
model Fog::AWS::ELB::LoadBalancer
|
|
7
7
|
|
|
8
8
|
# Creates a new load balancer
|
|
9
|
-
def initialize(attributes={})
|
|
9
|
+
def initialize(attributes = {})
|
|
10
10
|
super
|
|
11
11
|
end
|
|
12
12
|
|
|
@@ -14,7 +14,7 @@ module Fog
|
|
|
14
14
|
result = []
|
|
15
15
|
marker = nil
|
|
16
16
|
finished = false
|
|
17
|
-
|
|
17
|
+
until finished
|
|
18
18
|
data = service.describe_load_balancers('Marker' => marker).body
|
|
19
19
|
result.concat(data['DescribeLoadBalancersResult']['LoadBalancerDescriptions'])
|
|
20
20
|
marker = data['DescribeLoadBalancersResult']['NextMarker']
|
|
@@ -24,10 +24,9 @@ module Fog
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def get(identity)
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
end
|
|
27
|
+
return unless identity
|
|
28
|
+
data = service.describe_load_balancers('LoadBalancerNames' => identity).body['DescribeLoadBalancersResult']['LoadBalancerDescriptions'].first
|
|
29
|
+
new(data)
|
|
31
30
|
rescue Fog::AWS::ELB::NotFound
|
|
32
31
|
nil
|
|
33
32
|
end
|
|
@@ -51,34 +51,37 @@ module Fog
|
|
|
51
51
|
|
|
52
52
|
class Mock
|
|
53
53
|
def create_load_balancer_listeners(lb_name, listeners)
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
load_balancer = data[:load_balancers][lb_name]
|
|
55
|
+
raise Fog::AWS::ELB::NotFound unless load_balancer
|
|
56
|
+
response = Excon::Response.new
|
|
56
57
|
|
|
57
|
-
|
|
58
|
+
certificate_ids = Fog::AWS::IAM::Mock.data[@aws_access_key_id][:server_certificates].map { |_n, c| c['Arn'] }
|
|
58
59
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
listeners.each do |listener|
|
|
61
|
+
if listener['SSLCertificateId'] && !certificate_ids.include?(listener['SSLCertificateId'])
|
|
62
|
+
raise Fog::AWS::IAM::NotFound, 'CertificateNotFound'
|
|
63
|
+
end
|
|
63
64
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
if listener['Protocol'] && listener['InstanceProtocol']
|
|
66
|
+
if (
|
|
67
|
+
%w[HTTP HTTPS].include?(listener['Protocol']) && !%w[HTTP HTTPS].include?(listener['InstanceProtocol'])
|
|
68
|
+
) || (
|
|
69
|
+
%w[TCP SSL].include?(listener['Protocol']) && !%w[TCP SSL].include?(listener['InstanceProtocol'])
|
|
70
|
+
)
|
|
71
|
+
raise Fog::AWS::ELB::ValidationError
|
|
72
|
+
end
|
|
69
73
|
end
|
|
74
|
+
load_balancer['ListenerDescriptions'] << { 'Listener' => listener, 'PolicyNames' => [] }
|
|
75
|
+
end
|
|
70
76
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
77
|
+
response.status = 200
|
|
78
|
+
response.body = {
|
|
79
|
+
'ResponseMetadata' => {
|
|
80
|
+
'RequestId' => Fog::AWS::Mock.request_id
|
|
76
81
|
}
|
|
82
|
+
}
|
|
77
83
|
|
|
78
|
-
|
|
79
|
-
else
|
|
80
|
-
raise Fog::AWS::ELB::NotFound
|
|
81
|
-
end
|
|
84
|
+
response
|
|
82
85
|
end
|
|
83
86
|
end
|
|
84
87
|
end
|
data/lib/fog/aws/version.rb
CHANGED
|
@@ -1,37 +1,45 @@
|
|
|
1
|
-
Shindo.tests(
|
|
2
|
-
|
|
1
|
+
Shindo.tests('Fog::Compute[:aws] | volume', ['aws']) do
|
|
3
2
|
@server = Fog::Compute[:aws].servers.create
|
|
4
3
|
@server.wait_for { ready? }
|
|
5
4
|
|
|
6
|
-
model_tests(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
model_tests(
|
|
6
|
+
Fog::Compute[:aws].volumes,
|
|
7
|
+
{
|
|
8
|
+
availability_zone: @server.availability_zone,
|
|
9
|
+
size: 1,
|
|
10
|
+
tags: { 'key' => 'value' },
|
|
11
|
+
type: 'gp2',
|
|
12
|
+
server: @server,
|
|
13
|
+
device: '/dev/sdz1'
|
|
14
|
+
},
|
|
15
|
+
true
|
|
16
|
+
) do
|
|
17
|
+
|
|
18
|
+
tests('attached').succeeds do
|
|
19
|
+
@instance.server == @server
|
|
12
20
|
end
|
|
13
21
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
@instance.server.
|
|
22
|
+
tests('#detach').succeeds do
|
|
23
|
+
@instance.detach
|
|
24
|
+
@instance.wait_for { ready? }
|
|
25
|
+
@instance.server.nil?
|
|
18
26
|
end
|
|
19
27
|
|
|
20
|
-
tests('#server
|
|
21
|
-
|
|
28
|
+
tests('#server=').raises(NoMethodError, 'use Fog::Compute::AWS::Volume#attach(server, device)') do
|
|
29
|
+
@instance.server = @server
|
|
22
30
|
end
|
|
23
31
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
32
|
+
tests('#attach(server, device)').succeeds do
|
|
33
|
+
@instance.attach(@server, '/dev/sdz1')
|
|
34
|
+
@instance.server == @server
|
|
35
|
+
end
|
|
28
36
|
|
|
29
37
|
tests('#force_detach').succeeds do
|
|
30
38
|
@instance.force_detach
|
|
39
|
+
@instance.wait_for { ready? }
|
|
40
|
+
@instance.server.nil?
|
|
31
41
|
end
|
|
32
42
|
|
|
33
|
-
@instance.wait_for { ready? }
|
|
34
|
-
|
|
35
43
|
@instance.type = 'io1'
|
|
36
44
|
@instance.iops = 5000
|
|
37
45
|
@instance.size = 100
|
|
@@ -47,10 +55,9 @@ Shindo.tests("Fog::Compute[:aws] | volume", ['aws']) do
|
|
|
47
55
|
returns(5000) { @instance.iops }
|
|
48
56
|
returns(100) { @instance.size }
|
|
49
57
|
|
|
50
|
-
tests('@instance.
|
|
51
|
-
@instance.
|
|
58
|
+
tests('@instance.tags').returns({'key' => 'value'}) do
|
|
59
|
+
@instance.tags
|
|
52
60
|
end
|
|
53
|
-
|
|
54
61
|
end
|
|
55
62
|
|
|
56
63
|
@server.destroy
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fog-aws
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Josh Lane
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2018-
|
|
12
|
+
date: 2018-04-23 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: bundler
|
|
@@ -40,61 +40,61 @@ dependencies:
|
|
|
40
40
|
- !ruby/object:Gem::Version
|
|
41
41
|
version: '10.0'
|
|
42
42
|
- !ruby/object:Gem::Dependency
|
|
43
|
-
name:
|
|
43
|
+
name: rubyzip
|
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
|
45
45
|
requirements:
|
|
46
46
|
- - "~>"
|
|
47
47
|
- !ruby/object:Gem::Version
|
|
48
|
-
version:
|
|
48
|
+
version: 1.2.1
|
|
49
49
|
type: :development
|
|
50
50
|
prerelease: false
|
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
52
|
requirements:
|
|
53
53
|
- - "~>"
|
|
54
54
|
- !ruby/object:Gem::Version
|
|
55
|
-
version:
|
|
55
|
+
version: 1.2.1
|
|
56
56
|
- !ruby/object:Gem::Dependency
|
|
57
|
-
name:
|
|
57
|
+
name: shindo
|
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
|
59
59
|
requirements:
|
|
60
60
|
- - "~>"
|
|
61
61
|
- !ruby/object:Gem::Version
|
|
62
|
-
version:
|
|
62
|
+
version: '0.3'
|
|
63
63
|
type: :development
|
|
64
64
|
prerelease: false
|
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
|
66
66
|
requirements:
|
|
67
67
|
- - "~>"
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
|
-
version:
|
|
69
|
+
version: '0.3'
|
|
70
70
|
- !ruby/object:Gem::Dependency
|
|
71
71
|
name: fog-core
|
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
|
73
73
|
requirements:
|
|
74
74
|
- - "~>"
|
|
75
75
|
- !ruby/object:Gem::Version
|
|
76
|
-
version: '1
|
|
76
|
+
version: '2.1'
|
|
77
77
|
type: :runtime
|
|
78
78
|
prerelease: false
|
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
|
80
80
|
requirements:
|
|
81
81
|
- - "~>"
|
|
82
82
|
- !ruby/object:Gem::Version
|
|
83
|
-
version: '1
|
|
83
|
+
version: '2.1'
|
|
84
84
|
- !ruby/object:Gem::Dependency
|
|
85
85
|
name: fog-json
|
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
|
87
87
|
requirements:
|
|
88
88
|
- - "~>"
|
|
89
89
|
- !ruby/object:Gem::Version
|
|
90
|
-
version: '1.
|
|
90
|
+
version: '1.1'
|
|
91
91
|
type: :runtime
|
|
92
92
|
prerelease: false
|
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
|
94
94
|
requirements:
|
|
95
95
|
- - "~>"
|
|
96
96
|
- !ruby/object:Gem::Version
|
|
97
|
-
version: '1.
|
|
97
|
+
version: '1.1'
|
|
98
98
|
- !ruby/object:Gem::Dependency
|
|
99
99
|
name: fog-xml
|
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -1700,7 +1700,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
1700
1700
|
version: '0'
|
|
1701
1701
|
requirements: []
|
|
1702
1702
|
rubyforge_project:
|
|
1703
|
-
rubygems_version: 2.6
|
|
1703
|
+
rubygems_version: 2.7.6
|
|
1704
1704
|
signing_key:
|
|
1705
1705
|
specification_version: 4
|
|
1706
1706
|
summary: Module for the 'fog' gem to support Amazon Web Services.
|