tagenv 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/tagenv/cli.rb +3 -1
- data/lib/tagenv/ec2/tag.rb +9 -2
- data/lib/tagenv/env.rb +8 -4
- data/lib/tagenv/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a31dcee93ac08da65bdd769c8b2b37a96e0a0af7
|
4
|
+
data.tar.gz: 7b9976b148e7db5fb537419d0e776b801cabc728
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3f37bc7ad0c8d540f6e033f835d8f112c00a723d969a70d53d8c6505ec9b7756c18cfd82f3ccbd6c81f678122fd78f6f278c1588ddf93732f2f88fcede39070
|
7
|
+
data.tar.gz: 45c212287c86b39afdee0c298027a1f770815741ffb84b2a7b665ef347a00781d5704a93d0905c957cff8538b313e74d0cf6dbad50165951edb90d030cd32258
|
data/lib/tagenv/cli.rb
CHANGED
@@ -14,11 +14,13 @@ module Tagenv
|
|
14
14
|
desc 'load', 'load'
|
15
15
|
option :prefix, aliases: '-p', default: 'EC2TAG_',type: :string, desc: 'prefix'
|
16
16
|
option :instance_id, aliases: '-i', type: :string, desc: 'instance_id'
|
17
|
+
option :provider, type: :string, default: 'ec2', desc: 'provider'
|
17
18
|
option :print, aliases: '-P', type: :boolean, desc: 'print'
|
18
19
|
def load
|
19
20
|
Tagenv::Env.load(
|
20
21
|
prefix: options[:prefix],
|
21
|
-
instance_id: options[:instance_id]
|
22
|
+
instance_id: options[:instance_id],
|
23
|
+
provider: options[:provider]
|
22
24
|
)
|
23
25
|
p ENV if options[:print]
|
24
26
|
end
|
data/lib/tagenv/ec2/tag.rb
CHANGED
@@ -9,14 +9,21 @@ module Tagenv
|
|
9
9
|
@ec2 = Aws::EC2::Client.new(region: region)
|
10
10
|
end
|
11
11
|
|
12
|
+
def get_tag_hash(instance_id)
|
13
|
+
instance_id = instance_id || Metadata.get_instance_id
|
14
|
+
instances_tag_with_id(instance_id)
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
12
19
|
def instances_tag_with_id(instance_id)
|
13
20
|
tags = @ec2.describe_instances(
|
14
21
|
instance_ids: [instance_id]
|
15
22
|
).data.to_h[:reservations].map { |instance| instance[:instances].first }.first[:tags]
|
16
|
-
|
23
|
+
convert_tag_hash(tags)
|
17
24
|
end
|
18
25
|
|
19
|
-
def
|
26
|
+
def convert_tag_hash(tags)
|
20
27
|
result = {}
|
21
28
|
tags.each {|hash|
|
22
29
|
result[hash['key'] || hash[:key]] = hash['value'] || hash[:value]
|
data/lib/tagenv/env.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
module Tagenv
|
2
2
|
class Env
|
3
|
-
def self.load(prefix: '', instance_id: nil)
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
def self.load(prefix: '', instance_id: nil, provider: 'ec2')
|
4
|
+
tag_hash = {}
|
5
|
+
if provider == 'ec2'
|
6
|
+
@ec2_tag = Ec2::Tag.new
|
7
|
+
tag_hash = @ec2_tag.get_tag_hash(instance_id)
|
8
|
+
else
|
9
|
+
raise "Unsupport provider [#{provider}]"
|
10
|
+
end
|
7
11
|
tag_hash.each do |k, v|
|
8
12
|
ENV[prefix + k] = v
|
9
13
|
end
|
data/lib/tagenv/version.rb
CHANGED