module TestLab::Network::Actions

Public Instance Methods

create() click to toggle source

Create the network

# File lib/testlab/network/actions.rb, line 7
      def create
        @ui.logger.debug { "Network Create: #{self.id} " }

        self.node.alive? or return false

        please_wait(:ui => @ui, :message => format_object_action(self, 'Create', :green)) do
          self.node.bootstrap(<<-EOF, :ignore_exit_status => true)
set -x
grep '#{def_tag}' /etc/network/interfaces && exit 0
cat <<EOI | tee -a /etc/network/interfaces
#{def_tag}
auto #{self.bridge}
iface #{self.bridge} inet static
      bridge_ports none
      bridge_stp off
      bridge_fd 0
      address #{self.ip}
      broadcast #{self.broadcast}
      netmask #{self.netmask}
#{end_tag}
EOI
brctl addbr #{self.bridge}
brctl stp #{self.bridge} off
brctl setfd #{self.bridge} 0
          EOF

          do_provisioner_callbacks(self, :create, @ui)
        end

        true
      end
destroy() click to toggle source

Destroy the network

# File lib/testlab/network/actions.rb, line 40
      def destroy
        @ui.logger.debug { "Network Destroy: #{self.id} " }

        self.node.alive? or return false

        please_wait(:ui => @ui, :message => format_object_action(self, 'Destroy', :red)) do
          self.node.bootstrap(<<-EOF, :ignore_exit_status => true)
set -x
sed -i '/#{def_tag}/,/#{end_tag}/d' /etc/network/interfaces
brctl delbr #{self.bridge}
          EOF

          do_provisioner_callbacks(self, :destroy, @ui)
        end

        true
      end
down() click to toggle source

Stop the network

# File lib/testlab/network/actions.rb, line 77
      def down
        @ui.logger.debug { "Network Down: #{self.id} " }

        self.node.alive? or return false

        please_wait(:ui => @ui, :message => format_object_action(self, 'Down', :red)) do
          self.node.bootstrap(<<-EOF, :ignore_exit_status => true)
set -x
ifconfig #{self.bridge} down
          EOF

          do_provisioner_callbacks(self, :down, @ui)
        end

        true
      end
up() click to toggle source

Start the network

# File lib/testlab/network/actions.rb, line 59
      def up
        @ui.logger.debug { "Network Up: #{self.id} " }

        self.node.alive? or return false

        please_wait(:ui => @ui, :message => format_object_action(self, 'Up', :green)) do
          self.node.bootstrap(<<-EOF, :ignore_exit_status => true)
set -x
ifconfig #{self.bridge} #{self.ip} netmask #{self.netmask} broadcast #{self.broadcast} up
          EOF

          do_provisioner_callbacks(self, :up, @ui)
        end

        true
      end