mirror of
https://github.com/vagrant-libvirt/vagrant-libvirt.git
synced 2025-02-25 18:55:27 -06:00
Rename default network to management network. Closes #126.
The use of the term default makes discussing this network confusing. This network must exist and be configured a certain way in order for vagrant to manage a VMs configuration, so lets call it the management network instead.
This commit is contained in:
@@ -99,8 +99,8 @@ This provider exposes quite a few provider-specific configuration options:
|
||||
* `password` - Password to access Libvirt.
|
||||
* `id_ssh_key_file` - The id ssh key file name to access Libvirt (eg: id_dsa or id_rsa or ... in the user .ssh directory)
|
||||
* `storage_pool_name` - Libvirt storage pool name, where box image and instance snapshots will be stored.
|
||||
* `default_network_name` - Libvirt default network name. If not specified the default network name is 'vagrant-libvirt'.
|
||||
* `default_network_address` - Libvirt default network address. Must include the address and subnet mask. If not specified the default is '192.168.121.0/24'.
|
||||
* `management_network_name` - Name of libvirt network to which all VMs will be connected. If not specified the default is 'vagrant-libvirt'.
|
||||
* `management_network_address` - Address of network to which all VMs will be connected. Must include the address and subnet mask. If not specified the default is '192.168.121.0/24'.
|
||||
|
||||
### Domain Specific Options
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ module VagrantPlugins
|
||||
|
||||
def initialize(app, env)
|
||||
@logger = Log4r::Logger.new('vagrant_libvirt::action::create_network_interfaces')
|
||||
@default_network_name = env[:machine].provider_config.default_network_name
|
||||
@management_network_name = env[:machine].provider_config.management_network_name
|
||||
@app = app
|
||||
end
|
||||
|
||||
@@ -161,13 +161,13 @@ module VagrantPlugins
|
||||
end
|
||||
end
|
||||
|
||||
# the default network always gets attached to slot 0
|
||||
# the management network always gets attached to slot 0
|
||||
# because the first network is of type forwarded_port.
|
||||
# this is confusing.
|
||||
# TODO only iterate over networks of type private_network
|
||||
# and prepend the default network to that list
|
||||
@logger.debug "Did not find network so using default of #{@default_network_name}"
|
||||
return @default_network_name
|
||||
# and prepend the management network to that list
|
||||
@logger.debug "Did not find network so using default of #{@management_network_name}"
|
||||
return @management_network_name
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -28,35 +28,35 @@ module VagrantPlugins
|
||||
|
||||
def call(env)
|
||||
|
||||
default_network_name = env[:machine].provider_config.default_network_name
|
||||
default_network_address = env[:machine].provider_config.default_network_address
|
||||
@logger.info "Using #{default_network_name} at #{default_network_address} as the default network"
|
||||
management_network_name = env[:machine].provider_config.management_network_name
|
||||
management_network_address = env[:machine].provider_config.management_network_address
|
||||
@logger.info "Using #{management_network_name} at #{management_network_address} as the management network"
|
||||
|
||||
begin
|
||||
default_network_ip = IPAddr.new(default_network_address)
|
||||
management_network_ip = IPAddr.new(management_network_address)
|
||||
rescue ArgumentError
|
||||
raise Errors::DefaultNetworkError,
|
||||
error_message: "#{default_network_address} is not a valid IP address"
|
||||
raise Errors::ManagementNetworkError,
|
||||
error_message: "#{management_network_address} is not a valid IP address"
|
||||
end
|
||||
|
||||
# capture address into $1 and mask into $2
|
||||
default_network_ip.inspect =~ /IPv4:(.*)\/(.*)>/
|
||||
management_network_ip.inspect =~ /IPv4:(.*)\/(.*)>/
|
||||
|
||||
if $2 == '255.255.255.255'
|
||||
raise Errors::DefaultNetworkError,
|
||||
error_message: "#{default_network_address} does not include both an address and subnet mask"
|
||||
raise Errors::ManagementNetworkError,
|
||||
error_message: "#{management_network_address} does not include both an address and subnet mask"
|
||||
end
|
||||
|
||||
default_network_options = {
|
||||
network_name: default_network_name,
|
||||
management_network_options = {
|
||||
network_name: management_network_name,
|
||||
ip: $1,
|
||||
netmask: $2,
|
||||
dhcp_enabled: true,
|
||||
forward_mode: 'nat',
|
||||
}
|
||||
|
||||
# add default network to list of networks to check
|
||||
networks = [ default_network_options ]
|
||||
# add management network to list of networks to check
|
||||
networks = [ management_network_options ]
|
||||
|
||||
env[:machine].config.vm.networks.each do |type, original_options|
|
||||
# There are two other types public network and port forwarding,
|
||||
@@ -146,7 +146,7 @@ module VagrantPlugins
|
||||
|
||||
# Throw an error if dhcp setting for an existing network does not
|
||||
# match what was configured in the vagrantfile
|
||||
# since we always enable dhcp for the default network
|
||||
# since we always enable dhcp for the management network
|
||||
# this ensures we wont start a vm vagrant cant reach
|
||||
def verify_dhcp
|
||||
unless @options[:dhcp_enabled] == @interface_network[:dhcp_enabled]
|
||||
|
||||
@@ -26,8 +26,8 @@ module VagrantPlugins
|
||||
attr_accessor :storage_pool_name
|
||||
|
||||
# Libvirt default network
|
||||
attr_accessor :default_network_name
|
||||
attr_accessor :default_network_address
|
||||
attr_accessor :management_network_name
|
||||
attr_accessor :management_network_address
|
||||
|
||||
# Domain specific settings used while creating new domain.
|
||||
attr_accessor :memory
|
||||
@@ -45,8 +45,8 @@ module VagrantPlugins
|
||||
@password = UNSET_VALUE
|
||||
@id_ssh_key_file = UNSET_VALUE
|
||||
@storage_pool_name = UNSET_VALUE
|
||||
@default_network_name = UNSET_VALUE
|
||||
@default_network_address = UNSET_VALUE
|
||||
@management_network_name = UNSET_VALUE
|
||||
@management_network_address = UNSET_VALUE
|
||||
|
||||
# Domain specific settings.
|
||||
@memory = UNSET_VALUE
|
||||
@@ -65,8 +65,8 @@ module VagrantPlugins
|
||||
@password = nil if @password == UNSET_VALUE
|
||||
@id_ssh_key_file = 'id_rsa' if @id_ssh_key_file == UNSET_VALUE
|
||||
@storage_pool_name = 'default' if @storage_pool_name == UNSET_VALUE
|
||||
@default_network_name = 'vagrant-libvirt' if @default_network_name == UNSET_VALUE
|
||||
@default_network_address = '192.168.121.0/24' if @default_network_address == UNSET_VALUE
|
||||
@management_network_name = 'vagrant-libvirt' if @management_network_name == UNSET_VALUE
|
||||
@management_network_address = '192.168.121.0/24' if @management_network_address == UNSET_VALUE
|
||||
|
||||
# Domain specific settings.
|
||||
@memory = 512 if @memory == UNSET_VALUE
|
||||
|
||||
@@ -69,8 +69,8 @@ module VagrantPlugins
|
||||
end
|
||||
|
||||
# Network exceptions
|
||||
class DefaultNetworkError < VagrantLibvirtError
|
||||
error_key(:default_network_error)
|
||||
class ManagementNetworkError < VagrantLibvirtError
|
||||
error_key(:management_network_error)
|
||||
end
|
||||
|
||||
class NetworkNameAndAddressMismatch < VagrantLibvirtError
|
||||
|
||||
@@ -101,8 +101,8 @@ en:
|
||||
Error while attaching new device to domain. %{error_message}
|
||||
no_ip_address_error: |-
|
||||
No IP address found.
|
||||
default_network_error: |-
|
||||
Error in specification of default network: %{error_message}.
|
||||
management_network_error: |-
|
||||
Error in specification of management network: %{error_message}.
|
||||
network_name_and_address_mismatch: |-
|
||||
Address %{ip_address} does not match with network name %{network_name}.
|
||||
Please fix your configuration and run vagrant again.
|
||||
|
||||
Reference in New Issue
Block a user