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.
Files changed (241) hide show
  1. data/Vagrantfile +25 -0
  2. data/bin/kiosk +55 -0
  3. data/bin/start_kiosk.sh +3 -0
  4. data/lib/Procfile.kiosk +1 -0
  5. data/lib/internal_service.rb +59 -0
  6. data/lib/json-simple-1.1.1.jar +0 -0
  7. data/lib/kiosk.rb +57 -0
  8. data/lib/kiosks/logger/output_logger.rb +16 -0
  9. data/lib/mall.rb +77 -0
  10. data/lib/mallcop.rb +9 -0
  11. data/lib/remote_service.rb +61 -0
  12. data/lib/tasks/local_mall.rake +93 -0
  13. data/provision/bootstrap.sh +21 -0
  14. data/provision/manifests/default.pp +49 -0
  15. data/provision/modules/apt/CHANGELOG +83 -0
  16. data/provision/modules/apt/LICENSE +19 -0
  17. data/provision/modules/apt/Modulefile +14 -0
  18. data/provision/modules/apt/README.md +119 -0
  19. data/provision/modules/apt/Rakefile +1 -0
  20. data/provision/modules/apt/manifests/backports.pp +48 -0
  21. data/provision/modules/apt/manifests/builddep.pp +16 -0
  22. data/provision/modules/apt/manifests/conf.pp +18 -0
  23. data/provision/modules/apt/manifests/debian/testing.pp +21 -0
  24. data/provision/modules/apt/manifests/debian/unstable.pp +21 -0
  25. data/provision/modules/apt/manifests/force.pp +24 -0
  26. data/provision/modules/apt/manifests/init.pp +114 -0
  27. data/provision/modules/apt/manifests/key.pp +80 -0
  28. data/provision/modules/apt/manifests/params.pp +23 -0
  29. data/provision/modules/apt/manifests/pin.pp +48 -0
  30. data/provision/modules/apt/manifests/ppa.pp +49 -0
  31. data/provision/modules/apt/manifests/release.pp +17 -0
  32. data/provision/modules/apt/manifests/source.pp +83 -0
  33. data/provision/modules/apt/manifests/update.pp +9 -0
  34. data/provision/modules/apt/spec/classes/apt_spec.rb +129 -0
  35. data/provision/modules/apt/spec/classes/backports_spec.rb +71 -0
  36. data/provision/modules/apt/spec/classes/debian_testing_spec.rb +14 -0
  37. data/provision/modules/apt/spec/classes/debian_unstable_spec.rb +14 -0
  38. data/provision/modules/apt/spec/classes/params_spec.rb +13 -0
  39. data/provision/modules/apt/spec/classes/release_spec.rb +22 -0
  40. data/provision/modules/apt/spec/defines/builddep_spec.rb +18 -0
  41. data/provision/modules/apt/spec/defines/conf_spec.rb +57 -0
  42. data/provision/modules/apt/spec/defines/force_spec.rb +41 -0
  43. data/provision/modules/apt/spec/defines/key_spec.rb +123 -0
  44. data/provision/modules/apt/spec/defines/pin_spec.rb +58 -0
  45. data/provision/modules/apt/spec/defines/ppa_spec.rb +92 -0
  46. data/provision/modules/apt/spec/defines/source_spec.rb +158 -0
  47. data/provision/modules/apt/spec/fixtures/manifests/site.pp +0 -0
  48. data/provision/modules/apt/spec/spec_helper.rb +1 -0
  49. data/provision/modules/apt/templates/pin.pref.erb +5 -0
  50. data/provision/modules/apt/templates/source.list.erb +5 -0
  51. data/provision/modules/apt/tests/builddep.pp +2 -0
  52. data/provision/modules/apt/tests/debian/testing.pp +2 -0
  53. data/provision/modules/apt/tests/debian/unstable.pp +2 -0
  54. data/provision/modules/apt/tests/force.pp +7 -0
  55. data/provision/modules/apt/tests/init.pp +1 -0
  56. data/provision/modules/apt/tests/key.pp +5 -0
  57. data/provision/modules/apt/tests/params.pp +1 -0
  58. data/provision/modules/apt/tests/pin.pp +5 -0
  59. data/provision/modules/apt/tests/ppa.pp +4 -0
  60. data/provision/modules/apt/tests/release.pp +4 -0
  61. data/provision/modules/apt/tests/source.pp +29 -0
  62. data/provision/modules/stdlib/CHANGELOG +177 -0
  63. data/provision/modules/stdlib/LICENSE +19 -0
  64. data/provision/modules/stdlib/Modulefile +11 -0
  65. data/provision/modules/stdlib/README.markdown +929 -0
  66. data/provision/modules/stdlib/README_DEVELOPER.markdown +35 -0
  67. data/provision/modules/stdlib/RELEASE_PROCESS.markdown +24 -0
  68. data/provision/modules/stdlib/Rakefile +2 -0
  69. data/provision/modules/stdlib/lib/facter/pe_version.rb +53 -0
  70. data/provision/modules/stdlib/lib/facter/puppet_vardir.rb +26 -0
  71. data/provision/modules/stdlib/lib/facter/root_home.rb +19 -0
  72. data/provision/modules/stdlib/lib/facter/util/puppet_settings.rb +21 -0
  73. data/provision/modules/stdlib/lib/puppet/parser/functions/abs.rb +36 -0
  74. data/provision/modules/stdlib/lib/puppet/parser/functions/bool2num.rb +49 -0
  75. data/provision/modules/stdlib/lib/puppet/parser/functions/capitalize.rb +34 -0
  76. data/provision/modules/stdlib/lib/puppet/parser/functions/chomp.rb +35 -0
  77. data/provision/modules/stdlib/lib/puppet/parser/functions/chop.rb +37 -0
  78. data/provision/modules/stdlib/lib/puppet/parser/functions/defined_with_params.rb +35 -0
  79. data/provision/modules/stdlib/lib/puppet/parser/functions/delete.rb +46 -0
  80. data/provision/modules/stdlib/lib/puppet/parser/functions/delete_at.rb +49 -0
  81. data/provision/modules/stdlib/lib/puppet/parser/functions/downcase.rb +33 -0
  82. data/provision/modules/stdlib/lib/puppet/parser/functions/empty.rb +28 -0
  83. data/provision/modules/stdlib/lib/puppet/parser/functions/ensure_packages.rb +24 -0
  84. data/provision/modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb +35 -0
  85. data/provision/modules/stdlib/lib/puppet/parser/functions/flatten.rb +33 -0
  86. data/provision/modules/stdlib/lib/puppet/parser/functions/fqdn_rotate.rb +46 -0
  87. data/provision/modules/stdlib/lib/puppet/parser/functions/get_module_path.rb +17 -0
  88. data/provision/modules/stdlib/lib/puppet/parser/functions/getvar.rb +26 -0
  89. data/provision/modules/stdlib/lib/puppet/parser/functions/grep.rb +33 -0
  90. data/provision/modules/stdlib/lib/puppet/parser/functions/has_interface_with.rb +52 -0
  91. data/provision/modules/stdlib/lib/puppet/parser/functions/has_ip_address.rb +25 -0
  92. data/provision/modules/stdlib/lib/puppet/parser/functions/has_ip_network.rb +25 -0
  93. data/provision/modules/stdlib/lib/puppet/parser/functions/has_key.rb +28 -0
  94. data/provision/modules/stdlib/lib/puppet/parser/functions/hash.rb +41 -0
  95. data/provision/modules/stdlib/lib/puppet/parser/functions/is_array.rb +22 -0
  96. data/provision/modules/stdlib/lib/puppet/parser/functions/is_domain_name.rb +47 -0
  97. data/provision/modules/stdlib/lib/puppet/parser/functions/is_float.rb +27 -0
  98. data/provision/modules/stdlib/lib/puppet/parser/functions/is_hash.rb +22 -0
  99. data/provision/modules/stdlib/lib/puppet/parser/functions/is_integer.rb +27 -0
  100. data/provision/modules/stdlib/lib/puppet/parser/functions/is_ip_address.rb +32 -0
  101. data/provision/modules/stdlib/lib/puppet/parser/functions/is_mac_address.rb +27 -0
  102. data/provision/modules/stdlib/lib/puppet/parser/functions/is_numeric.rb +27 -0
  103. data/provision/modules/stdlib/lib/puppet/parser/functions/is_string.rb +26 -0
  104. data/provision/modules/stdlib/lib/puppet/parser/functions/join.rb +41 -0
  105. data/provision/modules/stdlib/lib/puppet/parser/functions/join_keys_to_values.rb +47 -0
  106. data/provision/modules/stdlib/lib/puppet/parser/functions/keys.rb +26 -0
  107. data/provision/modules/stdlib/lib/puppet/parser/functions/loadyaml.rb +20 -0
  108. data/provision/modules/stdlib/lib/puppet/parser/functions/lstrip.rb +33 -0
  109. data/provision/modules/stdlib/lib/puppet/parser/functions/max.rb +13 -0
  110. data/provision/modules/stdlib/lib/puppet/parser/functions/member.rb +44 -0
  111. data/provision/modules/stdlib/lib/puppet/parser/functions/merge.rb +33 -0
  112. data/provision/modules/stdlib/lib/puppet/parser/functions/min.rb +13 -0
  113. data/provision/modules/stdlib/lib/puppet/parser/functions/num2bool.rb +40 -0
  114. data/provision/modules/stdlib/lib/puppet/parser/functions/parsejson.rb +24 -0
  115. data/provision/modules/stdlib/lib/puppet/parser/functions/parseyaml.rb +24 -0
  116. data/provision/modules/stdlib/lib/puppet/parser/functions/pick.rb +29 -0
  117. data/provision/modules/stdlib/lib/puppet/parser/functions/prefix.rb +45 -0
  118. data/provision/modules/stdlib/lib/puppet/parser/functions/range.rb +80 -0
  119. data/provision/modules/stdlib/lib/puppet/parser/functions/reject.rb +31 -0
  120. data/provision/modules/stdlib/lib/puppet/parser/functions/reverse.rb +28 -0
  121. data/provision/modules/stdlib/lib/puppet/parser/functions/rstrip.rb +32 -0
  122. data/provision/modules/stdlib/lib/puppet/parser/functions/shuffle.rb +46 -0
  123. data/provision/modules/stdlib/lib/puppet/parser/functions/size.rb +48 -0
  124. data/provision/modules/stdlib/lib/puppet/parser/functions/sort.rb +27 -0
  125. data/provision/modules/stdlib/lib/puppet/parser/functions/squeeze.rb +36 -0
  126. data/provision/modules/stdlib/lib/puppet/parser/functions/str2bool.rb +41 -0
  127. data/provision/modules/stdlib/lib/puppet/parser/functions/str2saltedsha512.rb +32 -0
  128. data/provision/modules/stdlib/lib/puppet/parser/functions/strftime.rb +107 -0
  129. data/provision/modules/stdlib/lib/puppet/parser/functions/strip.rb +39 -0
  130. data/provision/modules/stdlib/lib/puppet/parser/functions/swapcase.rb +39 -0
  131. data/provision/modules/stdlib/lib/puppet/parser/functions/time.rb +49 -0
  132. data/provision/modules/stdlib/lib/puppet/parser/functions/to_bytes.rb +28 -0
  133. data/provision/modules/stdlib/lib/puppet/parser/functions/type.rb +50 -0
  134. data/provision/modules/stdlib/lib/puppet/parser/functions/unique.rb +51 -0
  135. data/provision/modules/stdlib/lib/puppet/parser/functions/upcase.rb +41 -0
  136. data/provision/modules/stdlib/lib/puppet/parser/functions/uriescape.rb +36 -0
  137. data/provision/modules/stdlib/lib/puppet/parser/functions/validate_absolute_path.rb +56 -0
  138. data/provision/modules/stdlib/lib/puppet/parser/functions/validate_array.rb +33 -0
  139. data/provision/modules/stdlib/lib/puppet/parser/functions/validate_bool.rb +34 -0
  140. data/provision/modules/stdlib/lib/puppet/parser/functions/validate_hash.rb +33 -0
  141. data/provision/modules/stdlib/lib/puppet/parser/functions/validate_re.rb +40 -0
  142. data/provision/modules/stdlib/lib/puppet/parser/functions/validate_slength.rb +52 -0
  143. data/provision/modules/stdlib/lib/puppet/parser/functions/validate_string.rb +33 -0
  144. data/provision/modules/stdlib/lib/puppet/parser/functions/values.rb +39 -0
  145. data/provision/modules/stdlib/lib/puppet/parser/functions/values_at.rb +98 -0
  146. data/provision/modules/stdlib/lib/puppet/parser/functions/zip.rb +65 -0
  147. data/provision/modules/stdlib/lib/puppet/provider/file_line/ruby.rb +59 -0
  148. data/provision/modules/stdlib/lib/puppet/type/anchor.rb +41 -0
  149. data/provision/modules/stdlib/lib/puppet/type/file_line.rb +70 -0
  150. data/provision/modules/stdlib/manifests/init.pp +20 -0
  151. data/provision/modules/stdlib/manifests/stages.pp +43 -0
  152. data/provision/modules/stdlib/spec/functions/defined_with_params_spec.rb +37 -0
  153. data/provision/modules/stdlib/spec/functions/ensure_packages_spec.rb +42 -0
  154. data/provision/modules/stdlib/spec/functions/ensure_resource_spec.rb +40 -0
  155. data/provision/modules/stdlib/spec/monkey_patches/alias_should_to_must.rb +8 -0
  156. data/provision/modules/stdlib/spec/monkey_patches/publicize_methods.rb +10 -0
  157. data/provision/modules/stdlib/spec/spec.opts +6 -0
  158. data/provision/modules/stdlib/spec/spec_helper.rb +28 -0
  159. data/provision/modules/stdlib/spec/unit/facter/pe_version_spec.rb +76 -0
  160. data/provision/modules/stdlib/spec/unit/facter/root_home_spec.rb +40 -0
  161. data/provision/modules/stdlib/spec/unit/facter/util/puppet_settings_spec.rb +35 -0
  162. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/abs_spec.rb +25 -0
  163. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/bool2num_spec.rb +24 -0
  164. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/capitalize_spec.rb +19 -0
  165. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/chomp_spec.rb +19 -0
  166. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/chop_spec.rb +19 -0
  167. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/delete_at_spec.rb +19 -0
  168. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/delete_spec.rb +38 -0
  169. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/downcase_spec.rb +24 -0
  170. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/empty_spec.rb +23 -0
  171. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/flatten_spec.rb +23 -0
  172. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/fqdn_rotate_spec.rb +33 -0
  173. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/get_module_path_spec.rb +46 -0
  174. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/getvar_spec.rb +37 -0
  175. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/grep_spec.rb +19 -0
  176. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/has_interface_with_spec.rb +64 -0
  177. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/has_ip_address_spec.rb +39 -0
  178. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/has_ip_network_spec.rb +36 -0
  179. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/has_key_spec.rb +42 -0
  180. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/hash_spec.rb +19 -0
  181. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_array_spec.rb +29 -0
  182. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_domain_name_spec.rb +64 -0
  183. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_float_spec.rb +29 -0
  184. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_hash_spec.rb +29 -0
  185. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_integer_spec.rb +29 -0
  186. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_ip_address_spec.rb +39 -0
  187. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_mac_address_spec.rb +29 -0
  188. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_numeric_spec.rb +29 -0
  189. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/is_string_spec.rb +34 -0
  190. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/join_keys_to_values_spec.rb +40 -0
  191. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/join_spec.rb +19 -0
  192. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/keys_spec.rb +21 -0
  193. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/lstrip_spec.rb +19 -0
  194. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/max_spec.rb +23 -0
  195. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/member_spec.rb +24 -0
  196. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/merge_spec.rb +47 -0
  197. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/min_spec.rb +23 -0
  198. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/num2bool_spec.rb +24 -0
  199. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/parsejson_spec.rb +22 -0
  200. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/parseyaml_spec.rb +24 -0
  201. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/pick_spec.rb +34 -0
  202. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/prefix_spec.rb +19 -0
  203. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/range_spec.rb +34 -0
  204. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/reject_spec.rb +20 -0
  205. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/reverse_spec.rb +19 -0
  206. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/rstrip_spec.rb +24 -0
  207. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/shuffle_spec.rb +24 -0
  208. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/size_spec.rb +24 -0
  209. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/sort_spec.rb +24 -0
  210. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/squeeze_spec.rb +24 -0
  211. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/str2bool_spec.rb +24 -0
  212. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/str2saltedsha512_spec.rb +45 -0
  213. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/strftime_spec.rb +29 -0
  214. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/strip_spec.rb +18 -0
  215. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/swapcase_spec.rb +19 -0
  216. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/time_spec.rb +29 -0
  217. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/to_bytes_spec.rb +58 -0
  218. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/type_spec.rb +43 -0
  219. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/unique_spec.rb +24 -0
  220. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/upcase_spec.rb +24 -0
  221. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/uriescape_spec.rb +24 -0
  222. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/validate_absolute_path_spec.rb +83 -0
  223. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/validate_array_spec.rb +38 -0
  224. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/validate_bool_spec.rb +51 -0
  225. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/validate_hash_spec.rb +43 -0
  226. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/validate_re_spec.rb +76 -0
  227. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/validate_slength_spec.rb +48 -0
  228. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/validate_string_spec.rb +60 -0
  229. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/values_at_spec.rb +38 -0
  230. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/values_spec.rb +31 -0
  231. data/provision/modules/stdlib/spec/unit/puppet/parser/functions/zip_spec.rb +15 -0
  232. data/provision/modules/stdlib/spec/unit/puppet/provider/file_line/ruby_spec.rb +127 -0
  233. data/provision/modules/stdlib/spec/unit/puppet/type/anchor_spec.rb +11 -0
  234. data/provision/modules/stdlib/spec/unit/puppet/type/file_line_spec.rb +69 -0
  235. data/provision/modules/stdlib/spec/watchr.rb +86 -0
  236. data/provision/modules/stdlib/tests/file_line.pp +9 -0
  237. data/provision/modules/stdlib/tests/has_interface_with.pp +10 -0
  238. data/provision/modules/stdlib/tests/has_ip_address.pp +3 -0
  239. data/provision/modules/stdlib/tests/has_ip_network.pp +4 -0
  240. data/provision/modules/stdlib/tests/init.pp +1 -0
  241. metadata +291 -0
@@ -0,0 +1,9 @@
1
+ class apt::update {
2
+ include apt::params
3
+
4
+ exec { 'apt_update':
5
+ command => "${apt::params::provider} update",
6
+ logoutput => 'on_failure',
7
+ refreshonly => true,
8
+ }
9
+ }
@@ -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