veewee 0.3.0.alpha6 → 0.3.0.alpha7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. data/lib/veewee/command/kvm.rb +1 -1
  2. data/lib/veewee/command/vagrant/basebox.rb +2 -0
  3. data/lib/veewee/command/vagrant/build.rb +1 -1
  4. data/lib/veewee/command/vagrant/define.rb +1 -1
  5. data/lib/veewee/command/vagrant/destroy.rb +1 -1
  6. data/lib/veewee/command/vagrant/export.rb +1 -1
  7. data/lib/veewee/command/vagrant/halt.rb +1 -1
  8. data/lib/veewee/command/vagrant/list.rb +2 -2
  9. data/lib/veewee/command/vagrant/ostypes.rb +2 -2
  10. data/lib/veewee/command/vagrant/ssh.rb +1 -2
  11. data/lib/veewee/command/vagrant/templates.rb +3 -3
  12. data/lib/veewee/command/vagrant/undefine.rb +2 -2
  13. data/lib/veewee/command/vagrant/up.rb +1 -1
  14. data/lib/veewee/command/vagrant/validate.rb +44 -0
  15. data/lib/veewee/command/virtualbox.rb +3 -3
  16. data/lib/veewee/config/definition.rb +4 -4
  17. data/lib/veewee/definition.rb +8 -0
  18. data/lib/veewee/provider/core/box.rb +7 -0
  19. data/lib/veewee/provider/core/box/build.rb +12 -12
  20. data/lib/veewee/provider/core/box/exec.rb +2 -2
  21. data/lib/veewee/provider/core/box/scp.rb +2 -2
  22. data/lib/veewee/provider/core/box/ssh.rb +1 -1
  23. data/lib/veewee/provider/core/box/vnc.rb +3 -3
  24. data/lib/veewee/provider/core/helper/iso.rb +30 -30
  25. data/lib/veewee/provider/core/helper/scancode.rb +1 -1
  26. data/lib/veewee/provider/core/helper/shell.rb +6 -6
  27. data/lib/veewee/provider/core/helper/ssh.rb +15 -17
  28. data/lib/veewee/provider/core/helper/tcp.rb +4 -4
  29. data/lib/veewee/provider/core/helper/web.rb +6 -6
  30. data/lib/veewee/provider/core/provider.rb +20 -13
  31. data/lib/veewee/provider/core/provider/tunnel.rb +8 -8
  32. data/lib/veewee/provider/kvm/box/helper/console_type.rb +1 -1
  33. data/lib/veewee/provider/kvm/box/validate_kvm.rb +2 -2
  34. data/lib/veewee/provider/parallels/box/create.rb +1 -1
  35. data/lib/veewee/provider/parallels/box/destroy.rb +1 -1
  36. data/lib/veewee/provider/parallels/box/helper/buildinfo.rb +1 -1
  37. data/lib/veewee/provider/parallels/box/helper/console_type.rb +5 -5
  38. data/lib/veewee/provider/parallels/box/validate_parallels.rb +2 -2
  39. data/lib/veewee/provider/virtualbox/box/destroy.rb +7 -7
  40. data/lib/veewee/provider/virtualbox/box/export_vagrant.rb +18 -18
  41. data/lib/veewee/provider/virtualbox/box/helper/console_type.rb +8 -8
  42. data/lib/veewee/provider/virtualbox/box/helper/create.rb +8 -8
  43. data/lib/veewee/provider/virtualbox/box/helper/guest_additions.rb +1 -1
  44. data/lib/veewee/provider/virtualbox/box/poweroff.rb +1 -1
  45. data/lib/veewee/provider/virtualbox/box/up.rb +2 -2
  46. data/lib/veewee/provider/virtualbox/box/validate_vagrant.rb +3 -3
  47. data/lib/veewee/providers.rb +1 -1
  48. data/lib/veewee/ui.rb +2 -0
  49. data/lib/veewee/version.rb +1 -1
  50. data/templates/CentOS-5.7-i386-netboot/definition.rb +1 -1
  51. data/templates/CentOS-5.7-i386-netboot/ks.cfg +1 -1
  52. data/templates/Debian-6.0.3-amd64-netboot/definition.rb +1 -1
  53. data/templates/Debian-6.0.3-i386-netboot/definition.rb +1 -1
  54. metadata +3 -2
@@ -98,7 +98,7 @@ module Veewee
98
98
  if !code.nil?
99
99
  keycodes=keycodes+code+' '
100
100
  else
101
- env.ui.info "no scan code for #{thestring.slice(0,1)}"
101
+ ui.error "no scan code for #{thestring.slice(0,1)}"
102
102
  end
103
103
  #pop one
104
104
  thestring=thestring.slice(1,thestring.length-1)
@@ -24,7 +24,7 @@ module Veewee
24
24
  defaults={:mute => true, :status => 0}
25
25
  options=defaults.merge(options)
26
26
  result=ShellResult.new("","",-1)
27
- env.ui.info "Executing #{command}" unless options[:mute]
27
+ ui.info "Executing #{command}" unless options[:mute]
28
28
  env.logger.debug "Command: \"#{command}\""
29
29
  env.logger.debug "Output:"
30
30
  env.logger.debug "-------"
@@ -32,15 +32,15 @@ module Veewee
32
32
  IO.popen("#{escaped_command}"+ " 2>&1") { |p|
33
33
  p.each_line{ |l|
34
34
  result.stdout+=l
35
- env.ui.info(l,{:new_line => false}) unless options[:mute]
35
+ ui.info(l,{:new_line => false}) unless options[:mute]
36
36
  env.logger.debug(l.chomp)
37
37
  }
38
38
  result.status=Process.waitpid2(p.pid)[1].exitstatus
39
39
  if result.status.to_i!=options[:status]
40
- env.ui.error "Error: We executed a shell command and the exit status was not #{options[:status]}"
41
- env.ui.error "- Command :#{command}."
42
- env.ui.error "- Exitcode :#{result.status}."
43
- env.ui.error "- Output :\n#{result.stdout}"
40
+ ui.error "Error: We executed a shell command and the exit status was not #{options[:status]}"
41
+ ui.error "- Command :#{command}."
42
+ ui.error "- Exitcode :#{result.status}."
43
+ ui.error "- Output :\n#{result.stdout}"
44
44
  raise Veewee::Error,"Wrong exit code for command #{command}"
45
45
  end
46
46
  }
@@ -26,19 +26,18 @@ module Veewee
26
26
 
27
27
  options=defaults.merge(options)
28
28
 
29
- env.ui.info "Waiting for ssh login on #{ip} with user #{options[:user]} to sshd on port => #{options[:port]} to work, timeout=#{options[:timeout]} sec"
29
+ ui.info "Waiting for ssh login on #{ip} with user #{options[:user]} to sshd on port => #{options[:port]} to work, timeout=#{options[:timeout]} sec"
30
30
 
31
31
  begin
32
32
  Timeout::timeout(options[:timeout]) do
33
33
  connected=false
34
34
  while !connected do
35
35
  begin
36
- env.ui.info ".",{:new_line => false}
36
+ env.ui.info ".",{:new_line => false , :prefix => false}
37
37
  Net::SSH.start(ip, options[:user], { :port => options[:port] , :password => options[:password], :paranoid => false , :timeout => options[:timeout] }) do |ssh|
38
- env.ui.info "\n"
39
38
 
39
+ ui.info "\n", {:prefix => false}
40
40
  block.call(ip);
41
- env.ui.info ""
42
41
  return true
43
42
  end
44
43
  rescue Net::SSH::Disconnect,Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ECONNABORTED, Errno::ECONNRESET, Errno::ENETUNREACH,Errno::ETIMEDOUT, Errno::ENETUNREACH
@@ -47,10 +46,10 @@ module Veewee
47
46
  end
48
47
  end
49
48
  rescue Timeout::Error
50
- env.ui.error "Ssh timeout #{options[:timeout]} sec has been reached."
49
+ ui.error "Ssh timeout #{options[:timeout]} sec has been reached."
51
50
  exit -1
52
51
  end
53
- env.ui.info ""
52
+ ui.info ""
54
53
  return false
55
54
  end
56
55
 
@@ -61,14 +60,13 @@ module Veewee
61
60
  options=defaults.merge(options)
62
61
 
63
62
  Net::SSH.start( host,options[:user],options ) do |ssh|
64
- env.ui.info "Transferring #{filename} to #{destination} "
63
+ ui.info "Transferring #{filename} to #{destination} "
65
64
  ssh.scp.upload!( filename, destination ) do |ch, name, sent, total|
66
65
  # print "\r#{destination}: #{(sent.to_f * 100 / total.to_f).to_i}%"
67
- env.ui.info ".",{:new_line => false}
68
-
66
+ env.ui.info ".",{:new_line => false , :prefix => false}
69
67
  end
70
68
  end
71
- env.ui.info ""
69
+ ui.info "", {:prefix => false}
72
70
  end
73
71
 
74
72
 
@@ -81,7 +79,7 @@ module Veewee
81
79
  stderr=""
82
80
  status=-99999
83
81
 
84
- env.ui.info "Executing command: #{command}"
82
+ ui.info "Executing command: #{command}"
85
83
 
86
84
  Net::SSH.start(host, options[:user], { :port => options[:port], :password => options[:password], :paranoid => false }) do |ssh|
87
85
 
@@ -102,7 +100,7 @@ module Veewee
102
100
  ch.on_data do |c, data|
103
101
  stdout+=data
104
102
 
105
- env.ui.info data,{:new_line => false}
103
+ ui.info data
106
104
 
107
105
  end
108
106
 
@@ -110,7 +108,7 @@ module Veewee
110
108
  ch.on_extended_data do |c, type, data|
111
109
  stderr+=data
112
110
 
113
- env.ui.info data,{:new_line => false}
111
+ ui.info data
114
112
 
115
113
  end
116
114
 
@@ -120,18 +118,18 @@ module Veewee
120
118
  exit_code = data.read_long
121
119
  status=exit_code
122
120
  if exit_code > 0
123
- env.ui.info "ERROR: exit code #{exit_code}"
121
+ ui.info "ERROR: exit code #{exit_code}"
124
122
  else
125
- #env.ui.info "Successfully executed"
123
+ #ui.info "Successfully executed"
126
124
  end
127
125
  end
128
126
 
129
127
  channel.on_request("exit-signal") do |ch, data|
130
- env.ui.info "SIGNAL: #{data.read_long}"
128
+ ui.info "SIGNAL: #{data.read_long}"
131
129
  end
132
130
 
133
131
  ch.on_close {
134
- #env.ui.info "done!"
132
+ #ui.info "done!"
135
133
  }
136
134
  #status=ch.exec "echo $?"
137
135
  end
@@ -26,7 +26,7 @@ module Veewee
26
26
 
27
27
  # This tries to guess a local free tcp port
28
28
  def guess_free_port(min_port,max_port)
29
- env.ui.info "Received port hint - #{min_port}"
29
+ ui.info "Received port hint - #{min_port}"
30
30
 
31
31
  guessed_port=nil
32
32
 
@@ -38,10 +38,10 @@ module Veewee
38
38
  end
39
39
 
40
40
  if guessed_port.nil?
41
- env.ui.info "No free port available: tried #{min_port}..#{max_port}"
41
+ ui.error "No free port available: tried #{min_port}..#{max_port}"
42
42
  exit -1
43
43
  else
44
- env.ui.info "Found port #{guessed_port} available"
44
+ ui.info "Found port #{guessed_port} available"
45
45
  end
46
46
 
47
47
  return guessed_port
@@ -58,7 +58,7 @@ module Veewee
58
58
  connected=false
59
59
  while !connected do
60
60
  begin
61
- env.ui.info "trying connection"
61
+ ui.info "trying connection"
62
62
  s = TCPSocket.new(ip, options[:port])
63
63
  s.close
64
64
  block.call(ip);
@@ -9,19 +9,19 @@ module Veewee
9
9
 
10
10
  class FileServlet < WEBrick::HTTPServlet::AbstractServlet
11
11
 
12
- attr_reader :env
12
+ attr_reader :ui
13
13
 
14
- def initialize(server,localfile,env)
14
+ def initialize(server,localfile,ui)
15
15
  super(server)
16
16
  @server=server
17
17
  @localfile=localfile
18
- @env=env
18
+ @ui=ui
19
19
  end
20
20
 
21
21
  def do_GET(request,response)
22
22
  response['Content-Type']='text/plain'
23
23
  response.status = 200
24
- env.ui.info "Serving file #{@localfile}"
24
+ ui.info "Serving file #{@localfile}"
25
25
  displayfile=File.open(@localfile,'r')
26
26
  content=displayfile.read()
27
27
  response.body=content
@@ -51,10 +51,10 @@ module Veewee
51
51
  :AccessLog => webrick_logger
52
52
  )
53
53
  env.logger.debug("mounting file /#{filename}")
54
- s.mount("/#{filename}", Veewee::Provider::Core::Helper::Servlet::FileServlet,File.join(web_dir,filename),env)
54
+ s.mount("/#{filename}", Veewee::Provider::Core::Helper::Servlet::FileServlet,File.join(web_dir,filename),ui)
55
55
  trap("INT"){
56
56
  s.shutdown
57
- env.ui.info "Stopping webserver"
57
+ ui.info "Stopping webserver"
58
58
  exit
59
59
  }
60
60
  s.start
@@ -12,6 +12,13 @@ module Veewee
12
12
 
13
13
  include ::Veewee::Provider::Core::Helper::Shell
14
14
 
15
+ def ui
16
+ return @_ui if defined?(@_ui)
17
+ @_ui = @env.ui.dup
18
+ @_ui.resource = @name
19
+ @_ui
20
+ end
21
+
15
22
  def initialize(name,options,env)
16
23
 
17
24
  @env=env
@@ -29,7 +36,7 @@ module Veewee
29
36
  # Get a real box object from the Provider
30
37
  box=Object.const_get("Veewee").const_get("Provider").const_get(type.to_s.capitalize).const_get("Box").new(name,env)
31
38
  rescue Error => ex
32
- env.ui.error "Could not instante the box #{name} with provider #{type} ,#{ex}"
39
+ ui.error "Could not instante the box #{name} with provider #{type} ,#{ex}"
33
40
  raise
34
41
  end
35
42
  end
@@ -44,19 +51,19 @@ module Veewee
44
51
  end
45
52
 
46
53
  def gem_available?(gemname)
47
- env.logger.info "Checking for gem #{gemname}"
54
+ env.logger.info "Checking for gem #{gemname}"
55
+ available=false
56
+ begin
57
+ available=true unless Gem::Specification::find_by_name("#{gemname}").nil?
58
+ rescue Gem::LoadError
59
+ env.logger.info "Error loading gem #{gemname}"
48
60
  available=false
49
- begin
50
- available=true unless Gem::Specification::find_by_name("#{gemname}").nil?
51
- rescue Gem::LoadError
52
- env.logger.info "Error loading gem #{gemname}"
53
- available=false
54
- rescue
55
- env.logger.info "Falling back to old syntax for #{gemname}"
56
- available=Gem.available?("#{gemname}")
57
- env.logger.info "Old syntax #{gemname}.available? #{available}"
58
- end
59
- return available
61
+ rescue
62
+ env.logger.info "Falling back to old syntax for #{gemname}"
63
+ available=Gem.available?("#{gemname}")
64
+ env.logger.info "Old syntax #{gemname}.available? #{available}"
65
+ end
66
+ return available
60
67
  end
61
68
 
62
69
  def gems_available?(names)
@@ -13,27 +13,27 @@ module Veewee
13
13
  host=@connection.uri.host
14
14
  user=@connection.uri.user
15
15
 
16
- env.ui.info "Enabling tunneling"
16
+ ui.info "Enabling tunneling"
17
17
  @forward_threads=Array.new
18
18
  @forward_threads<< Thread.new {
19
19
  Net::SSH.start(host, user, ssh_options) do |ssh_session|
20
20
  forwardings.each do |forwarding|
21
21
  begin
22
- env.ui.info "Forwarding remote port #{forwarding[:remote_port]} from #{box_name} to local port #{forwarding[:local_port]}"
23
- env.ui.info host
24
- env.ui.info user
25
- env.ui.info ""
22
+ ui.info "Forwarding remote port #{forwarding[:remote_port]} from #{box_name} to local port #{forwarding[:local_port]}"
23
+ ui.info host
24
+ ui.info user
25
+ ui.info ""
26
26
  ssh_session.forward.local(forwarding[:local_port], "127.0.0.1",forwarding[:remote_port])
27
27
  rescue Errno::EACCES
28
- env.ui.info " Error - Access denied to forward remote port #{forwarding[:remote_port]} from #{name} to local port #{forwarding[:local_port]}"
28
+ ui.info " Error - Access denied to forward remote port #{forwarding[:remote_port]} from #{name} to local port #{forwarding[:local_port]}"
29
29
  end
30
30
  end
31
31
  ssh_session.loop {true}
32
32
  end
33
33
  }
34
- env.ui.info @forward_threads.first.status
34
+ ui.info @forward_threads.first.status
35
35
  @forward_threads.first.run
36
- env.ui.info @forward_threads.first.status
36
+ ui.info @forward_threads.first.status
37
37
 
38
38
  end
39
39
 
@@ -10,7 +10,7 @@ module Veewee
10
10
  def console_type(sequence,type_options={})
11
11
  vnc_port=@connection.servers.all(:name => name).first.vnc_port
12
12
  display_port=vnc_port.to_i - 5900
13
- env.ui.success "Sending keystrokes to VNC port :#{display_port} - TCP port: #{vnc_port}"
13
+ ui.success "Sending keystrokes to VNC port :#{display_port} - TCP port: #{vnc_port}"
14
14
  vnc_type(sequence,"127.0.0.1",display_port)
15
15
  end
16
16
 
@@ -34,8 +34,8 @@ module Veewee
34
34
  rescue SystemExit => e
35
35
  Kernel.exit(e.status)
36
36
  rescue Exception => e
37
- env.ui.error("#{e.message} (#{e.class})")
38
- env.ui.error(e.backtrace.join("\n"))
37
+ ui.error("#{e.message} (#{e.class})")
38
+ ui.error(e.backtrace.join("\n"))
39
39
  Kernel.exit(1)
40
40
  end
41
41
 
@@ -45,7 +45,7 @@ module Veewee
45
45
  #
46
46
  # Attach cdrom
47
47
  full_iso_file=File.join(env.config.veewee.iso_dir,definition.iso_file)
48
- env.ui.info "Mounting cdrom: #{full_iso_file}"
48
+ ui.info "Mounting cdrom: #{full_iso_file}"
49
49
  command ="prlctl set '#{self.name}' --device-add cdrom --enable --image '#{full_iso_file}'"
50
50
  shell_exec("#{command}")
51
51
 
@@ -5,7 +5,7 @@ module Veewee
5
5
 
6
6
  def destroy(options={})
7
7
  unless self.exists?
8
- env.ui.error "Error:: You tried to destroy a non-existing box '#{name}'"
8
+ ui.error "Error:: You tried to destroy a non-existing box '#{name}'"
9
9
  exit -1
10
10
  end
11
11
 
@@ -34,7 +34,7 @@ module Veewee
34
34
  # When we get here, ssh is available and no postinstall scripts have been executed yet
35
35
  # So we begin by transferring the ISO file of the vmware tools
36
36
 
37
- env.logger.info "About to transfer parallels tools iso buildinfo to the box #{name} - #{ip_address} - #{ssh_options}"
37
+ ui.info "About to transfer parallels tools iso buildinfo to the box #{name} - #{ip_address} - #{ssh_options}"
38
38
  iso_image=guest_iso_path
39
39
  self.scp(iso_image,File.basename(iso_image))
40
40
  end
@@ -11,13 +11,13 @@ module Veewee
11
11
 
12
12
  def send_sequence(sequence)
13
13
 
14
- env.ui.info ""
14
+ ui.info ""
15
15
 
16
16
  counter=0
17
17
  sequence.each { |s|
18
18
  counter=counter+1
19
19
 
20
- env.ui.info "Typing:[#{counter}]: "+s
20
+ ui.info "Typing:[#{counter}]: "+s
21
21
 
22
22
  keycodes=self.string_to_parallels_keycode(s)
23
23
 
@@ -33,8 +33,8 @@ module Veewee
33
33
  #sleep after each sequence (needs to be param)
34
34
  }
35
35
 
36
- env.ui.info "Done typing."
37
- env.ui.info ""
36
+ ui.info "Done typing."
37
+ ui.info ""
38
38
 
39
39
 
40
40
  end
@@ -179,7 +179,7 @@ module Veewee
179
179
  keycodes << c
180
180
  end
181
181
  else
182
- env.ui.info "no scan code for #{thestring.slice(0,1)}"
182
+ ui.info "no scan code for #{thestring.slice(0,1)}"
183
183
  end
184
184
  #pop one
185
185
  thestring=thestring.slice(1,thestring.length-1)
@@ -34,8 +34,8 @@ module Veewee
34
34
  rescue SystemExit => e
35
35
  Kernel.exit(e.status)
36
36
  rescue Exception => e
37
- env.ui.error("#{e.message} (#{e.class})")
38
- env.ui.error(e.backtrace.join("\n"))
37
+ ui.error("#{e.message} (#{e.class})")
38
+ ui.error(e.backtrace.join("\n"))
39
39
  Kernel.exit(1)
40
40
  end
41
41
 
@@ -6,7 +6,7 @@ module Veewee
6
6
  def destroy(option={})
7
7
 
8
8
  unless self.exists?
9
- env.ui.error "Error:: You tried to destroy a non-existing box '#{name}'"
9
+ ui.error "Error:: You tried to destroy a non-existing box '#{name}'"
10
10
  exit -1
11
11
  end
12
12
 
@@ -20,8 +20,8 @@ module Veewee
20
20
  end
21
21
 
22
22
  command="#{@vboxcmd} unregistervm \"#{name}\" --delete"
23
- env.ui.info command
24
- env.ui.info "Deleting vm #{name}"
23
+ ui.info command
24
+ ui.info "Deleting vm #{name}"
25
25
 
26
26
  #Exec and system stop the execution here
27
27
  shell_exec("#{command}",{:mute => true})
@@ -44,14 +44,14 @@ module Veewee
44
44
  command="#{@vboxcmd} closemedium disk \"#{location}\""
45
45
  end
46
46
 
47
- env.ui.info "Deleting disk #{location}"
48
- env.ui.info "#{command}"
47
+ ui.info "Deleting disk #{location}"
48
+ ui.info "#{command}"
49
49
 
50
50
  shell_exec("#{command}",{:mute => true})
51
51
 
52
52
  if File.exists?(location)
53
- env.ui.info "We tried to delete the disk file via virtualbox '#{location} but failed"
54
- env.ui.info "Removing it manually"
53
+ ui.info "We tried to delete the disk file via virtualbox '#{location} but failed"
54
+ ui.info "Removing it manually"
55
55
  FileUtils.rm(location)
56
56
  exit -1
57
57
  end
@@ -10,7 +10,7 @@ module Veewee
10
10
 
11
11
  # Check if box already exists
12
12
  unless self.exists?
13
- env.ui.info "#{name} is not found, maybe you need to build it first?"
13
+ ui.info "#{name} is not found, maybe you need to build it first?"
14
14
  exit
15
15
  end
16
16
 
@@ -28,19 +28,19 @@ module Veewee
28
28
 
29
29
  # We need to shutdown first
30
30
  if self.running?
31
- env.ui.info "Vagrant requires the box to be shutdown, before it can export"
32
- env.ui.info "Sudo also needs to work for user #{definition.ssh_user}"
33
- env.ui.info "Performing a clean shutdown now."
31
+ ui.info "Vagrant requires the box to be shutdown, before it can export"
32
+ ui.info "Sudo also needs to work for user #{definition.ssh_user}"
33
+ ui.info "Performing a clean shutdown now."
34
34
 
35
35
  self.halt
36
36
 
37
37
  #Wait for state poweroff
38
38
  while (self.running?) do
39
- env.ui.info ".",{:new_line => false}
39
+ ui.info ".",{:new_line => false}
40
40
  sleep 1
41
41
  end
42
- env.ui.info ""
43
- env.ui.info "Machine #{name} is powered off cleanly"
42
+ ui.info ""
43
+ ui.info "Machine #{name} is powered off cleanly"
44
44
  end
45
45
 
46
46
  #Vagrant requires a relative path for output of boxes
@@ -54,28 +54,28 @@ module Veewee
54
54
  box_path=path1.relative_path_from(path2).to_s
55
55
 
56
56
  if File.exists?("#{box_path}")
57
- env.ui.info "box #{name}.box already exists"
57
+ ui.info "box #{name}.box already exists"
58
58
  exit
59
59
  end
60
60
 
61
- env.ui.info "Executing vagrant voodoo:"
61
+ ui.info "Executing vagrant voodoo:"
62
62
  export_command="vagrant package --base '#{name}' --output '#{box_path}'"
63
- env.ui.info "#{export_command}"
63
+ ui.info "#{export_command}"
64
64
  shell_exec("#{export_command}") #hmm, needs to get the gem_home set?
65
- env.ui.info ""
65
+ ui.info ""
66
66
 
67
67
  #add_ssh_nat_mapping back!!!!
68
68
  #vagrant removes the mapping
69
69
  #we need to restore it in order to be able to login again
70
70
  self.add_ssh_nat_mapping
71
71
 
72
- env.ui.info "To import it into vagrant type:"
73
- env.ui.info "vagrant box add '#{name}' '#{box_path}'"
74
- env.ui.info ""
75
- env.ui.info "To use it:"
76
- env.ui.info "vagrant init '#{name}'"
77
- env.ui.info "vagrant up"
78
- env.ui.info "vagrant ssh"
72
+ ui.info "To import it into vagrant type:"
73
+ ui.info "vagrant box add '#{name}' '#{box_path}'"
74
+ ui.info ""
75
+ ui.info "To use it:"
76
+ ui.info "vagrant init '#{name}'"
77
+ ui.info "vagrant up"
78
+ ui.info "vagrant ssh"
79
79
  end
80
80
 
81
81
  end #Module