vagrant-ovirt3 1.2.0 → 1.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bd7169ec49f52e7643c9e559afd8d4780c60df54
4
- data.tar.gz: efc888c31c0240929079252b617e63edbd0874d5
3
+ metadata.gz: fb418a1dcb47db6316ed502682775154fa41a468
4
+ data.tar.gz: 0daaf7c450f4aa512caaca2375058b7120a122bf
5
5
  SHA512:
6
- metadata.gz: d854df91f685af9e3279977757ff529a722a5a8cbb37be9435b98158e424a0e1085281a97ba84bf18233865449438722564253a518902df5fbd23a2f6989569b
7
- data.tar.gz: a80393f2798818b005bed078d3c2a2b1c1e4be5fb9dab94782e3f246aa1928d68c323df7720bffd866a08d8c10ee0dfca2d1e09eaf3d2e07cbf3b9851cf7b05b
6
+ metadata.gz: e338380c448b4fc231fca4c5580978657f9c14e8b0aa53707951858402526f3f41802f32698ec6fab7ba4b5bfffbd7053d193e7ca92aca79f0d7d028c7308f0c
7
+ data.tar.gz: c63e3b5c922a6f6c49d97a8ba5ad1ac8fa666db4ea2565bf51e5a1e9146f3140c2797c6d642245606818b201511d85182f82682e8c4af5d6c57c2a34b6b6c6b2
data/README.md CHANGED
@@ -1,4 +1,6 @@
1
1
  # Vagrant oVirt/RHEV v3 Provider
2
+ [![Gem Version](https://badge.fury.io/rb/vagrant-ovirt3.svg)](http://badge.fury.io/rb/vagrant-ovirt3)
3
+ [![vagrant-ovirt3 API Documentation](https://www.omniref.com/ruby/gems/vagrant-ovirt3.png)](https://www.omniref.com/ruby/gems/vagrant-ovirt3)
2
4
 
3
5
  This is a [Vagrant](http://www.vagrantup.com) 1.1+ plugin that adds an
4
6
  [oVirt v3](http://ovirt.org) and
@@ -26,10 +28,10 @@ Vagrant.configure('2') do |config|
26
28
  config.vm.box = 'ovirt'
27
29
  config.vm.box_url = 'https://github.com/myoung34/vagrant-ovirt3/blob/master/example_box/dummy.box?raw=true'
28
30
 
29
- config.vm.network :private_network,
31
+ config.vm.network :private_network,
30
32
  :ip => '192.168.56.100', :nictype => 'virtio', :netmask => '255.255.255.0', #normal network configuration
31
33
  :ovirt__ip => '10.101.55.72', :ovirt__network_name => 'ovirtmgmt', :ovirt__gateway => '10.101.55.1' # oVirt specific information, overwrites previous on oVirt provider
32
-
34
+
33
35
  config.vm.provider :ovirt3 do |ovirt|
34
36
  ovirt.template = 'template'
35
37
  ovirt.cpus = 1
@@ -64,9 +66,16 @@ This provider exposes quite a few provider-specific configuration options:
64
66
  * `memory` - Amount of memory in MBytes. Defaults to 512 if not set.
65
67
  * `cpus` - Number of virtual cpus. Defaults to 1 if not set.
66
68
  * `template` - Name of template from which new VM should be created.
69
+ * `template_version` - If a template has sub-versions, specify a sub-version
70
+ number or name.
67
71
  * `console` - Console type to use. Can be 'vnc' or 'spice'. Default is 'spice'
68
72
  * `disk_size` - If set, the first volume of the VM will automatically be resized
69
73
  to the specified value. disk_size is in GB
74
+ * `user_data` - If given, user data is made available to the VM via a virtual
75
+ floppy disk. This data is used to configure VMs via cloud-init. The value for
76
+ `user_data` should generally be a string in [cloud-config format][].
77
+
78
+ [cloud-config format]: https://cloudinit.readthedocs.org/en/latest/topics/examples.html
70
79
 
71
80
  Specific domain settings can be set for each domain separately in multi-VM
72
81
  environment. Example below shows a part of Vagrantfile, where specific options
@@ -95,14 +104,14 @@ Note, the network information will differ between the two. Under virtualbox, it
95
104
  Vagrant.configure('2') do |config|
96
105
  config.vm.box = 'mybox'
97
106
 
98
- config.vm.network :private_network,
107
+ config.vm.network :private_network,
99
108
  :ip => '192.168.56.100', :nictype => 'virtio', :netmask => '255.255.255.0' #normal network configuration
100
109
  :ovirt__ip => '10.101.55.72', :ovirt__network_name => 'ovirtmgmt', :ovirt__gateway => '10.101.55.1', # oVirt specific information, overwrites previous on oVirt provider
101
-
110
+
102
111
  config.vm.provider :virtualbox do |vb|
103
112
  vb.customize [
104
113
  # Key Value
105
- 'modifyvm', :id,
114
+ 'modifyvm', :id,
106
115
  '--cpuexecutioncap', '90',
107
116
  '--memory', '1376',
108
117
  '--nictype2', 'virtio',
@@ -127,14 +136,24 @@ Vagrant.configure('2') do |config|
127
136
 
128
137
  config.vm.provision :puppet do |puppet|
129
138
  puppet.options = [
130
- "--environment development",
131
- '--hiera_config=/etc/puppet/hiera/hiera.yaml',
139
+ "--environment development",
140
+ '--hiera_config=/etc/puppet/hiera/hiera.yaml',
132
141
  ]
133
142
  puppet.manifests_path = './manifests'
134
143
  puppet.manifest_file = 'default.pp'
135
144
  end
136
145
  ```
137
146
 
147
+ ### Parallel Support
148
+
149
+ By default VMs will be created and provisioned in parallel. If this causes
150
+ resource issues or you want VMs to be created in series use --no-parallel
151
+
152
+ ```
153
+ $ vagrant up
154
+ $ vagrant up --no-parallel
155
+ ```
156
+
138
157
  ### How Project Is Created
139
158
 
140
159
  Vagrant goes through steps below when creating new project:
@@ -188,4 +207,3 @@ The box is a tarball containing:
188
207
  3. Commit your changes (`git commit -am 'Add some feature'`)
189
208
  4. Push to the branch (`git push origin my-new-feature`)
190
209
  5. Create new Pull Request
191
-
@@ -21,6 +21,9 @@ module VagrantPlugins
21
21
  console = config.console
22
22
  cpus = config.cpus
23
23
  memory_size = config.memory*1024
24
+ user_data = config.user_data ?
25
+ Base64::encode64(config.user_data) :
26
+ nil
24
27
 
25
28
  # Get cluster
26
29
  if config.cluster == nil
@@ -34,12 +37,25 @@ module VagrantPlugins
34
37
  env[:ovirt_cluster] = cluster
35
38
 
36
39
  # Get template
37
- template = OVirtProvider::Util::Collection.find_matching(
38
- env[:ovirt_compute].templates.all, config.template)
40
+ template = env[:ovirt_compute].templates.all.find_all { |t|
41
+ t.id == config.template or t.name == config.template
42
+ }
43
+ .sort_by { |t| t.raw.version.version_number.to_i }.reverse
44
+ .find { |t|
45
+ v = t.raw.version
46
+ cv = config.template_version
47
+ cv.nil? or (cv.to_i == v.version_number.to_i or cv == v.version_name)
48
+ }
39
49
  if template == nil
40
50
  raise Error::NoTemplateError,
41
51
  :template_name => config.template
42
52
  end
53
+ ver = template.raw.version
54
+ if !ver.version_name.nil? and !ver.version_name.empty?
55
+ version_string = "#{ver.version_name} (#{ver.version_number.to_i})"
56
+ else
57
+ version_string = "#{ver.version_number.to_i}"
58
+ end
43
59
 
44
60
  # Output the settings we're going to use to the user
45
61
  env[:ui].info(I18n.t("vagrant_ovirt3.creating_vm"))
@@ -47,12 +63,16 @@ module VagrantPlugins
47
63
  env[:ui].info(" -- Cpus: #{cpus}")
48
64
  env[:ui].info(" -- Memory: #{memory_size/1024}M")
49
65
  env[:ui].info(" -- Template: #{template.name}")
66
+ env[:ui].info(" -- Version: #{version_string}")
50
67
  env[:ui].info(" -- Datacenter: #{config.datacenter}")
51
68
  env[:ui].info(" -- Cluster: #{cluster.name}")
52
69
  env[:ui].info(" -- Console: #{console}")
53
70
  if config.disk_size
54
71
  env[:ui].info(" -- Disk size: #{config.disk_size}G")
55
72
  end
73
+ if config.user_data
74
+ env[:ui].info(" -- User data:\n#{config.user_data}")
75
+ end
56
76
 
57
77
  # Create oVirt VM.
58
78
  attr = {
@@ -62,6 +82,7 @@ module VagrantPlugins
62
82
  :cluster => cluster.id,
63
83
  :template => template.id,
64
84
  :display => {:type => console },
85
+ :user_data => user_data,
65
86
  }
66
87
 
67
88
  begin
@@ -0,0 +1,23 @@
1
+ require 'log4r'
2
+
3
+ module VagrantPlugins
4
+ module OVirtProvider
5
+ module Action
6
+ class HaltVM
7
+ def initialize(app, env)
8
+ @logger = Log4r::Logger.new("vagrant_ovirt3::action::halt_vm")
9
+ @app = app
10
+ end
11
+
12
+ def call(env)
13
+ env[:ui].info(I18n.t("vagrant_ovirt3.halt_vm"))
14
+
15
+ machine = env[:ovirt_compute].servers.get(env[:machine].id.to_s)
16
+ machine.stop
17
+
18
+ @app.call(env)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,16 @@
1
+ module VagrantPlugins
2
+ module OVirtProvider
3
+ module Action
4
+ class MessageAlreadyUp
5
+ def initialize(app, env)
6
+ @app = app
7
+ end
8
+
9
+ def call(env)
10
+ env[:ui].info(I18n.t("vagrant_ovirt3.already_up"))
11
+ @app.call(env)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module VagrantPlugins
2
+ module OVirtProvider
3
+ module Action
4
+ class MessageNotSuspended
5
+ def initialize(app, env)
6
+ @app = app
7
+ end
8
+
9
+ def call(env)
10
+ env[:ui].info(I18n.t("vagrant_ovirt3.not_suspended"))
11
+ @app.call(env)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module VagrantPlugins
2
+ module OVirtProvider
3
+ module Action
4
+ class MessageNotUp
5
+ def initialize(app, env)
6
+ @app = app
7
+ end
8
+
9
+ def call(env)
10
+ env[:ui].info(I18n.t("vagrant_ovirt3.not_up"))
11
+ @app.call(env)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module VagrantPlugins
2
+ module OVirtProvider
3
+ module Action
4
+ class MessageSavingState
5
+ def initialize(app, env)
6
+ @app = app
7
+ end
8
+
9
+ def call(env)
10
+ env[:ui].info(I18n.t("vagrant_ovirt3.saving_state"))
11
+ @app.call(env)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -16,20 +16,20 @@ module VagrantPlugins
16
16
  @app.call(env)
17
17
  end
18
18
 
19
+ # Possible states include (but may not be limited to):
20
+ # :not_created, :up, :down, :saving_state, :suspended
19
21
  def read_state(ovirt, machine)
20
22
  return :not_created if machine.id.nil?
21
23
 
22
24
  # Find the machine
23
25
  server = ovirt.servers.get(machine.id)
24
- if server.nil? || [:"shutting-down", :terminated].include?(server.status.to_sym)
25
- # The machine can't be found
26
- @logger.info("Machine not found or terminated, assuming it got destroyed.")
26
+ if server.nil?
27
27
  machine.id = nil
28
28
  return :not_created
29
29
  end
30
30
 
31
31
  # Return the state
32
- return server.status
32
+ return server.status.to_sym
33
33
  end
34
34
  end
35
35
  end
@@ -11,7 +11,7 @@ module VagrantPlugins
11
11
  def call(env)
12
12
  env[:domain_name] = env[:root_path].basename.to_s.dup
13
13
  env[:domain_name].gsub!(/[^-a-z0-9_]/i, "")
14
- env[:domain_name] << "_#{Time.now.to_i}"
14
+ env[:domain_name] << "_#{Time.now.to_f}"
15
15
 
16
16
  # Check if the domain name is not already taken
17
17
  domain = OVirtProvider::Util::Collection.find_matching(
@@ -0,0 +1,24 @@
1
+ require 'log4r'
2
+
3
+ module VagrantPlugins
4
+ module OVirtProvider
5
+ module Action
6
+ class SuspendVM
7
+ def initialize(app, env)
8
+ @logger = Log4r::Logger.new("vagrant_ovirt3::action::suspend_vm")
9
+ @app = app
10
+ end
11
+
12
+ def call(env)
13
+ env[:ui].info(I18n.t("vagrant_ovirt3.suspend_vm"))
14
+
15
+ machine = env[:ovirt_compute].servers.get(env[:machine].id.to_s)
16
+ machine.suspend
17
+
18
+ @app.call(env)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+
@@ -11,20 +11,29 @@ module VagrantPlugins
11
11
  Vagrant::Action::Builder.new.tap do |b|
12
12
  b.use ConfigValidate
13
13
  b.use ConnectOVirt
14
- b.use Call, IsCreated do |env, b2|
15
- if env[:result]
16
- b2.use MessageAlreadyCreated
14
+ b.use Call, ReadState do |env, b2|
15
+ if env[:machine_state_id] == :up
16
+ b2.use SyncFolders
17
+ b2.use MessageAlreadyUp
17
18
  next
18
19
  end
19
20
 
20
- b2.use SetNameOfDomain
21
- b2.use CreateVM
22
- b2.use ResizeDisk
21
+ if env[:machine_state_id] == :saving_state
22
+ b2.use MessageSavingState
23
+ next
24
+ end
23
25
 
24
- b2.use Provision
25
- b2.use CreateNetworkInterfaces
26
+ if env[:machine_state_id] == :not_created
27
+ b2.use SetNameOfDomain
28
+ b2.use CreateVM
29
+ b2.use ResizeDisk
30
+
31
+ b2.use Provision
32
+ b2.use CreateNetworkInterfaces
33
+
34
+ b2.use SetHostname
35
+ end
26
36
 
27
- b2.use SetHostname
28
37
  b2.use StartVM
29
38
  b2.use WaitTillUp
30
39
  b2.use SyncFolders
@@ -32,6 +41,42 @@ module VagrantPlugins
32
41
  end
33
42
  end
34
43
 
44
+ def self.action_halt
45
+ with_ovirt do |env, b|
46
+ if env[:machine_state_id] != :up
47
+ b.use MessageNotUp
48
+ next
49
+ end
50
+ b.use HaltVM
51
+ end
52
+ end
53
+
54
+ def self.action_suspend
55
+ with_ovirt do |env, b|
56
+ if env[:machine_state_id] != :up
57
+ b.use MessageNotUp
58
+ next
59
+ end
60
+ b.use SuspendVM
61
+ end
62
+ end
63
+
64
+ def self.action_resume
65
+ with_ovirt do |env, b|
66
+ if env[:machine_state_id] == :saving_state
67
+ b.use MessageSavingState
68
+ next
69
+ end
70
+ if env[:machine_state_id] != :suspended
71
+ b.use MessageNotSuspended
72
+ next
73
+ end
74
+ b.use StartVM
75
+ b.use WaitTillUp
76
+ b.use SyncFolders
77
+ end
78
+ end
79
+
35
80
  # This is the action that is primarily responsible for completely
36
81
  # freeing the resources of the underlying virtual machine.
37
82
  def self.action_destroy
@@ -73,11 +118,16 @@ module VagrantPlugins
73
118
  def self.action_ssh
74
119
  Vagrant::Action::Builder.new.tap do |b|
75
120
  b.use ConfigValidate
76
- b.use Call, IsCreated do |env, b2|
77
- if !env[:result]
121
+ b.use ConnectOVirt
122
+ b.use Call, ReadState do |env, b2|
123
+ if env[:machine_state_id] == :not_created
78
124
  b2.use MessageNotCreated
79
125
  next
80
126
  end
127
+ if env[:machine_state_id] != :up
128
+ b2.use MessageNotUp
129
+ next
130
+ end
81
131
  b2.use SSHExec
82
132
  end
83
133
  end
@@ -87,10 +137,14 @@ module VagrantPlugins
87
137
  Vagrant::Action::Builder.new.tap do |b|
88
138
  b.use ConfigValidate
89
139
  b.use Call, IsCreated do |env, b2|
90
- if !env[:result]
140
+ if env[:machine_state_id] == :not_created
91
141
  b2.use MessageNotCreated
92
142
  next
93
143
  end
144
+ if env[:machine_state_id] != :up
145
+ b2.use MessageNotUp
146
+ next
147
+ end
94
148
  b2.use SSHRun
95
149
  end
96
150
  end
@@ -119,12 +173,33 @@ module VagrantPlugins
119
173
  autoload :ResizeDisk, action_root.join("resize_disk")
120
174
  autoload :StartVM, action_root.join("start_vm")
121
175
  autoload :MessageNotCreated, action_root.join("message_not_created")
176
+ autoload :HaltVM, action_root.join("halt_vm")
177
+ autoload :SuspendVM, action_root.join("suspend_vm")
122
178
  autoload :DestroyVM, action_root.join("destroy_vm")
123
179
  autoload :ReadState, action_root.join("read_state")
124
180
  autoload :ReadSSHInfo, action_root.join("read_ssh_info")
125
181
  autoload :WaitTillUp, action_root.join("wait_till_up")
126
182
  autoload :SyncFolders, action_root.join("sync_folders")
127
183
  autoload :MessageAlreadyCreated, action_root.join("message_already_created")
184
+ autoload :MessageAlreadyUp, action_root.join("message_already_up")
185
+ autoload :MessageNotUp, action_root.join("message_not_up")
186
+ autoload :MessageSavingState, action_root.join("message_saving_state")
187
+ autoload :MessageNotSuspended, action_root.join("message_not_suspended")
188
+
189
+ private
190
+ def self.with_ovirt
191
+ Vagrant::Action::Builder.new.tap do |b|
192
+ b.use ConfigValidate
193
+ b.use ConnectOVirt
194
+ b.use Call, ReadState do |env, b2|
195
+ if !env[:machine_state_id] == :not_created
196
+ b2.use MessageNotCreated
197
+ next
198
+ end
199
+ yield env, b2
200
+ end
201
+ end
202
+ end
128
203
  end
129
204
  end
130
205
  end
@@ -15,8 +15,10 @@ module VagrantPlugins
15
15
  attr_accessor :memory
16
16
  attr_accessor :cpus
17
17
  attr_accessor :template
18
+ attr_accessor :template_version
18
19
  attr_accessor :console
19
20
  attr_accessor :disk_size
21
+ attr_accessor :user_data
20
22
 
21
23
  # TODO: change 'ca_cert_store' to 'ca_cert' once rbovirt PR #55 merges.
22
24
  attr_accessor :ca_no_verify
@@ -35,8 +37,10 @@ module VagrantPlugins
35
37
  @memory = UNSET_VALUE
36
38
  @cpus = UNSET_VALUE
37
39
  @template = UNSET_VALUE
40
+ @template_version = UNSET_VALUE
38
41
  @console = UNSET_VALUE
39
42
  @disk_size = UNSET_VALUE
43
+ @user_data = UNSET_VALUE
40
44
 
41
45
  @ca_no_verify = UNSET_VALUE
42
46
  @ca_cert_store = UNSET_VALUE
@@ -55,8 +59,10 @@ module VagrantPlugins
55
59
  @memory = 512 if @memory == UNSET_VALUE
56
60
  @cpus = 1 if @cpus == UNSET_VALUE
57
61
  @template = 'Blank' if @template == UNSET_VALUE
62
+ @template_version = nil if @template_version == UNSET_VALUE
58
63
  @console = 'spice' if @console == UNSET_VALUE
59
64
  @disk_size = nil if @disk_size == UNSET_VALUE
65
+ @user_data = nil if @user_data == UNSET_VALUE
60
66
 
61
67
  @ca_no_verify = false if @ca_no_verify == UNSET_VALUE
62
68
  @ca_cert_store = nil if @ca_cert_store == UNSET_VALUE
@@ -24,7 +24,7 @@ module VagrantPlugins
24
24
  Config
25
25
  end
26
26
 
27
- provider "ovirt3" do
27
+ provider("ovirt3", parallel: true) do
28
28
  # Setup logging and i18n
29
29
  setup_logging
30
30
  setup_i18n
@@ -1,6 +1,6 @@
1
1
  module VagrantPlugins
2
2
  module OVirtProvider
3
- VERSION = '1.2.0'
3
+ VERSION = '1.3.0'
4
4
  end
5
5
  end
6
6
 
data/locales/en.yml CHANGED
@@ -6,8 +6,14 @@ en:
6
6
  Removing VM...
7
7
  not_created: |-
8
8
  VM is not created. Please run `vagrant up` first.
9
+ not_up: |-
10
+ VM is not running. Please run `vagrant up` first.
9
11
  starting_vm: |-
10
12
  Starting VM.
13
+ suspend_vm: |-
14
+ Suspending VM...
15
+ halt_vm: |-
16
+ Halting VM...
11
17
  error_recovering: |-
12
18
  An error occured. Recovering..
13
19
  waiting_for_ip: |-
@@ -20,10 +26,16 @@ en:
20
26
  Waiting for VM to become "ready" to start...
21
27
  already_created: |-
22
28
  VM is already created.
29
+ already_up: |-
30
+ VM is already up.
23
31
  ready: |-
24
32
  Machine is booted and ready for use!
25
33
  wait_for_ready_volume: |-
26
34
  Waiting for VM volume to become "ready" to start...
35
+ saving_state: |-
36
+ VM is busy saving state. Please wait and try again.
37
+ not_suspended: |-
38
+ VM is not in a suspended state.
27
39
 
28
40
  errors:
29
41
  fog_ovirt_connection_error: |-
@@ -3,7 +3,7 @@ require File.expand_path('../lib/vagrant-ovirt3/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
5
  gem.authors = ["Marcus Young"]
6
- gem.email = ["myoung34@my.apsu.edu"]
6
+ gem.email = ["myoung34@my.apsu.edu"]
7
7
  gem.description = %q{Vagrant provider for oVirt and RHEV v3}
8
8
  gem.summary = %q{This vagrant plugin provides the ability to create, control, and destroy virtual machines under oVirt/RHEV}
9
9
  gem.homepage = "https://github.com/myoung34/vagrant-ovirt3"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-ovirt3
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcus Young
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-26 00:00:00.000000000 Z
11
+ date: 2015-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fog
@@ -80,14 +80,20 @@ files:
80
80
  - lib/vagrant-ovirt3/action/create_network_interfaces.rb
81
81
  - lib/vagrant-ovirt3/action/create_vm.rb
82
82
  - lib/vagrant-ovirt3/action/destroy_vm.rb
83
+ - lib/vagrant-ovirt3/action/halt_vm.rb
83
84
  - lib/vagrant-ovirt3/action/is_created.rb
84
85
  - lib/vagrant-ovirt3/action/message_already_created.rb
86
+ - lib/vagrant-ovirt3/action/message_already_up.rb
85
87
  - lib/vagrant-ovirt3/action/message_not_created.rb
88
+ - lib/vagrant-ovirt3/action/message_not_suspended.rb
89
+ - lib/vagrant-ovirt3/action/message_not_up.rb
90
+ - lib/vagrant-ovirt3/action/message_saving_state.rb
86
91
  - lib/vagrant-ovirt3/action/read_ssh_info.rb
87
92
  - lib/vagrant-ovirt3/action/read_state.rb
88
93
  - lib/vagrant-ovirt3/action/resize_disk.rb
89
94
  - lib/vagrant-ovirt3/action/set_name_of_domain.rb
90
95
  - lib/vagrant-ovirt3/action/start_vm.rb
96
+ - lib/vagrant-ovirt3/action/suspend_vm.rb
91
97
  - lib/vagrant-ovirt3/action/sync_folders.rb
92
98
  - lib/vagrant-ovirt3/action/wait_till_up.rb
93
99
  - lib/vagrant-ovirt3/config.rb