vagrant-libvirt 0.0.7 → 0.0.8

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.
@@ -249,40 +249,38 @@ module VagrantPlugins
249
249
  end
250
250
  end
251
251
 
252
-
253
- action_root = Pathname.new(File.expand_path("../action", __FILE__))
254
- autoload :ConnectLibvirt, action_root.join("connect_libvirt")
255
- autoload :IsCreated, action_root.join("is_created")
256
- autoload :IsRunning, action_root.join("is_running")
257
- autoload :IsSuspended, action_root.join("is_suspended")
258
- autoload :MessageAlreadyCreated, action_root.join("message_already_created")
259
- autoload :MessageNotCreated, action_root.join("message_not_created")
260
- autoload :MessageNotRunning, action_root.join("message_not_running")
261
- autoload :MessageNotSuspended, action_root.join("message_not_suspended")
262
- autoload :HandleStoragePool, action_root.join("handle_storage_pool")
263
- autoload :HandleBoxUrl, "vagrant/action/builtin/handle_box_url"
264
- autoload :HandleBoxImage, action_root.join("handle_box_image")
265
- autoload :SetNameOfDomain, action_root.join("set_name_of_domain")
266
- autoload :CreateDomainVolume, action_root.join("create_domain_volume")
267
- autoload :CreateDomain, action_root.join("create_domain")
268
- autoload :CreateNetworks, action_root.join("create_networks")
269
- autoload :CreateNetworkInterfaces, action_root.join("create_network_interfaces")
270
- autoload :DestroyDomain, action_root.join("destroy_domain")
271
- autoload :DestroyNetworks, action_root.join("destroy_networks")
272
- autoload :StartDomain, action_root.join("start_domain")
273
- autoload :HaltDomain, action_root.join("halt_domain")
274
- autoload :SuspendDomain, action_root.join("suspend_domain")
275
- autoload :ResumeDomain, action_root.join("resume_domain")
276
- autoload :ReadState, action_root.join("read_state")
277
- autoload :ReadSSHInfo, action_root.join("read_ssh_info")
278
- autoload :TimedProvision, action_root.join("timed_provision")
279
- autoload :WaitTillUp, action_root.join("wait_till_up")
280
- autoload :SyncFolders, action_root.join("sync_folders")
281
- autoload :SSHRun, "vagrant/action/builtin/ssh_run"
282
- autoload :PrepareNFSSettings, action_root.join("prepare_nfs_settings")
283
- autoload :PruneNFSExports, action_root.join("prune_nfs_exports")
284
- autoload :ShareFolders, action_root.join("share_folders")
252
+ action_root = Pathname.new(File.expand_path('../action', __FILE__))
253
+ autoload :ConnectLibvirt, action_root.join('connect_libvirt')
254
+ autoload :IsCreated, action_root.join('is_created')
255
+ autoload :IsRunning, action_root.join('is_running')
256
+ autoload :IsSuspended, action_root.join('is_suspended')
257
+ autoload :MessageAlreadyCreated, action_root.join('message_already_created')
258
+ autoload :MessageNotCreated, action_root.join('message_not_created')
259
+ autoload :MessageNotRunning, action_root.join('message_not_running')
260
+ autoload :MessageNotSuspended, action_root.join('message_not_suspended')
261
+ autoload :HandleStoragePool, action_root.join('handle_storage_pool')
262
+ autoload :HandleBoxUrl, 'vagrant/action/builtin/handle_box_url'
263
+ autoload :HandleBoxImage, action_root.join('handle_box_image')
264
+ autoload :SetNameOfDomain, action_root.join('set_name_of_domain')
265
+ autoload :CreateDomainVolume, action_root.join('create_domain_volume')
266
+ autoload :CreateDomain, action_root.join('create_domain')
267
+ autoload :CreateNetworks, action_root.join('create_networks')
268
+ autoload :CreateNetworkInterfaces, action_root.join('create_network_interfaces')
269
+ autoload :DestroyDomain, action_root.join('destroy_domain')
270
+ autoload :DestroyNetworks, action_root.join('destroy_networks')
271
+ autoload :StartDomain, action_root.join('start_domain')
272
+ autoload :HaltDomain, action_root.join('halt_domain')
273
+ autoload :SuspendDomain, action_root.join('suspend_domain')
274
+ autoload :ResumeDomain, action_root.join('resume_domain')
275
+ autoload :ReadState, action_root.join('read_state')
276
+ autoload :ReadSSHInfo, action_root.join('read_ssh_info')
277
+ autoload :TimedProvision, action_root.join('timed_provision')
278
+ autoload :WaitTillUp, action_root.join('wait_till_up')
279
+ autoload :SyncFolders, action_root.join('sync_folders')
280
+ autoload :SSHRun, 'vagrant/action/builtin/ssh_run'
281
+ autoload :PrepareNFSSettings, action_root.join('prepare_nfs_settings')
282
+ autoload :PruneNFSExports, action_root.join('prune_nfs_exports')
283
+ autoload :ShareFolders, action_root.join('share_folders')
285
284
  end
286
285
  end
287
286
  end
288
-
@@ -15,7 +15,7 @@ module VagrantPlugins
15
15
  include Vagrant::Util::ScopedHashOverride
16
16
 
17
17
  def initialize(app, env)
18
- @logger = Log4r::Logger.new("vagrant_libvirt::action::create_network_interfaces")
18
+ @logger = Log4r::Logger.new('vagrant_libvirt::action::create_network_interfaces')
19
19
  @app = app
20
20
  end
21
21
 
@@ -91,7 +91,7 @@ module VagrantPlugins
91
91
  end
92
92
  end
93
93
 
94
- # Continue the middleware chain.
94
+ # Continue the middleware chain.
95
95
  @app.call(env)
96
96
 
97
97
  # Configure interfaces that user requested. Machine should be up and
@@ -122,15 +122,15 @@ module VagrantPlugins
122
122
  networks_to_configure << network
123
123
  end
124
124
 
125
- env[:ui].info I18n.t("vagrant.actions.vm.network.configuring")
125
+ env[:ui].info I18n.t('vagrant.actions.vm.network.configuring')
126
126
  env[:machine].guest.capability(
127
- :configure_networks, networks_to_configure)
127
+ :configure_networks, networks_to_configure)
128
128
  end
129
129
 
130
130
  private
131
131
 
132
132
  def find_empty(array, start=0, stop=8)
133
- for i in start..stop
133
+ (start..stop).each do |i|
134
134
  return i if !array[i]
135
135
  end
136
136
  return nil
@@ -14,7 +14,8 @@ module VagrantPlugins
14
14
  include VagrantPlugins::ProviderLibvirt::Util::LibvirtUtil
15
15
 
16
16
  def initialize(app, env)
17
- @logger = Log4r::Logger.new("vagrant_libvirt::action::create_networks")
17
+ mess = 'vagrant_libvirt::action::create_networks'
18
+ @logger = Log4r::Logger.new(mess)
18
19
  @app = app
19
20
 
20
21
  @available_networks = []
@@ -44,22 +45,22 @@ module VagrantPlugins
44
45
  # (:libvirt__network_name => ...).
45
46
  @options = scoped_hash_override(options, :libvirt)
46
47
  @options = {
47
- :netmask => '255.255.255.0',
48
- :dhcp_enabled => true,
49
- :forward_mode => 'nat',
48
+ netmask: '255.255.255.0',
49
+ dhcp_enabled: true,
50
+ forward_mode: 'nat',
50
51
  }.merge(@options)
51
52
 
52
53
  # Prepare a hash describing network for this specific interface.
53
54
  @interface_network = {
54
- :name => nil,
55
- :ip_address => nil,
56
- :netmask => @options[:netmask],
57
- :network_address => nil,
58
- :bridge_name => nil,
59
- :created => false,
60
- :active => false,
61
- :autostart => false,
62
- :libvirt_network => nil,
55
+ name: nil,
56
+ ip_address: nil,
57
+ netmask: @options[:netmask],
58
+ network_address: nil,
59
+ bridge_name: nil,
60
+ created: false,
61
+ active: false,
62
+ autostart: false,
63
+ libvirt_network: nil,
63
64
  }
64
65
 
65
66
  if @options[:ip]
@@ -67,16 +68,16 @@ module VagrantPlugins
67
68
  elsif @options[:network_name]
68
69
  handle_network_name_option
69
70
  else
70
- # TODO Should be smarter than just using fixed 'default' string.
71
+ # TODO: Should be smarter than just using fixed 'default' string.
71
72
  @interface_network = lookup_network_by_name('default')
72
- if not @interface_network
73
+ if !@interface_network
73
74
  raise Errors::NetworkNotAvailableError,
74
- :network_name => 'default'
75
- end
75
+ network_name: 'default'
76
+ end
76
77
  end
77
78
 
78
- autostart_network if not @interface_network[:autostart]
79
- activate_network if not @interface_network[:active]
79
+ autostart_network if @interface_network[:autostart].nil?
80
+ activate_network if @interface_network[:active].nil?
80
81
  end
81
82
 
82
83
  @app.call(env)
@@ -103,7 +104,7 @@ module VagrantPlugins
103
104
  # Handle only situations, when ip is specified. Variables @options and
104
105
  # @available_networks should be filled before calling this function.
105
106
  def handle_ip_option(env)
106
- return if not @options[:ip]
107
+ return if !@options[:ip]
107
108
 
108
109
  net_address = network_address(@options[:ip], @options[:netmask])
109
110
  @interface_network[:network_address] = net_address
@@ -129,32 +130,32 @@ module VagrantPlugins
129
130
  # config match together.
130
131
  if @options[:network_name] != @interface_network[:name]
131
132
  raise Errors::NetworkNameAndAddressMismatch,
132
- :ip_address => @options[:ip],
133
- :network_name => @options[:network_name]
133
+ ip_address: @options[:ip],
134
+ network_name: @options[:network_name]
134
135
  end
135
136
  else
136
137
  # Network is not created, but name is set. We need to check,
137
138
  # whether network name from config doesn't already exist.
138
139
  if lookup_network_by_name @options[:network_name]
139
140
  raise Errors::NetworkNameAndAddressMismatch,
140
- :ip_address => @options[:ip],
141
- :network_name => @options[:network_name]
141
+ ip_address: @options[:ip],
142
+ network_name: @options[:network_name]
142
143
  end
143
144
 
144
145
  # Network with 'name' doesn't exist. Set it as name for new
145
146
  # network.
146
147
  @interface_network[:name] = @options[:network_name]
147
- end
148
+ end
148
149
  end
149
150
 
150
151
  # Do we need to create new network?
151
- if not @interface_network[:created]
152
+ if !@interface_network[:created]
152
153
 
153
- # TODO stop after some loops. Don't create infinite loops.
154
+ # TODO: stop after some loops. Don't create infinite loops.
154
155
 
155
156
  # Is name for new network set? If not, generate a unique one.
156
157
  count = 0
157
- while @interface_network[:name] == nil do
158
+ while @interface_network[:name].nil?
158
159
 
159
160
  # Generate a network name.
160
161
  network_name = env[:root_path].basename.to_s.dup
@@ -169,7 +170,7 @@ module VagrantPlugins
169
170
 
170
171
  # Generate a unique name for network bridge.
171
172
  count = 0
172
- while @interface_network[:bridge_name] == nil do
173
+ while @interface_network[:bridge_name].nil?
173
174
  bridge_name = 'virbr'
174
175
  bridge_name << count.to_s
175
176
  count += 1
@@ -188,12 +189,12 @@ module VagrantPlugins
188
189
  # @options and @available_networks should be filled before calling this
189
190
  # function.
190
191
  def handle_network_name_option
191
- return if @options[:ip] or not @options[:network_name]
192
+ return if @options[:ip] || !@options[:network_name]
192
193
 
193
194
  @interface_network = lookup_network_by_name(@options[:network_name])
194
- if not @interface_network
195
+ if !@interface_network
195
196
  raise Errors::NetworkNotAvailableError,
196
- :network_name => @options[:network_name]
197
+ network_name: @options[:network_name]
197
198
  end
198
199
  end
199
200
 
@@ -214,9 +215,10 @@ module VagrantPlugins
214
215
  network_address << "#{@interface_network[:netmask]}"
215
216
  net = IPAddr.new(network_address)
216
217
 
217
- # First is address of network, second is gateway. Start the range two
218
+ # First is address of network, second is gateway.
219
+ # Start the range two
218
220
  # addresses after network address.
219
- # TODO Detect if this IP is not set on the interface.
221
+ # TODO: Detect if this IP is not set on the interface.
220
222
  start_address = net.to_range.begin.succ.succ
221
223
 
222
224
  # Stop address must not be broadcast.
@@ -233,13 +235,12 @@ module VagrantPlugins
233
235
  @interface_network[:libvirt_network] = \
234
236
  @libvirt_client.define_network_xml(to_xml('private_network'))
235
237
  rescue => e
236
- raise Errors::CreateNetworkError,
237
- :error_message => e.message
238
+ raise Errors::CreateNetworkError, error_message: e.message
238
239
  end
239
240
 
240
241
  created_networks_file = env[:machine].data_dir + 'created_networks'
241
242
 
242
- message = "Saving information about created network "
243
+ message = 'Saving information about created network '
243
244
  message << "#{@interface_network[:name]}, "
244
245
  message << "UUID=#{@interface_network[:libvirt_network].uuid} "
245
246
  message << "to file #{created_networks_file}."
@@ -254,8 +255,7 @@ module VagrantPlugins
254
255
  begin
255
256
  @interface_network[:libvirt_network].autostart = true
256
257
  rescue => e
257
- raise Errors::AutostartNetworkError,
258
- :error_message => e.message
258
+ raise Errors::AutostartNetworkError, error_message: e.message
259
259
  end
260
260
  end
261
261
 
@@ -263,8 +263,7 @@ module VagrantPlugins
263
263
  begin
264
264
  @interface_network[:libvirt_network].create
265
265
  rescue => e
266
- raise Errors::ActivateNetworkError,
267
- :error_message => e.message
266
+ raise Errors::ActivateNetworkError, error_message: e.message
268
267
  end
269
268
  end
270
269
 
@@ -5,7 +5,7 @@ module VagrantPlugins
5
5
  module Action
6
6
  class HandleBoxImage
7
7
  def initialize(app, env)
8
- @logger = Log4r::Logger.new("vagrant_libvirt::action::handle_box_image")
8
+ @logger = Log4r::Logger.new('vagrant_libvirt::action::handle_box_image')
9
9
  @app = app
10
10
  end
11
11
 
@@ -30,7 +30,7 @@ module VagrantPlugins
30
30
 
31
31
  # Get config options
32
32
  config = env[:machine].provider_config
33
- box_image_file = env[:machine].box.directory.join("box.img").to_s
33
+ box_image_file = env[:machine].box.directory.join('box.img').to_s
34
34
  env[:box_volume_name] = env[:machine].box.name.to_s.dup
35
35
  env[:box_volume_name] << '_vagrant_box_image.img'
36
36
 
@@ -40,7 +40,7 @@ module VagrantPlugins
40
40
 
41
41
  # Box is not available as a storage pool volume. Create and upload
42
42
  # it as a copy of local box image.
43
- env[:ui].info(I18n.t("vagrant_libvirt.uploading_volume"))
43
+ env[:ui].info(I18n.t('vagrant_libvirt.uploading_volume'))
44
44
 
45
45
  # Create new volume in storage pool
46
46
  box_image_size = File.size(box_image_file) # B
@@ -49,11 +49,11 @@ module VagrantPlugins
49
49
  @logger.info(message)
50
50
  begin
51
51
  fog_volume = env[:libvirt_compute].volumes.create(
52
- :name => env[:box_volume_name],
53
- :allocation => "#{box_image_size/1024/1024}M",
54
- :capacity => "#{box_virtual_size}G",
55
- :format_type => box_format,
56
- :pool_name => config.storage_pool_name)
52
+ name: env[:box_volume_name],
53
+ allocation: "#{box_image_size/1024/1024}M",
54
+ capacity: "#{box_virtual_size}G",
55
+ format_type: box_format,
56
+ pool_name: config.storage_pool_name)
57
57
  rescue Fog::Errors::Error => e
58
58
  raise Errors::FogCreateVolumeError,
59
59
  :error_message => e.message
@@ -72,7 +72,7 @@ module VagrantPlugins
72
72
 
73
73
  # If upload failed or was interrupted, remove created volume from
74
74
  # storage pool.
75
- if env[:interrupted] or !ret
75
+ if env[:interrupted] || !ret
76
76
  begin
77
77
  fog_volume.destroy
78
78
  rescue
@@ -99,7 +99,7 @@ module VagrantPlugins
99
99
 
100
100
  # Exception ProviderLibvirt::RetrieveError can be raised if buffer is
101
101
  # longer than length accepted by API send function.
102
- #
102
+ #
103
103
  # TODO: How to find out if buffer is too large and what is the
104
104
  # length that send function will accept?
105
105
 
@@ -117,8 +117,11 @@ module VagrantPlugins
117
117
  :error_message => e.message
118
118
  end
119
119
 
120
- return true if progress == image_size
121
- false
120
+ if progress == image_size
121
+ return true
122
+ else
123
+ return false
124
+ end
122
125
  end
123
126
 
124
127
  end
@@ -9,9 +9,10 @@ module VagrantPlugins
9
9
  end
10
10
 
11
11
  def call(env)
12
+ require 'securerandom'
12
13
  env[:domain_name] = env[:root_path].basename.to_s.dup
13
14
  env[:domain_name].gsub!(/[^-a-z0-9_]/i, "")
14
- env[:domain_name] << "_#{Time.now.to_i}"
15
+ env[:domain_name] << "_#{SecureRandom.hex}"
15
16
 
16
17
  # Check if the domain name is not already taken
17
18
  domain = ProviderLibvirt::Util::Collection.find_matching(
@@ -4,7 +4,7 @@ module VagrantPlugins
4
4
  module ProviderLibvirt
5
5
  module Errors
6
6
  class VagrantLibvirtError < Vagrant::Errors::VagrantError
7
- error_namespace("vagrant_libvirt.errors")
7
+ error_namespace('vagrant_libvirt.errors')
8
8
  end
9
9
 
10
10
  # Storage pools and volumes exceptions
@@ -1,14 +1,13 @@
1
1
  begin
2
2
  require 'vagrant'
3
3
  rescue LoadError
4
- raise "The Vagrant Libvirt plugin must be run within Vagrant."
4
+ raise 'The Vagrant Libvirt plugin must be run within Vagrant.'
5
5
  end
6
6
 
7
-
8
7
  # This is a sanity check to make sure no one is attempting to install
9
8
  # this into an early Vagrant version.
10
- if Vagrant::VERSION < '1.1.0'
11
- raise "The Vagrant Libvirt plugin is only compatible with Vagrant 1.1+"
9
+ if Vagrant::VERSION < '1.3.0'
10
+ raise 'The Vagrant Libvirt plugin is only compatible with Vagrant 1.3+'
12
11
  end
13
12
 
14
13
  module VagrantPlugins
@@ -19,36 +18,34 @@ module VagrantPlugins
19
18
  Vagrant plugin to manage VMs in libvirt.
20
19
  DESC
21
20
 
22
-
23
21
  config('libvirt', :provider) do
24
22
  require_relative 'config'
25
23
  Config
26
24
  end
27
25
 
28
- provider "libvirt" do
26
+ provider('libvirt', parallel: true) do
29
27
  # Setup logging and i18n
30
28
  setup_logging
31
29
  setup_i18n
32
30
 
33
- require_relative "provider"
31
+ require_relative 'provider'
34
32
  Provider
35
33
  end
36
34
 
37
-
38
35
  # This initializes the internationalization strings.
39
36
  def self.setup_i18n
40
- I18n.load_path << File.expand_path("locales/en.yml", ProviderLibvirt.source_root)
37
+ I18n.load_path << File.expand_path('locales/en.yml',
38
+ ProviderLibvirt.source_root)
41
39
  I18n.reload!
42
40
  end
43
41
 
44
-
45
42
  # This sets up our log level to be whatever VAGRANT_LOG is.
46
43
  def self.setup_logging
47
- require "log4r"
44
+ require 'log4r'
48
45
 
49
46
  level = nil
50
47
  begin
51
- level = Log4r.const_get(ENV["VAGRANT_LOG"].upcase)
48
+ level = Log4r.const_get(ENV['VAGRANT_LOG'].upcase)
52
49
  rescue NameError
53
50
  # This means that the logging constant wasn't found,
54
51
  # which is fine. We just keep `level` as `nil`. But
@@ -64,7 +61,7 @@ module VagrantPlugins
64
61
  # Set the logging level on all "vagrant" namespaced
65
62
  # logs as long as we have a valid level.
66
63
  if level
67
- logger = Log4r::Logger.new("vagrant_libvirt")
64
+ logger = Log4r::Logger.new('vagrant_libvirt')
68
65
  logger.outputters = Log4r::Outputter.stderr
69
66
  logger.level = level
70
67
  logger = nil
@@ -8,7 +8,7 @@ module VagrantPlugins
8
8
  include Vagrant::Util::NetworkIP
9
9
 
10
10
  # Return a list of all (active and inactive) libvirt networks as a list
11
- # of hashes with their name, network address and status (active or not).
11
+ # of hashes with their name, network address and status (active or not)
12
12
  def libvirt_networks(libvirt_client)
13
13
  libvirt_networks = []
14
14
 
@@ -29,22 +29,22 @@ module VagrantPlugins
29
29
 
30
30
  # Calculate network address of network from ip address and
31
31
  # netmask.
32
- if ip and netmask
32
+ if ip && netmask
33
33
  network_address = network_address(ip, netmask)
34
34
  else
35
35
  network_address = nil
36
36
  end
37
37
 
38
38
  libvirt_networks << {
39
- :name => network_name,
40
- :ip_address => ip,
41
- :netmask => netmask,
42
- :network_address => network_address,
43
- :bridge_name => libvirt_network.bridge_name,
44
- :created => true,
45
- :active => libvirt_network.active?,
46
- :autostart => libvirt_network.autostart?,
47
- :libvirt_network => libvirt_network,
39
+ name: network_name,
40
+ ip_address: ip,
41
+ netmask: netmask,
42
+ network_address: network_address,
43
+ bridge_name: libvirt_network.bridge_name,
44
+ created: true,
45
+ active: libvirt_network.active?,
46
+ autostart: libvirt_network.autostart?,
47
+ libvirt_network: libvirt_network
48
48
  }
49
49
  end
50
50
 
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module ProviderLibvirt
3
- VERSION = "0.0.7"
3
+ VERSION = '0.0.8'
4
4
  end
5
5
  end
@@ -12,13 +12,13 @@ Gem::Specification.new do |gem|
12
12
  gem.files = `git ls-files`.split($\)
13
13
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
14
14
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
15
- gem.name = "vagrant-libvirt"
16
- gem.require_paths = ["lib"]
15
+ gem.name = 'vagrant-libvirt'
16
+ gem.require_paths = ['lib']
17
17
  gem.version = VagrantPlugins::ProviderLibvirt::VERSION
18
18
 
19
- gem.add_runtime_dependency "fog", "1.10.0"
20
- gem.add_runtime_dependency "ruby-libvirt", "~> 0.4.0"
19
+ gem.add_runtime_dependency 'fog', '1.15.0'
20
+ gem.add_runtime_dependency 'ruby-libvirt', '~> 0.4.0'
21
21
 
22
- gem.add_development_dependency "rake"
22
+ gem.add_development_dependency 'rake'
23
23
  end
24
24
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-libvirt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-09-23 00:00:00.000000000 Z
13
+ date: 2013-09-25 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: fog
@@ -19,7 +19,7 @@ dependencies:
19
19
  requirements:
20
20
  - - '='
21
21
  - !ruby/object:Gem::Version
22
- version: 1.10.0
22
+ version: 1.15.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,7 +27,7 @@ dependencies:
27
27
  requirements:
28
28
  - - '='
29
29
  - !ruby/object:Gem::Version
30
- version: 1.10.0
30
+ version: 1.15.0
31
31
  - !ruby/object:Gem::Dependency
32
32
  name: ruby-libvirt
33
33
  requirement: !ruby/object:Gem::Requirement