diff --git a/lib/puppet/provider/sqlserver_instance/mssql.rb b/lib/puppet/provider/sqlserver_instance/mssql.rb index bb290de0..b1cbc0db 100644 --- a/lib/puppet/provider/sqlserver_instance/mssql.rb +++ b/lib/puppet/provider/sqlserver_instance/mssql.rb @@ -171,9 +171,9 @@ def format_cmd_args_array(switch, arr, cmd_args, use_discrete = false) if use_discrete arr.map.with_index { |var,i| if i == 0 - cmd_args << "#{switch}=\"#{var}\"" + cmd_args << "#{switch}=#{var}" else - cmd_args << "\"#{var}\"" + cmd_args << "#{var}" end } else diff --git a/spec/acceptance/sqlserver_instance_spec.rb b/spec/acceptance/sqlserver_instance_spec.rb index d459009a..e910ef58 100644 --- a/spec/acceptance/sqlserver_instance_spec.rb +++ b/spec/acceptance/sqlserver_instance_spec.rb @@ -60,7 +60,8 @@ def sql_query_is_user_sysadmin(username) context "Create an instance", {:testrail => ['88978', '89028', '89031', '89043', '89061']} do before(:context) do - @ExtraAdminUser = 'ExtraSQLAdmin' + # Use a username with a space to test argument parsing works correctly + @ExtraAdminUser = 'Extra SQLAdmin' pp = <<-MANIFEST user { '#{@ExtraAdminUser}': ensure => present, @@ -83,7 +84,8 @@ def sql_query_is_user_sysadmin(username) features = ['SQLEngine', 'Replication', 'FullText', 'DQ'] it "create #{inst_name} instance", :tier_high => true do - ensure_sqlserver_instance(features, inst_name,'present',"['Administrator','ExtraSQLAdmin']") + host_computer_name = on(host, 'CMD /C ECHO %COMPUTERNAME%').stdout.chomp + ensure_sqlserver_instance(features, inst_name,'present',"['Administrator','#{host_computer_name}\\#{@ExtraAdminUser}']") validate_sql_install(host, {:version => version}) do |r| expect(r.stdout).to match(/#{Regexp.new(inst_name)}/) @@ -95,7 +97,7 @@ def sql_query_is_user_sysadmin(username) end it "#{inst_name} instance has ExtraSQLAdmin as a sysadmin", :tier_low => true do - run_sql_query(host, run_sql_query_opts(inst_name, sql_query_is_user_sysadmin('ExtraSQLAdmin'), expected_row_count = 1)) + run_sql_query(host, run_sql_query_opts(inst_name, sql_query_is_user_sysadmin(@ExtraAdminUser), expected_row_count = 1)) end it "remove #{inst_name} instance", :tier_high => true do diff --git a/spec/spec_helper_acceptance.rb b/spec/spec_helper_acceptance.rb index d88a94da..2e10efce 100644 --- a/spec/spec_helper_acceptance.rb +++ b/spec/spec_helper_acceptance.rb @@ -27,8 +27,14 @@ # Install PE run_puppet_install_helper -# Install PE License onto Master -install_pe_license(master) +# Install PE License onto Master, if one exists. +install_pe_license(master) unless hosts_as("master").empty? + +# Determine root path of local module source. +proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..')) +# In CI install from staging forge, otherwise from local +staging = { :module_name => 'puppetlabs-sqlserver' } +local = { :module_name => 'sqlserver', :source => proj_root } unless ENV['MODULE_provision'] == 'no' hosts_as("sql_host").each do |agent| @@ -66,16 +72,8 @@ on(agent, puppet("module install #{dep}")) end - # Determine root path of local module source. - proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..')) - - # In CI install from staging forge, otherwise from local - staging = { :module_name => 'puppetlabs-sqlserver' } - local = { :module_name => 'sqlserver', :source => proj_root } - # Install sqlserver dependencies. on(agent, puppet('module install puppetlabs-stdlib')) - on(master, puppet('module install puppetlabs-stdlib')) # Mount windows 2012R2 ISO to allow install of .NET 3.5 Windows Feature iso_opts = { @@ -88,6 +86,15 @@ # Install sqlserver module from local source. # See FM-5062 for more details. copy_module_to(agent, local) - copy_module_to(master, local) + end + + hosts_as("master").each do |host| + # Install sqlserver dependencies. + on(host, puppet('module install puppetlabs-stdlib')) + + # Install sqlserver module from local source. + # See FM-5062 for more details. + local = { :module_name => 'sqlserver', :source => proj_root } + copy_module_to(host, local) end end diff --git a/spec/unit/puppet/provider/sqlserver_instance_spec.rb b/spec/unit/puppet/provider/sqlserver_instance_spec.rb index 34c12b9c..16138870 100644 --- a/spec/unit/puppet/provider/sqlserver_instance_spec.rb +++ b/spec/unit/puppet/provider/sqlserver_instance_spec.rb @@ -60,8 +60,8 @@ def stub_uninstall(args, installed_features, exit_code = 0) cmd_args << "/SECURITYMODE=SQL" end - # wrap each arg in doublequotes - admin_args = execute_args[:sql_sysadmin_accounts].map { |a| "\"#{a}\"" } + # Extrace the SQL Sysadmins + admin_args = execute_args[:sql_sysadmin_accounts].map { |a| "#{a}" } # prepend first arg only with CLI switch admin_args[0] = "/SQLSYSADMINACCOUNTS=" + admin_args[0] cmd_args += admin_args