foodtaster 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -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