Sha256: 9cff1b373ec3c89a7252545aaf64829a88100ba83e804aa9638ebacf51b3bd6d
Contents?: true
Size: 1 KB
Versions: 2
Compression:
Stored size: 1 KB
Contents
require 'yaml' # BoshDeploymentManifest is used to parse BOSH manifests class BoshDeploymentManifest def initialize(path) @manifest = YAML.load_file(path) end def properties_for_instance_group(instance_group_name) return @properties[instance_group] if @properties && @properties[instance_group] instance_group = @manifest['instance_groups'].find { |group| group['name'] == instance_group_name } return [] unless instance_group properties = {} instance_group['jobs'].each do |job| next unless job.key?('properties') job['properties'].each do |key, value| inject_properties(properties, job, key, value) end end @properties ||= {} @properties[instance_group] = properties end private def inject_properties(properties, job, key, value) case value when Hash value.each do |sub_key, sub_value| inject_properties(properties, job, "#{key}.#{sub_key}", sub_value) end else properties[key] = value end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
configgin-0.18.3 | lib/bosh_deployment_manifest.rb |
configgin-0.18.2 | lib/bosh_deployment_manifest.rb |