[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