instance_selector 0.0.11 → 0.0.12
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/lib/instance_selector/providers/aws.rb +28 -4
- data/lib/instance_selector/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6bf8913d19e961b3b2bf2483471ab2977ed3df19
|
4
|
+
data.tar.gz: fc210a3b0dc754c62884127a3cdba34ca5c90397
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8cb934239d57e47027dcd7d3fa4aaa478854892efcc7a570a6396bdc9ce87a2d658c9d0f6da0ff407a5428ba2b3f281276391a29d78724ffde7406f4ebb995e9
|
7
|
+
data.tar.gz: 19533d33a80aac59de41403c4a854771db2b544667318e13b68a09e61b04a38283c557ecb08d143aaad829b4f5d6bdd12bf4e5d1c988b91b8da83a8516e79d51
|
@@ -13,11 +13,9 @@ module InstanceSelector
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
def instances(filters={})
|
17
|
-
instances = @fog.describe_instances({"instance-state-name" => "running"}.merge(filters))
|
18
|
-
|
19
|
-
instances.body['reservationSet'].inject({}) do |memo, i|
|
20
16
|
|
17
|
+
def dns_from_instance_reservation_set(reservation_set)
|
18
|
+
reservation_set.inject({}) do |memo, i|
|
21
19
|
# Each instancesSet can have multiple instances
|
22
20
|
# Odd, but explains why it's plural.
|
23
21
|
i['instancesSet'].each do |instance|
|
@@ -30,6 +28,32 @@ module InstanceSelector
|
|
30
28
|
end
|
31
29
|
end
|
32
30
|
|
31
|
+
def on_demand_instances(filters={})
|
32
|
+
instances = @fog.describe_instances({"instance-state-name" => "running"}.merge(filters))
|
33
|
+
|
34
|
+
dns_from_instance_reservation_set instances.body['reservationSet']
|
35
|
+
end
|
36
|
+
|
37
|
+
def spot_instances(filters={})
|
38
|
+
requests = @fog.describe_spot_instance_requests({'state' => 'active'}.merge(filters))
|
39
|
+
requests.body['spotInstanceRequestSet'].inject({}) do |memo, req|
|
40
|
+
|
41
|
+
if req['instanceId'] && !req['instanceId'].empty?
|
42
|
+
instances = @fog.describe_instances('instance-id' => req['instanceId'])
|
43
|
+
memo.merge! dns_from_instance_reservation_set(instances.body['reservationSet'])
|
44
|
+
end
|
45
|
+
|
46
|
+
memo
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
def instances(filters={})
|
52
|
+
on_demand = on_demand_instances(filters)
|
53
|
+
spot = spot_instances(filters)
|
54
|
+
on_demand.merge(spot)
|
55
|
+
end
|
56
|
+
|
33
57
|
def connect
|
34
58
|
begin
|
35
59
|
@fog = Fog::Compute.new(provider: 'AWS',
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: instance_selector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin McFadden
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fog
|