Class: Amplify::VaultDataBagWrapperBase
- Inherits:
-
Object
- Object
- Amplify::VaultDataBagWrapperBase
show all
- Defined in:
- lib/amplify/vault_data_bag_wrapper_base.rb
Defined Under Namespace
Classes: NotExtendedCorrectly
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Attribute Details
#strategy ⇒ Object
Returns the value of attribute strategy.
5
6
7
|
# File 'lib/amplify/vault_data_bag_wrapper_base.rb', line 5
def strategy
@strategy
end
|
Class Method Details
.chef_databag_load(name, item) ⇒ Object
27
28
29
30
31
32
33
|
# File 'lib/amplify/vault_data_bag_wrapper_base.rb', line 27
def self.chef_databag_load(name, item)
require 'hashie'
::Hashie::Mash.new(::Chef::EncryptedDataBagItem.load(name, item).to_hash)
rescue ::Net::HTTPServerException => e
::Chef::Log.error e
raise MissingDatabag, name: name, item: item
end
|
.load(app_name, env) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/amplify/vault_data_bag_wrapper_base.rb', line 14
def self.load(app_name, env)
::Chef::Log.info "Retrieving secrets using #{@strategy} strategy"
if @strategy == :vault
read_from_vault(app_name, env)
elsif @strategy == :env
chef_databag_load(env, app_name)
elsif @strategy == :parameter_store
read_from_parameter_store(app_name, env)
else
chef_databag_load(app_name, env)
end
end
|
.read_from_parameter_store(app_name, env) ⇒ Object
39
40
41
42
43
44
|
# File 'lib/amplify/vault_data_bag_wrapper_base.rb', line 39
def self.read_from_parameter_store(app_name, env)
path = vault_path(app_name, env)
secrets = Amplify::ParameterStoreClient.read(path)
raise SecretMissingError.new(path, env) if secrets.nil?
secrets
end
|
.read_from_vault(app_name, env) ⇒ Object
46
47
48
49
50
51
|
# File 'lib/amplify/vault_data_bag_wrapper_base.rb', line 46
def self.read_from_vault(app_name, env)
path = vault_path(app_name, env)
secrets = Amplify::VaultAuthClient.read(path, env)
raise SecretMissingError.new(path, env) if secrets.nil?
secrets
end
|
.strategy=(val) ⇒ Object
7
8
9
10
11
12
|
# File 'lib/amplify/vault_data_bag_wrapper_base.rb', line 7
def self.strategy=(val)
msg = "Data bag strategy #{val} is not valid. Valid strategies are #{ALLOWED_STRATEGIES}"
raise msg unless ALLOWED_STRATEGIES.include?(val)
::Chef::Log.info "Setting strategy to #{val}"
@strategy = val
end
|
.vault_path(_app_name, _env) ⇒ Object
35
36
37
|
# File 'lib/amplify/vault_data_bag_wrapper_base.rb', line 35
def self.vault_path(_app_name, _env)
raise NotExtendedCorrectly, 'vault_path was not overriden.'
end
|