Sha256: 190e4757ea12f903e439b2796633f7c718ae64e5d7b0b2205addaa71985210df

Contents?: true

Size: 1.54 KB

Versions: 18

Compression:

Stored size: 1.54 KB

Contents

class TestLab
  class Network

    module Status

      # Network status
      def status
        interface = "#{bridge}:#{self.address}"
        {
          :id => self.id,
          :node_id => self.node.id,
          :state => self.state,
          :interface => interface,
          :broadcast => self.broadcast,
          :network => self.network,
          :netmask => self.netmask,
          :provisioners => self.provisioners.map(&:to_s).collect{ |p| p.split('::').last }.join(','),
        }
      end

      def ip
        TestLab::Utility.ip(self.address)
      end

      def cidr
        TestLab::Utility.cidr(self.address)
      end

      # Returns the network mask
      def netmask
        TestLab::Utility.netmask(self.address)
      end

      # Returns the network address
      def network
        TestLab::Utility.network(self.address)
      end

      # Returns the broadcast address
      def broadcast
        TestLab::Utility.broadcast(self.address)
      end

      # Network Bridge State
      def state
        exit_code = self.node.ssh.exec(%(sudo brctl show #{self.bridge} 2>&1 | grep -i 'No such device'), :silence => true, :ignore_exit_status => true).exit_code
        if (exit_code == 0)
          :not_created
        else
          output = self.node.ssh.exec(%(sudo ifconfig #{self.bridge} 2>&1 | grep 'MTU'), :silence => true, :ignore_exit_status => true).output.strip
          if ((output =~ /UP/) && (output =~ /RUNNING/))
            :running
          else
            :stopped
          end
        end
      end

    end

  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
testlab-0.7.6 lib/testlab/network/status.rb
testlab-0.7.5 lib/testlab/network/status.rb
testlab-0.7.4 lib/testlab/network/status.rb
testlab-0.7.3 lib/testlab/network/status.rb
testlab-0.7.2 lib/testlab/network/status.rb
testlab-0.7.1 lib/testlab/network/status.rb
testlab-0.7.0 lib/testlab/network/status.rb
testlab-0.6.17 lib/testlab/network/status.rb
testlab-0.6.16 lib/testlab/network/status.rb
testlab-0.6.15 lib/testlab/network/status.rb
testlab-0.6.14 lib/testlab/network/status.rb
testlab-0.6.12 lib/testlab/network/status.rb
testlab-0.6.11 lib/testlab/network/status.rb
testlab-0.6.10 lib/testlab/network/status.rb
testlab-0.6.9 lib/testlab/network/status.rb
testlab-0.6.8 lib/testlab/network/status.rb
testlab-0.6.7 lib/testlab/network/status.rb
testlab-0.6.6 lib/testlab/network/status.rb