awful 0.0.183 → 0.1.0.alpha.2

Sign up to get free protection for your applications and to get access to all the features.
data/lib/awful/param.rb DELETED
@@ -1,101 +0,0 @@
1
- module Awful
2
- module Short
3
- def param(*args)
4
- Awful::Param.new.invoke(*args)
5
- end
6
- end
7
-
8
- class Param < Cli
9
- no_commands do
10
- def ssm
11
- @ssm ||= Aws::SSM::Client.new
12
- end
13
- end
14
-
15
- desc 'ls [NAMES]', 'list parameters'
16
- method_option :long, aliases: '-l', type: :boolean, default: false, desc: 'long listing'
17
- method_option :type, aliases: '-t', type: :array, default: nil, desc: 'filter types: String, StringList, SecureString'
18
- method_option :key_id, aliases: '-k', type: :array, default: nil, desc: 'filter key IDs'
19
- def ls(*names)
20
- filters = []
21
- filters += [{key: 'Name', values: names}] unless names.empty?
22
- filters += [{key: 'Type', values: options[:type]}] if options[:type]
23
- filters += [{key: 'KeyId', values: options[:key_id]}] if options[:key_id]
24
- paginate(:parameters) do |token|
25
- ssm.describe_parameters(filters: filters, next_token: token)
26
- end.output do |params|
27
- if options[:long]
28
- print_table params.map { |p|
29
- [p.name, p.type, p.description, p.key_id, p.last_modified_date, p.last_modified_user.split('/').last]
30
- }
31
- else
32
- puts params.map(&:name)
33
- end
34
- end
35
- end
36
-
37
- desc 'get NAMES', 'get parameter values'
38
- method_option :long, aliases: '-l', type: :boolean, default: false, desc: 'long listing'
39
- method_option :decrypt, aliases: '-d', type: :boolean, default: false, desc: 'decrypt values for SecureString types'
40
- def get(*names)
41
- names.each_slice(10).map do |batch| # API allows only 10 at a time
42
- ssm.get_parameters(names: batch, with_decryption: options[:decrypt]).parameters
43
- end.flatten.output do |params|
44
- if options[:long]
45
- print_table params.map { |p|
46
- [p.name, p.value]
47
- }
48
- else
49
- puts params.map(&:value)
50
- end
51
- end
52
- end
53
-
54
- desc 'history NAME', 'get parameter history'
55
- method_option :long, aliases: '-l', type: :boolean, default: false, desc: 'long listing'
56
- def history(name)
57
- paginate(:parameters) do |token|
58
- ssm.get_parameter_history(
59
- name: name,
60
- with_decryption: options[:decrypt],
61
- next_token: token,
62
- )
63
- end.output do |params|
64
- if options[:long]
65
- print_table params.map { |p|
66
- [p.name, p.value, p.last_modified_date, p.last_modified_user]
67
- }
68
- else
69
- puts params.map(&:value)
70
- end
71
- end
72
- end
73
-
74
- desc 'put NAME VALUE', 'put parameter into the store'
75
- method_option :name, aliases: '-n', type: :string, default: nil, desc: 'give name as option instead of arg'
76
- method_option :value, aliases: '-v', type: :string, default: nil, desc: 'give value as option instead of arg'
77
- method_option :description, aliases: '-d', type: :string, default: nil, desc: 'description for params'
78
- method_option :type, aliases: '-t', type: :string, default: 'String', desc: 'String, StringList, SecureString'
79
- method_option :key_id, aliases: '-k', type: :string, default: nil, desc: 'KMS key for SecureString params'
80
- method_option :overwrite, aliases: '-o', type: :boolean, default: false, desc: 'overwrite existing params'
81
- def put(name = nil, value = nil)
82
- ssm.put_parameter(
83
- name: options[:name] || name,
84
- value: options[:value] || value,
85
- description: options[:description],
86
- type: options[:type],
87
- key_id: options[:key_id],
88
- overwrite: options[:overwrite],
89
- )
90
- end
91
-
92
- desc 'delete NAME', 'delete parameter from the store'
93
- method_option :yes, aliases: '-y', type: :boolean, default: false, desc: 'delete without query'
94
- def delete(name)
95
- if options[:yes] || yes?("Really delete parameter #{name}?", :yellow)
96
- ssm.delete_parameter(name: name)
97
- end
98
- end
99
-
100
- end
101
- end