Sha256: 4556ce615b3f272a0a74ce033d6cddba6d0892cba17245959a58462f235ac34e

Contents?: true

Size: 1.27 KB

Versions: 6

Compression:

Stored size: 1.27 KB

Contents

class TestLab
  class Network

    module Lifecycle

      # Network Setup
      def setup
        @ui.logger.debug { "Network Setup: #{self.id} " }

        self.create
        self.up

        please_wait(:ui => @ui, :message => format_object_action(self, 'Setup', :green)) do
          self.route and manage_route(:add)
        end

        true
      end

      # Network Teardown
      def teardown
        @ui.logger.debug { "Network Teardown: #{self.id} " }

        please_wait(:ui => @ui, :message => format_object_action(self, 'Teardown', :red)) do
          self.route and manage_route(:del)
        end

        self.down
        self.destroy

        true
      end

      def manage_route(action)
        command = ZTK::Command.new(:ui => @ui, :silence => true, :ignore_exit_status => true)

        case RUBY_PLATFORM
        when /darwin/ then
          action = ((action == :del) ? :delete : :add)
          command.exec(%(sudo route #{action} -net #{TestLab::Utility.network(self.address)} #{self.node.ip} #{TestLab::Utility.netmask(self.address)}))
        when /linux/ then
          command.exec(%(sudo route #{action} -net #{TestLab::Utility.network(self.address)} netmask #{TestLab::Utility.netmask(self.address)} gw #{self.node.ip}))
        end
      end

    end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
testlab-0.6.5 lib/testlab/network/lifecycle.rb
testlab-0.6.4 lib/testlab/network/lifecycle.rb
testlab-0.6.3 lib/testlab/network/lifecycle.rb
testlab-0.6.2 lib/testlab/network/lifecycle.rb
testlab-0.6.1 lib/testlab/network/lifecycle.rb
testlab-0.6.0 lib/testlab/network/lifecycle.rb