foodtaster 0.0.6 → 0.0.7

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.
@@ -26,8 +26,9 @@ module Foodtaster
26
26
  end
27
27
 
28
28
  [:vm_defined?, :prepare_vm, :rollback_vm,
29
- :run_chef_on_vm, :execute_command_on_vm,
30
- :shutdown_vm, :vm_prepared?].each do |method_name|
29
+ :run_chef_on_vm, :execute_command_on_vm,
30
+ :shutdown_vm, :vm_running?, :initial_snapshot_made_on_vm?,
31
+ :start_vm, :make_initial_snapshot_on_vm].each do |method_name|
31
32
  define_method method_name do |*args|
32
33
  begin
33
34
  @v.send(method_name, *args)
@@ -3,8 +3,10 @@ module Foodtaster
3
3
  module DslMethods
4
4
  def require_vm(vm_name)
5
5
  let(vm_name) do
6
- get_vm(vm_name).tap { |vm| vm.prepare }
6
+ get_vm(vm_name)
7
7
  end
8
+
9
+ before(:all) { get_vm(vm_name) }
8
10
  end
9
11
 
10
12
  def run_chef_on(vm_name, options = {}, &block)
@@ -2,7 +2,9 @@ module Foodtaster
2
2
  module RSpec
3
3
  module ExampleMethods
4
4
  def get_vm(vm_name)
5
- Foodtaster::Vm.get(vm_name)
5
+ Foodtaster::Vm.get(vm_name).tap do |vm|
6
+ vm.prepare unless vm.prepared?
7
+ end
6
8
  end
7
9
 
8
10
  def run_chef_on(vm_name, &block)
@@ -1,3 +1,3 @@
1
1
  module Foodtaster
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
data/lib/foodtaster/vm.rb CHANGED
@@ -53,13 +53,38 @@ module Foodtaster
53
53
  self.class.register_vm(self)
54
54
  end
55
55
 
56
+ def running?
57
+ @client.vm_running?(self.name)
58
+ end
59
+
60
+ def initial_snapshot_made?
61
+ @client.initial_snapshot_made_on_vm?(self.name)
62
+ end
63
+
64
+ def start!
65
+ Foodtaster.logger.info "#{name}: Power on machine"
66
+ @client.start_vm(self.name)
67
+ end
68
+
69
+ def make_initial_snapshot!
70
+ Foodtaster.logger.info "#{name}: Creating initial snapshot"
71
+ @client.make_initial_snapshot_on_vm(self.name)
72
+ end
73
+
56
74
  def prepare
57
75
  Foodtaster.logger.info "#{name}: Preparing VM"
58
- @client.prepare_vm(name)
76
+
77
+ unless running?
78
+ self.start!
79
+ end
80
+
81
+ unless initial_snapshot_made?
82
+ self.make_initial_snapshot!
83
+ end
59
84
  end
60
85
 
61
86
  def prepared?
62
- @client.vm_prepared?(name)
87
+ self.running? && self.initial_snapshot_made?
63
88
  end
64
89
 
65
90
  def shutdown
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: foodtaster
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.6
5
+ version: 0.0.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - Mike Lapshin