[DRE-commits] [vagrant-libvirt] 22/163: Provide an option to randomize domain name
Antonio Terceiro
terceiro at moszumanska.debian.org
Sun Apr 24 13:56:59 UTC 2016
This is an automated email from the git hooks/post-receive script.
terceiro pushed a commit to annotated tag 0.0.26
in repository vagrant-libvirt.
commit 3a2335f37c6fd60a64aa1573a54c2c82d9efdd7b
Author: Nico Tonozzi <nico.tonozzi at sendgrid.com>
Date: Thu Jul 31 09:31:30 2014 -0600
Provide an option to randomize domain name
This commit lets users enable hostname randomization from their
Vagrantfile. Without this option enabled, domain creation will fail when
multiple VMs are spun up from the same Vagrantfile, due to a domain name
conflict.
---
lib/vagrant-libvirt/action/set_name_of_domain.rb | 7 ++++---
lib/vagrant-libvirt/config.rb | 5 +++++
spec/support/environment_helper.rb | 2 ++
spec/vagrant-libvirt/action/set_name_of_domain_spec.rb | 8 +++++++-
4 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/lib/vagrant-libvirt/action/set_name_of_domain.rb b/lib/vagrant-libvirt/action/set_name_of_domain.rb
index 026a739..e7dba96 100644
--- a/lib/vagrant-libvirt/action/set_name_of_domain.rb
+++ b/lib/vagrant-libvirt/action/set_name_of_domain.rb
@@ -41,7 +41,6 @@ module VagrantPlugins
# development-centos-6-chef-11_1404488971_3b7a569e2fd7c554b852
# @return [String] libvirt domain name
def build_domain_name(env)
- postfix = "#{Time.now.utc.to_i}_#{SecureRandom.hex(10)}"
config = env[:machine].provider_config
domain_name =
if config.default_prefix.nil?
@@ -49,8 +48,11 @@ module VagrantPlugins
else
config.default_prefix.to_s
end
+ domain_name << '_'
+ domain_name << env[:machine].name.to_s
domain_name.gsub!(/[^-a-z0-9_]/i, '')
- domain_name << "_#{postfix}"
+ domain_name << "_#{Time.now.utc.to_i}_#{SecureRandom.hex(10)}" if config.random_hostname
+ domain_name
end
end
@@ -58,4 +60,3 @@ module VagrantPlugins
end
end
end
-
diff --git a/lib/vagrant-libvirt/config.rb b/lib/vagrant-libvirt/config.rb
index 3a8d48d..0c1f046 100644
--- a/lib/vagrant-libvirt/config.rb
+++ b/lib/vagrant-libvirt/config.rb
@@ -40,6 +40,9 @@ module VagrantPlugins
# be stored.
attr_accessor :storage_pool_name
+ # Turn on to prevent hostname conflicts
+ attr_accessor :random_hostname
+
# Libvirt default network
attr_accessor :management_network_name
attr_accessor :management_network_address
@@ -70,6 +73,7 @@ module VagrantPlugins
@password = UNSET_VALUE
@id_ssh_key_file = UNSET_VALUE
@storage_pool_name = UNSET_VALUE
+ @random_hostname = UNSET_VALUE
@management_network_name = UNSET_VALUE
@management_network_address = UNSET_VALUE
@@ -182,6 +186,7 @@ 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
+ @random_hostname = false if @random_hostname == 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
diff --git a/spec/support/environment_helper.rb b/spec/support/environment_helper.rb
index 5cbf582..7a4cf70 100644
--- a/spec/support/environment_helper.rb
+++ b/spec/support/environment_helper.rb
@@ -5,6 +5,8 @@ class EnvironmentHelper
attr_writer :default_prefix, :domain_name
+ attr_accessor :random_hostname, :name
+
def [](value)
self.send(value.to_sym)
end
diff --git a/spec/vagrant-libvirt/action/set_name_of_domain_spec.rb b/spec/vagrant-libvirt/action/set_name_of_domain_spec.rb
index a01ef03..4847c75 100644
--- a/spec/vagrant-libvirt/action/set_name_of_domain_spec.rb
+++ b/spec/vagrant-libvirt/action/set_name_of_domain_spec.rb
@@ -5,10 +5,16 @@ describe VagrantPlugins::ProviderLibvirt::Action::SetNameOfDomain do
@env = EnvironmentHelper.new
end
- it "builds uniqie domain name" do
+ it "builds unique domain name" do
+ @env.random_hostname = true
dmn = VagrantPlugins::ProviderLibvirt::Action::SetNameOfDomain.new(Object.new, @env)
first = dmn.build_domain_name(@env)
second = dmn.build_domain_name(@env)
first.should_not eq(second)
end
+
+ it "builds simple domain name" do
+ dmn = VagrantPlugins::ProviderLibvirt::Action::SetNameOfDomain.new(Object.new, @env)
+ dmn.build_domain_name(@env).should eq("foo_")
+ end
end
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/vagrant-libvirt.git
More information about the Pkg-ruby-extras-commits
mailing list