infrataster-plugin-ldap 0.0.1

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 (70) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +22 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +3 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +51 -0
  7. data/Rakefile +36 -0
  8. data/infrataster-plugin-ldap.gemspec +23 -0
  9. data/lib/infrataster-plugin-ldap.rb +4 -0
  10. data/lib/infrataster/contexts/ldap_context.rb +63 -0
  11. data/lib/infrataster/helpers/ldap_resource_helper.rb +12 -0
  12. data/lib/infrataster/resources/ldap_resource.rb +19 -0
  13. data/spec/.vagrant/machines/default/virtualbox/action_provision +1 -0
  14. data/spec/.vagrant/machines/default/virtualbox/action_set_name +1 -0
  15. data/spec/.vagrant/machines/default/virtualbox/id +1 -0
  16. data/spec/.vagrant/machines/default/virtualbox/index_uuid +1 -0
  17. data/spec/.vagrant/machines/default/virtualbox/synced_folders +1 -0
  18. data/spec/Vagrantfile +20 -0
  19. data/spec/cookbooks/apt/CHANGELOG.md +208 -0
  20. data/spec/cookbooks/apt/README.md +252 -0
  21. data/spec/cookbooks/apt/attributes/default.rb +46 -0
  22. data/spec/cookbooks/apt/files/default/apt-proxy-v2.conf +50 -0
  23. data/spec/cookbooks/apt/libraries/helpers.rb +49 -0
  24. data/spec/cookbooks/apt/libraries/matchers.rb +17 -0
  25. data/spec/cookbooks/apt/libraries/network.rb +31 -0
  26. data/spec/cookbooks/apt/metadata.json +54 -0
  27. data/spec/cookbooks/apt/metadata.rb +34 -0
  28. data/spec/cookbooks/apt/providers/preference.rb +63 -0
  29. data/spec/cookbooks/apt/providers/repository.rb +203 -0
  30. data/spec/cookbooks/apt/recipes/cacher-client.rb +81 -0
  31. data/spec/cookbooks/apt/recipes/cacher-ng.rb +43 -0
  32. data/spec/cookbooks/apt/recipes/default.rb +98 -0
  33. data/spec/cookbooks/apt/recipes/unattended-upgrades.rb +43 -0
  34. data/spec/cookbooks/apt/resources/preference.rb +32 -0
  35. data/spec/cookbooks/apt/resources/repository.rb +43 -0
  36. data/spec/cookbooks/apt/templates/debian-6.0/acng.conf.erb +173 -0
  37. data/spec/cookbooks/apt/templates/default/01proxy.erb +5 -0
  38. data/spec/cookbooks/apt/templates/default/20auto-upgrades.erb +2 -0
  39. data/spec/cookbooks/apt/templates/default/50unattended-upgrades.erb +62 -0
  40. data/spec/cookbooks/apt/templates/default/acng.conf.erb +275 -0
  41. data/spec/cookbooks/apt/templates/default/unattended-upgrades.seed.erb +1 -0
  42. data/spec/cookbooks/apt/templates/ubuntu-10.04/acng.conf.erb +269 -0
  43. data/spec/cookbooks/openldap/CHANGELOG.md +68 -0
  44. data/spec/cookbooks/openldap/README.md +185 -0
  45. data/spec/cookbooks/openldap/attributes/default.rb +76 -0
  46. data/spec/cookbooks/openldap/files/default/common-account +7 -0
  47. data/spec/cookbooks/openldap/files/default/common-auth +9 -0
  48. data/spec/cookbooks/openldap/files/default/common-password +7 -0
  49. data/spec/cookbooks/openldap/files/default/common-session +9 -0
  50. data/spec/cookbooks/openldap/files/default/nsswitch.conf +21 -0
  51. data/spec/cookbooks/openldap/files/default/slapd.seed +21 -0
  52. data/spec/cookbooks/openldap/files/default/test/auth_test.rb +7 -0
  53. data/spec/cookbooks/openldap/files/default/test/server_test.rb +24 -0
  54. data/spec/cookbooks/openldap/metadata.json +124 -0
  55. data/spec/cookbooks/openldap/metadata.rb +102 -0
  56. data/spec/cookbooks/openldap/recipes/auth.rb +71 -0
  57. data/spec/cookbooks/openldap/recipes/client.rb +28 -0
  58. data/spec/cookbooks/openldap/recipes/default.rb +18 -0
  59. data/spec/cookbooks/openldap/recipes/master.rb +23 -0
  60. data/spec/cookbooks/openldap/recipes/server.rb +124 -0
  61. data/spec/cookbooks/openldap/recipes/slave.rb +32 -0
  62. data/spec/cookbooks/openldap/templates/default/default_slapd.erb +47 -0
  63. data/spec/cookbooks/openldap/templates/default/ldap-ldap.conf.erb +16 -0
  64. data/spec/cookbooks/openldap/templates/default/ldap.conf.erb +31 -0
  65. data/spec/cookbooks/openldap/templates/default/libnss-ldap.conf.erb +28 -0
  66. data/spec/cookbooks/openldap/templates/default/login_access.conf.erb +16 -0
  67. data/spec/cookbooks/openldap/templates/default/slapd.conf.erb +132 -0
  68. data/spec/ldap_spec.rb +10 -0
  69. data/spec/spec_helper.rb +17 -0
  70. metadata +253 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c920e4d493c16314a14e084c3a30c7908fc29c32
4
+ data.tar.gz: c97bf7c04072f370b53e998acfa3598a48d7806d
5
+ SHA512:
6
+ metadata.gz: b4d59d7c0562cd41689e393b1d47c47b549849322b1abe371fde03fd240c252f5a856bb2518d6c24a335da75b464446f1f9119c1c8f4d9f6426cf2667029394e
7
+ data.tar.gz: 61b1a604795a085d3c9e267c30c8215af5806932c954099e06807f7d1dede5959fad66ce6927cec416fc681e3cbdc45b1796465be67a16feda935516dca125c1
@@ -0,0 +1,22 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.bundle
19
+ *.so
20
+ *.o
21
+ *.a
22
+ mkmf.log
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Paul Thomas
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,51 @@
1
+ # infrataster-plugin-ldap
2
+
3
+ LDAP plugin for [Infrataster](https://github.com/ryotarai/infrataster)
4
+
5
+ ## Installation
6
+
7
+ Add this line to your Gemfile:
8
+
9
+ gem 'infrataster-plugin-ldap'
10
+
11
+ And then add the following line to your spec\_helper.rb:
12
+
13
+ require 'infrataster-plugin-ldap'
14
+
15
+ ## Usage
16
+
17
+ ```ruby
18
+ describe server(:master) do
19
+ describe ldap("dc=mydomain,dc=com") do
20
+ it "accepts bind requests" do
21
+ expect(bind.code).to eq 0
22
+ end
23
+ it "can create a top level object" do
24
+ result = add_result("dc=mydomain,dc=com",
25
+ {
26
+ :objectclass => [ "top", "dcObject", "organization"],
27
+ :o => "mydomain"
28
+ }
29
+ )
30
+ expect(result.code).to eq 0
31
+ end
32
+ end
33
+ end
34
+ ```
35
+
36
+ You can specify LDAP by options passed to `Infrataster::Server.define`:
37
+
38
+ ```ruby
39
+ Infrataster::Server.define(
40
+ # ...
41
+ ldap: { basedn: "dc=mydomain,dc=com", username: "cn=admin,dc=mydomain,dc=com", password: "mypassword" }
42
+ )
43
+ ```
44
+
45
+ ## Contributing
46
+
47
+ 1. Fork it ( https://github.com/[my-github-username]/infrataster-plugin-ldap/fork )
48
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
49
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
50
+ 4. Push to the branch (`git push origin my-new-feature`)
51
+ 5. Create a new Pull Request
@@ -0,0 +1,36 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ ENV['VAGRANT_CWD'] = File.expand_path('spec/')
5
+
6
+ def exec_and_abort_if_fail(cmd)
7
+ system cmd
8
+ unless $?.exitstatus == 0
9
+ $stderr.puts "'#{cmd}' failed."
10
+ abort
11
+ end
12
+ end
13
+
14
+ desc 'Prepare and run tests'
15
+ task spec: ['spec:prepare', 'spec:integration']
16
+
17
+ namespace :spec do
18
+ RSpec::Core::RakeTask.new('integration') do |task|
19
+ task.pattern = './spec/{,/*/**}/*_spec.rb'
20
+ end
21
+
22
+ desc 'Prepare'
23
+ task :prepare do
24
+ exec_and_abort_if_fail '/usr/bin/vagrant up'
25
+ end
26
+
27
+ desc 'Provision'
28
+ task :provision do
29
+ exec_and_abort_if_fail '/usr/bin/vagrant provision'
30
+ end
31
+
32
+ desc 'Clean'
33
+ task :clean do
34
+ exec_and_abort_if_fail '/usr/bin/vagrant destroy -f'
35
+ end
36
+ end
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+ Gem::Specification.new do |spec|
3
+ spec.name = 'infrataster-plugin-ldap'
4
+ spec.version = '0.0.1'
5
+ spec.authors = ['Paul Thomas']
6
+ spec.email = ['pthomas@dyn.com']
7
+ spec.summary = 'LDAP plugin for Infrataster'
8
+ spec.homepage = ''
9
+ spec.license = 'MIT'
10
+
11
+ spec.files = `git ls-files -z`.split("\x0")
12
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
13
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
14
+ spec.require_paths = ['lib']
15
+
16
+ spec.add_runtime_dependency 'infrataster', '~> 0.2.0'
17
+ spec.add_runtime_dependency 'net-ldap'
18
+
19
+ spec.add_development_dependency 'bundler', '~> 1.6'
20
+ spec.add_development_dependency 'rake'
21
+ spec.add_development_dependency 'rspec'
22
+ spec.add_development_dependency 'rubocop'
23
+ end
@@ -0,0 +1,4 @@
1
+ require 'infrataster/resources/ldap_resource'
2
+ require 'infrataster/contexts/ldap_context'
3
+ require 'infrataster/helpers/ldap_resource_helper'
4
+
@@ -0,0 +1,63 @@
1
+ require 'infrataster'
2
+ require 'net-ldap'
3
+
4
+ module Infrataster
5
+ module Contexts
6
+ class LdapContext < BaseContext
7
+
8
+ def initialize(*args)
9
+ @test_attr = {
10
+ :cn => "test",
11
+ :objectclass => [ "top", "structural" ]
12
+ }
13
+ super(*args)
14
+ end
15
+
16
+ def bind
17
+ conn = connect(server)
18
+ conn.bind
19
+ return conn.get_operation_result
20
+ end
21
+
22
+ def add_result (dn = "cn=test,#{resource.basedn}", attr = @test_attr)
23
+ conn = connect(server)
24
+ conn.bind
25
+ conn.add ({ :dn => dn, :attributes => attr })
26
+ return conn.get_operation_result
27
+ end
28
+
29
+ def search_result (filter)
30
+ conn = connect(server)
31
+ conn.bind
32
+ r = conn.search(
33
+ :filter => filter,
34
+ :base => resource.basedn
35
+ )
36
+ conn.get_operation_result
37
+ end
38
+
39
+ def connect (server)
40
+ # Default options
41
+ options = { port: 389,
42
+ username: '',
43
+ password: '',
44
+ basedn: 'dc=example,dc=com'
45
+ }
46
+ options = options.merge(server.options[:ldap]) if server.options[:ldap]
47
+
48
+ server.forward_port(options[:port]) do |address, new_port|
49
+ conn = Net::LDAP.new(
50
+ :host => server.address,
51
+ :port => new_port,
52
+ :auth => {
53
+ :method => :simple,
54
+ :username => options[:username],
55
+ :password => options[:password]
56
+ }
57
+ )
58
+ return conn
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,12 @@
1
+ require 'rspec'
2
+ require 'infrataster/resources'
3
+
4
+ module Infrataster
5
+ module Helpers
6
+ module ResourceHelper
7
+ def ldap(*args)
8
+ Resources::LdapResource.new(*args)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,19 @@
1
+ require 'infrataster'
2
+
3
+ module Infrataster
4
+ module Resources
5
+ class LdapResource < BaseResource
6
+ Error = Class.new(StandardError)
7
+
8
+ attr_reader :basedn
9
+
10
+ def initialize(basedn)
11
+ @basedn = basedn
12
+ end
13
+
14
+ def to_s
15
+ "LDAP: #{@basedn}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1 @@
1
+ 1.5:a259743b-6adb-4631-8c8a-07cef3182485
@@ -0,0 +1 @@
1
+ a259743b-6adb-4631-8c8a-07cef3182485
@@ -0,0 +1 @@
1
+ 81405d611e2d49158ea17ceb155fbea9
@@ -0,0 +1 @@
1
+ {"virtualbox":{"/vagrant":{"guestpath":"/vagrant","hostpath":"/Users/paul/work/infrataster-plugin-ldap/spec","disabled":false},"v-csc-1":{"id":"v-csc-1","guestpath":"/tmp/vagrant-chef-3/chef-solo-1/cookbooks","hostpath":"/Users/paul/work/infrataster-plugin-ldap/spec/cookbooks","disabled":false}}}
@@ -0,0 +1,20 @@
1
+ # Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
2
+ VAGRANTFILE_API_VERSION = "2"
3
+
4
+ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
5
+ config.vm.box = "hashicorp/precise64"
6
+
7
+ config.vm.network "private_network", ip: "192.168.44.21"
8
+
9
+ config.vm.provision "chef_solo" do |chef|
10
+ chef.cookbooks_path = [File.expand_path('../cookbooks', __FILE__)]
11
+ chef.add_recipe "apt"
12
+ chef.add_recipe "openldap::server"
13
+ chef.json = {
14
+ "openldap" => {
15
+ "tls_enabled" => false,
16
+ "rootpw" => "wibble!"
17
+ }
18
+ }
19
+ end
20
+ end
@@ -0,0 +1,208 @@
1
+ apt Cookbook CHANGELOG
2
+ ======================
3
+ This file is used to list changes made in each version of the apt cookbook.
4
+
5
+ v2.6.0 (2014-09-09)
6
+ -------------------
7
+ - Always update on first run - check
8
+ - Adding ppa support for apt_repository
9
+
10
+ v2.5.3 (2014-08-14)
11
+ -------------------
12
+ - #87 - Improve default settings, account for non-linux platforms
13
+
14
+ v2.5.2 (2014-08-14)
15
+ -------------------
16
+ - Fully restore fully restore 2.3.10 behaviour
17
+
18
+ v2.5.1 (2014-08-14)
19
+ -------------------
20
+ - fix breakage introduced in apt 2.5.0
21
+
22
+ v2.5.0 (2014-08-12)
23
+ -------------------
24
+ - Add unattended-upgrades recipe
25
+ - Only update the cache for the created repository
26
+ - Added ChefSpec matchers and default_action for resources
27
+ - Avoid cloning resource attributes
28
+ - Minor documentation updates
29
+
30
+ v2.4.0 (2014-05-15)
31
+ -------------------
32
+ - [COOK-4534]: Add option to update apt cache at compile time
33
+
34
+
35
+ v2.3.10 (2014-04-23)
36
+ --------------------
37
+ - [COOK-4512] Bugfix: Use empty PATH if PATH is nil
38
+
39
+
40
+ v2.3.8 (2014-02-14)
41
+ -------------------
42
+ ### Bug
43
+ - **[COOK-4287](https://tickets.opscode.com/browse/COOK-4287)** - Cleanup the Kitchen
44
+
45
+
46
+ v2.3.6
47
+ ------
48
+ * [COOK-4154] - Add chefspec matchers.rb file to apt cookbook
49
+ * [COOK-4102] - Only index created repository
50
+
51
+
52
+ v2.3.6
53
+ ------
54
+ * [COOK-4154] - Add chefspec matchers.rb file to apt cookbook
55
+ * [COOK-4102] - Only index created repository
56
+
57
+
58
+ v2.3.4
59
+ ------
60
+ No change. Version bump for toolchain sanity
61
+
62
+
63
+ v2.3.2
64
+ ------
65
+ - [COOK-3905] apt-get-update-periodic: configuration for the update period
66
+ - Updating style for rubocops
67
+ - Updating test-kitchen harness
68
+
69
+
70
+ v2.3.0
71
+ ------
72
+ ### Bug
73
+ - **[COOK-3812](https://tickets.opscode.com/browse/COOK-3812)** - Add a way to bypass the apt existence check
74
+
75
+ ### Improvement
76
+ - **[COOK-3567](https://tickets.opscode.com/browse/COOK-3567)** - Allow users to bypass apt-cache via attributes
77
+
78
+
79
+ v2.2.1
80
+ ------
81
+ ### Improvement
82
+ - **[COOK-664](https://tickets.opscode.com/browse/COOK-664)** - Check platform before running apt-specific commands
83
+
84
+
85
+ v2.2.0
86
+ ------
87
+ ### Bug
88
+ - **[COOK-3707](https://tickets.opscode.com/browse/COOK-3707)** - multiple nics confuse apt::cacher-client
89
+
90
+ v2.1.2
91
+ ------
92
+ ### Improvement
93
+ - **[COOK-3551](https://tickets.opscode.com/browse/COOK-3551)** - Allow user to set up a trusted APT repository
94
+
95
+ v2.1.1
96
+ ------
97
+ ### Bug
98
+ - **[COOK-1856](https://tickets.opscode.com/browse/COOK-1856)** - Match GPG keys without case sensitivity
99
+
100
+ v2.1.0
101
+ ------
102
+ - [COOK-3426]: cacher-ng fails with restrict_environment set to true
103
+ - [COOK-2859]: cacher-client executes out of order
104
+ - [COOK-3052]: Long GPG keys are downloaded on every run
105
+ - [COOK-1856]: apt cookbook should match keys without case sensitivity
106
+ - [COOK-3255]: Attribute name incorrect in README
107
+ - [COOK-3225]: Call use_inline_resources only if defined
108
+ - [COOK-3386]: Cache dir for apt-cacher-ng
109
+ - [COOK-3291]: apt_repository: enable usage of a keyserver on port 80
110
+ - Greatly expanded test coverage with ChefSpec and Test-Kitchen
111
+
112
+ v2.0.0
113
+ ------
114
+ ### Bug
115
+
116
+ - [COOK-2258]: apt: LWRP results in error under why-run mode in apt 1.9.0 cookbook
117
+
118
+ v1.10.0
119
+ -------
120
+ ### Improvement
121
+
122
+ - [COOK-2885]: Improvements for apt cache server search
123
+
124
+ ### Bug
125
+
126
+ - [COOK-2441]: Apt recipe broken in new chef version
127
+ - [COOK-2660]: Create Debian 6.0 "squeeze" specific template for
128
+ apt-cacher-ng
129
+
130
+ v1.9.2
131
+ ------
132
+ - [COOK-2631] - Create Ubuntu 10.04 specific template for apt-cacher-ng
133
+
134
+ v1.9.0
135
+ ------
136
+ - [COOK-2185] - Proxy for apt-key
137
+ - [COOK-2338] - Support pinning by glob() or regexp
138
+
139
+ v1.8.4
140
+ ------
141
+ - [COOK-2171] - Update README to clarify required Chef version: 10.18.0
142
+ or higher.
143
+
144
+ v1.8.2
145
+ ------
146
+ - [COOK-2112] - need [] around "arch" in sources.list entries
147
+ - [COOK-2171] - fixes a regression in the notification
148
+
149
+ v1.8.0
150
+ ------
151
+ - [COOK-2143] - Allow for a custom cacher-ng port
152
+ - [COOK-2171] - On `apt_repository.run_action(:add)` the source file
153
+ is not created.
154
+ - [COOK-2184] - apt::cacher-ng, use `cacher_port` attribute in
155
+ acng.conf
156
+
157
+ v1.7.0
158
+ ------
159
+ - [COOK-2082] - add "arch" parameter to apt_repository LWRP
160
+
161
+ v1.6.0
162
+ ------
163
+ - [COOK-1893] - `apt_preference` use "`package_name`" resource instead of "name"
164
+ - [COOK-1894] - change filename for sources.list.d files
165
+ - [COOK-1914] - Wrong dir permissions for /etc/apt/preferences.d/
166
+ - [COOK-1942] - README.md has wrong name for the keyserver attribute
167
+ - [COOK-2019] - create 01proxy before any other apt-get updates get executed
168
+
169
+ v1.5.2
170
+ ------
171
+ - [COOK-1682] - use template instead of file resource in apt::cacher-client
172
+ - [COOK-1875] - cacher-client should be Environment-aware
173
+
174
+ V1.5.0
175
+ ------
176
+ - [COOK-1500] - Avoid triggering apt-get update
177
+ - [COOK-1548] - Add execute commands for autoclean and autoremove
178
+ - [COOK-1591] - Setting up the apt proxy should leave https
179
+ connections direct
180
+ - [COOK-1596] - execute[apt-get-update-periodic] never runs
181
+ - [COOK-1762] - create /etc/apt/preferences.d directory
182
+ - [COOK-1776] - apt key check isn't idempotent
183
+
184
+ v1.4.8
185
+ ------
186
+ * Adds test-kitchen support
187
+ - [COOK-1435] - repository lwrp is not idempotent with http key
188
+
189
+ v1.4.6
190
+ ------
191
+ - [COOK-1530] - apt_repository isn't aware of update-success-stamp
192
+ file (also reverts COOK-1382 patch).
193
+
194
+ v1.4.4
195
+ ------
196
+ - [COOK-1229] - Allow cacher IP to be set manually in non-Chef Solo
197
+ environments
198
+ - [COOK-1530] - Immediately update apt-cache when sources.list file is dropped off
199
+
200
+ v1.4.2
201
+ ------
202
+ - [COOK-1155] - LWRP for apt pinning
203
+
204
+ v1.4.0
205
+ ------
206
+ - [COOK-889] - overwrite existing repo source files
207
+ - [COOK-921] - optionally use cookbook\_file or remote\_file for key
208
+ - [COOK-1032] - fixes problem with apt repository key installation