Merge pull request #175 from hunner/revert_sles
authorHunter Haugen <hunter@puppetlabs.com>
Thu, 19 Jun 2014 21:55:15 +0000 (14:55 -0700)
committerHunter Haugen <hunter@puppetlabs.com>
Thu, 19 Jun 2014 21:55:15 +0000 (14:55 -0700)
Revert "Remove compatability guarantees for SLES"

spec/acceptance/beaker_helper.rb
spec/spec_helper_acceptance.rb

index 6b5fd46..05aa4e7 100644 (file)
@@ -10,16 +10,40 @@ test_name "Installing Puppet and vcsrepo module" do
       end
     end
   end
+
+  step 'Ensure we can install our module' do
+    # We ask the host to interpolate it's distmoduledir because we don't
+    # actually know it on Windows until we've let it redirect us (depending
+    # on whether we're running as a 32/64 bit process on 32/64 bit Windows
+    moduledir = on(host, "echo #{host['distmoduledir']}").stdout.chomp
+    on host, "mkdir -p #{moduledir}"
+  end
+
   step 'install module' do
-    proj_root = File.expand_path(File.join(File.dirname(__FILE__),'..','..'))
-    # Waiting on release of puppet_module_install in beaker
-    #puppet_module_install(:source => proj_root, :module_name => 'vcsrepo')
-    scp_to(hosts, proj_root, File.join(hosts.first['distmoduledir'], 'vcsrepo'))
-    gitconfig = <<-EOS
+    hosts.each do |host|
+      proj_root = File.expand_path(File.join(File.dirname(__FILE__),'..','..'))
+
+      # This require beaker 1.12.2 I believe
+      puppet_module_install(:source => proj_root, :module_name => 'vcsrepo')
+
+      case fact_on(host, 'osfamily')
+      when 'RedHat'
+        install_package(host, 'git')
+      when 'Debian'
+        install_package(host, 'git-core')
+      else
+        if !check_for_package(host, 'git')
+          puts "Git package is required for this module"
+          exit
+        end
+      end
+
+      gitconfig = <<-EOS
 [user]
        email = root@localhost
        name = root
 EOS
-    create_remote_file(hosts.first, "/root/.gitconfig", gitconfig)
+      create_remote_file(host, "/root/.gitconfig", gitconfig)
+    end
   end
 end
index c371f1f..e566a12 100644 (file)
@@ -9,6 +9,12 @@ unless ENV['RS_PROVISION'] == 'no'
       install_puppet
       on hosts, "mkdir -p #{hosts.first['distmoduledir']}"
     end
+
+    # We ask the host to interpolate it's distmoduledir because we don't
+    # actually know it on Windows until we've let it redirect us (depending
+    # on whether we're running as a 32/64 bit process on 32/64 bit Windows
+    moduledir = on(host, "echo #{host['distmoduledir']}").stdout.chomp
+    on host, "mkdir -p #{moduledir}"
   end
 end
 
@@ -21,10 +27,12 @@ RSpec.configure do |c|
 
   # Configure all nodes in nodeset
   c.before :suite do
-    # Install module and dependencies
+    # Install module and dependencies on all hosts
     puppet_module_install(:source => proj_root, :module_name => 'vcsrepo')
+
+    # ensure test dependencies are available on all hosts
     hosts.each do |host|
-      case fact('osfamily')
+      case fact_on(host, 'osfamily')
       when 'RedHat'
         install_package(host, 'git')
       when 'Debian'
@@ -35,8 +43,8 @@ RSpec.configure do |c|
           exit
         end
       end
-      shell('git config --global user.email "root@localhost"')
-      shell('git config --global user.name "root"')
+      on host, 'git config --global user.email "root@localhost"'
+      on host, 'git config --global user.name "root"'
     end
   end
 end