lib/kontena/cli/apps/common.rb in kontena-cli-0.12.3 vs lib/kontena/cli/apps/common.rb in kontena-cli-0.13.0
- old
+ new
@@ -73,31 +73,45 @@
# @param [String] service_name
# @param [String] prefix
# @return [Hash]
def extend_options(options, file, service_name, prefix)
parent_options = parse_services(file, service_name, prefix)
- options['environment'] = extend_env_vars(parent_options, options)
+ options['environment'] = extend_env_vars(parent_options['environment'], options['environment'])
+ options['secrets'] = extend_secrets(parent_options['secrets'], options['secrets'])
parent_options.merge(options)
end
# @param [Hash] options
def normalize_env_vars(options)
if options['environment'].is_a?(Hash)
options['environment'] = options['environment'].map{|k, v| "#{k}=#{v}"}
end
end
- # @param [Hash] from
- # @param [Hash] to
+ # @param [Array] from
+ # @param [Array] to
# @return [Array]
def extend_env_vars(from, to)
- env_vars = to['environment'] || []
- if from['environment']
- from['environment'].each do |env|
- env_vars << env unless to['environment'] && to['environment'].find {|key| key.split('=').first == env.split('=').first}
+ env_vars = to || []
+ if from
+ from.each do |env|
+ env_vars << env unless to && to.find {|key| key.split('=').first == env.split('=').first}
end
end
env_vars
+ end
+
+ # @param [Array] from
+ # @param [Array] to
+ # @return [Array]
+ def extend_secrets(from, to)
+ secrets = to || []
+ if from
+ from.each do |from_secret|
+ secrets << from_secret unless to && to.any? {|to_secret| to_secret['secret'] == from_secret['secret']}
+ end
+ end
+ secrets
end
# @param [Hash] services
# @param [String] file
def create_yml(services, file = 'kontena.yml')