diff --git a/src/vmm_mad/exec/one_vmm_exec.rb b/src/vmm_mad/exec/one_vmm_exec.rb index 6d1c9130ca..8deca53439 100755 --- a/src/vmm_mad/exec/one_vmm_exec.rb +++ b/src/vmm_mad/exec/one_vmm_exec.rb @@ -108,7 +108,7 @@ class VmmAction private DRIVER_NAMES = { - :vmm => "virtualization driver" + :vmm => "virtualization driver", :vnm => "network driver" } @@ -119,6 +119,8 @@ class VmmAction # information associated to each step (by :_info). In case of # failure information is also in [:failed_info] def execute_steps(steps) + result = DriverExecHelper.const_get(:RESULT)[:failure] + steps.each do |step| # Execute Step case step[:driver] @@ -147,8 +149,8 @@ class VmmAction result, info = vnm.do_action(@id, step[:action]) else - result = DriverExecHelper.RESULT[:failure] - info = "No driver in #{step[:action]}"} + result = DriverExecHelper.const_get(:RESULT)[:failure] + info = "No driver in #{step[:action]}" end # Save the step info @@ -238,6 +240,8 @@ class ExecDriver < VirtualMachineDriver # DEPLOY action, sends the deployment file to remote host # def deploy(id, drv_message) + action = VmmAction.new(self, id, :deploy, drv_message) + # ---------------------------------------------------------------------- # Initialization of deployment data # ---------------------------------------------------------------------- @@ -260,7 +264,6 @@ class ExecDriver < VirtualMachineDriver # ---------------------------------------------------------------------- # Deployment Steps # ---------------------------------------------------------------------- - action = VmmAction.new(self, id, :deploy, drv_message) steps=[ # Execute pre-boot networking setup @@ -296,6 +299,7 @@ class ExecDriver < VirtualMachineDriver # SHUTDOWN action, graceful shutdown and network clean up # def shutdown(id, drv_message) + action = VmmAction.new(self, id, :shutdown, drv_message) steps=[ @@ -310,7 +314,7 @@ class ExecDriver < VirtualMachineDriver :driver => :vnm, :action => :clean } - } + ] action.run(steps) end diff --git a/src/vnm_mad/remotes/802.1Q/HostManaged.rb b/src/vnm_mad/remotes/802.1Q/HostManaged.rb index 631d4ec2dc..8d5194b869 100644 --- a/src/vnm_mad/remotes/802.1Q/HostManaged.rb +++ b/src/vnm_mad/remotes/802.1Q/HostManaged.rb @@ -59,7 +59,7 @@ class OpenNebulaHM < OpenNebulaNetwork end def create_bridge(bridge) - exec_and_log("#{COMMANDS[:brctl]} addbr #{bridge}") + OpenNebula.exec_and_log("#{COMMANDS[:brctl]} addbr #{bridge}") end def device_exists?(dev, vlan=nil) @@ -68,7 +68,7 @@ class OpenNebulaHM < OpenNebulaNetwork end def create_dev_vlan(dev, vlan) - exec_and_log("#{COMMANDS[:vconfig]} add #{dev} #{vlan}") + OpenNebula.exec_and_log("#{COMMANDS[:vconfig]} add #{dev} #{vlan}") end def attached_bridge_dev?(bridge, dev, vlan=nil) @@ -79,11 +79,11 @@ class OpenNebulaHM < OpenNebulaNetwork def attach_brigde_dev(bridge, dev, vlan=nil) dev = "#{dev}.#{vlan}" if vlan - exec_and_log("#{COMMANDS[:brctl]} addif #{bridge} #{dev}") + OpenNebula.exec_and_log("#{COMMANDS[:brctl]} addif #{bridge} #{dev}") end def ifup(dev, vlan=nil) dev = "#{dev}.#{vlan}" if vlan - exec_and_log("#{COMMANDS[:ip]} link set #{dev} up") + OpenNebula.exec_and_log("#{COMMANDS[:ip]} link set #{dev} up") end end diff --git a/src/vnm_mad/remotes/OpenNebulaNetwork.rb b/src/vnm_mad/remotes/OpenNebulaNetwork.rb index fc49236d73..25cf31d8be 100644 --- a/src/vnm_mad/remotes/OpenNebulaNetwork.rb +++ b/src/vnm_mad/remotes/OpenNebulaNetwork.rb @@ -17,11 +17,15 @@ #--------------------------------------------------------------------------- # $: << File.dirname(__FILE__) +$: << File.join(File.dirname(__FILE__), '..') require 'rexml/document' require 'OpenNebulaNic' require 'base64' +require 'scripts_common' +include OpenNebula + CONF = { :start_vlan => 2 } @@ -29,7 +33,7 @@ CONF = { COMMANDS = { :ebtables => "sudo /sbin/ebtables", :iptables => "sudo /sbin/iptables", - :brctl => "sudo /usr/sbin/brctl", + :brctl => "sudo /sbin/brctl", :ip => "sudo /sbin/ip", :vconfig => "sudo /sbin/vconfig", :virsh => "virsh -c qemu:///system",