chef-dk 2.3.4 → 2.4.17
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.
- checksums.yaml +4 -4
- data/Gemfile +22 -18
- data/Gemfile.lock +184 -254
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/acceptance/Gemfile.lock +27 -32
- data/lib/chef-dk/chef_server_api_multi.rb +73 -0
- data/lib/chef-dk/command/update.rb +5 -12
- data/lib/chef-dk/configurable.rb +19 -0
- data/lib/chef-dk/cookbook_omnifetch.rb +1 -0
- data/lib/chef-dk/exceptions.rb +11 -0
- data/lib/chef-dk/generator.rb +1 -1
- data/lib/chef-dk/policyfile/attribute_merge_checker.rb +110 -0
- data/lib/chef-dk/policyfile/chef_server_cookbook_source.rb +5 -4
- data/lib/chef-dk/policyfile/chef_server_lock_fetcher.rb +164 -0
- data/lib/chef-dk/policyfile/cookbook_location_specification.rb +3 -3
- data/lib/chef-dk/policyfile/dsl.rb +16 -0
- data/lib/chef-dk/policyfile/included_policies_cookbook_source.rb +156 -0
- data/lib/chef-dk/policyfile/local_lock_fetcher.rb +122 -0
- data/lib/chef-dk/policyfile/lock_applier.rb +80 -0
- data/lib/chef-dk/policyfile/null_cookbook_source.rb +4 -0
- data/lib/chef-dk/policyfile/policyfile_location_specification.rb +122 -0
- data/lib/chef-dk/policyfile_compiler.rb +129 -16
- data/lib/chef-dk/policyfile_lock.rb +30 -0
- data/lib/chef-dk/policyfile_services/install.rb +7 -1
- data/lib/chef-dk/policyfile_services/update_attributes.rb +10 -2
- data/lib/chef-dk/skeletons/code_generator/templates/default/recipe_spec.rb.erb +14 -1
- data/lib/chef-dk/version.rb +1 -1
- data/omnibus_overrides.rb +6 -6
- data/spec/unit/chef_server_api_multi_spec.rb +120 -0
- data/spec/unit/command/update_spec.rb +3 -3
- data/spec/unit/configurable_spec.rb +27 -0
- data/spec/unit/policyfile/attribute_merge_checker_spec.rb +80 -0
- data/spec/unit/policyfile/chef_server_lock_fetcher_spec.rb +161 -0
- data/spec/unit/policyfile/cookbook_location_specification_spec.rb +48 -0
- data/spec/unit/policyfile/included_policies_cookbook_source_spec.rb +242 -0
- data/spec/unit/policyfile/local_lock_fetcher_spec.rb +161 -0
- data/spec/unit/policyfile/lock_applier_spec.rb +100 -0
- data/spec/unit/policyfile_demands_spec.rb +1 -1
- data/spec/unit/policyfile_includes_dsl_spec.rb +159 -0
- data/spec/unit/policyfile_includes_spec.rb +720 -0
- data/spec/unit/policyfile_install_with_includes_spec.rb +232 -0
- data/spec/unit/policyfile_lock_build_spec.rb +11 -2
- data/spec/unit/policyfile_services/update_attributes_spec.rb +13 -0
- metadata +28 -3
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# -*- coding: UTF-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Copyright:: Copyright (c) 2017 Chef Software Inc.
|
|
4
|
+
# License:: Apache License, Version 2.0
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
require "spec_helper"
|
|
20
|
+
require "chef-dk/policyfile_compiler"
|
|
21
|
+
require "chef-dk/policyfile_lock.rb"
|
|
22
|
+
|
|
23
|
+
describe ChefDK::PolicyfileLock, "installing cookbooks from included policies" do
|
|
24
|
+
|
|
25
|
+
let(:run_list) { ["local::default"] }
|
|
26
|
+
|
|
27
|
+
let(:default_source) { [:community] }
|
|
28
|
+
|
|
29
|
+
let(:external_cookbook_universe) do
|
|
30
|
+
{
|
|
31
|
+
"cookbookA" => {
|
|
32
|
+
"1.0.0" => [ ],
|
|
33
|
+
"2.0.0" => [ ["cookbookB", "= 2.0.0" ]],
|
|
34
|
+
},
|
|
35
|
+
"cookbookB" => {
|
|
36
|
+
"1.0.0" => [ ],
|
|
37
|
+
"2.0.0" => [ ],
|
|
38
|
+
},
|
|
39
|
+
"cookbookC" => {
|
|
40
|
+
"1.0.0" => [ ],
|
|
41
|
+
"2.0.0" => [ ],
|
|
42
|
+
},
|
|
43
|
+
"local" => {
|
|
44
|
+
"1.0.0" => [ ["cookbookC", "= 1.0.0" ] ],
|
|
45
|
+
},
|
|
46
|
+
"local_easy" => {
|
|
47
|
+
"1.0.0" => [ ["cookbookC", "= 2.0.0" ] ],
|
|
48
|
+
},
|
|
49
|
+
}
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
let(:included_policy_cookbook_universe) { external_cookbook_universe }
|
|
53
|
+
|
|
54
|
+
let(:included_policy_default_attributes) { {} }
|
|
55
|
+
let(:included_policy_override_attributes) { {} }
|
|
56
|
+
let(:included_policy_expanded_named_runlist) { nil }
|
|
57
|
+
let(:included_policy_expanded_runlist) { ["recipe[cookbookA::default]"] }
|
|
58
|
+
let(:included_policy_cookbooks) do
|
|
59
|
+
[
|
|
60
|
+
{
|
|
61
|
+
name: "cookbookA",
|
|
62
|
+
version: "2.0.0",
|
|
63
|
+
},
|
|
64
|
+
# We need to manually specify the dependencies of cookbookA
|
|
65
|
+
{
|
|
66
|
+
name: "cookbookB",
|
|
67
|
+
version: "2.0.0",
|
|
68
|
+
},
|
|
69
|
+
]
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
let(:included_policy_source_options) do
|
|
73
|
+
{
|
|
74
|
+
"cookbookA" => {
|
|
75
|
+
"2.0.0" => { artifactserver: "https://supermarket.example/c/cookbookA/2.0.0/download", version: "2.0.0", from_included_policy: "withavalue" },
|
|
76
|
+
},
|
|
77
|
+
"cookbookB" => {
|
|
78
|
+
"2.0.0" => { artifactserver: "https://supermarket.example/c/cookbookB/2.0.0/download", version: "2.0.0", from_included_policy: "withavalue" },
|
|
79
|
+
},
|
|
80
|
+
}
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
let(:included_policy_lock_data) do
|
|
84
|
+
cookbook_locks = included_policy_cookbooks.inject({}) do |acc, cookbook_info|
|
|
85
|
+
acc[cookbook_info[:name]] = {
|
|
86
|
+
"version" => cookbook_info[:version],
|
|
87
|
+
"identifier" => "identifier",
|
|
88
|
+
"dotted_decimal_identifier" => "dotted_decimal_identifier",
|
|
89
|
+
"cache_key" => "#{cookbook_info[:name]}-#{cookbook_info[:version]}",
|
|
90
|
+
"origin" => "uri",
|
|
91
|
+
"source_options" => included_policy_source_options[cookbook_info[:name]][cookbook_info[:version]],
|
|
92
|
+
}
|
|
93
|
+
acc
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
solution_dependencies_lock = included_policy_cookbooks.map do |cookbook_info|
|
|
97
|
+
[cookbook_info[:name], cookbook_info[:version]]
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
solution_dependencies_cookbooks = included_policy_cookbooks.inject({}) do |acc, cookbook_info|
|
|
101
|
+
acc["#{cookbook_info[:name]} (#{cookbook_info[:version]})"] = included_policy_cookbook_universe[cookbook_info[:name]][cookbook_info[:version]]
|
|
102
|
+
acc
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
{
|
|
106
|
+
"name" => "included_policyfile",
|
|
107
|
+
"revision_id" => "myrevisionid",
|
|
108
|
+
"run_list" => included_policy_expanded_runlist,
|
|
109
|
+
"cookbook_locks" => cookbook_locks,
|
|
110
|
+
"default_attributes" => included_policy_default_attributes,
|
|
111
|
+
"override_attributes" => included_policy_override_attributes,
|
|
112
|
+
"solution_dependencies" => {
|
|
113
|
+
"Policyfile" => solution_dependencies_lock,
|
|
114
|
+
"dependencies" => solution_dependencies_cookbooks,
|
|
115
|
+
},
|
|
116
|
+
}.tap do |core|
|
|
117
|
+
core["named_run_lists"] = included_policy_expanded_named_runlist if included_policy_expanded_named_runlist
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
let(:lock_source_options) { { :path => "somelocation" } }
|
|
122
|
+
|
|
123
|
+
let(:included_policy_lock_name) { "included" }
|
|
124
|
+
|
|
125
|
+
let(:included_policy_fetcher) do
|
|
126
|
+
instance_double("ChefDK::Policyfile::LocalLockFetcher").tap do |double|
|
|
127
|
+
allow(double).to receive(:lock_data).and_return(included_policy_lock_data)
|
|
128
|
+
allow(double).to receive(:valid?).and_return(true)
|
|
129
|
+
allow(double).to receive(:errors).and_return([])
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
let(:default_source_obj) do
|
|
134
|
+
instance_double("ChefDK::Policyfile::CommunityCookbookSource")
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
let(:policyfile) do
|
|
138
|
+
policyfile = ChefDK::PolicyfileCompiler.new.build do |p|
|
|
139
|
+
p.run_list(*run_list)
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
allow(policyfile.dsl).to receive(:default_source).and_return([default_source_obj])
|
|
143
|
+
|
|
144
|
+
allow(default_source_obj).to receive(:universe_graph).
|
|
145
|
+
and_return(external_cookbook_universe)
|
|
146
|
+
|
|
147
|
+
allow(default_source_obj).to receive(:null?).and_return(false)
|
|
148
|
+
allow(default_source_obj).to receive(:preferred_cookbooks).and_return([])
|
|
149
|
+
|
|
150
|
+
allow(policyfile).to receive(:included_policies).and_return([included_policy_lock_spec])
|
|
151
|
+
|
|
152
|
+
policyfile
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
before do
|
|
156
|
+
|
|
157
|
+
allow(default_source_obj).to receive(:preferred_source_for?).and_return(false)
|
|
158
|
+
|
|
159
|
+
allow(default_source_obj).to receive(:source_options_for) do |cookbook_name, version|
|
|
160
|
+
{ artifactserver: "https://supermarket.example/c/#{cookbook_name}/#{version}/download", version: version }
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
allow(ChefDK::Policyfile::CookbookLocationSpecification).to receive(:new) do |cookbook_name, version_constraint, source_opts, storage_config|
|
|
164
|
+
double = instance_double("ChefDK::Policyfile::CookbookLocationSpecification",
|
|
165
|
+
name: cookbook_name,
|
|
166
|
+
version_constraint: Semverse::Constraint.new(version_constraint),
|
|
167
|
+
ensure_cached: nil,
|
|
168
|
+
to_s: "#{cookbook_name} #{version_constraint}")
|
|
169
|
+
allow(double).to receive(:cookbook_has_recipe?).and_return(true)
|
|
170
|
+
allow(double).to receive(:installed?).and_return(true)
|
|
171
|
+
allow(double).to receive(:mirrors_canonical_upstream?).and_return(true)
|
|
172
|
+
allow(double).to receive(:cache_key).and_return("#{cookbook_name}-#{version_constraint}-#{source_opts}")
|
|
173
|
+
allow(double).to receive(:uri).and_return("uri://#{cookbook_name}-#{version_constraint}-#{source_opts}")
|
|
174
|
+
allow(double).to receive(:source_options_for_lock).and_return(source_opts)
|
|
175
|
+
double
|
|
176
|
+
end
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
context "when a policy is included" do
|
|
180
|
+
let(:included_policy_lock_spec) do
|
|
181
|
+
ChefDK::Policyfile::PolicyfileLocationSpecification.new(included_policy_lock_name, lock_source_options, nil).tap do |spec|
|
|
182
|
+
allow(spec).to receive(:valid?).and_return(true)
|
|
183
|
+
allow(spec).to receive(:fetcher).and_return(included_policy_fetcher)
|
|
184
|
+
allow(spec).to receive(:source_options_for_lock).and_return(lock_source_options)
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
before do
|
|
189
|
+
policyfile.install
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
it "maintains the correct source locations for cookbooks from the included policy" do
|
|
193
|
+
expect(policyfile.lock.cookbook_locks["cookbookA"].source_options).to eq(included_policy_source_options["cookbookA"]["2.0.0"])
|
|
194
|
+
expect(policyfile.lock.cookbook_locks["cookbookB"].source_options).to eq(included_policy_source_options["cookbookB"]["2.0.0"])
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
it "maintains the correct source locations for cookbooks from the current policy" do
|
|
198
|
+
expect(policyfile.lock.cookbook_locks["local"].source_options).to eq(default_source_obj.source_options_for("local", "1.0.0"))
|
|
199
|
+
expect(policyfile.lock.cookbook_locks["cookbookC"].source_options).to eq(default_source_obj.source_options_for("cookbookC", "1.0.0"))
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
it "maintains identifiers for remote cookbooks" do
|
|
203
|
+
allow(ChefDK::Policyfile::CachedCookbook).to receive(:new) do |name, storage_config|
|
|
204
|
+
mock = ChefDK::Policyfile::CachedCookbook.allocate
|
|
205
|
+
mock.send(:initialize, name, storage_config)
|
|
206
|
+
allow(mock).to receive(:installed?).and_return(true)
|
|
207
|
+
allow(mock).to receive(:validate!)
|
|
208
|
+
allow(mock).to receive(:cookbook_version) do
|
|
209
|
+
instance_double("Chef::CookbookVersion",
|
|
210
|
+
version: mock.source_options[:version],
|
|
211
|
+
manifest_records_by_path: [])
|
|
212
|
+
end
|
|
213
|
+
mock
|
|
214
|
+
end
|
|
215
|
+
expect(policyfile.lock.to_lock["cookbook_locks"]["cookbookA"]["source_options"]).to eq(included_policy_source_options["cookbookA"]["2.0.0"])
|
|
216
|
+
expect(policyfile.lock.to_lock["cookbook_locks"]["cookbookB"]["source_options"]).to eq(included_policy_source_options["cookbookB"]["2.0.0"])
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
it "emits the included policy in the lock file" do
|
|
220
|
+
lock = policyfile.lock
|
|
221
|
+
allow(lock).to receive(:cookbook_locks_for_lockfile).and_return({})
|
|
222
|
+
expect(lock.to_lock["included_policy_locks"]).to eq(
|
|
223
|
+
[
|
|
224
|
+
{
|
|
225
|
+
"name" => included_policy_lock_name,
|
|
226
|
+
"revision_id" => "myrevisionid",
|
|
227
|
+
"source_options" => lock_source_options,
|
|
228
|
+
},
|
|
229
|
+
])
|
|
230
|
+
end
|
|
231
|
+
end
|
|
232
|
+
end
|
|
@@ -238,6 +238,7 @@ REVISION_STRING
|
|
|
238
238
|
"override_attributes" => {},
|
|
239
239
|
|
|
240
240
|
"solution_dependencies" => { "Policyfile" => [], "dependencies" => {} },
|
|
241
|
+
"included_policy_locks" => [],
|
|
241
242
|
}
|
|
242
243
|
end
|
|
243
244
|
|
|
@@ -334,6 +335,7 @@ REVISION_STRING
|
|
|
334
335
|
"override_attributes" => { "foo2" => "baz" },
|
|
335
336
|
|
|
336
337
|
"solution_dependencies" => { "Policyfile" => [], "dependencies" => {} },
|
|
338
|
+
"included_policy_locks" => [],
|
|
337
339
|
}
|
|
338
340
|
end
|
|
339
341
|
|
|
@@ -425,6 +427,7 @@ REVISION_STRING
|
|
|
425
427
|
"override_attributes" => {},
|
|
426
428
|
|
|
427
429
|
"solution_dependencies" => { "Policyfile" => [], "dependencies" => {} },
|
|
430
|
+
"included_policy_locks" => [],
|
|
428
431
|
}
|
|
429
432
|
end
|
|
430
433
|
|
|
@@ -535,6 +538,7 @@ REVISION_STRING
|
|
|
535
538
|
"override_attributes" => {},
|
|
536
539
|
|
|
537
540
|
"solution_dependencies" => { "Policyfile" => [], "dependencies" => {} },
|
|
541
|
+
"included_policy_locks" => [],
|
|
538
542
|
}
|
|
539
543
|
end
|
|
540
544
|
|
|
@@ -680,7 +684,7 @@ REVISION_STRING
|
|
|
680
684
|
"override_attributes" => {},
|
|
681
685
|
|
|
682
686
|
"solution_dependencies" => { "Policyfile" => [], "dependencies" => {} },
|
|
683
|
-
|
|
687
|
+
"included_policy_locks" => [],
|
|
684
688
|
}
|
|
685
689
|
end
|
|
686
690
|
|
|
@@ -772,6 +776,7 @@ REVISION_STRING
|
|
|
772
776
|
"Policyfile" => [],
|
|
773
777
|
"dependencies" => { "foo (1.0.0)" => [] },
|
|
774
778
|
},
|
|
779
|
+
"included_policy_locks" => [],
|
|
775
780
|
}
|
|
776
781
|
end
|
|
777
782
|
|
|
@@ -841,6 +846,7 @@ REVISION_STRING
|
|
|
841
846
|
"override_attributes" => {},
|
|
842
847
|
|
|
843
848
|
"solution_dependencies" => { "Policyfile" => [], "dependencies" => {} },
|
|
849
|
+
"included_policy_locks" => [],
|
|
844
850
|
}
|
|
845
851
|
end
|
|
846
852
|
|
|
@@ -933,7 +939,9 @@ REVISION_STRING
|
|
|
933
939
|
all_cookbook_location_specs: { "foo" => cached_location_spec, "bar" => local_location_spec },
|
|
934
940
|
solution_dependencies: policyfile_solution_dependencies,
|
|
935
941
|
default_attributes: policyfile_default_attrs,
|
|
936
|
-
override_attributes: policyfile_override_attrs
|
|
942
|
+
override_attributes: policyfile_override_attrs,
|
|
943
|
+
included_policies: []
|
|
944
|
+
)
|
|
937
945
|
end
|
|
938
946
|
|
|
939
947
|
let(:policyfile_lock) do
|
|
@@ -1019,6 +1027,7 @@ REVISION_STRING
|
|
|
1019
1027
|
"Policyfile" => [ [ "foo", "~> 1.0" ] ],
|
|
1020
1028
|
"dependencies" => { "foo (1.0.0)" => [], "bar (0.1.0)" => [] },
|
|
1021
1029
|
},
|
|
1030
|
+
"included_policy_locks" => [],
|
|
1022
1031
|
}
|
|
1023
1032
|
end
|
|
1024
1033
|
|
|
@@ -134,6 +134,7 @@ E
|
|
|
134
134
|
"Policyfile" => [["local-cookbook", ">= 0.0.0"]],
|
|
135
135
|
"dependencies" => { "local-cookbook (2.3.4)" => [] },
|
|
136
136
|
},
|
|
137
|
+
"included_policy_locks" => [],
|
|
137
138
|
}
|
|
138
139
|
end
|
|
139
140
|
|
|
@@ -168,6 +169,18 @@ E
|
|
|
168
169
|
expect(ui.output).to include(message)
|
|
169
170
|
end
|
|
170
171
|
|
|
172
|
+
context "when a policyfile is included" do
|
|
173
|
+
let(:lock_applier) { instance_double("ChefDK::Policyfile::LockApplier") }
|
|
174
|
+
|
|
175
|
+
it "locks the included policyfile" do
|
|
176
|
+
expect(ChefDK::Policyfile::LockApplier).to receive(:new).with(
|
|
177
|
+
update_attrs_service.policyfile_lock, update_attrs_service.policyfile_compiler).and_return(lock_applier)
|
|
178
|
+
expect(lock_applier).not_to receive(:with_unlocked_policies)
|
|
179
|
+
expect(lock_applier).to receive(:apply!)
|
|
180
|
+
|
|
181
|
+
update_attrs_service.run
|
|
182
|
+
end
|
|
183
|
+
end
|
|
171
184
|
end
|
|
172
185
|
|
|
173
186
|
context "when the Policyfile.rb has different attributes than the lockfile" do
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: chef-dk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.4.17
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daniel DeLeo
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2017-
|
|
13
|
+
date: 2017-11-28 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: mixlib-cli
|
|
@@ -262,6 +262,7 @@ files:
|
|
|
262
262
|
- lib/chef-dk/authenticated_http.rb
|
|
263
263
|
- lib/chef-dk/builtin_commands.rb
|
|
264
264
|
- lib/chef-dk/chef_runner.rb
|
|
265
|
+
- lib/chef-dk/chef_server_api_multi.rb
|
|
265
266
|
- lib/chef-dk/cli.rb
|
|
266
267
|
- lib/chef-dk/command/base.rb
|
|
267
268
|
- lib/chef-dk/command/clean_policy_cookbooks.rb
|
|
@@ -317,8 +318,10 @@ files:
|
|
|
317
318
|
- lib/chef-dk/helpers.rb
|
|
318
319
|
- lib/chef-dk/pager.rb
|
|
319
320
|
- lib/chef-dk/policyfile/artifactory_cookbook_source.rb
|
|
321
|
+
- lib/chef-dk/policyfile/attribute_merge_checker.rb
|
|
320
322
|
- lib/chef-dk/policyfile/chef_repo_cookbook_source.rb
|
|
321
323
|
- lib/chef-dk/policyfile/chef_server_cookbook_source.rb
|
|
324
|
+
- lib/chef-dk/policyfile/chef_server_lock_fetcher.rb
|
|
322
325
|
- lib/chef-dk/policyfile/community_cookbook_source.rb
|
|
323
326
|
- lib/chef-dk/policyfile/comparison_base.rb
|
|
324
327
|
- lib/chef-dk/policyfile/cookbook_location_specification.rb
|
|
@@ -327,8 +330,12 @@ files:
|
|
|
327
330
|
- lib/chef-dk/policyfile/delivery_supermarket_source.rb
|
|
328
331
|
- lib/chef-dk/policyfile/differ.rb
|
|
329
332
|
- lib/chef-dk/policyfile/dsl.rb
|
|
333
|
+
- lib/chef-dk/policyfile/included_policies_cookbook_source.rb
|
|
330
334
|
- lib/chef-dk/policyfile/lister.rb
|
|
335
|
+
- lib/chef-dk/policyfile/local_lock_fetcher.rb
|
|
336
|
+
- lib/chef-dk/policyfile/lock_applier.rb
|
|
331
337
|
- lib/chef-dk/policyfile/null_cookbook_source.rb
|
|
338
|
+
- lib/chef-dk/policyfile/policyfile_location_specification.rb
|
|
332
339
|
- lib/chef-dk/policyfile/read_cookbook_for_compat_mode_upload.rb
|
|
333
340
|
- lib/chef-dk/policyfile/reports/install.rb
|
|
334
341
|
- lib/chef-dk/policyfile/reports/table_printer.rb
|
|
@@ -430,6 +437,7 @@ files:
|
|
|
430
437
|
- spec/spec_helper.rb
|
|
431
438
|
- spec/test_helpers.rb
|
|
432
439
|
- spec/unit/chef_runner_spec.rb
|
|
440
|
+
- spec/unit/chef_server_api_multi_spec.rb
|
|
433
441
|
- spec/unit/cli_spec.rb
|
|
434
442
|
- spec/unit/command/base_spec.rb
|
|
435
443
|
- spec/unit/command/clean_policy_cookbooks_spec.rb
|
|
@@ -562,15 +570,20 @@ files:
|
|
|
562
570
|
- spec/unit/generator_spec.rb
|
|
563
571
|
- spec/unit/pager_spec.rb
|
|
564
572
|
- spec/unit/policyfile/artifactory_cookbook_source_spec.rb
|
|
573
|
+
- spec/unit/policyfile/attribute_merge_checker_spec.rb
|
|
565
574
|
- spec/unit/policyfile/chef_repo_cookbook_source_spec.rb
|
|
566
575
|
- spec/unit/policyfile/chef_server_cookbook_source_spec.rb
|
|
576
|
+
- spec/unit/policyfile/chef_server_lock_fetcher_spec.rb
|
|
567
577
|
- spec/unit/policyfile/community_cookbook_source_spec.rb
|
|
568
578
|
- spec/unit/policyfile/comparison_base_spec.rb
|
|
569
579
|
- spec/unit/policyfile/cookbook_location_specification_spec.rb
|
|
570
580
|
- spec/unit/policyfile/cookbook_locks_spec.rb
|
|
571
581
|
- spec/unit/policyfile/delivery_supermarket_source_spec.rb
|
|
572
582
|
- spec/unit/policyfile/differ_spec.rb
|
|
583
|
+
- spec/unit/policyfile/included_policies_cookbook_source_spec.rb
|
|
573
584
|
- spec/unit/policyfile/lister_spec.rb
|
|
585
|
+
- spec/unit/policyfile/local_lock_fetcher_spec.rb
|
|
586
|
+
- spec/unit/policyfile/lock_applier_spec.rb
|
|
574
587
|
- spec/unit/policyfile/null_cookbook_source_spec.rb
|
|
575
588
|
- spec/unit/policyfile/read_cookbook_for_compat_mode_upload_spec.rb
|
|
576
589
|
- spec/unit/policyfile/reports/install_spec.rb
|
|
@@ -583,6 +596,9 @@ files:
|
|
|
583
596
|
- spec/unit/policyfile/uploader_spec.rb
|
|
584
597
|
- spec/unit/policyfile_demands_spec.rb
|
|
585
598
|
- spec/unit/policyfile_evaluation_spec.rb
|
|
599
|
+
- spec/unit/policyfile_includes_dsl_spec.rb
|
|
600
|
+
- spec/unit/policyfile_includes_spec.rb
|
|
601
|
+
- spec/unit/policyfile_install_with_includes_spec.rb
|
|
586
602
|
- spec/unit/policyfile_lock_build_spec.rb
|
|
587
603
|
- spec/unit/policyfile_lock_install_spec.rb
|
|
588
604
|
- spec/unit/policyfile_lock_serialization_spec.rb
|
|
@@ -636,7 +652,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
636
652
|
version: '0'
|
|
637
653
|
requirements: []
|
|
638
654
|
rubyforge_project:
|
|
639
|
-
rubygems_version: 2.6.
|
|
655
|
+
rubygems_version: 2.6.14
|
|
640
656
|
signing_key:
|
|
641
657
|
specification_version: 4
|
|
642
658
|
summary: A streamlined development and deployment workflow for Chef platform.
|
|
@@ -651,6 +667,7 @@ test_files:
|
|
|
651
667
|
- spec/spec_helper.rb
|
|
652
668
|
- spec/test_helpers.rb
|
|
653
669
|
- spec/unit/chef_runner_spec.rb
|
|
670
|
+
- spec/unit/chef_server_api_multi_spec.rb
|
|
654
671
|
- spec/unit/cli_spec.rb
|
|
655
672
|
- spec/unit/command/base_spec.rb
|
|
656
673
|
- spec/unit/command/clean_policy_cookbooks_spec.rb
|
|
@@ -783,15 +800,20 @@ test_files:
|
|
|
783
800
|
- spec/unit/generator_spec.rb
|
|
784
801
|
- spec/unit/pager_spec.rb
|
|
785
802
|
- spec/unit/policyfile/artifactory_cookbook_source_spec.rb
|
|
803
|
+
- spec/unit/policyfile/attribute_merge_checker_spec.rb
|
|
786
804
|
- spec/unit/policyfile/chef_repo_cookbook_source_spec.rb
|
|
787
805
|
- spec/unit/policyfile/chef_server_cookbook_source_spec.rb
|
|
806
|
+
- spec/unit/policyfile/chef_server_lock_fetcher_spec.rb
|
|
788
807
|
- spec/unit/policyfile/community_cookbook_source_spec.rb
|
|
789
808
|
- spec/unit/policyfile/comparison_base_spec.rb
|
|
790
809
|
- spec/unit/policyfile/cookbook_location_specification_spec.rb
|
|
791
810
|
- spec/unit/policyfile/cookbook_locks_spec.rb
|
|
792
811
|
- spec/unit/policyfile/delivery_supermarket_source_spec.rb
|
|
793
812
|
- spec/unit/policyfile/differ_spec.rb
|
|
813
|
+
- spec/unit/policyfile/included_policies_cookbook_source_spec.rb
|
|
794
814
|
- spec/unit/policyfile/lister_spec.rb
|
|
815
|
+
- spec/unit/policyfile/local_lock_fetcher_spec.rb
|
|
816
|
+
- spec/unit/policyfile/lock_applier_spec.rb
|
|
795
817
|
- spec/unit/policyfile/null_cookbook_source_spec.rb
|
|
796
818
|
- spec/unit/policyfile/read_cookbook_for_compat_mode_upload_spec.rb
|
|
797
819
|
- spec/unit/policyfile/reports/install_spec.rb
|
|
@@ -804,6 +826,9 @@ test_files:
|
|
|
804
826
|
- spec/unit/policyfile/uploader_spec.rb
|
|
805
827
|
- spec/unit/policyfile_demands_spec.rb
|
|
806
828
|
- spec/unit/policyfile_evaluation_spec.rb
|
|
829
|
+
- spec/unit/policyfile_includes_dsl_spec.rb
|
|
830
|
+
- spec/unit/policyfile_includes_spec.rb
|
|
831
|
+
- spec/unit/policyfile_install_with_includes_spec.rb
|
|
807
832
|
- spec/unit/policyfile_lock_build_spec.rb
|
|
808
833
|
- spec/unit/policyfile_lock_install_spec.rb
|
|
809
834
|
- spec/unit/policyfile_lock_serialization_spec.rb
|