vagrant-libvirt 0.0.42 → 0.2.1
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 +5 -5
- data/README.md +393 -147
- data/lib/vagrant-libvirt/action.rb +3 -2
- data/lib/vagrant-libvirt/action/create_domain.rb +87 -37
- data/lib/vagrant-libvirt/action/create_domain_volume.rb +19 -14
- data/lib/vagrant-libvirt/action/create_network_interfaces.rb +9 -5
- data/lib/vagrant-libvirt/action/create_networks.rb +7 -2
- data/lib/vagrant-libvirt/action/destroy_domain.rb +1 -1
- data/lib/vagrant-libvirt/action/destroy_networks.rb +5 -0
- data/lib/vagrant-libvirt/action/forward_ports.rb +10 -8
- data/lib/vagrant-libvirt/action/halt_domain.rb +1 -1
- data/lib/vagrant-libvirt/action/handle_box_image.rb +26 -15
- data/lib/vagrant-libvirt/action/handle_storage_pool.rb +9 -4
- data/lib/vagrant-libvirt/action/package_domain.rb +58 -12
- data/lib/vagrant-libvirt/action/prepare_nfs_settings.rb +3 -9
- data/lib/vagrant-libvirt/action/prune_nfs_exports.rb +19 -9
- data/lib/vagrant-libvirt/action/remove_libvirt_image.rb +2 -2
- data/lib/vagrant-libvirt/action/remove_stale_volume.rb +17 -11
- data/lib/vagrant-libvirt/action/set_boot_order.rb +2 -2
- data/lib/vagrant-libvirt/action/set_name_of_domain.rb +6 -9
- data/lib/vagrant-libvirt/action/start_domain.rb +2 -2
- data/lib/vagrant-libvirt/action/wait_till_up.rb +31 -16
- data/lib/vagrant-libvirt/cap/public_address.rb +16 -0
- data/lib/vagrant-libvirt/cap/synced_folder.rb +3 -3
- data/lib/vagrant-libvirt/config.rb +177 -29
- data/lib/vagrant-libvirt/driver.rb +31 -2
- data/lib/vagrant-libvirt/errors.rb +5 -1
- data/lib/vagrant-libvirt/plugin.rb +7 -2
- data/lib/vagrant-libvirt/templates/default_storage_pool.xml.erb +3 -3
- data/lib/vagrant-libvirt/templates/domain.xml.erb +48 -8
- data/lib/vagrant-libvirt/util.rb +1 -0
- data/lib/vagrant-libvirt/util/erb_template.rb +6 -7
- data/lib/vagrant-libvirt/util/network_util.rb +33 -13
- data/lib/vagrant-libvirt/util/nfs.rb +17 -0
- data/lib/vagrant-libvirt/util/storage_util.rb +27 -0
- data/lib/vagrant-libvirt/version.rb +1 -1
- data/locales/en.yml +8 -4
- data/spec/support/environment_helper.rb +1 -1
- data/spec/support/libvirt_context.rb +1 -1
- data/spec/support/sharedcontext.rb +2 -2
- data/spec/unit/action/destroy_domain_spec.rb +2 -2
- data/spec/unit/action/set_name_of_domain_spec.rb +3 -3
- data/spec/unit/config_spec.rb +173 -0
- data/spec/unit/templates/domain_all_settings.xml +20 -4
- data/spec/unit/templates/domain_custom_cpu_model.xml +48 -0
- data/spec/unit/templates/domain_defaults.xml +2 -0
- data/spec/unit/templates/domain_spec.rb +26 -2
- metadata +24 -32
- data/.coveralls.yml +0 -1
- data/.github/issue_template.md +0 -37
- data/.gitignore +0 -21
- data/.travis.yml +0 -24
- data/Gemfile +0 -26
- data/Rakefile +0 -8
- data/example_box/README.md +0 -29
- data/example_box/Vagrantfile +0 -60
- data/example_box/metadata.json +0 -5
- data/tools/create_box.sh +0 -130
- data/tools/prepare_redhat_for_box.sh +0 -119
- data/vagrant-libvirt.gemspec +0 -54
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'fog/libvirt'
|
2
|
+
require 'libvirt'
|
2
3
|
require 'log4r'
|
3
4
|
|
4
5
|
module VagrantPlugins
|
@@ -10,6 +11,7 @@ module VagrantPlugins
|
|
10
11
|
# settings as a key to allow per machine connection attributes
|
11
12
|
# to be used.
|
12
13
|
@@connection = nil
|
14
|
+
@@system_connection = nil
|
13
15
|
|
14
16
|
def initialize(machine)
|
15
17
|
@logger = Log4r::Logger.new('vagrant_libvirt::driver')
|
@@ -17,11 +19,11 @@ module VagrantPlugins
|
|
17
19
|
end
|
18
20
|
|
19
21
|
def connection
|
20
|
-
# If already connected to
|
22
|
+
# If already connected to Libvirt, just use it and don't connect
|
21
23
|
# again.
|
22
24
|
return @@connection if @@connection
|
23
25
|
|
24
|
-
# Get config options for
|
26
|
+
# Get config options for Libvirt provider.
|
25
27
|
config = @machine.provider_config
|
26
28
|
uri = config.uri
|
27
29
|
|
@@ -47,6 +49,17 @@ module VagrantPlugins
|
|
47
49
|
@@connection
|
48
50
|
end
|
49
51
|
|
52
|
+
def system_connection
|
53
|
+
# If already connected to Libvirt, just use it and don't connect
|
54
|
+
# again.
|
55
|
+
return @@system_connection if @@system_connection
|
56
|
+
|
57
|
+
config = @machine.provider_config
|
58
|
+
|
59
|
+
@@system_connection = Libvirt::open_read_only(config.system_uri)
|
60
|
+
@@system_connection
|
61
|
+
end
|
62
|
+
|
50
63
|
def get_domain(mid)
|
51
64
|
begin
|
52
65
|
domain = connection.servers.get(mid)
|
@@ -70,6 +83,9 @@ module VagrantPlugins
|
|
70
83
|
def get_ipaddress(machine)
|
71
84
|
# Find the machine
|
72
85
|
domain = get_domain(machine.id)
|
86
|
+
if @machine.provider_config.qemu_use_session
|
87
|
+
return get_ipaddress_system domain.mac
|
88
|
+
end
|
73
89
|
|
74
90
|
if domain.nil?
|
75
91
|
# The machine can't be found
|
@@ -99,6 +115,19 @@ module VagrantPlugins
|
|
99
115
|
ip_address
|
100
116
|
end
|
101
117
|
|
118
|
+
def get_ipaddress_system(mac)
|
119
|
+
ip_address = nil
|
120
|
+
|
121
|
+
system_connection.list_all_networks.each do |net|
|
122
|
+
leases = net.dhcp_leases(mac, 0)
|
123
|
+
# Assume the lease expiring last is the current IP address
|
124
|
+
ip_address = leases.sort_by { |lse| lse["expirytime"] }.last["ipaddr"] if !leases.empty?
|
125
|
+
break if ip_address
|
126
|
+
end
|
127
|
+
|
128
|
+
return ip_address
|
129
|
+
end
|
130
|
+
|
102
131
|
def state(machine)
|
103
132
|
# may be other error states with initial retreival we can't handle
|
104
133
|
begin
|
@@ -33,6 +33,10 @@ module VagrantPlugins
|
|
33
33
|
error_key(:image_upload_error)
|
34
34
|
end
|
35
35
|
|
36
|
+
class ImageDownloadError < VagrantLibvirtError
|
37
|
+
error_key(:image_download_error)
|
38
|
+
end
|
39
|
+
|
36
40
|
# Box exceptions
|
37
41
|
class NoBoxVolume < VagrantLibvirtError
|
38
42
|
error_key(:no_box_volume)
|
@@ -50,7 +54,7 @@ module VagrantPlugins
|
|
50
54
|
error_key(:wrong_box_format)
|
51
55
|
end
|
52
56
|
|
53
|
-
# Fog
|
57
|
+
# Fog Libvirt exceptions
|
54
58
|
class FogError < VagrantLibvirtError
|
55
59
|
error_key(:fog_error)
|
56
60
|
end
|
@@ -4,7 +4,7 @@ rescue LoadError
|
|
4
4
|
raise 'The Vagrant Libvirt plugin must be run within Vagrant.'
|
5
5
|
end
|
6
6
|
|
7
|
-
# compatibility fix to define constant not available
|
7
|
+
# compatibility fix to define constant not available Vagrant <1.6
|
8
8
|
::Vagrant::MachineState::NOT_CREATED_ID ||= :not_created
|
9
9
|
|
10
10
|
module VagrantPlugins
|
@@ -12,7 +12,7 @@ module VagrantPlugins
|
|
12
12
|
class Plugin < Vagrant.plugin('2')
|
13
13
|
name 'libvirt'
|
14
14
|
description <<-DESC
|
15
|
-
Vagrant plugin to manage VMs in
|
15
|
+
Vagrant plugin to manage VMs in Libvirt.
|
16
16
|
DESC
|
17
17
|
|
18
18
|
config('libvirt', :provider) do
|
@@ -39,6 +39,11 @@ module VagrantPlugins
|
|
39
39
|
Cap::NicMacAddresses
|
40
40
|
end
|
41
41
|
|
42
|
+
provider_capability(:libvirt, :public_address) do
|
43
|
+
require_relative 'cap/public_address'
|
44
|
+
Cap::PublicAddress
|
45
|
+
end
|
46
|
+
|
42
47
|
# lower priority than nfs or rsync
|
43
48
|
# https://github.com/vagrant-libvirt/vagrant-libvirt/pull/170
|
44
49
|
synced_folder('9p', 4) do
|
@@ -3,11 +3,11 @@
|
|
3
3
|
<source>
|
4
4
|
</source>
|
5
5
|
<target>
|
6
|
-
<path
|
6
|
+
<path><%= @storage_pool_path %></path>
|
7
7
|
<permissions>
|
8
8
|
<mode>0755</mode>
|
9
|
-
<owner
|
10
|
-
<group
|
9
|
+
<owner><%= @storage_pool_uid %></owner>
|
10
|
+
<group><%= @storage_pool_gid %></group>
|
11
11
|
</permissions>
|
12
12
|
</target>
|
13
13
|
</pool>
|
@@ -1,16 +1,22 @@
|
|
1
1
|
<domain type='<%= @domain_type %>' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
|
2
2
|
<name><%= @name %></name>
|
3
|
+
<title><%= @title %></title>
|
4
|
+
<description><%= @description %></description>
|
3
5
|
<uuid><%= @uuid %></uuid>
|
4
6
|
<memory><%= @memory_size %></memory>
|
5
|
-
<vcpu
|
7
|
+
<vcpu<% if @cpuset %> cpuset='<%= @cpuset %>'<% end %>><%= @cpus %></vcpu>
|
6
8
|
|
7
9
|
|
8
10
|
<cpu mode='<%= @cpu_mode %>'>
|
9
11
|
<% if @cpu_mode != 'host-passthrough' %>
|
10
12
|
<model fallback='<%= @cpu_fallback %>'><% if @cpu_mode == 'custom' %><%= @cpu_model %><% end %></model>
|
11
13
|
<% if @nested %>
|
12
|
-
|
13
|
-
|
14
|
+
<% if @cpu_features.select{|x| x[:name] == 'vmx'}.empty? %>
|
15
|
+
<feature policy='optional' name='vmx'/>
|
16
|
+
<% end %>
|
17
|
+
<% if @cpu_features.select{|x| x[:name] == 'svm'}.empty? %>
|
18
|
+
<feature policy='optional' name='svm'/>
|
19
|
+
<% end %>
|
14
20
|
<% end %>
|
15
21
|
<% @cpu_features.each do |cpu_feature| %>
|
16
22
|
<feature name='<%= cpu_feature[:name] %>' policy='<%= cpu_feature[:policy] %>'/>
|
@@ -29,6 +35,11 @@
|
|
29
35
|
<% end %>
|
30
36
|
</cpu>
|
31
37
|
|
38
|
+
<%- if @nodeset -%>
|
39
|
+
<numatune>
|
40
|
+
<memory nodeset='<%= @nodeset %>'/>
|
41
|
+
</numatune>
|
42
|
+
<%- end -%>
|
32
43
|
<% unless @memory_backing.empty? %>
|
33
44
|
<memoryBacking>
|
34
45
|
<% @memory_backing.each do |backing| %>
|
@@ -36,6 +47,11 @@
|
|
36
47
|
<% end %>
|
37
48
|
</memoryBacking>
|
38
49
|
<% end%>
|
50
|
+
<% if @shares %>
|
51
|
+
<cputune>
|
52
|
+
<shares><%= @shares %></shares>
|
53
|
+
</cputune>
|
54
|
+
<% end %>
|
39
55
|
|
40
56
|
<os>
|
41
57
|
<% if @machine_type %>
|
@@ -52,7 +68,14 @@
|
|
52
68
|
<% end %>
|
53
69
|
<% end %>
|
54
70
|
<% if @loader %>
|
55
|
-
|
71
|
+
<% if @nvram %>
|
72
|
+
<loader readonly='yes' type='pflash'><%= @loader %></loader>
|
73
|
+
<% else %>
|
74
|
+
<loader readonly='yes' type='rom'><%= @loader %></loader>
|
75
|
+
<% end %>
|
76
|
+
<% end %>
|
77
|
+
<% if @nvram %>
|
78
|
+
<nvram><%= @nvram %></nvram>
|
56
79
|
<% end %>
|
57
80
|
<% if @boot_order.count >= 1 %>
|
58
81
|
<bootmenu enable='yes'/>
|
@@ -73,6 +96,13 @@
|
|
73
96
|
<hidden state='on'/>
|
74
97
|
</kvm>
|
75
98
|
<% end %>
|
99
|
+
<% if !@features_hyperv.empty? %>
|
100
|
+
<hyperv>
|
101
|
+
<% @features_hyperv.each do |feature| %>
|
102
|
+
<<%= feature[:name] %> state='<%= feature[:state] %>' />
|
103
|
+
<% end %>
|
104
|
+
</hyperv>
|
105
|
+
<% end %>
|
76
106
|
</features>
|
77
107
|
<clock offset='utc'/>
|
78
108
|
<devices>
|
@@ -99,7 +129,10 @@
|
|
99
129
|
<% if d[:serial] %>
|
100
130
|
<serial><%= d[:serial] %></serial>
|
101
131
|
<% end %>
|
102
|
-
|
132
|
+
<% if d[:wwn] %>
|
133
|
+
<wwn><%= d[:wwn] %></wwn>
|
134
|
+
<% end %>
|
135
|
+
<%# this will get auto generated by Libvirt
|
103
136
|
<address type='pci' domain='0x0000' bus='0x00' slot='???' function='0x0'/>
|
104
137
|
-%>
|
105
138
|
</disk>
|
@@ -172,7 +205,7 @@
|
|
172
205
|
<% @pcis.each do |pci| %>
|
173
206
|
<hostdev mode='subsystem' type='pci' managed='yes'>
|
174
207
|
<source>
|
175
|
-
<address domain='
|
208
|
+
<address domain='<%= pci[:domain] %>'
|
176
209
|
bus='<%= pci[:bus] %>'
|
177
210
|
slot='<%= pci[:slot] %>'
|
178
211
|
function='<%= pci[:function] %>'/>
|
@@ -232,13 +265,20 @@
|
|
232
265
|
</backend>
|
233
266
|
</tpm>
|
234
267
|
<% end -%>
|
268
|
+
<% if not @usbctl_dev.empty? %>
|
269
|
+
<%# USB Controller -%>
|
270
|
+
<controller type='usb' model='<%= @usbctl_dev[:model] %>' <%= "ports=\"#{@usbctl_dev[:ports]}\" " if @usbctl_dev[:ports] %>/>
|
271
|
+
<% end %>
|
235
272
|
</devices>
|
236
273
|
|
237
|
-
<%
|
274
|
+
<% if not @qemu_args.empty? or not @qemu_env.empty? %>
|
238
275
|
<qemu:commandline>
|
239
|
-
<% @
|
276
|
+
<% @qemu_args.each do |arg| %>
|
240
277
|
<qemu:arg value='<%= arg[:value] %>'/>
|
241
278
|
<% end %>
|
279
|
+
<% @qemu_env.each do |env_var, env_value| %>
|
280
|
+
<qemu:env name='<%= env_var.to_s %>' value='<%= env_value %>'/>
|
281
|
+
<% end %>
|
242
282
|
</qemu:commandline>
|
243
283
|
<% end %>
|
244
284
|
</domain>
|
data/lib/vagrant-libvirt/util.rb
CHANGED
@@ -5,6 +5,7 @@ module VagrantPlugins
|
|
5
5
|
autoload :Collection, 'vagrant-libvirt/util/collection'
|
6
6
|
autoload :Timer, 'vagrant-libvirt/util/timer'
|
7
7
|
autoload :NetworkUtil, 'vagrant-libvirt/util/network_util'
|
8
|
+
autoload :StorageUtil, 'vagrant-libvirt/util/storage_util'
|
8
9
|
autoload :ErrorCodes, 'vagrant-libvirt/util/error_codes'
|
9
10
|
end
|
10
11
|
end
|
@@ -1,20 +1,19 @@
|
|
1
|
-
require 'erubis'
|
2
|
-
|
3
1
|
module VagrantPlugins
|
4
2
|
module ProviderLibvirt
|
5
3
|
module Util
|
6
4
|
module ErbTemplate
|
7
5
|
# TODO: remove and use nokogiri builder
|
8
|
-
# TODO: might be a chance to use vagrant template system according to https://github.com/mitchellh/vagrant/issues/3231
|
9
6
|
def to_xml(template_name = nil, data = binding)
|
10
7
|
erb = template_name || self.class.to_s.split('::').last.downcase
|
11
|
-
path = File.join(File.dirname(__FILE__), '..', 'templates'
|
12
|
-
|
13
|
-
template = File.read(path)
|
8
|
+
path = File.join(File.dirname(__FILE__), '..', 'templates')
|
9
|
+
template = "#{erb}.xml"
|
14
10
|
|
15
11
|
# TODO: according to erubis documentation, we should rather use evaluate and forget about
|
16
12
|
# binding since the template may then change variables values
|
17
|
-
|
13
|
+
Vagrant::Util::TemplateRenderer.render_with(:render, template, template_root: path) do |renderer|
|
14
|
+
iv = data.eval ("instance_variables.collect {|i| [i, instance_variable_get(i.to_sym)]}")
|
15
|
+
iv.each {|k, v| renderer.instance_variable_set(k, v)}
|
16
|
+
end
|
18
17
|
end
|
19
18
|
end
|
20
19
|
end
|
@@ -8,6 +8,8 @@ module VagrantPlugins
|
|
8
8
|
include Vagrant::Util::NetworkIP
|
9
9
|
|
10
10
|
def configured_networks(env, logger)
|
11
|
+
qemu_use_session = env[:machine].provider_config.qemu_use_session
|
12
|
+
management_network_device = env[:machine].provider_config.management_network_device
|
11
13
|
management_network_name = env[:machine].provider_config.management_network_name
|
12
14
|
management_network_address = env[:machine].provider_config.management_network_address
|
13
15
|
management_network_mode = env[:machine].provider_config.management_network_mode
|
@@ -16,6 +18,7 @@ module VagrantPlugins
|
|
16
18
|
management_network_autostart = env[:machine].provider_config.management_network_autostart
|
17
19
|
management_network_pci_bus = env[:machine].provider_config.management_network_pci_bus
|
18
20
|
management_network_pci_slot = env[:machine].provider_config.management_network_pci_slot
|
21
|
+
management_network_domain = env[:machine].provider_config.management_network_domain
|
19
22
|
logger.info "Using #{management_network_name} at #{management_network_address} as the management network #{management_network_mode} is the mode"
|
20
23
|
|
21
24
|
begin
|
@@ -33,23 +36,40 @@ module VagrantPlugins
|
|
33
36
|
error_message: "#{management_network_address} does not include both an address and subnet mask"
|
34
37
|
end
|
35
38
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
39
|
+
if qemu_use_session
|
40
|
+
management_network_options = {
|
41
|
+
iface_type: :public_network,
|
42
|
+
dev: management_network_device,
|
43
|
+
mode: 'bridge',
|
44
|
+
type: 'bridge',
|
45
|
+
bus: management_network_pci_bus,
|
46
|
+
slot: management_network_pci_slot
|
47
|
+
}
|
48
|
+
else
|
49
|
+
management_network_options = {
|
50
|
+
iface_type: :private_network,
|
51
|
+
network_name: management_network_name,
|
52
|
+
ip: Regexp.last_match(1),
|
53
|
+
netmask: Regexp.last_match(2),
|
54
|
+
dhcp_enabled: true,
|
55
|
+
forward_mode: management_network_mode,
|
56
|
+
guest_ipv6: management_network_guest_ipv6,
|
57
|
+
autostart: management_network_autostart,
|
58
|
+
bus: management_network_pci_bus,
|
59
|
+
slot: management_network_pci_slot
|
60
|
+
}
|
61
|
+
end
|
62
|
+
|
63
|
+
|
48
64
|
|
49
65
|
unless management_network_mac.nil?
|
50
66
|
management_network_options[:mac] = management_network_mac
|
51
67
|
end
|
52
68
|
|
69
|
+
unless management_network_domain.nil?
|
70
|
+
management_network_options[:domain_name] = management_network_domain
|
71
|
+
end
|
72
|
+
|
53
73
|
unless management_network_pci_bus.nil? and management_network_pci_slot.nil?
|
54
74
|
management_network_options[:bus] = management_network_pci_bus
|
55
75
|
management_network_options[:slot] = management_network_pci_slot
|
@@ -94,7 +114,7 @@ module VagrantPlugins
|
|
94
114
|
networks
|
95
115
|
end
|
96
116
|
|
97
|
-
# Return a list of all (active and inactive)
|
117
|
+
# Return a list of all (active and inactive) Libvirt networks as a list
|
98
118
|
# of hashes with their name, network address and status (active or not)
|
99
119
|
def libvirt_networks(libvirt_client)
|
100
120
|
libvirt_networks = []
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module ProviderLibvirt
|
3
|
+
module Util
|
4
|
+
module Nfs
|
5
|
+
include Vagrant::Action::Builtin::MixinSyncedFolders
|
6
|
+
|
7
|
+
# We're using NFS if we have any synced folder with NFS configured. If
|
8
|
+
# we are not using NFS we don't need to do the extra work to
|
9
|
+
# populate these fields in the environment.
|
10
|
+
def using_nfs?
|
11
|
+
!!synced_folders(@machine)[:nfs]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
|
2
|
+
module VagrantPlugins
|
3
|
+
module ProviderLibvirt
|
4
|
+
module Util
|
5
|
+
module StorageUtil
|
6
|
+
def storage_uid(env)
|
7
|
+
env[:machine].provider_config.qemu_use_session ? Process.uid : 0
|
8
|
+
end
|
9
|
+
|
10
|
+
def storage_gid(env)
|
11
|
+
env[:machine].provider_config.qemu_use_session ? Process.gid : 0
|
12
|
+
end
|
13
|
+
|
14
|
+
def storage_pool_path(env)
|
15
|
+
if env[:machine].provider_config.storage_pool_path
|
16
|
+
env[:machine].provider_config.storage_pool_path
|
17
|
+
elsif env[:machine].provider_config.qemu_use_session
|
18
|
+
File.expand_path('~/.local/share/libvirt/images')
|
19
|
+
else
|
20
|
+
'/var/lib/libvirt/images'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
data/locales/en.yml
CHANGED
@@ -16,7 +16,7 @@ en:
|
|
16
16
|
Created volume larger than box defaults, will require manual resizing of
|
17
17
|
filesystems to utilize.
|
18
18
|
uploading_volume: |-
|
19
|
-
Uploading base box image as volume into
|
19
|
+
Uploading base box image as volume into Libvirt storage...
|
20
20
|
creating_domain_volume: |-
|
21
21
|
Creating image (snapshot of base box volume).
|
22
22
|
removing_domain_volume: |-
|
@@ -35,6 +35,8 @@ en:
|
|
35
35
|
Resuming domain...
|
36
36
|
suspending_domain: |-
|
37
37
|
Suspending domain...
|
38
|
+
package_domain: |-
|
39
|
+
Packaging domain...
|
38
40
|
waiting_for_ready: |-
|
39
41
|
Waiting for domain to become "ready"...
|
40
42
|
waiting_for_ip: |-
|
@@ -58,7 +60,7 @@ en:
|
|
58
60
|
Forwarding UDP ports is not supported. Ignoring.
|
59
61
|
|
60
62
|
errors:
|
61
|
-
package_not_supported: No support for package with
|
63
|
+
package_not_supported: No support for package with Libvirt. Create box manually.
|
62
64
|
fog_error: |-
|
63
65
|
There was an error talking to Libvirt. The error message is shown
|
64
66
|
below:
|
@@ -95,7 +97,7 @@ en:
|
|
95
97
|
wrong_box_format: |-
|
96
98
|
Wrong image format specified for box.
|
97
99
|
fog_libvirt_connection_error: |-
|
98
|
-
Error while connecting to
|
100
|
+
Error while connecting to Libvirt: %{error_message}
|
99
101
|
fog_create_volume_error: |-
|
100
102
|
Error while creating a storage pool volume: %{error_message}
|
101
103
|
fog_create_domain_volume_error: |-
|
@@ -106,9 +108,11 @@ en:
|
|
106
108
|
Name `%{domain_name}` of domain about to create is already taken. Please try to run
|
107
109
|
`vagrant up` command again.
|
108
110
|
creating_storage_pool_error: |-
|
109
|
-
There was error while creating
|
111
|
+
There was error while creating Libvirt storage pool: %{error_message}
|
110
112
|
image_upload_error: |-
|
111
113
|
Error while uploading image to storage pool: %{error_message}
|
114
|
+
image_download_error: |-
|
115
|
+
Error while downloading volume '%{volume_name}' from storage pool '%{pool_name}': %{error_message}
|
112
116
|
no_domain_error: |-
|
113
117
|
No domain found. %{error_message}
|
114
118
|
attach_device_error: |-
|