smps 0.2.1 → 0.2.2
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/changelog.md +4 -0
- data/exe/smps +40 -2
- data/lib/smps.rb +8 -2
- data/lib/smps/parameter.rb +7 -6
- data/lib/smps/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: 614c0500b77bee06d0fd6502ab14882f13f1ade8
|
4
|
+
data.tar.gz: 711c277ba2821f707c130f0168be932b7ed75e8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfca86be7e38de6dab369740706778876d1a7d8299ea9e2c2d5dc8fcd16c01d68535b2918568d7023a31ae0f55e677127db7861d28302e8f596d70beab1d81e6
|
7
|
+
data.tar.gz: d418d8e2228a862848e2f3c3b982eecd070e430f521f95a81f0cef463a437e835fbd5b318123ed9e6c014b867f0996a149f73772b0e5f90e806bb0964159630f
|
data/changelog.md
CHANGED
data/exe/smps
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'getoptlong'
|
3
3
|
require 'smps'
|
4
|
+
require 'net/http'
|
4
5
|
|
5
6
|
def clidoc
|
6
7
|
puts <<-CLIDOC
|
@@ -12,25 +13,53 @@ def clidoc
|
|
12
13
|
|
13
14
|
-r, --role <rolename>
|
14
15
|
IAM role to use. From ~/.aws/config
|
16
|
+
Use this for interactive use on your workstation.
|
15
17
|
|
16
18
|
-p, --param <param_name>
|
17
19
|
Parameter name.
|
18
20
|
|
21
|
+
-v, --value <new_value>
|
22
|
+
Value to assign
|
23
|
+
|
24
|
+
-t, --type <type>
|
25
|
+
Parameter type.
|
26
|
+
One of [String StringList SecureString]
|
27
|
+
|
28
|
+
-k, --key <key_id>
|
29
|
+
Key for SecureString encrypting.
|
30
|
+
|
19
31
|
-d, --debug [level]:
|
20
32
|
Debug level.
|
21
33
|
|
22
34
|
CLIDOC
|
23
35
|
end
|
24
36
|
|
37
|
+
def region
|
38
|
+
require 'net/http'
|
39
|
+
require 'uri'
|
40
|
+
require 'json'
|
41
|
+
|
42
|
+
uri = URI.parse('http://169.254.169.254/latest/dynamic/instance-identity/document')
|
43
|
+
response = Net::HTTP.get_response(uri)
|
44
|
+
|
45
|
+
JSON.parse(response.body)['region']
|
46
|
+
end
|
47
|
+
|
25
48
|
opts = GetoptLong.new(
|
26
49
|
['--help', '-h', GetoptLong::NO_ARGUMENT],
|
27
50
|
['--role', '-r', GetoptLong::REQUIRED_ARGUMENT],
|
28
51
|
['--param', '-p', GetoptLong::REQUIRED_ARGUMENT],
|
52
|
+
['--value', '-v', GetoptLong::REQUIRED_ARGUMENT],
|
53
|
+
['--type', '-t', GetoptLong::REQUIRED_ARGUMENT],
|
54
|
+
['--key', '-k', GetoptLong::REQUIRED_ARGUMENT],
|
29
55
|
['--debug', '-d', GetoptLong::OPTIONAL_ARGUMENT]
|
30
56
|
)
|
31
57
|
|
32
58
|
role = nil
|
33
59
|
param = nil
|
60
|
+
value = nil
|
61
|
+
type = nil
|
62
|
+
key_id = nil
|
34
63
|
debug = 0
|
35
64
|
|
36
65
|
opts.each do |opt, arg|
|
@@ -42,6 +71,12 @@ opts.each do |opt, arg|
|
|
42
71
|
role = arg
|
43
72
|
when '--param'
|
44
73
|
param = arg
|
74
|
+
when '--value'
|
75
|
+
value = arg
|
76
|
+
when '--type'
|
77
|
+
type = arg
|
78
|
+
when '--key'
|
79
|
+
key_id = arg
|
45
80
|
when '--debug'
|
46
81
|
debug = if arg == ''
|
47
82
|
1
|
@@ -54,7 +89,7 @@ end
|
|
54
89
|
if role
|
55
90
|
require 'awssession'
|
56
91
|
require 'aws_config'
|
57
|
-
|
92
|
+
|
58
93
|
profile_name = role
|
59
94
|
profile = AWSConfig[profile_name]
|
60
95
|
profile['name'] = profile_name
|
@@ -64,9 +99,12 @@ if role
|
|
64
99
|
|
65
100
|
smps = SmPs.new(credentials: awssession.credentials)
|
66
101
|
else
|
102
|
+
Aws.config.update(region: region)
|
67
103
|
smps = SmPs.new
|
68
104
|
end
|
69
105
|
|
70
|
-
|
106
|
+
parameter = smps.parameter(name: param, type: type, key_id: key_id)
|
107
|
+
parameter.write!(value) if value
|
108
|
+
puts parameter.to_s
|
71
109
|
|
72
110
|
# vim:set fileencoding=utf8 fileformat=unix filetype=ruby tabstop=2 expandtab:
|
data/lib/smps.rb
CHANGED
@@ -17,9 +17,15 @@ class SmPs
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
def parameter(
|
20
|
+
def parameter(options)
|
21
|
+
name = options.fetch(:name)
|
22
|
+
type = options[:type]
|
23
|
+
key_id = options[:key_id]
|
21
24
|
unless @parameters.key?(name)
|
22
|
-
@parameters[name] = SmPs::Parameter.new(
|
25
|
+
@parameters[name] = SmPs::Parameter.new(
|
26
|
+
ssm: ssm_client,
|
27
|
+
name: name, type: type, key_id: key_id
|
28
|
+
)
|
23
29
|
end
|
24
30
|
@parameters[name]
|
25
31
|
end
|
data/lib/smps/parameter.rb
CHANGED
@@ -5,6 +5,8 @@ class SmPs
|
|
5
5
|
def initialize(options)
|
6
6
|
@ssm = options[:ssm]
|
7
7
|
@name = options[:name]
|
8
|
+
@type = options[:type]
|
9
|
+
@key_id = options[:key_id]
|
8
10
|
parameter
|
9
11
|
end
|
10
12
|
|
@@ -28,13 +30,12 @@ class SmPs
|
|
28
30
|
@exists
|
29
31
|
end
|
30
32
|
|
31
|
-
def write!(value,
|
32
|
-
|
33
|
-
true if value == @value
|
33
|
+
def write!(value, description = nil)
|
34
|
+
return true if value == @value
|
34
35
|
@ssm.put_parameter(
|
35
|
-
name: @name,
|
36
|
-
|
37
|
-
key_id: key_id, overwrite: @exists,
|
36
|
+
name: @name, value: value,
|
37
|
+
description: description, type: @type,
|
38
|
+
key_id: @key_id, overwrite: @exists,
|
38
39
|
# allowed_pattern: "AllowedPattern",
|
39
40
|
)
|
40
41
|
@value = value
|
data/lib/smps/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan - Zipkid - Goethals
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-10-
|
11
|
+
date: 2017-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|