class Topo::Topology
Attributes
driver[RW]
format[RW]
network[RW]
nodes[RW]
provisioning[RW]
raw_data[R]
services[RW]
Public Class Methods
new(raw_data)
click to toggle source
# File lib/topo/topology.rb, line 27 def initialize(raw_data) @raw_data = raw_data data = Marshal.load(Marshal.dump(raw_data)) @provisioning = data['provisioning'] || {} if @provisioning['driver'] @driver = @provisioning['driver'].split(":",2)[0] else @driver = "default" end @nodes = data['nodes'] || [] @services = data['services'] || [] @network = data['network'] || [] @nodes.each do |node| parse_node node end end
Public Instance Methods
parse_node(node)
click to toggle source
# File lib/topo/topology.rb, line 46 def parse_node(node) node['attributes'] = node['normal'] if node['normal'] node['attributes'] ||= {} node['lazy_attributes'] ||= {} end
to_file(file)
click to toggle source
# File lib/topo/topology.rb, line 53 def to_file(file) begin File.open(file, 'w') { |f| f.write(JSON.pretty_generate(@raw_data)) } rescue => e STDERR.puts "ERROR: Cannot write to topology export file #{file} - #{e.message}" end end