File modes should be managed by packaging, not by Puppet.
This patch aims to stop managing File { mode => } parameters.
Partial-bug: #1458915
Change-Id: Ic38317521ac4a91bfdf234ecb4c74e4b00e3d887
		
	
		
			
				
	
	
		
			99 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require 'spec_helper'
 | 
						|
 | 
						|
describe 'swift::dispersion' do
 | 
						|
 | 
						|
  let :default_params do
 | 
						|
    { :auth_url      => 'http://127.0.0.1:5000/v2.0/',
 | 
						|
      :auth_user     => 'dispersion',
 | 
						|
      :auth_tenant   => 'services',
 | 
						|
      :auth_pass     => 'dispersion_password',
 | 
						|
      :auth_version  => '2.0',
 | 
						|
      :endpoint_type => 'publicURL',
 | 
						|
      :swift_dir     => '/etc/swift',
 | 
						|
      :coverage      => 1,
 | 
						|
      :retries       => 5,
 | 
						|
      :concurrency   => 25,
 | 
						|
      :dump_json     => 'no' }
 | 
						|
  end
 | 
						|
 | 
						|
  let :pre_condition do
 | 
						|
    "class { 'swift': swift_hash_suffix => 'string' }"
 | 
						|
  end
 | 
						|
 | 
						|
  let :facts do
 | 
						|
    { :osfamily => 'Debian' }
 | 
						|
  end
 | 
						|
 | 
						|
  let :params do
 | 
						|
    {}
 | 
						|
  end
 | 
						|
 | 
						|
  it { is_expected.to contain_file('/etc/swift/dispersion.conf').with(
 | 
						|
    :ensure  => 'file',
 | 
						|
    :owner   => 'swift',
 | 
						|
    :group   => 'swift',
 | 
						|
    :require => 'Package[swift]')
 | 
						|
  }
 | 
						|
 | 
						|
  shared_examples 'swift::dispersion' do
 | 
						|
    let (:p) { default_params.merge!(params) }
 | 
						|
 | 
						|
    it 'configures dispersion.conf' do
 | 
						|
      is_expected.to contain_swift_dispersion_config(
 | 
						|
        'dispersion/auth_url').with_value(p[:auth_url])
 | 
						|
      is_expected.to contain_swift_dispersion_config(
 | 
						|
        'dispersion/auth_version').with_value(p[:auth_version])
 | 
						|
      is_expected.to contain_swift_dispersion_config(
 | 
						|
        'dispersion/auth_user').with_value("#{p[:auth_tenant]}:#{p[:auth_user]}")
 | 
						|
      is_expected.to contain_swift_dispersion_config(
 | 
						|
        'dispersion/auth_key').with_value(p[:auth_pass])
 | 
						|
      is_expected.to contain_swift_dispersion_config(
 | 
						|
        'dispersion/endpoint_type').with_value(p[:endpoint_type])
 | 
						|
      is_expected.to contain_swift_dispersion_config(
 | 
						|
        'dispersion/swift_dir').with_value(p[:swift_dir])
 | 
						|
      is_expected.to contain_swift_dispersion_config(
 | 
						|
        'dispersion/dispersion_coverage').with_value(p[:coverage])
 | 
						|
      is_expected.to contain_swift_dispersion_config(
 | 
						|
        'dispersion/retries').with_value(p[:retries])
 | 
						|
      is_expected.to contain_swift_dispersion_config(
 | 
						|
        'dispersion/concurrency').with_value(p[:concurrency])
 | 
						|
      is_expected.to contain_swift_dispersion_config(
 | 
						|
        'dispersion/dump_json').with_value(p[:dump_json])
 | 
						|
    end
 | 
						|
 | 
						|
    it 'triggers swift-dispersion-populate' do
 | 
						|
      is_expected.to contain_exec('swift-dispersion-populate').with(
 | 
						|
        :path      => ['/bin', '/usr/bin'],
 | 
						|
        :subscribe => 'File[/etc/swift/dispersion.conf]',
 | 
						|
        :onlyif    => "swift -A #{p[:auth_url]} -U #{p[:auth_tenant]}:#{p[:auth_user]} -K #{p[:auth_pass]} -V #{p[:auth_version]} stat | grep 'Account: '",
 | 
						|
        :unless    => "swift -A #{p[:auth_url]} -U #{p[:auth_tenant]}:#{p[:auth_user]} -K #{p[:auth_pass]} -V #{p[:auth_version]} list | grep dispersion_",
 | 
						|
        :require => 'Package[swiftclient]'
 | 
						|
      )
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  describe 'with default parameters' do
 | 
						|
    include_examples 'swift::dispersion'
 | 
						|
  end
 | 
						|
 | 
						|
  describe 'when parameters are overriden' do
 | 
						|
    before do
 | 
						|
      params.merge!(
 | 
						|
        :auth_url      => 'https://10.0.0.10:7000/auth/v8.0/',
 | 
						|
        :auth_user     => 'foo',
 | 
						|
        :auth_tenant   => 'bar',
 | 
						|
        :auth_pass     => 'dummy',
 | 
						|
        :auth_version  => '1.0',
 | 
						|
        :endpoint_type => 'internalURL',
 | 
						|
        :swift_dir     => '/usr/local/etc/swift',
 | 
						|
        :coverage      => 42,
 | 
						|
        :retries       => 51,
 | 
						|
        :concurrency   => 4682,
 | 
						|
        :dump_json     => 'yes'
 | 
						|
      )
 | 
						|
    end
 | 
						|
 | 
						|
    include_examples 'swift::dispersion'
 | 
						|
  end
 | 
						|
end
 |