require 'spec_helper' require 'pp' require 'erb' module Vcloud module NetLauncher describe NetLaunch do context 'with minimum input setup' do it 'should create an isolated network' do test_data = default_test_data('isolated') @minimum_data_yaml = generate_data_file(test_data) Vcloud::NetLauncher::NetLaunch.new.run(@minimum_data_yaml) @found_networks = find_network(test_data[:network_name]) @found_networks.length.should == 1 provisioned_network = @found_networks[0] provisioned_network[:gateway].should == test_data[:gateway] provisioned_network[:netmask].should == test_data[:netmask] provisioned_network[:isLinked].should == 'false' end it 'should create an nat routed network' do test_data = default_test_data('natRouted') test_data[:edgeGateway] = ENV['VCLOUD_EDGE_GATEWAY'] #only needed for natRouted networks @minimum_data_yaml = generate_data_file(test_data) Vcloud::NetLauncher::NetLaunch.new.run(@minimum_data_yaml) @found_networks = find_network(test_data[:network_name]) @found_networks.length.should == 1 provisioned_network = @found_networks[0] provisioned_network[:gateway].should == test_data[:gateway] provisioned_network[:netmask].should == test_data[:netmask] provisioned_network[:isLinked].should == 'true' end after(:each) do unless ENV['VCLOUD_TOOLS_RSPEC_NO_DELETE_VAPP'] File.delete @minimum_data_yaml fog_interface = Vcloud::Fog::ServiceInterface.new provisioned_network_id = @found_networks[0][:href].split('/').last fog_interface.delete_network(provisioned_network_id).should == true end end end def default_test_data(type) { network_name: "vapp-vcloud-tools-tests-#{Time.now.strftime('%s')}", vdc_name: ENV['VCLOUD_VDC_NAME'], fence_mode: type, netmask: '255.255.255.0', gateway: '192.0.2.1', } end def find_network(network_name) query = Vcloud::QueryRunner.new() query.run('orgNetwork', :filter => "name==#{network_name}") end def generate_data_file(test_data) minimum_data_erb = File.join(File.dirname(__FILE__), 'data/minimum_data_setup.yaml.erb') ErbHelper.convert_erb_template_to_yaml(test_data, minimum_data_erb) end end end end