Module: TestLab::Network::Actions

Included in:
TestLab::Network
Defined in:
lib/testlab/network/actions.rb

Instance Method Summary collapse

Instance Method Details

#createObject

Create the network



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 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("set -x\ngrep '\#{def_tag}' /etc/network/interfaces && exit 0\ncat <<EOI | tee -a /etc/network/interfaces\n\#{def_tag}\nauto \#{self.bridge}\niface \#{self.bridge} inet static\nbridge_ports none\nbridge_stp off\nbridge_fd 0\naddress \#{self.ip}\nbroadcast \#{self.broadcast}\nnetmask \#{self.netmask}\n\#{end_tag}\nEOI\nbrctl addbr \#{self.bridge}\nbrctl stp \#{self.bridge} off\nbrctl setfd \#{self.bridge} 0\n    EOF\n\n    do_provisioner_callbacks(self, :create, @ui)\n  end\n\n  true\nend\n", :ignore_exit_status => true)

#destroyObject

Destroy the network



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 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("set -x\nsed -i '/\#{def_tag}/,/\#{end_tag}/d' /etc/network/interfaces\nbrctl delbr \#{self.bridge}\n    EOF\n\n    do_provisioner_callbacks(self, :destroy, @ui)\n  end\n\n  true\nend\n", :ignore_exit_status => true)

#downObject

Stop the network



77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# 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("set -x\nifconfig \#{self.bridge} down\n    EOF\n\n    do_provisioner_callbacks(self, :down, @ui)\n  end\n\n  true\nend\n", :ignore_exit_status => true)

#upObject

Start the network



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# 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("set -x\nifconfig \#{self.bridge} \#{self.ip} netmask \#{self.netmask} broadcast \#{self.broadcast} up\n    EOF\n\n    do_provisioner_callbacks(self, :up, @ui)\n  end\n\n  true\nend\n", :ignore_exit_status => true)