service_kiosk 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Vagrantfile +25 -0
- data/bin/kiosk +55 -0
- data/bin/start_kiosk.sh +3 -0
- data/lib/Procfile.kiosk +1 -0
- data/lib/internal_service.rb +59 -0
- data/lib/json-simple-1.1.1.jar +0 -0
- data/lib/kiosk.rb +57 -0
- data/lib/kiosks/logger/output_logger.rb +16 -0
- data/lib/mall.rb +77 -0
- data/lib/mallcop.rb +9 -0
- data/lib/remote_service.rb +61 -0
- data/lib/tasks/local_mall.rake +93 -0
- data/provision/bootstrap.sh +21 -0
- data/provision/manifests/default.pp +49 -0
- data/provision/modules/apt/CHANGELOG +83 -0
- data/provision/modules/apt/LICENSE +19 -0
- data/provision/modules/apt/Modulefile +14 -0
- data/provision/modules/apt/README.md +119 -0
- data/provision/modules/apt/Rakefile +1 -0
- data/provision/modules/apt/manifests/backports.pp +48 -0
- data/provision/modules/apt/manifests/builddep.pp +16 -0
- data/provision/modules/apt/manifests/conf.pp +18 -0
- data/provision/modules/apt/manifests/debian/testing.pp +21 -0
- data/provision/modules/apt/manifests/debian/unstable.pp +21 -0
- data/provision/modules/apt/manifests/force.pp +24 -0
- data/provision/modules/apt/manifests/init.pp +114 -0
- data/provision/modules/apt/manifests/key.pp +80 -0
- data/provision/modules/apt/manifests/params.pp +23 -0
- data/provision/modules/apt/manifests/pin.pp +48 -0
- data/provision/modules/apt/manifests/ppa.pp +49 -0
- data/provision/modules/apt/manifests/release.pp +17 -0
- data/provision/modules/apt/manifests/source.pp +83 -0
- data/provision/modules/apt/manifests/update.pp +9 -0
- data/provision/modules/apt/spec/classes/apt_spec.rb +129 -0
- data/provision/modules/apt/spec/classes/backports_spec.rb +71 -0
- data/provision/modules/apt/spec/classes/debian_testing_spec.rb +14 -0
- data/provision/modules/apt/spec/classes/debian_unstable_spec.rb +14 -0
- data/provision/modules/apt/spec/classes/params_spec.rb +13 -0
- data/provision/modules/apt/spec/classes/release_spec.rb +22 -0
- data/provision/modules/apt/spec/defines/builddep_spec.rb +18 -0
- data/provision/modules/apt/spec/defines/conf_spec.rb +57 -0
- data/provision/modules/apt/spec/defines/force_spec.rb +41 -0
- data/provision/modules/apt/spec/defines/key_spec.rb +123 -0
- data/provision/modules/apt/spec/defines/pin_spec.rb +58 -0
- data/provision/modules/apt/spec/defines/ppa_spec.rb +92 -0
- data/provision/modules/apt/spec/defines/source_spec.rb +158 -0
- data/provision/modules/apt/spec/fixtures/manifests/site.pp +0 -0
- data/provision/modules/apt/spec/spec_helper.rb +1 -0
- data/provision/modules/apt/templates/pin.pref.erb +5 -0
- data/provision/modules/apt/templates/source.list.erb +5 -0
- data/provision/modules/apt/tests/builddep.pp +2 -0
- data/provision/modules/apt/tests/debian/testing.pp +2 -0
- data/provision/modules/apt/tests/debian/unstable.pp +2 -0
- data/provision/modules/apt/tests/force.pp +7 -0
- data/provision/modules/apt/tests/init.pp +1 -0
- data/provision/modules/apt/tests/key.pp +5 -0
- data/provision/modules/apt/tests/params.pp +1 -0
- data/provision/modules/apt/tests/pin.pp +5 -0
- data/provision/modules/apt/tests/ppa.pp +4 -0
- data/provision/modules/apt/tests/release.pp +4 -0
- data/provision/modules/apt/tests/source.pp +29 -0
- data/provision/modules/stdlib/CHANGELOG +177 -0
- data/provision/modules/stdlib/LICENSE +19 -0
- data/provision/modules/stdlib/Modulefile +11 -0
- data/provision/modules/stdlib/README.markdown +929 -0
- data/provision/modules/stdlib/README_DEVELOPER.markdown +35 -0
- data/provision/modules/stdlib/RELEASE_PROCESS.markdown +24 -0
- data/provision/modules/stdlib/Rakefile +2 -0
- data/provision/modules/stdlib/lib/facter/pe_version.rb +53 -0
- data/provision/modules/stdlib/lib/facter/puppet_vardir.rb +26 -0
- data/provision/modules/stdlib/lib/facter/root_home.rb +19 -0
- data/provision/modules/stdlib/lib/facter/util/puppet_settings.rb +21 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/abs.rb +36 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/bool2num.rb +49 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/capitalize.rb +34 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/chomp.rb +35 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/chop.rb +37 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/defined_with_params.rb +35 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/delete.rb +46 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/delete_at.rb +49 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/downcase.rb +33 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/empty.rb +28 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/ensure_packages.rb +24 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb +35 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/flatten.rb +33 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/fqdn_rotate.rb +46 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/get_module_path.rb +17 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/getvar.rb +26 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/grep.rb +33 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/has_interface_with.rb +52 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/has_ip_address.rb +25 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/has_ip_network.rb +25 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/has_key.rb +28 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/hash.rb +41 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/is_array.rb +22 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/is_domain_name.rb +47 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/is_float.rb +27 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/is_hash.rb +22 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/is_integer.rb +27 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/is_ip_address.rb +32 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/is_mac_address.rb +27 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/is_numeric.rb +27 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/is_string.rb +26 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/join.rb +41 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/join_keys_to_values.rb +47 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/keys.rb +26 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/loadyaml.rb +20 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/lstrip.rb +33 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/max.rb +13 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/member.rb +44 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/merge.rb +33 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/min.rb +13 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/num2bool.rb +40 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/parsejson.rb +24 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/parseyaml.rb +24 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/pick.rb +29 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/prefix.rb +45 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/range.rb +80 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/reject.rb +31 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/reverse.rb +28 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/rstrip.rb +32 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/shuffle.rb +46 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/size.rb +48 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/sort.rb +27 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/squeeze.rb +36 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/str2bool.rb +41 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/str2saltedsha512.rb +32 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/strftime.rb +107 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/strip.rb +39 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/swapcase.rb +39 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/time.rb +49 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/to_bytes.rb +28 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/type.rb +50 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/unique.rb +51 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/upcase.rb +41 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/uriescape.rb +36 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/validate_absolute_path.rb +56 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/validate_array.rb +33 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/validate_bool.rb +34 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/validate_hash.rb +33 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/validate_re.rb +40 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/validate_slength.rb +52 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/validate_string.rb +33 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/values.rb +39 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/values_at.rb +98 -0
- data/provision/modules/stdlib/lib/puppet/parser/functions/zip.rb +65 -0
- data/provision/modules/stdlib/lib/puppet/provider/file_line/ruby.rb +59 -0
- data/provision/modules/stdlib/lib/puppet/type/anchor.rb +41 -0
- data/provision/modules/stdlib/lib/puppet/type/file_line.rb +70 -0
- data/provision/modules/stdlib/manifests/init.pp +20 -0
- data/provision/modules/stdlib/manifests/stages.pp +43 -0
- data/provision/modules/stdlib/spec/functions/defined_with_params_spec.rb +37 -0
- data/provision/modules/stdlib/spec/functions/ensure_packages_spec.rb +42 -0
- data/provision/modules/stdlib/spec/functions/ensure_resource_spec.rb +40 -0
- data/provision/modules/stdlib/spec/monkey_patches/alias_should_to_must.rb +8 -0
- data/provision/modules/stdlib/spec/monkey_patches/publicize_methods.rb +10 -0
- data/provision/modules/stdlib/spec/spec.opts +6 -0
- data/provision/modules/stdlib/spec/spec_helper.rb +28 -0
- data/provision/modules/stdlib/spec/unit/facter/pe_version_spec.rb +76 -0
- data/provision/modules/stdlib/spec/unit/facter/root_home_spec.rb +40 -0
- data/provision/modules/stdlib/spec/unit/facter/util/puppet_settings_spec.rb +35 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/abs_spec.rb +25 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/bool2num_spec.rb +24 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/capitalize_spec.rb +19 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/chomp_spec.rb +19 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/chop_spec.rb +19 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/delete_at_spec.rb +19 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/delete_spec.rb +38 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/downcase_spec.rb +24 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/empty_spec.rb +23 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/flatten_spec.rb +23 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/fqdn_rotate_spec.rb +33 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/get_module_path_spec.rb +46 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/getvar_spec.rb +37 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/grep_spec.rb +19 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/has_interface_with_spec.rb +64 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/has_ip_address_spec.rb +39 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/has_ip_network_spec.rb +36 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/has_key_spec.rb +42 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/hash_spec.rb +19 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_array_spec.rb +29 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_domain_name_spec.rb +64 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_float_spec.rb +29 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_hash_spec.rb +29 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_integer_spec.rb +29 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_ip_address_spec.rb +39 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_mac_address_spec.rb +29 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_numeric_spec.rb +29 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_string_spec.rb +34 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/join_keys_to_values_spec.rb +40 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/join_spec.rb +19 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/keys_spec.rb +21 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/lstrip_spec.rb +19 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/max_spec.rb +23 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/member_spec.rb +24 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/merge_spec.rb +47 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/min_spec.rb +23 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/num2bool_spec.rb +24 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/parsejson_spec.rb +22 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/parseyaml_spec.rb +24 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/pick_spec.rb +34 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/prefix_spec.rb +19 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/range_spec.rb +34 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/reject_spec.rb +20 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/reverse_spec.rb +19 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/rstrip_spec.rb +24 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/shuffle_spec.rb +24 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/size_spec.rb +24 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/sort_spec.rb +24 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/squeeze_spec.rb +24 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/str2bool_spec.rb +24 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/str2saltedsha512_spec.rb +45 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/strftime_spec.rb +29 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/strip_spec.rb +18 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/swapcase_spec.rb +19 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/time_spec.rb +29 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/to_bytes_spec.rb +58 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/type_spec.rb +43 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/unique_spec.rb +24 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/upcase_spec.rb +24 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/uriescape_spec.rb +24 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/validate_absolute_path_spec.rb +83 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/validate_array_spec.rb +38 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/validate_bool_spec.rb +51 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/validate_hash_spec.rb +43 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/validate_re_spec.rb +76 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/validate_slength_spec.rb +48 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/validate_string_spec.rb +60 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/values_at_spec.rb +38 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/values_spec.rb +31 -0
- data/provision/modules/stdlib/spec/unit/puppet/parser/functions/zip_spec.rb +15 -0
- data/provision/modules/stdlib/spec/unit/puppet/provider/file_line/ruby_spec.rb +127 -0
- data/provision/modules/stdlib/spec/unit/puppet/type/anchor_spec.rb +11 -0
- data/provision/modules/stdlib/spec/unit/puppet/type/file_line_spec.rb +69 -0
- data/provision/modules/stdlib/spec/watchr.rb +86 -0
- data/provision/modules/stdlib/tests/file_line.pp +9 -0
- data/provision/modules/stdlib/tests/has_interface_with.pp +10 -0
- data/provision/modules/stdlib/tests/has_ip_address.pp +3 -0
- data/provision/modules/stdlib/tests/has_ip_network.pp +4 -0
- data/provision/modules/stdlib/tests/init.pp +1 -0
- metadata +291 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
describe 'apt', :type => :class do
|
|
3
|
+
let :default_params do
|
|
4
|
+
{
|
|
5
|
+
:disable_keys => :undef,
|
|
6
|
+
:always_apt_update => false,
|
|
7
|
+
:purge_sources_list => false,
|
|
8
|
+
:purge_sources_list_d => false,
|
|
9
|
+
}
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
[{},
|
|
13
|
+
{
|
|
14
|
+
:disable_keys => true,
|
|
15
|
+
:always_apt_update => true,
|
|
16
|
+
:proxy_host => true,
|
|
17
|
+
:proxy_port => '3128',
|
|
18
|
+
:purge_sources_list => true,
|
|
19
|
+
:purge_sources_list_d => true,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
:disable_keys => false
|
|
23
|
+
}
|
|
24
|
+
].each do |param_set|
|
|
25
|
+
describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
|
|
26
|
+
let :param_hash do
|
|
27
|
+
default_params.merge(param_set)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
let :params do
|
|
31
|
+
param_set
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
let :refresh_only_apt_update do
|
|
35
|
+
if param_hash[:always_apt_update]
|
|
36
|
+
false
|
|
37
|
+
else
|
|
38
|
+
true
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it { should include_class("apt::params") }
|
|
43
|
+
|
|
44
|
+
it {
|
|
45
|
+
if param_hash[:purge_sources_list]
|
|
46
|
+
should contain_file("sources.list").with({
|
|
47
|
+
'path' => "/etc/apt/sources.list",
|
|
48
|
+
'ensure' => "present",
|
|
49
|
+
'owner' => "root",
|
|
50
|
+
'group' => "root",
|
|
51
|
+
'mode' => "0644",
|
|
52
|
+
"content" => "# Repos managed by puppet.\n"
|
|
53
|
+
})
|
|
54
|
+
else
|
|
55
|
+
should contain_file("sources.list").with({
|
|
56
|
+
'path' => "/etc/apt/sources.list",
|
|
57
|
+
'ensure' => "present",
|
|
58
|
+
'owner' => "root",
|
|
59
|
+
'group' => "root",
|
|
60
|
+
'mode' => "0644",
|
|
61
|
+
'content' => nil
|
|
62
|
+
})
|
|
63
|
+
end
|
|
64
|
+
}
|
|
65
|
+
it {
|
|
66
|
+
if param_hash[:purge_sources_list_d]
|
|
67
|
+
should create_file("sources.list.d").with({
|
|
68
|
+
'path' => "/etc/apt/sources.list.d",
|
|
69
|
+
'ensure' => "directory",
|
|
70
|
+
'owner' => "root",
|
|
71
|
+
'group' => "root",
|
|
72
|
+
'purge' => true,
|
|
73
|
+
'recurse' => true,
|
|
74
|
+
'notify' => 'Exec[apt_update]'
|
|
75
|
+
})
|
|
76
|
+
else
|
|
77
|
+
should create_file("sources.list.d").with({
|
|
78
|
+
'path' => "/etc/apt/sources.list.d",
|
|
79
|
+
'ensure' => "directory",
|
|
80
|
+
'owner' => "root",
|
|
81
|
+
'group' => "root",
|
|
82
|
+
'purge' => false,
|
|
83
|
+
'recurse' => false,
|
|
84
|
+
'notify' => 'Exec[apt_update]'
|
|
85
|
+
})
|
|
86
|
+
end
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
it {
|
|
90
|
+
should contain_exec("apt_update").with({
|
|
91
|
+
'command' => "/usr/bin/apt-get update",
|
|
92
|
+
'refreshonly' => refresh_only_apt_update
|
|
93
|
+
})
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
it {
|
|
97
|
+
if param_hash[:disable_keys] == true
|
|
98
|
+
should create_file("99unauth").with({
|
|
99
|
+
'content' => "APT::Get::AllowUnauthenticated 1;\n",
|
|
100
|
+
'ensure' => "present",
|
|
101
|
+
'path' => "/etc/apt/apt.conf.d/99unauth"
|
|
102
|
+
})
|
|
103
|
+
elsif param_hash[:disable_keys] == false
|
|
104
|
+
should create_file("99unauth").with({
|
|
105
|
+
'ensure' => "absent",
|
|
106
|
+
'path' => "/etc/apt/apt.conf.d/99unauth"
|
|
107
|
+
})
|
|
108
|
+
elsif param_hash[:disable_keys] != :undef
|
|
109
|
+
should_not create_file("99unauth").with({
|
|
110
|
+
'path' => "/etc/apt/apt.conf.d/99unauth"
|
|
111
|
+
})
|
|
112
|
+
end
|
|
113
|
+
}
|
|
114
|
+
describe 'when setting a proxy' do
|
|
115
|
+
it {
|
|
116
|
+
if param_hash[:proxy_host]
|
|
117
|
+
should contain_file('configure-apt-proxy').with(
|
|
118
|
+
'path' => '/etc/apt/apt.conf.d/proxy',
|
|
119
|
+
'content' => "Acquire::http::Proxy \"http://#{param_hash[:proxy_host]}:#{param_hash[:proxy_port]}\";",
|
|
120
|
+
'notify' => "Exec[apt_update]"
|
|
121
|
+
)
|
|
122
|
+
else
|
|
123
|
+
should_not contain_file('configure_apt_proxy')
|
|
124
|
+
end
|
|
125
|
+
}
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
describe 'apt::backports', :type => :class do
|
|
3
|
+
|
|
4
|
+
describe 'when turning on backports for ubuntu karmic' do
|
|
5
|
+
|
|
6
|
+
let :facts do
|
|
7
|
+
{
|
|
8
|
+
'lsbdistcodename' => 'Karmic',
|
|
9
|
+
'lsbdistid' => 'Ubuntu'
|
|
10
|
+
}
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it { should contain_apt__source('backports').with({
|
|
14
|
+
'location' => 'http://old-releases.ubuntu.com/ubuntu',
|
|
15
|
+
'release' => 'karmic-backports',
|
|
16
|
+
'repos' => 'main universe multiverse restricted',
|
|
17
|
+
'key' => '437D05B5',
|
|
18
|
+
'key_server' => 'pgp.mit.edu',
|
|
19
|
+
'pin' => '200',
|
|
20
|
+
})
|
|
21
|
+
}
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
describe "when turning on backports for debian squeeze" do
|
|
25
|
+
|
|
26
|
+
let :facts do
|
|
27
|
+
{
|
|
28
|
+
'lsbdistcodename' => 'Squeeze',
|
|
29
|
+
'lsbdistid' => 'Debian',
|
|
30
|
+
}
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it { should contain_apt__source('backports').with({
|
|
34
|
+
'location' => 'http://backports.debian.org/debian-backports',
|
|
35
|
+
'release' => 'squeeze-backports',
|
|
36
|
+
'repos' => 'main contrib non-free',
|
|
37
|
+
'key' => '55BE302B',
|
|
38
|
+
'key_server' => 'pgp.mit.edu',
|
|
39
|
+
'pin' => '200',
|
|
40
|
+
})
|
|
41
|
+
}
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
describe "when turning on backports for debian squeeze but using your own mirror" do
|
|
45
|
+
|
|
46
|
+
let :facts do
|
|
47
|
+
{
|
|
48
|
+
'lsbdistcodename' => 'Squeeze',
|
|
49
|
+
'lsbdistid' => 'Debian'
|
|
50
|
+
}
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
let :location do
|
|
54
|
+
'http://mirrors.example.com/debian-backports'
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
let :params do
|
|
58
|
+
{ 'location' => location }
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it { should contain_apt__source('backports').with({
|
|
62
|
+
'location' => location,
|
|
63
|
+
'release' => 'squeeze-backports',
|
|
64
|
+
'repos' => 'main contrib non-free',
|
|
65
|
+
'key' => '55BE302B',
|
|
66
|
+
'key_server' => 'pgp.mit.edu',
|
|
67
|
+
'pin' => '200',
|
|
68
|
+
})
|
|
69
|
+
}
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
describe 'apt::debian::testing', :type => :class do
|
|
3
|
+
it {
|
|
4
|
+
should contain_apt__source("debian_testing").with({
|
|
5
|
+
"location" => "http://debian.mirror.iweb.ca/debian/",
|
|
6
|
+
"release" => "testing",
|
|
7
|
+
"repos" => "main contrib non-free",
|
|
8
|
+
"required_packages" => "debian-keyring debian-archive-keyring",
|
|
9
|
+
"key" => "55BE302B",
|
|
10
|
+
"key_server" => "subkeys.pgp.net",
|
|
11
|
+
"pin" => "-10"
|
|
12
|
+
})
|
|
13
|
+
}
|
|
14
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
describe 'apt::debian::unstable', :type => :class do
|
|
3
|
+
it {
|
|
4
|
+
should contain_apt__source("debian_unstable").with({
|
|
5
|
+
"location" => "http://debian.mirror.iweb.ca/debian/",
|
|
6
|
+
"release" => "unstable",
|
|
7
|
+
"repos" => "main contrib non-free",
|
|
8
|
+
"required_packages" => "debian-keyring debian-archive-keyring",
|
|
9
|
+
"key" => "55BE302B",
|
|
10
|
+
"key_server" => "subkeys.pgp.net",
|
|
11
|
+
"pin" => "-10"
|
|
12
|
+
})
|
|
13
|
+
}
|
|
14
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
describe 'apt::params', :type => :class do
|
|
3
|
+
let (:title) { 'my_package' }
|
|
4
|
+
|
|
5
|
+
it { should contain_apt__params }
|
|
6
|
+
|
|
7
|
+
# There are 4 resources in this class currently
|
|
8
|
+
# there should not be any more resources because it is a params class
|
|
9
|
+
# The resources are class[apt::params], class[main], class[settings], stage[main]
|
|
10
|
+
it "Should not contain any resources" do
|
|
11
|
+
subject.resources.size.should == 4
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
describe 'apt::release', :type => :class do
|
|
3
|
+
let (:title) { 'my_package' }
|
|
4
|
+
|
|
5
|
+
let :param_set do
|
|
6
|
+
{ :release_id => 'precise' }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
let (:params) { param_set }
|
|
10
|
+
|
|
11
|
+
it { should include_class("apt::params") }
|
|
12
|
+
|
|
13
|
+
it {
|
|
14
|
+
should contain_file("/etc/apt/apt.conf.d/01release").with({
|
|
15
|
+
"mode" => "0644",
|
|
16
|
+
"owner" => "root",
|
|
17
|
+
"group" => "root",
|
|
18
|
+
"content" => "APT::Default-Release \"#{param_set[:release_id]}\";"
|
|
19
|
+
})
|
|
20
|
+
}
|
|
21
|
+
end
|
|
22
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
describe 'apt::builddep', :type => :define do
|
|
3
|
+
|
|
4
|
+
let(:title) { 'my_package' }
|
|
5
|
+
|
|
6
|
+
describe "should require apt-get update" do
|
|
7
|
+
it { should contain_exec("apt_update").with({
|
|
8
|
+
'command' => "/usr/bin/apt-get update",
|
|
9
|
+
'refreshonly' => true
|
|
10
|
+
})
|
|
11
|
+
}
|
|
12
|
+
it { should contain_anchor("apt::builddep::my_package").with({
|
|
13
|
+
'require' => 'Class[Apt::Update]',
|
|
14
|
+
})
|
|
15
|
+
}
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
describe 'apt::conf', :type => :define do
|
|
3
|
+
let :title do
|
|
4
|
+
'norecommends'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
describe "when creating an apt preference" do
|
|
8
|
+
let :params do
|
|
9
|
+
{
|
|
10
|
+
:priority => '00',
|
|
11
|
+
:content => "Apt::Install-Recommends 0;\nApt::AutoRemove::InstallRecommends 1;\n"
|
|
12
|
+
}
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
let :filename do
|
|
16
|
+
"/etc/apt/apt.conf.d/00norecommends"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it { should contain_apt__conf('norecommends').with({
|
|
20
|
+
'priority' => '00',
|
|
21
|
+
'content' => "Apt::Install-Recommends 0;\nApt::AutoRemove::InstallRecommends 1;\n"
|
|
22
|
+
})
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
it { should contain_file(filename).with({
|
|
26
|
+
'ensure' => 'present',
|
|
27
|
+
'content' => "Apt::Install-Recommends 0;\nApt::AutoRemove::InstallRecommends 1;\n",
|
|
28
|
+
'owner' => 'root',
|
|
29
|
+
'group' => 'root',
|
|
30
|
+
'mode' => '0644',
|
|
31
|
+
})
|
|
32
|
+
}
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe "when removing an apt preference" do
|
|
36
|
+
let :params do
|
|
37
|
+
{
|
|
38
|
+
:ensure => 'absent',
|
|
39
|
+
:priority => '00',
|
|
40
|
+
:content => "Apt::Install-Recommends 0;\nApt::AutoRemove::InstallRecommends 1;\n"
|
|
41
|
+
}
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
let :filename do
|
|
45
|
+
"/etc/apt/apt.conf.d/00norecommends"
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
it { should contain_file(filename).with({
|
|
49
|
+
'ensure' => 'absent',
|
|
50
|
+
'content' => "Apt::Install-Recommends 0;\nApt::AutoRemove::InstallRecommends 1;\n",
|
|
51
|
+
'owner' => 'root',
|
|
52
|
+
'group' => 'root',
|
|
53
|
+
'mode' => '0644',
|
|
54
|
+
})
|
|
55
|
+
}
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
describe 'apt::force', :type => :define do
|
|
3
|
+
let :title do
|
|
4
|
+
'my_package'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
let :default_params do
|
|
8
|
+
{
|
|
9
|
+
:release => 'testing',
|
|
10
|
+
:version => false
|
|
11
|
+
}
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
[{},
|
|
15
|
+
{
|
|
16
|
+
:release => 'stable',
|
|
17
|
+
:version => '1'
|
|
18
|
+
}
|
|
19
|
+
].each do |param_set|
|
|
20
|
+
describe "when #{param_set == {} ? "using default" : "specifying"} define parameters" do
|
|
21
|
+
let :param_hash do
|
|
22
|
+
default_params.merge(param_set)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
let :params do
|
|
26
|
+
param_set
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
let :unless_query do
|
|
30
|
+
base_command = "/usr/bin/dpkg -s #{title} | grep -q "
|
|
31
|
+
base_command + (params[:version] ? "'Version: #{params[:version]}'" : "'Status: install'")
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
let :exec_title do
|
|
35
|
+
base_exec = "/usr/bin/aptitude -y -t #{param_hash[:release]} install #{title}"
|
|
36
|
+
base_exec + (params[:version] ? "=#{params[:version]}" : "")
|
|
37
|
+
end
|
|
38
|
+
it { should contain_exec(exec_title).with_unless(unless_query) }
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
describe 'apt::key', :type => :define do
|
|
3
|
+
let :title do
|
|
4
|
+
'8347A27F'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
let :default_params do
|
|
8
|
+
{
|
|
9
|
+
:key => title,
|
|
10
|
+
:ensure => 'present',
|
|
11
|
+
:key_server => "keyserver.ubuntu.com",
|
|
12
|
+
:key_source => false,
|
|
13
|
+
:key_content => false
|
|
14
|
+
}
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
[{},
|
|
18
|
+
{
|
|
19
|
+
:ensure => 'absent'
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
:ensure => 'random'
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
:key_source => 'ftp://ftp.example.org/key',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
:key_content => 'deadbeef',
|
|
29
|
+
}
|
|
30
|
+
].each do |param_set|
|
|
31
|
+
|
|
32
|
+
let :param_hash do
|
|
33
|
+
param_hash = default_params.merge(param_set)
|
|
34
|
+
param_hash[:key].upcase! if param_hash[:key]
|
|
35
|
+
param_hash
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
let :params do
|
|
39
|
+
param_set
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
let :digest do
|
|
43
|
+
str = String.new
|
|
44
|
+
str << param_hash[:key].to_s << '/'
|
|
45
|
+
str << param_hash[:key_content].to_s << '/'
|
|
46
|
+
str << param_hash[:key_source].to_s << '/'
|
|
47
|
+
str << param_hash[:key_server].to_s << '/'
|
|
48
|
+
Digest::SHA1.hexdigest(str)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
describe "when #{param_set == {} ? "using default" : "specifying"} define parameters" do
|
|
52
|
+
|
|
53
|
+
it {
|
|
54
|
+
if [:present, 'present', :absent, 'absent'].include? param_hash[:ensure]
|
|
55
|
+
should contain_apt__params
|
|
56
|
+
end
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
it {
|
|
60
|
+
if [:present, 'present'].include? param_hash[:ensure]
|
|
61
|
+
should_not contain_exec("apt::key #{param_hash[:key]} absent")
|
|
62
|
+
should contain_anchor("apt::key #{param_hash[:key]} present")
|
|
63
|
+
should contain_exec(digest).with({
|
|
64
|
+
"path" => "/bin:/usr/bin",
|
|
65
|
+
"unless" => "/usr/bin/apt-key list | /bin/grep '#{param_hash[:key]}'"
|
|
66
|
+
})
|
|
67
|
+
elsif [:absent, 'absent'].include? param_hash[:ensure]
|
|
68
|
+
should_not contain_anchor("apt::key #{param_hash[:key]} present")
|
|
69
|
+
should contain_exec("apt::key #{param_hash[:key]} absent").with({
|
|
70
|
+
"path" => "/bin:/usr/bin",
|
|
71
|
+
"onlyif" => "apt-key list | grep '#{param_hash[:key]}'",
|
|
72
|
+
"command" => "apt-key del '#{param_hash[:key]}'"
|
|
73
|
+
})
|
|
74
|
+
else
|
|
75
|
+
expect { should raise_error(Puppet::Error) }
|
|
76
|
+
end
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
it {
|
|
80
|
+
if [:present, 'present'].include? param_hash[:ensure]
|
|
81
|
+
if param_hash[:key_content]
|
|
82
|
+
should contain_exec(digest).with({
|
|
83
|
+
"command" => "echo '#{param_hash[:key_content]}' | /usr/bin/apt-key add -"
|
|
84
|
+
})
|
|
85
|
+
elsif param_hash[:key_source]
|
|
86
|
+
should contain_exec(digest).with({
|
|
87
|
+
"command" => "wget -q '#{param_hash[:key_source]}' -O- | apt-key add -"
|
|
88
|
+
})
|
|
89
|
+
elsif param_hash[:key_server]
|
|
90
|
+
should contain_exec(digest).with({
|
|
91
|
+
"command" => "apt-key adv --keyserver '#{param_hash[:key_server]}' --recv-keys '#{param_hash[:key]}'"
|
|
92
|
+
})
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
[{ :ensure => 'present' }, { :ensure => 'absent' }].each do |param_set|
|
|
101
|
+
describe "should correctly handle duplicate definitions" do
|
|
102
|
+
|
|
103
|
+
let :pre_condition do
|
|
104
|
+
"apt::key { 'duplicate': key => '#{title}'; }"
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
let(:params) { param_set }
|
|
108
|
+
|
|
109
|
+
it {
|
|
110
|
+
if param_set[:ensure] == 'present'
|
|
111
|
+
should contain_anchor("apt::key #{title} present")
|
|
112
|
+
should contain_apt__key(title)
|
|
113
|
+
should contain_apt__key("duplicate")
|
|
114
|
+
elsif param_set[:ensure] == 'absent'
|
|
115
|
+
expect { should raise_error(Puppet::Error) }
|
|
116
|
+
end
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
end
|
|
123
|
+
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
describe 'apt::pin', :type => :define do
|
|
3
|
+
let(:title) { 'my_pin' }
|
|
4
|
+
|
|
5
|
+
let :default_params do
|
|
6
|
+
{
|
|
7
|
+
:ensure => 'present',
|
|
8
|
+
:order => '',
|
|
9
|
+
:packages => '*',
|
|
10
|
+
:priority => '0',
|
|
11
|
+
:release => nil
|
|
12
|
+
}
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
[ {},
|
|
16
|
+
{
|
|
17
|
+
:packages => 'apache',
|
|
18
|
+
:priority => '1'
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
:order => 50,
|
|
22
|
+
:packages => 'apache',
|
|
23
|
+
:priority => '1'
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
:ensure => 'absent',
|
|
27
|
+
:packages => 'apache',
|
|
28
|
+
:priority => '1'
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
:packages => 'apache',
|
|
32
|
+
:priority => '1',
|
|
33
|
+
:release => 'my_newpin'
|
|
34
|
+
}
|
|
35
|
+
].each do |param_set|
|
|
36
|
+
describe "when #{param_set == {} ? "using default" : "specifying"} define parameters" do
|
|
37
|
+
let :param_hash do
|
|
38
|
+
default_params.merge(param_set)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
let :params do
|
|
42
|
+
param_set
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it { should include_class("apt::params") }
|
|
46
|
+
|
|
47
|
+
it { should contain_file("#{title}.pref").with({
|
|
48
|
+
'ensure' => param_hash[:ensure],
|
|
49
|
+
'path' => "/etc/apt/preferences.d/#{param_hash[:order] == '' ? "" : "#{param_hash[:order]}-"}#{title}.pref",
|
|
50
|
+
'owner' => 'root',
|
|
51
|
+
'group' => 'root',
|
|
52
|
+
'mode' => '0644',
|
|
53
|
+
'content' => "# #{title}\nExplanation: : #{title}\nPackage: #{param_hash[:packages]}\nPin: release a=#{param_hash[:release] || title}\nPin-Priority: #{param_hash[:priority]}\n",
|
|
54
|
+
})
|
|
55
|
+
}
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
describe 'apt::ppa', :type => :define do
|
|
3
|
+
[ { :lsbdistrelease => '11.04',
|
|
4
|
+
:lsbdistcodename => 'natty',
|
|
5
|
+
:package => 'python-software-properties'},
|
|
6
|
+
{ :lsbdistrelease => '12.10',
|
|
7
|
+
:lsbdistcodename => 'quantal',
|
|
8
|
+
:package => 'software-properties-common'},
|
|
9
|
+
].each do |platform|
|
|
10
|
+
context "on #{platform[:lsbdistcodename]}" do
|
|
11
|
+
let :facts do
|
|
12
|
+
{
|
|
13
|
+
:lsbdistrelease => platform[:lsbdistrelease],
|
|
14
|
+
:lsbdistcodename => platform[:lsbdistcodename],
|
|
15
|
+
}
|
|
16
|
+
end
|
|
17
|
+
let :release do
|
|
18
|
+
"#{platform[:lsbdistcodename]}"
|
|
19
|
+
end
|
|
20
|
+
let :package do
|
|
21
|
+
"#{platform[:package]}"
|
|
22
|
+
end
|
|
23
|
+
['ppa:dans_ppa', 'dans_ppa','ppa:dans-daily/ubuntu'].each do |t|
|
|
24
|
+
describe "with title #{t}" do
|
|
25
|
+
let :pre_condition do
|
|
26
|
+
'class { "apt": }'
|
|
27
|
+
end
|
|
28
|
+
let :title do
|
|
29
|
+
t
|
|
30
|
+
end
|
|
31
|
+
let :filename do
|
|
32
|
+
t.sub(/^ppa:/,'').gsub('/','-') << "-" << "#{release}.list"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it { should contain_package("#{package}") }
|
|
36
|
+
|
|
37
|
+
it { should contain_exec("apt_update").with(
|
|
38
|
+
'command' => '/usr/bin/apt-get update',
|
|
39
|
+
'refreshonly' => true
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
it { should contain_exec("add-apt-repository-#{t}").with(
|
|
44
|
+
'command' => "/usr/bin/add-apt-repository #{t}",
|
|
45
|
+
'creates' => "/etc/apt/sources.list.d/#{filename}",
|
|
46
|
+
'require' => ["File[/etc/apt/sources.list.d]", "Package[#{package}]"],
|
|
47
|
+
'notify' => "Exec[apt_update]"
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
it { should create_file("/etc/apt/sources.list.d/#{filename}").with(
|
|
52
|
+
'ensure' => 'file',
|
|
53
|
+
'require' => "Exec[add-apt-repository-#{t}]"
|
|
54
|
+
)
|
|
55
|
+
}
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
[ { :lsbdistcodename => 'natty',
|
|
62
|
+
:package => 'python-software-properties' },
|
|
63
|
+
{ :lsbdistcodename => 'quantal',
|
|
64
|
+
:package => 'software-properties-common'},
|
|
65
|
+
].each do |platform|
|
|
66
|
+
context "on #{platform[:lsbdistcodename]}" do
|
|
67
|
+
describe "it should not error if package['#{platform[:package]}'] is already defined" do
|
|
68
|
+
let :pre_condition do
|
|
69
|
+
'class {"apt": }' +
|
|
70
|
+
'package { "#{platform[:package]}": }->Apt::Ppa["ppa"]'
|
|
71
|
+
end
|
|
72
|
+
let :facts do
|
|
73
|
+
{:lsbdistcodename => '#{platform[:lsbdistcodename]}'}
|
|
74
|
+
end
|
|
75
|
+
let(:title) { "ppa" }
|
|
76
|
+
let(:release) { "#{platform[:lsbdistcodename]}" }
|
|
77
|
+
it { should contain_package('#{platform[:package]}') }
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
describe "without Class[apt] should raise a Puppet::Error" do
|
|
83
|
+
let(:release) { "natty" }
|
|
84
|
+
let(:title) { "ppa" }
|
|
85
|
+
it { expect { should contain_apt__ppa(title) }.to raise_error(Puppet::Error) }
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
describe "without release should raise a Puppet::Error" do
|
|
89
|
+
let(:title) { "ppa:" }
|
|
90
|
+
it { expect { should contain_apt__ppa(:release) }.to raise_error(Puppet::Error) }
|
|
91
|
+
end
|
|
92
|
+
end
|