vagrant-libvirt 0.0.24 → 0.0.25

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 67a89ffdbbe10d25e43c0029df99b9755cc32480
4
- data.tar.gz: 7fb86a0a3312d4fe0c1851486188cf90644015c6
3
+ metadata.gz: 6a9f2dc33e98d6a6508eef0d5f08104cf021f9f7
4
+ data.tar.gz: b42c0511ec12193843ebae0bd285598327847810
5
5
  SHA512:
6
- metadata.gz: 74f6ddbd5fb0f41421e43ada6671af768ec770ddf06125c961b5df6a3fd06c4585c53bd0f459612310f3ece6b2c587d2d860daa7d5a467043cbc12a3cc84a649
7
- data.tar.gz: a0ba44421fabc6ba09ed061352b1cf9cadbc488094991d8326585d169b6eb574c932d11a5721b38fe978dad0c06cd5191cec38fffae7a6b3f7710b8e0be2d527
6
+ metadata.gz: f2a7909225e3a571d75c96cfa4221baca176e17c48afc725c6d499f3eb6e63a33983a222492d64c043d7565b0623f3ca87c00d33ca27e0e51b55db0a14c33922
7
+ data.tar.gz: a997be0c048ea6708a40462074a5468c1f466e2a2cc1fc64b5ca76866b97ecf7909ec10bc29c04eae6fd635ec483a305b7e70b81caae1f5f568893295f0a88a5
data/README.md CHANGED
@@ -31,7 +31,7 @@ welcome and can help a lot :-)
31
31
 
32
32
  First, you should have libvirt installed if you plan to run VMs on your local system. For instructions, refer to your linux distribution's documentation,
33
33
 
34
- Next, you must have [Vagrant installed](http://docs.vagrantup.com/v2/installation/index.html). Vagrant-libvirt supports Vagrant 1.5 and 1.6.
34
+ Next, you must have [Vagrant installed](http://docs.vagrantup.com/v2/installation/index.html). Vagrant-libvirt supports Vagrant 1.5, 1.6 and 1.7.
35
35
 
36
36
  Now you're ready to install vagrant-libvirt using standard [Vagrant plugin](http://docs.vagrantup.com/v2/plugins/usage.html) installation methods.
37
37
 
@@ -302,9 +302,7 @@ vagrant-libvirt supports vagrant's [standard ssh settings](https://docs.vagrantu
302
302
 
303
303
  ## Forwarded Ports
304
304
 
305
- vagrant-libvirt supports Forwarded Ports via ssh port forwarding. For each
306
- `forwarded_port` directive you specify in your Vagrantfile, vagrant-libvirt
307
- will maintain an active ssh process for the lifetime of the VM.
305
+ vagrant-libvirt supports Forwarded Ports via ssh port forwarding. Please note that due to a well known limitation only the TCP protocol is supported. For each `forwarded_port` directive you specify in your Vagrantfile, vagrant-libvirt will maintain an active ssh process for the lifetime of the VM.
308
306
 
309
307
  vagrant-libvirt supports an additional `forwarded_port` option
310
308
  `gateway_ports` which defaults to `false`, but can be set to `true` if
data/Rakefile CHANGED
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env rake
2
-
3
1
  #require 'rubygems'
4
2
  #require 'bundler/setup'
5
3
  require 'bundler/gem_tasks'
@@ -21,11 +21,10 @@ Vagrant.configure("2") do |config|
21
21
 
22
22
  # Interfaces for VM
23
23
  #
24
- # Networking features in the form of `config.vm.network` support private
25
- # networks concept. No public network or port forwarding are supported in
26
- # current version of provider. See README for more info.
24
+ # Networking features in the form of `config.vm.network`
27
25
  #
28
26
  #test_vm.vm.network :private_network, :ip => '10.20.30.40'
27
+ #test_vm.vm.network :public_network, :ip => '10.20.30.41'
29
28
  #end
30
29
 
31
30
  # Options for libvirt vagrant provider.
@@ -30,7 +30,7 @@ module VagrantPlugins
30
30
 
31
31
  # Setup command for retrieving IP address for newly created machine
32
32
  # with some MAC address. Get it from dnsmasq leases table
33
- ip_command = %q[ find /var/lib/libvirt/dnsmasq/ /var/lib/misc/ -name '*leases' -exec grep $mac {} \; | cut -d' ' -f3 ]
33
+ ip_command = %q[ awk "/$mac/ {print \$1}" /proc/net/arp ]
34
34
  conn_attr[:libvirt_ip_command] = ip_command
35
35
 
36
36
  @logger.info("Connecting to Libvirt (#{uri}) ...")
@@ -26,11 +26,11 @@ module VagrantPlugins
26
26
 
27
27
  # Gather some info about domain
28
28
  @name = env[:domain_name]
29
- @cpus = config.cpus
29
+ @cpus = config.cpus.to_i
30
30
  @cpu_mode = config.cpu_mode
31
31
  @disk_bus = config.disk_bus
32
32
  @nested = config.nested
33
- @memory_size = config.memory*1024
33
+ @memory_size = config.memory.to_i*1024
34
34
  @domain_volume_cache = config.volume_cache
35
35
  @kernel = config.kernel
36
36
  @cmd_line = config.cmd_line
@@ -114,7 +114,8 @@ module VagrantPlugins
114
114
  @logger.debug "Configuring interface slot_number #{slot_number} options #{options}"
115
115
 
116
116
  network = {
117
- :interface => slot_number,
117
+ :interface => slot_number,
118
+ :use_dhcp_assigned_default_route => options[:use_dhcp_assigned_default_route],
118
119
  #:mac => ...,
119
120
  }
120
121
 
@@ -70,8 +70,8 @@ module VagrantPlugins
70
70
 
71
71
  autostart_network if !@interface_network[:autostart]
72
72
  activate_network if !@interface_network[:active]
73
+ end
73
74
  end
74
- end
75
75
 
76
76
  @app.call(env)
77
77
  end
@@ -4,6 +4,9 @@ module VagrantPlugins
4
4
  module ProviderLibvirt
5
5
  module Action
6
6
  class HandleBoxImage
7
+
8
+ @@lock = Mutex.new
9
+
7
10
  def initialize(app, env)
8
11
  @logger = Log4r::Logger.new('vagrant_libvirt::action::handle_box_image')
9
12
  @app = app
@@ -34,49 +37,51 @@ module VagrantPlugins
34
37
  env[:box_volume_name] = env[:machine].box.name.to_s.dup.gsub("/", "-VAGRANTSLASH-")
35
38
  env[:box_volume_name] << '_vagrant_box_image.img'
36
39
 
37
- # Don't continue if image already exists in storage pool.
38
- return @app.call(env) if ProviderLibvirt::Util::Collection.find_matching(
39
- env[:libvirt_compute].volumes.all, env[:box_volume_name])
40
-
41
- # Box is not available as a storage pool volume. Create and upload
42
- # it as a copy of local box image.
43
- env[:ui].info(I18n.t('vagrant_libvirt.uploading_volume'))
40
+ @@lock.synchronize do
41
+ # Don't continue if image already exists in storage pool.
42
+ return @app.call(env) if ProviderLibvirt::Util::Collection.find_matching(
43
+ env[:libvirt_compute].volumes.all, env[:box_volume_name])
44
44
 
45
- # Create new volume in storage pool
46
- box_image_size = File.size(box_image_file) # B
47
- message = "Creating volume #{env[:box_volume_name]}"
48
- message << " in storage pool #{config.storage_pool_name}."
49
- @logger.info(message)
50
- begin
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)
57
- rescue Fog::Errors::Error => e
58
- raise Errors::FogCreateVolumeError,
59
- :error_message => e.message
60
- end
45
+ # Box is not available as a storage pool volume. Create and upload
46
+ # it as a copy of local box image.
47
+ env[:ui].info(I18n.t('vagrant_libvirt.uploading_volume'))
61
48
 
62
- # Upload box image to storage pool
63
- ret = upload_image(box_image_file, config.storage_pool_name,
64
- env[:box_volume_name], env) do |progress|
65
- env[:ui].clear_line
66
- env[:ui].report_progress(progress, box_image_size, false)
67
- end
49
+ # Create new volume in storage pool
50
+ box_image_size = File.size(box_image_file) # B
51
+ message = "Creating volume #{env[:box_volume_name]}"
52
+ message << " in storage pool #{config.storage_pool_name}."
53
+ @logger.info(message)
54
+ begin
55
+ fog_volume = env[:libvirt_compute].volumes.create(
56
+ name: env[:box_volume_name],
57
+ allocation: "#{box_image_size/1024/1024}M",
58
+ capacity: "#{box_virtual_size}G",
59
+ format_type: box_format,
60
+ pool_name: config.storage_pool_name)
61
+ rescue Fog::Errors::Error => e
62
+ raise Errors::FogCreateVolumeError,
63
+ :error_message => e.message
64
+ end
68
65
 
69
- # Clear the line one last time since the progress meter doesn't
70
- # disappear immediately.
71
- env[:ui].clear_line
66
+ # Upload box image to storage pool
67
+ ret = upload_image(box_image_file, config.storage_pool_name,
68
+ env[:box_volume_name], env) do |progress|
69
+ env[:ui].clear_line
70
+ env[:ui].report_progress(progress, box_image_size, false)
71
+ end
72
72
 
73
- # If upload failed or was interrupted, remove created volume from
74
- # storage pool.
75
- if env[:interrupted] || !ret
76
- begin
77
- fog_volume.destroy
78
- rescue
79
- nil
73
+ # Clear the line one last time since the progress meter doesn't
74
+ # disappear immediately.
75
+ env[:ui].clear_line
76
+
77
+ # If upload failed or was interrupted, remove created volume from
78
+ # storage pool.
79
+ if env[:interrupted] || !ret
80
+ begin
81
+ fog_volume.destroy
82
+ rescue
83
+ nil
84
+ end
80
85
  end
81
86
  end
82
87
 
@@ -6,38 +6,44 @@ module VagrantPlugins
6
6
  class HandleStoragePool
7
7
  include VagrantPlugins::ProviderLibvirt::Util::ErbTemplate
8
8
 
9
+ @@lock = Mutex.new
10
+
9
11
  def initialize(app, env)
10
12
  @logger = Log4r::Logger.new("vagrant_libvirt::action::handle_storage_pool")
11
13
  @app = app
12
14
  end
13
15
 
14
16
  def call(env)
15
- # Get config options.
16
- config = env[:machine].provider_config
17
-
18
- # Check for storage pool, where box image should be created
19
- fog_pool = ProviderLibvirt::Util::Collection.find_matching(
20
- env[:libvirt_compute].pools.all, config.storage_pool_name)
21
- return @app.call(env) if fog_pool
22
-
23
- @logger.info("No storage pool '#{config.storage_pool_name}' is available.")
24
-
25
- # If user specified other pool than default, don't create default
26
- # storage pool, just write error message.
27
- raise Errors::NoStoragePool if config.storage_pool_name != 'default'
28
-
29
- @logger.info("Creating storage pool 'default'")
30
-
31
- # Fog libvirt currently doesn't support creating pools. Use
32
- # ruby-libvirt client directly.
33
- begin
34
- libvirt_pool = env[:libvirt_compute].client.create_storage_pool_xml(
35
- to_xml('default_storage_pool'))
36
- rescue => e
37
- raise Errors::CreatingStoragePoolError,
38
- :error_message => e.message
17
+ @@lock.synchronize do
18
+ # Get config options.
19
+ config = env[:machine].provider_config
20
+
21
+ # Check for storage pool, where box image should be created
22
+ fog_pool = ProviderLibvirt::Util::Collection.find_matching(
23
+ env[:libvirt_compute].pools.all, config.storage_pool_name)
24
+ return @app.call(env) if fog_pool
25
+
26
+ @logger.info("No storage pool '#{config.storage_pool_name}' is available.")
27
+
28
+ # If user specified other pool than default, don't create default
29
+ # storage pool, just write error message.
30
+ raise Errors::NoStoragePool if config.storage_pool_name != 'default'
31
+
32
+ @logger.info("Creating storage pool 'default'")
33
+
34
+ # Fog libvirt currently doesn't support creating pools. Use
35
+ # ruby-libvirt client directly.
36
+ begin
37
+ libvirt_pool = env[:libvirt_compute].client.define_storage_pool_xml(
38
+ to_xml('default_storage_pool'))
39
+ libvirt_pool.build
40
+ libvirt_pool.create
41
+ rescue => e
42
+ raise Errors::CreatingStoragePoolError,
43
+ :error_message => e.message
44
+ end
45
+ raise Errors::NoStoragePool if !libvirt_pool
39
46
  end
40
- raise Errors::NoStoragePool if !libvirt_pool
41
47
 
42
48
  @app.call(env)
43
49
  end
@@ -14,7 +14,7 @@
14
14
  <% end %>
15
15
 
16
16
  <os>
17
- <type arch='x86_64'>hvm</type>
17
+ <type>hvm</type>
18
18
  <boot dev='hd'/>
19
19
  <kernel><%= @kernel %></kernel>
20
20
  <initrd><%= @initrd %></initrd>
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module ProviderLibvirt
3
- VERSION = '0.0.24'
3
+ VERSION = '0.0.25'
4
4
  end
5
5
  end
@@ -5,8 +5,8 @@ Gem::Specification.new do |gem|
5
5
  gem.authors = ['Lukas Stanek','Dima Vasilets','Brian Pitts']
6
6
  gem.email = ['ls@elostech.cz','pronix.service@gmail.com','brian@polibyte.com']
7
7
  gem.license = 'MIT'
8
- gem.description = %q{Vagrant provider for libvirt.}
9
- gem.summary = %q{Vagrant provider for libvirt.}
8
+ gem.description = %q{libvirt provider for Vagrant.}
9
+ gem.summary = %q{libvirt provider for Vagrant.}
10
10
  gem.homepage = 'https://github.com/pradels/vagrant-libvirt'
11
11
 
12
12
  gem.files = `git ls-files`.split($\)
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.24
4
+ version: 0.0.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukas Stanek
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-12-04 00:00:00.000000000 Z
13
+ date: 2015-03-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec-core
@@ -110,7 +110,7 @@ dependencies:
110
110
  - - ">="
111
111
  - !ruby/object:Gem::Version
112
112
  version: '0'
113
- description: Vagrant provider for libvirt.
113
+ description: libvirt provider for Vagrant.
114
114
  email:
115
115
  - ls@elostech.cz
116
116
  - pronix.service@gmail.com
@@ -205,12 +205,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
205
205
  version: '0'
206
206
  requirements: []
207
207
  rubyforge_project:
208
- rubygems_version: 2.2.2
208
+ rubygems_version: 2.2.0
209
209
  signing_key:
210
210
  specification_version: 4
211
- summary: Vagrant provider for libvirt.
211
+ summary: libvirt provider for Vagrant.
212
212
  test_files:
213
213
  - spec/spec_helper.rb
214
214
  - spec/support/environment_helper.rb
215
215
  - spec/vagrant-libvirt/action/set_name_of_domain_spec.rb
216
- has_rdoc: