Class: TestLab::Provisioner::NFSMount

Inherits:
Object
  • Object
show all
Includes:
Utility::Misc
Defined in:
lib/testlab/provisioners/nfs_mount.rb

Overview

NFSMount Provisioner Class

Author:

  • Zachary Patten <zachary AT jovelabs DOT com>

Instance Method Summary collapse

Methods included from Utility::Misc

#do_provisioner_callbacks, #format_message, #format_object_action, #please_wait, #sudo, #sudo_prompt

Constructor Details

#initialize(config = {}, ui = nil) ⇒ NFSMount

Returns a new instance of NFSMount.



17
18
19
20
21
22
23
24
25
# File 'lib/testlab/provisioners/nfs_mount.rb', line 17

def initialize(config={}, ui=nil)
  @config  = (config || Hash.new)
  @ui      = (ui     || TestLab.ui)
  @command = ZTK::Command.new(:ui => @ui, :silence => true, :ignore_exit_status => true)

  @config[:nfs_mounts] ||= Array.new

  @ui.logger.debug { "config(#{@config.inspect})" }
end

Instance Method Details

#on_container_deprovision(container) ⇒ Object Also known as: on_container_down, on_container_destroy



47
48
49
50
51
# File 'lib/testlab/provisioners/nfs_mount.rb', line 47

def on_container_deprovision(container)
  remove_nfs_mounts(container)

  true
end

#on_container_provision(container) ⇒ Object

NFSMount: Container Provision



28
29
30
31
32
33
34
35
# File 'lib/testlab/provisioners/nfs_mount.rb', line 28

def on_container_provision(container)
  container.exec(%(sudo dpkg --status nfs-common || sudo apt-get -qy install nfs-common))

  add_nfs_mounts(container)
  container_mount(container)

  true
end

#on_container_up(container) ⇒ Object

NFSMount: Container Up



38
39
40
41
42
43
44
45
# File 'lib/testlab/provisioners/nfs_mount.rb', line 38

def on_container_up(container)
  (container.exec(%(sudo dpkg --status nfs-common), :ignore_exit_status => true).exit_code == 0) or return false

  add_nfs_mounts(container)
  container_mount(container)

  true
end