chef-dk 3.3.23 → 3.4.38
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 +7 -7
- data/Gemfile.lock +91 -82
- data/lib/chef-dk/cli.rb +13 -13
- data/lib/chef-dk/command/base.rb +8 -8
- data/lib/chef-dk/command/clean_policy_cookbooks.rb +10 -10
- data/lib/chef-dk/command/clean_policy_revisions.rb +9 -9
- data/lib/chef-dk/command/delete_policy.rb +9 -9
- data/lib/chef-dk/command/delete_policy_group.rb +9 -9
- data/lib/chef-dk/command/diff.rb +35 -35
- data/lib/chef-dk/command/export.rb +11 -11
- data/lib/chef-dk/command/generate.rb +3 -3
- data/lib/chef-dk/command/generator_commands.rb +24 -24
- data/lib/chef-dk/command/generator_commands/build_cookbook.rb +3 -3
- data/lib/chef-dk/command/generator_commands/chef_exts/generator_desc_resource.rb +1 -1
- data/lib/chef-dk/command/generator_commands/cookbook.rb +3 -3
- data/lib/chef-dk/command/generator_commands/cookbook_file.rb +3 -3
- data/lib/chef-dk/command/generator_commands/generator_generator.rb +5 -5
- data/lib/chef-dk/command/generator_commands/template.rb +3 -3
- data/lib/chef-dk/command/install.rb +11 -11
- data/lib/chef-dk/command/provision.rb +32 -32
- data/lib/chef-dk/command/push.rb +9 -9
- data/lib/chef-dk/command/push_archive.rb +9 -9
- data/lib/chef-dk/command/shell_init.rb +21 -21
- data/lib/chef-dk/command/show_policy.rb +11 -11
- data/lib/chef-dk/command/undelete.rb +17 -17
- data/lib/chef-dk/command/update.rb +12 -12
- data/lib/chef-dk/command/verify.rb +63 -63
- data/lib/chef-dk/component_test.rb +3 -3
- data/lib/chef-dk/exceptions.rb +5 -5
- data/lib/chef-dk/generator.rb +61 -61
- data/lib/chef-dk/helpers.rb +1 -1
- data/lib/chef-dk/policyfile/cookbook_location_specification.rb +1 -1
- data/lib/chef-dk/policyfile/cookbook_locks.rb +1 -1
- data/lib/chef-dk/policyfile/git_lock_fetcher.rb +7 -7
- data/lib/chef-dk/policyfile/policyfile_location_specification.rb +1 -1
- data/lib/chef-dk/policyfile/uploader.rb +4 -4
- data/lib/chef-dk/policyfile_compiler.rb +1 -1
- data/lib/chef-dk/policyfile_services/export_repo.rb +49 -49
- data/lib/chef-dk/policyfile_services/install.rb +3 -3
- data/lib/chef-dk/policyfile_services/push_archive.rb +5 -5
- data/lib/chef-dk/policyfile_services/rm_policy_group.rb +1 -1
- data/lib/chef-dk/policyfile_services/update_attributes.rb +2 -2
- data/lib/chef-dk/service_exception_inspectors/http.rb +9 -9
- data/lib/chef-dk/skeletons/code_generator/recipes/recipe.rb +6 -6
- data/lib/chef-dk/version.rb +1 -1
- data/lib/kitchen/provisioner/policyfile_zero.rb +9 -9
- data/omnibus_overrides.rb +1 -1
- data/spec/spec_helper.rb +3 -3
- data/spec/unit/cli_spec.rb +9 -9
- data/spec/unit/command/base_spec.rb +25 -25
- data/spec/unit/command/clean_policy_cookbooks_spec.rb +6 -6
- data/spec/unit/command/clean_policy_revisions_spec.rb +6 -6
- data/spec/unit/command/delete_policy_group_spec.rb +6 -6
- data/spec/unit/command/delete_policy_spec.rb +6 -6
- data/spec/unit/command/export_spec.rb +10 -10
- data/spec/unit/command/generate_spec.rb +5 -5
- data/spec/unit/command/generator_commands/build_cookbook_spec.rb +15 -15
- data/spec/unit/command/generator_commands/cookbook_spec.rb +174 -174
- data/spec/unit/command/generator_commands/generator_generator_spec.rb +5 -5
- data/spec/unit/command/generator_commands/policyfile_spec.rb +15 -15
- data/spec/unit/command/generator_commands/repo_spec.rb +16 -16
- data/spec/unit/command/install_spec.rb +15 -15
- data/spec/unit/command/provision_spec.rb +25 -25
- data/spec/unit/command/push_spec.rb +12 -12
- data/spec/unit/command/shell_init_spec.rb +59 -59
- data/spec/unit/command/show_policy_spec.rb +6 -6
- data/spec/unit/command/undelete_spec.rb +6 -6
- data/spec/unit/command/update_spec.rb +30 -30
- data/spec/unit/fixtures/command/cli_test_command.rb +1 -1
- data/spec/unit/policyfile/chef_server_lock_fetcher_spec.rb +41 -41
- data/spec/unit/policyfile/comparison_base_spec.rb +38 -38
- data/spec/unit/policyfile/cookbook_locks_spec.rb +3 -3
- data/spec/unit/policyfile/differ_spec.rb +361 -361
- data/spec/unit/policyfile/git_lock_fetcher_spec.rb +34 -34
- data/spec/unit/policyfile/included_policies_cookbook_source_spec.rb +6 -6
- data/spec/unit/policyfile/local_lock_fetcher_spec.rb +35 -35
- data/spec/unit/policyfile/lock_applier_spec.rb +6 -6
- data/spec/unit/policyfile/reports/upload_spec.rb +5 -5
- data/spec/unit/policyfile/uploader_spec.rb +27 -27
- data/spec/unit/policyfile_demands_spec.rb +84 -84
- data/spec/unit/policyfile_evaluation_spec.rb +14 -14
- data/spec/unit/policyfile_includes_spec.rb +1 -1
- data/spec/unit/policyfile_install_with_includes_spec.rb +3 -3
- data/spec/unit/policyfile_lock_build_spec.rb +58 -58
- data/spec/unit/policyfile_lock_validation_spec.rb +108 -108
- data/spec/unit/policyfile_services/clean_policies_spec.rb +12 -12
- data/spec/unit/policyfile_services/clean_policy_cookbooks_spec.rb +9 -9
- data/spec/unit/policyfile_services/export_repo_spec.rb +64 -64
- data/spec/unit/policyfile_services/install_spec.rb +4 -4
- data/spec/unit/policyfile_services/push_archive_spec.rb +41 -41
- data/spec/unit/policyfile_services/push_spec.rb +38 -38
- data/spec/unit/policyfile_services/rm_policy_group_spec.rb +12 -12
- data/spec/unit/policyfile_services/rm_policy_spec.rb +6 -6
- data/spec/unit/policyfile_services/show_policy_spec.rb +161 -161
- data/spec/unit/policyfile_services/undelete_spec.rb +13 -13
- data/spec/unit/policyfile_services/update_attributes_spec.rb +6 -6
- data/spec/unit/policyfile_services/update_spec.rb +7 -7
- data/spec/unit/service_exception_inspectors/http_spec.rb +12 -12
- metadata +2 -2
|
@@ -188,9 +188,9 @@ describe ChefDK::Command::ShowPolicy do
|
|
|
188
188
|
it "prints a debugging message and exits non-zero" do
|
|
189
189
|
expect(command.run([])).to eq(1)
|
|
190
190
|
|
|
191
|
-
expected_output =
|
|
192
|
-
Error: Failed to list policies
|
|
193
|
-
Reason: (StandardError) some operation failed
|
|
191
|
+
expected_output = <<~E
|
|
192
|
+
Error: Failed to list policies
|
|
193
|
+
Reason: (StandardError) some operation failed
|
|
194
194
|
|
|
195
195
|
E
|
|
196
196
|
|
|
@@ -203,9 +203,9 @@ E
|
|
|
203
203
|
|
|
204
204
|
command.run(%w{ -D })
|
|
205
205
|
|
|
206
|
-
expected_output =
|
|
207
|
-
Error: Failed to list policies
|
|
208
|
-
Reason: (StandardError) some operation failed
|
|
206
|
+
expected_output = <<~E
|
|
207
|
+
Error: Failed to list policies
|
|
208
|
+
Reason: (StandardError) some operation failed
|
|
209
209
|
|
|
210
210
|
|
|
211
211
|
E
|
|
@@ -196,9 +196,9 @@ describe ChefDK::Command::Undelete do
|
|
|
196
196
|
it "prints a debugging message and exits non-zero" do
|
|
197
197
|
expect(command.run(params)).to eq(1)
|
|
198
198
|
|
|
199
|
-
expected_output =
|
|
200
|
-
Error: Failed to undelete.
|
|
201
|
-
Reason: (StandardError) some operation failed
|
|
199
|
+
expected_output = <<~E
|
|
200
|
+
Error: Failed to undelete.
|
|
201
|
+
Reason: (StandardError) some operation failed
|
|
202
202
|
|
|
203
203
|
E
|
|
204
204
|
|
|
@@ -211,9 +211,9 @@ E
|
|
|
211
211
|
|
|
212
212
|
command.run(params + %w{ -D })
|
|
213
213
|
|
|
214
|
-
expected_output =
|
|
215
|
-
Error: Failed to undelete.
|
|
216
|
-
Reason: (StandardError) some operation failed
|
|
214
|
+
expected_output = <<~E
|
|
215
|
+
Error: Failed to undelete.
|
|
216
|
+
Reason: (StandardError) some operation failed
|
|
217
217
|
|
|
218
218
|
|
|
219
219
|
E
|
|
@@ -63,9 +63,9 @@ describe ChefDK::Command::Update do
|
|
|
63
63
|
end
|
|
64
64
|
|
|
65
65
|
it "loads the config from the given path" do
|
|
66
|
-
expect(Chef::WorkstationConfigLoader).to receive(:new)
|
|
67
|
-
with("~/.chef/alternate_config.rb")
|
|
68
|
-
and_return(chef_config_loader)
|
|
66
|
+
expect(Chef::WorkstationConfigLoader).to receive(:new)
|
|
67
|
+
.with("~/.chef/alternate_config.rb")
|
|
68
|
+
.and_return(chef_config_loader)
|
|
69
69
|
expect(chef_config_loader).to receive(:load)
|
|
70
70
|
expect(command.chef_config).to eq(Chef::Config)
|
|
71
71
|
end
|
|
@@ -81,9 +81,9 @@ describe ChefDK::Command::Update do
|
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
it "creates an attributes update service object" do
|
|
84
|
-
expect(ChefDK::PolicyfileServices::UpdateAttributes).to receive(:new)
|
|
85
|
-
with(policyfile: nil, ui: command.ui, root_dir: Dir.pwd, chef_config: anything)
|
|
86
|
-
and_return(update_attrs_service)
|
|
84
|
+
expect(ChefDK::PolicyfileServices::UpdateAttributes).to receive(:new)
|
|
85
|
+
.with(policyfile: nil, ui: command.ui, root_dir: Dir.pwd, chef_config: anything)
|
|
86
|
+
.and_return(update_attrs_service)
|
|
87
87
|
expect(command.attributes_updater).to eq(update_attrs_service)
|
|
88
88
|
end
|
|
89
89
|
end
|
|
@@ -95,9 +95,9 @@ describe ChefDK::Command::Update do
|
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
it "creates the installer service with a `nil` policyfile path" do
|
|
98
|
-
expect(ChefDK::PolicyfileServices::Install).to receive(:new)
|
|
99
|
-
with(policyfile: nil, ui: command.ui, root_dir: Dir.pwd, config: Chef::Config, overwrite: true)
|
|
100
|
-
and_return(install_service)
|
|
98
|
+
expect(ChefDK::PolicyfileServices::Install).to receive(:new)
|
|
99
|
+
.with(policyfile: nil, ui: command.ui, root_dir: Dir.pwd, config: Chef::Config, overwrite: true)
|
|
100
|
+
.and_return(install_service)
|
|
101
101
|
expect(command.installer).to eq(install_service)
|
|
102
102
|
end
|
|
103
103
|
|
|
@@ -112,9 +112,9 @@ describe ChefDK::Command::Update do
|
|
|
112
112
|
end
|
|
113
113
|
|
|
114
114
|
it "creates the installer service with the specified policyfile path" do
|
|
115
|
-
expect(ChefDK::PolicyfileServices::Install).to receive(:new)
|
|
116
|
-
with(policyfile: "MyPolicy.rb", ui: command.ui, root_dir: Dir.pwd, config: Chef::Config, overwrite: true)
|
|
117
|
-
and_return(install_service)
|
|
115
|
+
expect(ChefDK::PolicyfileServices::Install).to receive(:new)
|
|
116
|
+
.with(policyfile: "MyPolicy.rb", ui: command.ui, root_dir: Dir.pwd, config: Chef::Config, overwrite: true)
|
|
117
|
+
.and_return(install_service)
|
|
118
118
|
expect(command.installer).to eq(install_service)
|
|
119
119
|
end
|
|
120
120
|
|
|
@@ -132,9 +132,9 @@ describe ChefDK::Command::Update do
|
|
|
132
132
|
context "when the command is successful" do
|
|
133
133
|
before do
|
|
134
134
|
expect(install_service).to receive(:run)
|
|
135
|
-
expect(ChefDK::PolicyfileServices::UpdateAttributes).to receive(:new)
|
|
136
|
-
with(policyfile: nil, ui: command.ui, root_dir: Dir.pwd, chef_config: anything)
|
|
137
|
-
and_return(update_attrs_service)
|
|
135
|
+
expect(ChefDK::PolicyfileServices::UpdateAttributes).to receive(:new)
|
|
136
|
+
.with(policyfile: nil, ui: command.ui, root_dir: Dir.pwd, chef_config: anything)
|
|
137
|
+
.and_return(update_attrs_service)
|
|
138
138
|
expect(update_attrs_service).to receive(:run)
|
|
139
139
|
end
|
|
140
140
|
|
|
@@ -159,9 +159,9 @@ describe ChefDK::Command::Update do
|
|
|
159
159
|
|
|
160
160
|
before do
|
|
161
161
|
expect(install_service).to receive(:run).and_raise(exception)
|
|
162
|
-
expect(ChefDK::PolicyfileServices::UpdateAttributes).to receive(:new)
|
|
163
|
-
with(policyfile: nil, ui: command.ui, root_dir: Dir.pwd, chef_config: anything)
|
|
164
|
-
and_return(update_attrs_service)
|
|
162
|
+
expect(ChefDK::PolicyfileServices::UpdateAttributes).to receive(:new)
|
|
163
|
+
.with(policyfile: nil, ui: command.ui, root_dir: Dir.pwd, chef_config: anything)
|
|
164
|
+
.and_return(update_attrs_service)
|
|
165
165
|
expect(update_attrs_service).to receive(:run)
|
|
166
166
|
end
|
|
167
167
|
|
|
@@ -170,9 +170,9 @@ describe ChefDK::Command::Update do
|
|
|
170
170
|
end
|
|
171
171
|
|
|
172
172
|
it "displays the exception and cause" do
|
|
173
|
-
expected_error_text =
|
|
174
|
-
Error: install failed
|
|
175
|
-
Reason: (StandardError) some operation failed
|
|
173
|
+
expected_error_text = <<~E
|
|
174
|
+
Error: install failed
|
|
175
|
+
Reason: (StandardError) some operation failed
|
|
176
176
|
|
|
177
177
|
E
|
|
178
178
|
|
|
@@ -185,9 +185,9 @@ E
|
|
|
185
185
|
let(:params) { ["-D"] }
|
|
186
186
|
|
|
187
187
|
it "displays the exception and cause with backtrace" do
|
|
188
|
-
expected_error_text =
|
|
189
|
-
Error: install failed
|
|
190
|
-
Reason: (StandardError) some operation failed
|
|
188
|
+
expected_error_text = <<~E
|
|
189
|
+
Error: install failed
|
|
190
|
+
Reason: (StandardError) some operation failed
|
|
191
191
|
|
|
192
192
|
|
|
193
193
|
E
|
|
@@ -248,9 +248,9 @@ E
|
|
|
248
248
|
end
|
|
249
249
|
|
|
250
250
|
it "displays the exception and cause" do
|
|
251
|
-
expected_error_text =
|
|
252
|
-
Error: Failed to update Policyfile lock
|
|
253
|
-
Reason: (StandardError) some operation failed
|
|
251
|
+
expected_error_text = <<~E
|
|
252
|
+
Error: Failed to update Policyfile lock
|
|
253
|
+
Reason: (StandardError) some operation failed
|
|
254
254
|
|
|
255
255
|
E
|
|
256
256
|
|
|
@@ -263,9 +263,9 @@ E
|
|
|
263
263
|
let(:params) { ["-a", "-D"] }
|
|
264
264
|
|
|
265
265
|
it "displays the exception and cause with backtrace" do
|
|
266
|
-
expected_error_text =
|
|
267
|
-
Error: Failed to update Policyfile lock
|
|
268
|
-
Reason: (StandardError) some operation failed
|
|
266
|
+
expected_error_text = <<~E
|
|
267
|
+
Error: Failed to update Policyfile lock
|
|
268
|
+
Reason: (StandardError) some operation failed
|
|
269
269
|
|
|
270
270
|
|
|
271
271
|
E
|
|
@@ -23,42 +23,42 @@ describe ChefDK::Policyfile::ChefServerLockFetcher do
|
|
|
23
23
|
let(:revision_id) { "6fe753184c8946052d3231bb4212116df28d89a3a5f7ae52832ad408419dd5eb" }
|
|
24
24
|
let(:identifier) { "fab501cfaf747901bd82c1bc706beae7dc3a350c" }
|
|
25
25
|
let(:minimal_lockfile_json) do
|
|
26
|
-
|
|
27
|
-
{
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
26
|
+
<<~E
|
|
27
|
+
{
|
|
28
|
+
"revision_id": "#{revision_id}",
|
|
29
|
+
"name": "install-example",
|
|
30
|
+
"run_list": [
|
|
31
|
+
"recipe[local-cookbook::default]"
|
|
32
|
+
],
|
|
33
|
+
"cookbook_locks": {
|
|
34
|
+
"local-cookbook": {
|
|
35
|
+
"version": "2.3.4",
|
|
36
|
+
"identifier": "#{identifier}",
|
|
37
|
+
"dotted_decimal_identifier": "70567763561641081.489844270461035.258281553147148",
|
|
38
|
+
"source": "cookbooks/local-cookbook",
|
|
39
|
+
"cache_key": null,
|
|
40
|
+
"scm_info": null,
|
|
41
|
+
"source_options": {
|
|
42
|
+
"path": "cookbooks/local-cookbook"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"default_attributes": {},
|
|
47
|
+
"override_attributes": {},
|
|
48
|
+
"solution_dependencies": {
|
|
49
|
+
"Policyfile": [
|
|
50
|
+
[
|
|
51
|
+
"local-cookbook",
|
|
52
|
+
">= 0.0.0"
|
|
53
|
+
]
|
|
54
|
+
],
|
|
55
|
+
"dependencies": {
|
|
56
|
+
"local-cookbook (2.3.4)": [
|
|
57
|
+
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
43
61
|
}
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
"default_attributes": {},
|
|
47
|
-
"override_attributes": {},
|
|
48
|
-
"solution_dependencies": {
|
|
49
|
-
"Policyfile": [
|
|
50
|
-
[
|
|
51
|
-
"local-cookbook",
|
|
52
|
-
">= 0.0.0"
|
|
53
|
-
]
|
|
54
|
-
],
|
|
55
|
-
"dependencies": {
|
|
56
|
-
"local-cookbook (2.3.4)": [
|
|
57
|
-
|
|
58
|
-
]
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
62
|
E
|
|
63
63
|
end
|
|
64
64
|
|
|
@@ -104,8 +104,8 @@ E
|
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
it "calls the chef server to get the policy" do
|
|
107
|
-
expect(http_client).to receive(:get).with("policies/#{policy_name}/revisions/#{policy_revision_id}")
|
|
108
|
-
and_return(minimal_lockfile)
|
|
107
|
+
expect(http_client).to receive(:get).with("policies/#{policy_name}/revisions/#{policy_revision_id}")
|
|
108
|
+
.and_return(minimal_lockfile)
|
|
109
109
|
expect(fetcher.lock_data).to eq(minimal_lockfile_modified)
|
|
110
110
|
end
|
|
111
111
|
|
|
@@ -118,8 +118,8 @@ E
|
|
|
118
118
|
end
|
|
119
119
|
|
|
120
120
|
it "calls the chef server to get the policy with the dsl name" do
|
|
121
|
-
expect(http_client).to receive(:get).with("policies/#{policy_name}/revisions/#{policy_revision_id}")
|
|
122
|
-
and_return(minimal_lockfile)
|
|
121
|
+
expect(http_client).to receive(:get).with("policies/#{policy_name}/revisions/#{policy_revision_id}")
|
|
122
|
+
.and_return(minimal_lockfile)
|
|
123
123
|
expect(fetcher.lock_data).to eq(minimal_lockfile_modified)
|
|
124
124
|
end
|
|
125
125
|
end
|
|
@@ -139,8 +139,8 @@ E
|
|
|
139
139
|
end
|
|
140
140
|
|
|
141
141
|
it "calls the chef server to get the policy" do
|
|
142
|
-
expect(http_client).to receive(:get).with("policy_groups/#{policy_group}/policies/#{policy_name}")
|
|
143
|
-
and_return(minimal_lockfile)
|
|
142
|
+
expect(http_client).to receive(:get).with("policy_groups/#{policy_group}/policies/#{policy_name}")
|
|
143
|
+
.and_return(minimal_lockfile)
|
|
144
144
|
expect(fetcher.lock_data).to eq(minimal_lockfile_modified)
|
|
145
145
|
end
|
|
146
146
|
|
|
@@ -21,42 +21,42 @@ require "chef-dk/policyfile/comparison_base"
|
|
|
21
21
|
describe "Policyfile Comparison Bases" do
|
|
22
22
|
|
|
23
23
|
let(:minimal_lockfile_json) do
|
|
24
|
-
|
|
25
|
-
{
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
24
|
+
<<~E
|
|
25
|
+
{
|
|
26
|
+
"revision_id": "6fe753184c8946052d3231bb4212116df28d89a3a5f7ae52832ad408419dd5eb",
|
|
27
|
+
"name": "install-example",
|
|
28
|
+
"run_list": [
|
|
29
|
+
"recipe[local-cookbook::default]"
|
|
30
|
+
],
|
|
31
|
+
"cookbook_locks": {
|
|
32
|
+
"local-cookbook": {
|
|
33
|
+
"version": "2.3.4",
|
|
34
|
+
"identifier": "fab501cfaf747901bd82c1bc706beae7dc3a350c",
|
|
35
|
+
"dotted_decimal_identifier": "70567763561641081.489844270461035.258281553147148",
|
|
36
|
+
"source": "cookbooks/local-cookbook",
|
|
37
|
+
"cache_key": null,
|
|
38
|
+
"scm_info": null,
|
|
39
|
+
"source_options": {
|
|
40
|
+
"path": "cookbooks/local-cookbook"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"default_attributes": {},
|
|
45
|
+
"override_attributes": {},
|
|
46
|
+
"solution_dependencies": {
|
|
47
|
+
"Policyfile": [
|
|
48
|
+
[
|
|
49
|
+
"local-cookbook",
|
|
50
|
+
">= 0.0.0"
|
|
51
|
+
]
|
|
52
|
+
],
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"local-cookbook (2.3.4)": [
|
|
55
|
+
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
}
|
|
41
59
|
}
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
"default_attributes": {},
|
|
45
|
-
"override_attributes": {},
|
|
46
|
-
"solution_dependencies": {
|
|
47
|
-
"Policyfile": [
|
|
48
|
-
[
|
|
49
|
-
"local-cookbook",
|
|
50
|
-
">= 0.0.0"
|
|
51
|
-
]
|
|
52
|
-
],
|
|
53
|
-
"dependencies": {
|
|
54
|
-
"local-cookbook (2.3.4)": [
|
|
55
|
-
|
|
56
|
-
]
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
60
|
E
|
|
61
61
|
end
|
|
62
62
|
|
|
@@ -325,9 +325,9 @@ E
|
|
|
325
325
|
context "when the policyfile lock is fetched from the server" do
|
|
326
326
|
|
|
327
327
|
before do
|
|
328
|
-
expect(http_client).to receive(:get)
|
|
329
|
-
with("policy_groups/acceptance/policies/chatserver")
|
|
330
|
-
and_return(minimal_lockfile)
|
|
328
|
+
expect(http_client).to receive(:get)
|
|
329
|
+
.with("policy_groups/acceptance/policies/chatserver")
|
|
330
|
+
.and_return(minimal_lockfile)
|
|
331
331
|
end
|
|
332
332
|
|
|
333
333
|
it "returns the policyfile lock data" do
|
|
@@ -74,7 +74,7 @@ shared_examples_for "Cookbook Lock" do
|
|
|
74
74
|
cookbook_lock.identifier = "my-opaque-id"
|
|
75
75
|
cookbook_lock.dotted_decimal_identifier = "123.456.789"
|
|
76
76
|
cookbook_lock.version = "1.2.3"
|
|
77
|
-
cookbook_lock.source_options = { :
|
|
77
|
+
cookbook_lock.source_options = { sourcekey: "location info" }
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
it "includes the identifier in the lock data" do
|
|
@@ -90,7 +90,7 @@ shared_examples_for "Cookbook Lock" do
|
|
|
90
90
|
end
|
|
91
91
|
|
|
92
92
|
it "includes the source_options in lock data" do
|
|
93
|
-
expect(cookbook_lock_data["source_options"]).to eq({ :
|
|
93
|
+
expect(cookbook_lock_data["source_options"]).to eq({ sourcekey: "location info" })
|
|
94
94
|
end
|
|
95
95
|
|
|
96
96
|
it "creates a CookbookLocationSpecification with the source and version data" do
|
|
@@ -449,7 +449,7 @@ describe ChefDK::Policyfile::ArchivedCookbook do
|
|
|
449
449
|
# when getting the cookbook location spec, source options needs to have
|
|
450
450
|
# symbolic keys, so a round trip via LocalCookbook#build_from_lock_data
|
|
451
451
|
# will result in this being a symbol
|
|
452
|
-
:
|
|
452
|
+
path: "../my_repo/nginx",
|
|
453
453
|
},
|
|
454
454
|
"cache_key" => nil,
|
|
455
455
|
"scm_info" => {},
|
|
@@ -21,215 +21,215 @@ require "chef-dk/policyfile/differ"
|
|
|
21
21
|
describe ChefDK::Policyfile::Differ do
|
|
22
22
|
|
|
23
23
|
let(:old_lock_json) do
|
|
24
|
-
|
|
25
|
-
{
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
],
|
|
34
|
-
"named_run_lists": {
|
|
35
|
-
"update_jenkins": [
|
|
36
|
-
"recipe[jenkins::master]",
|
|
37
|
-
"recipe[policyfile_demo::default]"
|
|
38
|
-
]
|
|
39
|
-
},
|
|
40
|
-
"cookbook_locks": {
|
|
41
|
-
"policyfile_demo": {
|
|
42
|
-
"version": "0.1.0",
|
|
43
|
-
"identifier": "ea96c99da079db9ff3cb22601638fabd5df49599",
|
|
44
|
-
"dotted_decimal_identifier": "66030937227426267.45022575077627448.275691232073113",
|
|
45
|
-
"source": "cookbooks/policyfile_demo",
|
|
46
|
-
"cache_key": null,
|
|
47
|
-
"scm_info": {
|
|
48
|
-
"scm": "git",
|
|
49
|
-
"remote": "git@github.com:danielsdeleo/policyfile-jenkins-demo.git",
|
|
50
|
-
"revision": "6f92fe8f24fd953a1c40ebb1d7cdb2a4fbbf4d4d",
|
|
51
|
-
"working_tree_clean": false,
|
|
52
|
-
"published": true,
|
|
53
|
-
"synchronized_remote_branches": [
|
|
54
|
-
"mine/master"
|
|
55
|
-
]
|
|
56
|
-
},
|
|
57
|
-
"source_options": {
|
|
58
|
-
"path": "cookbooks/policyfile_demo"
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
"apt": {
|
|
62
|
-
"version": "2.7.0",
|
|
63
|
-
"identifier": "16c57abbd056543f7d5a15dabbb03261024a9c5e",
|
|
64
|
-
"dotted_decimal_identifier": "6409580415309396.17870749399956400.55392231660638",
|
|
65
|
-
"cache_key": "apt-2.7.0-supermarket.chef.io",
|
|
66
|
-
"origin": "https://supermarket.chef.io/api/v1/cookbooks/apt/versions/2.7.0/download",
|
|
67
|
-
"source_options": {
|
|
68
|
-
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/apt/versions/2.7.0/download",
|
|
69
|
-
"version": "2.7.0"
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
"java": {
|
|
73
|
-
"version": "1.31.0",
|
|
74
|
-
"identifier": "9178a38ad3e3baa55b49c1b8d9f4bf6a43dbc358",
|
|
75
|
-
"dotted_decimal_identifier": "40946515427189690.46543743498115572.210463125914456",
|
|
76
|
-
"cache_key": "java-1.31.0-supermarket.chef.io",
|
|
77
|
-
"origin": "https://supermarket.chef.io/api/v1/cookbooks/java/versions/1.31.0/download",
|
|
78
|
-
"source_options": {
|
|
79
|
-
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/java/versions/1.31.0/download",
|
|
80
|
-
"version": "1.31.0"
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
"jenkins": {
|
|
84
|
-
"version": "2.2.2",
|
|
85
|
-
"identifier": "0be380429add00d189b4431059ac967a60052323",
|
|
86
|
-
"dotted_decimal_identifier": "3346364756581632.58979677444790700.165452341125923",
|
|
87
|
-
"cache_key": "jenkins-2.2.2-supermarket.chef.io",
|
|
88
|
-
"origin": "https://supermarket.chef.io/api/v1/cookbooks/jenkins/versions/2.2.2/download",
|
|
89
|
-
"source_options": {
|
|
90
|
-
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/jenkins/versions/2.2.2/download",
|
|
91
|
-
"version": "2.2.2"
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
"runit": {
|
|
95
|
-
"version": "1.5.18",
|
|
96
|
-
"identifier": "1a0aeb2c167a24e0c5120ca7b06ba8c4cff4610c",
|
|
97
|
-
"dotted_decimal_identifier": "7330354567739940.63267076095586411.185563255955724",
|
|
98
|
-
"cache_key": "runit-1.5.18-supermarket.chef.io",
|
|
99
|
-
"origin": "https://supermarket.chef.io/api/v1/cookbooks/runit/versions/1.5.18/download",
|
|
100
|
-
"source_options": {
|
|
101
|
-
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/runit/versions/1.5.18/download",
|
|
102
|
-
"version": "1.5.18"
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
"build-essential": {
|
|
106
|
-
"version": "2.2.2",
|
|
107
|
-
"identifier": "d8ce58401d154378599b0fead81d2c390615602b",
|
|
108
|
-
"dotted_decimal_identifier": "61025473397593411.33875519727130653.48623426822187",
|
|
109
|
-
"cache_key": "build-essential-2.2.2-supermarket.chef.io",
|
|
110
|
-
"origin": "https://supermarket.chef.io/api/v1/cookbooks/build-essential/versions/2.2.2/download",
|
|
111
|
-
"source_options": {
|
|
112
|
-
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/build-essential/versions/2.2.2/download",
|
|
113
|
-
"version": "2.2.2"
|
|
114
|
-
}
|
|
115
|
-
},
|
|
116
|
-
"yum": {
|
|
117
|
-
"version": "3.5.4",
|
|
118
|
-
"identifier": "f9c778c3cd3908071e0c55722682f96e653b5642",
|
|
119
|
-
"dotted_decimal_identifier": "70306590695962888.2003363158959746.274252540106306",
|
|
120
|
-
"cache_key": "yum-3.5.4-supermarket.chef.io",
|
|
121
|
-
"origin": "https://supermarket.chef.io/api/v1/cookbooks/yum/versions/3.5.4/download",
|
|
122
|
-
"source_options": {
|
|
123
|
-
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/yum/versions/3.5.4/download",
|
|
124
|
-
"version": "3.5.4"
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
"yum-epel": {
|
|
128
|
-
"version": "0.6.0",
|
|
129
|
-
"identifier": "cd74f541ba0341abcc168c74471c349ca68f77b7",
|
|
130
|
-
"dotted_decimal_identifier": "57830966944203585.48356618235299612.57847413962679",
|
|
131
|
-
"cache_key": "yum-epel-0.6.0-supermarket.chef.io",
|
|
132
|
-
"origin": "https://supermarket.chef.io/api/v1/cookbooks/yum-epel/versions/0.6.0/download",
|
|
133
|
-
"source_options": {
|
|
134
|
-
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/yum-epel/versions/0.6.0/download",
|
|
135
|
-
"version": "0.6.0"
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
"default_attributes": {
|
|
140
|
-
"greeting": "Attributes, f*** yeah"
|
|
141
|
-
},
|
|
142
|
-
"override_attributes": {
|
|
143
|
-
"attr_only_updating": "use -a"
|
|
144
|
-
},
|
|
145
|
-
"solution_dependencies": {
|
|
146
|
-
"Policyfile": [
|
|
147
|
-
[
|
|
148
|
-
"policyfile_demo",
|
|
149
|
-
">= 0.0.0"
|
|
150
|
-
],
|
|
151
|
-
[
|
|
152
|
-
"apt",
|
|
153
|
-
"= 2.7.0"
|
|
154
|
-
],
|
|
155
|
-
[
|
|
156
|
-
"java",
|
|
157
|
-
"= 1.31.0"
|
|
158
|
-
],
|
|
159
|
-
[
|
|
160
|
-
"jenkins",
|
|
161
|
-
"= 2.2.2"
|
|
162
|
-
],
|
|
163
|
-
[
|
|
164
|
-
"runit",
|
|
165
|
-
"= 1.5.18"
|
|
166
|
-
],
|
|
167
|
-
[
|
|
168
|
-
"build-essential",
|
|
169
|
-
"= 2.2.2"
|
|
170
|
-
],
|
|
171
|
-
[
|
|
172
|
-
"yum",
|
|
173
|
-
"= 3.5.4"
|
|
174
|
-
],
|
|
175
|
-
[
|
|
176
|
-
"yum-epel",
|
|
177
|
-
"= 0.6.0"
|
|
178
|
-
]
|
|
179
|
-
],
|
|
180
|
-
"dependencies": {
|
|
181
|
-
"apt (2.7.0)": [
|
|
182
|
-
|
|
183
|
-
],
|
|
184
|
-
"java (1.31.0)": [
|
|
185
|
-
|
|
186
|
-
],
|
|
187
|
-
"jenkins (2.2.2)": [
|
|
188
|
-
[
|
|
189
|
-
"apt",
|
|
190
|
-
"~> 2.0"
|
|
191
|
-
],
|
|
192
|
-
[
|
|
193
|
-
"runit",
|
|
194
|
-
"~> 1.5"
|
|
195
|
-
],
|
|
196
|
-
[
|
|
197
|
-
"yum",
|
|
198
|
-
"~> 3.0"
|
|
199
|
-
]
|
|
200
|
-
],
|
|
201
|
-
"runit (1.5.18)": [
|
|
202
|
-
[
|
|
203
|
-
"build-essential",
|
|
204
|
-
">= 0.0.0"
|
|
205
|
-
],
|
|
206
|
-
[
|
|
207
|
-
"yum",
|
|
208
|
-
"~> 3.0"
|
|
24
|
+
<<~E
|
|
25
|
+
{
|
|
26
|
+
"revision_id": "cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b",
|
|
27
|
+
"name": "jenkins",
|
|
28
|
+
"run_list": [
|
|
29
|
+
"recipe[java::default]",
|
|
30
|
+
"recipe[jenkins::master]",
|
|
31
|
+
"recipe[policyfile_demo::whatever]",
|
|
32
|
+
"recipe[policyfile_demo::default]"
|
|
209
33
|
],
|
|
210
|
-
|
|
211
|
-
"
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
}
|
|
34
|
+
"named_run_lists": {
|
|
35
|
+
"update_jenkins": [
|
|
36
|
+
"recipe[jenkins::master]",
|
|
37
|
+
"recipe[policyfile_demo::default]"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
"cookbook_locks": {
|
|
41
|
+
"policyfile_demo": {
|
|
42
|
+
"version": "0.1.0",
|
|
43
|
+
"identifier": "ea96c99da079db9ff3cb22601638fabd5df49599",
|
|
44
|
+
"dotted_decimal_identifier": "66030937227426267.45022575077627448.275691232073113",
|
|
45
|
+
"source": "cookbooks/policyfile_demo",
|
|
46
|
+
"cache_key": null,
|
|
47
|
+
"scm_info": {
|
|
48
|
+
"scm": "git",
|
|
49
|
+
"remote": "git@github.com:danielsdeleo/policyfile-jenkins-demo.git",
|
|
50
|
+
"revision": "6f92fe8f24fd953a1c40ebb1d7cdb2a4fbbf4d4d",
|
|
51
|
+
"working_tree_clean": false,
|
|
52
|
+
"published": true,
|
|
53
|
+
"synchronized_remote_branches": [
|
|
54
|
+
"mine/master"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"source_options": {
|
|
58
|
+
"path": "cookbooks/policyfile_demo"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"apt": {
|
|
62
|
+
"version": "2.7.0",
|
|
63
|
+
"identifier": "16c57abbd056543f7d5a15dabbb03261024a9c5e",
|
|
64
|
+
"dotted_decimal_identifier": "6409580415309396.17870749399956400.55392231660638",
|
|
65
|
+
"cache_key": "apt-2.7.0-supermarket.chef.io",
|
|
66
|
+
"origin": "https://supermarket.chef.io/api/v1/cookbooks/apt/versions/2.7.0/download",
|
|
67
|
+
"source_options": {
|
|
68
|
+
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/apt/versions/2.7.0/download",
|
|
69
|
+
"version": "2.7.0"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"java": {
|
|
73
|
+
"version": "1.31.0",
|
|
74
|
+
"identifier": "9178a38ad3e3baa55b49c1b8d9f4bf6a43dbc358",
|
|
75
|
+
"dotted_decimal_identifier": "40946515427189690.46543743498115572.210463125914456",
|
|
76
|
+
"cache_key": "java-1.31.0-supermarket.chef.io",
|
|
77
|
+
"origin": "https://supermarket.chef.io/api/v1/cookbooks/java/versions/1.31.0/download",
|
|
78
|
+
"source_options": {
|
|
79
|
+
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/java/versions/1.31.0/download",
|
|
80
|
+
"version": "1.31.0"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"jenkins": {
|
|
84
|
+
"version": "2.2.2",
|
|
85
|
+
"identifier": "0be380429add00d189b4431059ac967a60052323",
|
|
86
|
+
"dotted_decimal_identifier": "3346364756581632.58979677444790700.165452341125923",
|
|
87
|
+
"cache_key": "jenkins-2.2.2-supermarket.chef.io",
|
|
88
|
+
"origin": "https://supermarket.chef.io/api/v1/cookbooks/jenkins/versions/2.2.2/download",
|
|
89
|
+
"source_options": {
|
|
90
|
+
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/jenkins/versions/2.2.2/download",
|
|
91
|
+
"version": "2.2.2"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"runit": {
|
|
95
|
+
"version": "1.5.18",
|
|
96
|
+
"identifier": "1a0aeb2c167a24e0c5120ca7b06ba8c4cff4610c",
|
|
97
|
+
"dotted_decimal_identifier": "7330354567739940.63267076095586411.185563255955724",
|
|
98
|
+
"cache_key": "runit-1.5.18-supermarket.chef.io",
|
|
99
|
+
"origin": "https://supermarket.chef.io/api/v1/cookbooks/runit/versions/1.5.18/download",
|
|
100
|
+
"source_options": {
|
|
101
|
+
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/runit/versions/1.5.18/download",
|
|
102
|
+
"version": "1.5.18"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"build-essential": {
|
|
106
|
+
"version": "2.2.2",
|
|
107
|
+
"identifier": "d8ce58401d154378599b0fead81d2c390615602b",
|
|
108
|
+
"dotted_decimal_identifier": "61025473397593411.33875519727130653.48623426822187",
|
|
109
|
+
"cache_key": "build-essential-2.2.2-supermarket.chef.io",
|
|
110
|
+
"origin": "https://supermarket.chef.io/api/v1/cookbooks/build-essential/versions/2.2.2/download",
|
|
111
|
+
"source_options": {
|
|
112
|
+
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/build-essential/versions/2.2.2/download",
|
|
113
|
+
"version": "2.2.2"
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"yum": {
|
|
117
|
+
"version": "3.5.4",
|
|
118
|
+
"identifier": "f9c778c3cd3908071e0c55722682f96e653b5642",
|
|
119
|
+
"dotted_decimal_identifier": "70306590695962888.2003363158959746.274252540106306",
|
|
120
|
+
"cache_key": "yum-3.5.4-supermarket.chef.io",
|
|
121
|
+
"origin": "https://supermarket.chef.io/api/v1/cookbooks/yum/versions/3.5.4/download",
|
|
122
|
+
"source_options": {
|
|
123
|
+
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/yum/versions/3.5.4/download",
|
|
124
|
+
"version": "3.5.4"
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"yum-epel": {
|
|
128
|
+
"version": "0.6.0",
|
|
129
|
+
"identifier": "cd74f541ba0341abcc168c74471c349ca68f77b7",
|
|
130
|
+
"dotted_decimal_identifier": "57830966944203585.48356618235299612.57847413962679",
|
|
131
|
+
"cache_key": "yum-epel-0.6.0-supermarket.chef.io",
|
|
132
|
+
"origin": "https://supermarket.chef.io/api/v1/cookbooks/yum-epel/versions/0.6.0/download",
|
|
133
|
+
"source_options": {
|
|
134
|
+
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/yum-epel/versions/0.6.0/download",
|
|
135
|
+
"version": "0.6.0"
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"default_attributes": {
|
|
140
|
+
"greeting": "Attributes, f*** yeah"
|
|
141
|
+
},
|
|
142
|
+
"override_attributes": {
|
|
143
|
+
"attr_only_updating": "use -a"
|
|
144
|
+
},
|
|
145
|
+
"solution_dependencies": {
|
|
146
|
+
"Policyfile": [
|
|
147
|
+
[
|
|
148
|
+
"policyfile_demo",
|
|
149
|
+
">= 0.0.0"
|
|
150
|
+
],
|
|
151
|
+
[
|
|
152
|
+
"apt",
|
|
153
|
+
"= 2.7.0"
|
|
154
|
+
],
|
|
155
|
+
[
|
|
156
|
+
"java",
|
|
157
|
+
"= 1.31.0"
|
|
158
|
+
],
|
|
159
|
+
[
|
|
160
|
+
"jenkins",
|
|
161
|
+
"= 2.2.2"
|
|
162
|
+
],
|
|
163
|
+
[
|
|
164
|
+
"runit",
|
|
165
|
+
"= 1.5.18"
|
|
166
|
+
],
|
|
167
|
+
[
|
|
168
|
+
"build-essential",
|
|
169
|
+
"= 2.2.2"
|
|
170
|
+
],
|
|
171
|
+
[
|
|
172
|
+
"yum",
|
|
173
|
+
"= 3.5.4"
|
|
174
|
+
],
|
|
175
|
+
[
|
|
176
|
+
"yum-epel",
|
|
177
|
+
"= 0.6.0"
|
|
178
|
+
]
|
|
179
|
+
],
|
|
180
|
+
"dependencies": {
|
|
181
|
+
"apt (2.7.0)": [
|
|
182
|
+
|
|
183
|
+
],
|
|
184
|
+
"java (1.31.0)": [
|
|
185
|
+
|
|
186
|
+
],
|
|
187
|
+
"jenkins (2.2.2)": [
|
|
188
|
+
[
|
|
189
|
+
"apt",
|
|
190
|
+
"~> 2.0"
|
|
191
|
+
],
|
|
192
|
+
[
|
|
193
|
+
"runit",
|
|
194
|
+
"~> 1.5"
|
|
195
|
+
],
|
|
196
|
+
[
|
|
197
|
+
"yum",
|
|
198
|
+
"~> 3.0"
|
|
199
|
+
]
|
|
200
|
+
],
|
|
201
|
+
"runit (1.5.18)": [
|
|
202
|
+
[
|
|
203
|
+
"build-essential",
|
|
204
|
+
">= 0.0.0"
|
|
205
|
+
],
|
|
206
|
+
[
|
|
207
|
+
"yum",
|
|
208
|
+
"~> 3.0"
|
|
209
|
+
],
|
|
210
|
+
[
|
|
211
|
+
"yum-epel",
|
|
212
|
+
">= 0.0.0"
|
|
213
|
+
]
|
|
214
|
+
],
|
|
215
|
+
"build-essential (2.2.2)": [
|
|
216
|
+
|
|
217
|
+
],
|
|
218
|
+
"yum (3.5.4)": [
|
|
219
|
+
|
|
220
|
+
],
|
|
221
|
+
"yum-epel (0.6.0)": [
|
|
222
|
+
[
|
|
223
|
+
"yum",
|
|
224
|
+
"~> 3.0"
|
|
225
|
+
]
|
|
226
|
+
],
|
|
227
|
+
"policyfile_demo (0.1.0)": [
|
|
228
|
+
|
|
229
|
+
]
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
233
|
E
|
|
234
234
|
end
|
|
235
235
|
|
|
@@ -283,8 +283,8 @@ describe ChefDK::Policyfile::Differ do
|
|
|
283
283
|
end
|
|
284
284
|
|
|
285
285
|
it "reports that there are no updates" do
|
|
286
|
-
expected_message =
|
|
287
|
-
No changes for policy lock 'jenkins' between 'git: HEAD' and 'local disk'
|
|
286
|
+
expected_message = <<~E
|
|
287
|
+
No changes for policy lock 'jenkins' between 'git: HEAD' and 'local disk'
|
|
288
288
|
E
|
|
289
289
|
differ.run_report
|
|
290
290
|
expect(output).to include(expected_message)
|
|
@@ -312,27 +312,27 @@ E
|
|
|
312
312
|
end
|
|
313
313
|
|
|
314
314
|
it "reports the updated rev_id and run_list" do
|
|
315
|
-
expected_message =
|
|
316
|
-
Policy lock 'jenkins' differs between 'git: HEAD' and 'local disk':
|
|
315
|
+
expected_message = <<~E
|
|
316
|
+
Policy lock 'jenkins' differs between 'git: HEAD' and 'local disk':
|
|
317
317
|
|
|
318
|
-
REVISION ID CHANGED
|
|
319
|
-
===================
|
|
318
|
+
REVISION ID CHANGED
|
|
319
|
+
===================
|
|
320
320
|
|
|
321
|
-
@@ -1,2 +1,2 @@
|
|
322
|
-
-cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b
|
|
323
|
-
+304566f86a620aae85797a3c491a51fb8c6ecf996407e77b8063aa3ee59672c5
|
|
321
|
+
@@ -1,2 +1,2 @@
|
|
322
|
+
-cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b
|
|
323
|
+
+304566f86a620aae85797a3c491a51fb8c6ecf996407e77b8063aa3ee59672c5
|
|
324
324
|
|
|
325
|
-
RUN LIST CHANGED
|
|
326
|
-
================
|
|
325
|
+
RUN LIST CHANGED
|
|
326
|
+
================
|
|
327
327
|
|
|
328
|
-
@@ -1,5 +1,7 @@
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
-recipe[policyfile_demo::whatever]
|
|
332
|
-
|
|
333
|
-
+recipe[one::one]
|
|
334
|
-
+recipe[two::two]
|
|
335
|
-
+recipe[three::three]
|
|
328
|
+
@@ -1,5 +1,7 @@
|
|
329
|
+
recipe[java::default]
|
|
330
|
+
recipe[jenkins::master]
|
|
331
|
+
-recipe[policyfile_demo::whatever]
|
|
332
|
+
recipe[policyfile_demo::default]
|
|
333
|
+
+recipe[one::one]
|
|
334
|
+
+recipe[two::two]
|
|
335
|
+
+recipe[three::three]
|
|
336
336
|
|
|
337
337
|
E
|
|
338
338
|
differ.run_report
|
|
@@ -363,33 +363,33 @@ E
|
|
|
363
363
|
end
|
|
364
364
|
|
|
365
365
|
it "prints the correct changes with context for the run list" do
|
|
366
|
-
expected_message =
|
|
367
|
-
Policy lock 'jenkins' differs between 'git: HEAD' and 'local disk':
|
|
368
|
-
|
|
369
|
-
REVISION ID CHANGED
|
|
370
|
-
===================
|
|
371
|
-
|
|
372
|
-
@@ -1,2 +1,2 @@
|
|
373
|
-
-cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b
|
|
374
|
-
+304566f86a620aae85797a3c491a51fb8c6ecf996407e77b8063aa3ee59672c5
|
|
375
|
-
|
|
376
|
-
RUN LIST CHANGED
|
|
377
|
-
================
|
|
378
|
-
|
|
379
|
-
@@ -1,5 +1,4 @@
|
|
380
|
-
|
|
381
|
-
-recipe[b::default]
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
@@ -12,4 +11,8 @@
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
+recipe[o::new]
|
|
390
|
-
+recipe[p::new]
|
|
391
|
-
+recipe[q::new]
|
|
392
|
-
+recipe[r::new]
|
|
366
|
+
expected_message = <<~E
|
|
367
|
+
Policy lock 'jenkins' differs between 'git: HEAD' and 'local disk':
|
|
368
|
+
|
|
369
|
+
REVISION ID CHANGED
|
|
370
|
+
===================
|
|
371
|
+
|
|
372
|
+
@@ -1,2 +1,2 @@
|
|
373
|
+
-cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b
|
|
374
|
+
+304566f86a620aae85797a3c491a51fb8c6ecf996407e77b8063aa3ee59672c5
|
|
375
|
+
|
|
376
|
+
RUN LIST CHANGED
|
|
377
|
+
================
|
|
378
|
+
|
|
379
|
+
@@ -1,5 +1,4 @@
|
|
380
|
+
recipe[a::default]
|
|
381
|
+
-recipe[b::default]
|
|
382
|
+
recipe[c::default]
|
|
383
|
+
recipe[d::default]
|
|
384
|
+
recipe[e::default]
|
|
385
|
+
@@ -12,4 +11,8 @@
|
|
386
|
+
recipe[l::default]
|
|
387
|
+
recipe[m::default]
|
|
388
|
+
recipe[n::default]
|
|
389
|
+
+recipe[o::new]
|
|
390
|
+
+recipe[p::new]
|
|
391
|
+
+recipe[q::new]
|
|
392
|
+
+recipe[r::new]
|
|
393
393
|
|
|
394
394
|
E
|
|
395
395
|
differ.run_report
|
|
@@ -422,34 +422,34 @@ E
|
|
|
422
422
|
end
|
|
423
423
|
|
|
424
424
|
it "reports the updated revision_id and removed cookbooks" do
|
|
425
|
-
expected_message =
|
|
426
|
-
Policy lock 'jenkins' differs between 'git: HEAD' and 'local disk':
|
|
427
|
-
|
|
428
|
-
REVISION ID CHANGED
|
|
429
|
-
===================
|
|
430
|
-
|
|
431
|
-
@@ -1,2 +1,2 @@
|
|
432
|
-
-cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b
|
|
433
|
-
+304566f86a620aae85797a3c491a51fb8c6ecf996407e77b8063aa3ee59672c5
|
|
434
|
-
|
|
435
|
-
REMOVED COOKBOOKS
|
|
436
|
-
=================
|
|
437
|
-
|
|
438
|
-
apt
|
|
439
|
-
---
|
|
440
|
-
|
|
441
|
-
@@ -1,12 +1 @@
|
|
442
|
-
-{
|
|
443
|
-
- "version": "2.7.0",
|
|
444
|
-
- "identifier": "16c57abbd056543f7d5a15dabbb03261024a9c5e",
|
|
445
|
-
- "dotted_decimal_identifier": "6409580415309396.17870749399956400.55392231660638",
|
|
446
|
-
- "cache_key": "apt-2.7.0-supermarket.chef.io",
|
|
447
|
-
- "origin": "https://supermarket.chef.io/api/v1/cookbooks/apt/versions/2.7.0/download",
|
|
448
|
-
- "source_options": {
|
|
449
|
-
- "artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/apt/versions/2.7.0/download",
|
|
450
|
-
- "version": "2.7.0"
|
|
451
|
-
- }
|
|
452
|
-
-}
|
|
425
|
+
expected_message = <<~E
|
|
426
|
+
Policy lock 'jenkins' differs between 'git: HEAD' and 'local disk':
|
|
427
|
+
|
|
428
|
+
REVISION ID CHANGED
|
|
429
|
+
===================
|
|
430
|
+
|
|
431
|
+
@@ -1,2 +1,2 @@
|
|
432
|
+
-cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b
|
|
433
|
+
+304566f86a620aae85797a3c491a51fb8c6ecf996407e77b8063aa3ee59672c5
|
|
434
|
+
|
|
435
|
+
REMOVED COOKBOOKS
|
|
436
|
+
=================
|
|
437
|
+
|
|
438
|
+
apt
|
|
439
|
+
---
|
|
440
|
+
|
|
441
|
+
@@ -1,12 +1 @@
|
|
442
|
+
-{
|
|
443
|
+
- "version": "2.7.0",
|
|
444
|
+
- "identifier": "16c57abbd056543f7d5a15dabbb03261024a9c5e",
|
|
445
|
+
- "dotted_decimal_identifier": "6409580415309396.17870749399956400.55392231660638",
|
|
446
|
+
- "cache_key": "apt-2.7.0-supermarket.chef.io",
|
|
447
|
+
- "origin": "https://supermarket.chef.io/api/v1/cookbooks/apt/versions/2.7.0/download",
|
|
448
|
+
- "source_options": {
|
|
449
|
+
- "artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/apt/versions/2.7.0/download",
|
|
450
|
+
- "version": "2.7.0"
|
|
451
|
+
- }
|
|
452
|
+
-}
|
|
453
453
|
|
|
454
454
|
E
|
|
455
455
|
differ.run_report
|
|
@@ -495,34 +495,34 @@ E
|
|
|
495
495
|
end
|
|
496
496
|
|
|
497
497
|
it "reports the updated revision_id and added cookbook" do
|
|
498
|
-
expected_message =
|
|
499
|
-
Policy lock 'jenkins' differs between 'git: HEAD' and 'local disk':
|
|
500
|
-
|
|
501
|
-
REVISION ID CHANGED
|
|
502
|
-
===================
|
|
503
|
-
|
|
504
|
-
@@ -1,2 +1,2 @@
|
|
505
|
-
-cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b
|
|
506
|
-
+304566f86a620aae85797a3c491a51fb8c6ecf996407e77b8063aa3ee59672c5
|
|
507
|
-
|
|
508
|
-
ADDED COOKBOOKS
|
|
509
|
-
===============
|
|
510
|
-
|
|
511
|
-
bluepill
|
|
512
|
-
--------
|
|
513
|
-
|
|
514
|
-
@@ -1 +1,12 @@
|
|
515
|
-
+{
|
|
516
|
-
+ "version": "2.3.2",
|
|
517
|
-
+ "identifier": "9c6990944d9a347dec8bd375e707ba0aecdc17cd",
|
|
518
|
-
+ "dotted_decimal_identifier": "69437059924760478.24393100994078142.115593340606828",
|
|
519
|
-
+ "cache_key": "bluepill-2.3.2-supermarket.chef.io",
|
|
520
|
-
+ "origin": "https://supermarket.chef.io/api/v1/cookbooks/bluepill/versions/2.3.2/download",
|
|
521
|
-
+ "source_options": {
|
|
522
|
-
+ "artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/bluepill/versions/2.3.2/download",
|
|
523
|
-
+ "version": "2.3.2"
|
|
524
|
-
+ }
|
|
525
|
-
+}
|
|
498
|
+
expected_message = <<~E
|
|
499
|
+
Policy lock 'jenkins' differs between 'git: HEAD' and 'local disk':
|
|
500
|
+
|
|
501
|
+
REVISION ID CHANGED
|
|
502
|
+
===================
|
|
503
|
+
|
|
504
|
+
@@ -1,2 +1,2 @@
|
|
505
|
+
-cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b
|
|
506
|
+
+304566f86a620aae85797a3c491a51fb8c6ecf996407e77b8063aa3ee59672c5
|
|
507
|
+
|
|
508
|
+
ADDED COOKBOOKS
|
|
509
|
+
===============
|
|
510
|
+
|
|
511
|
+
bluepill
|
|
512
|
+
--------
|
|
513
|
+
|
|
514
|
+
@@ -1 +1,12 @@
|
|
515
|
+
+{
|
|
516
|
+
+ "version": "2.3.2",
|
|
517
|
+
+ "identifier": "9c6990944d9a347dec8bd375e707ba0aecdc17cd",
|
|
518
|
+
+ "dotted_decimal_identifier": "69437059924760478.24393100994078142.115593340606828",
|
|
519
|
+
+ "cache_key": "bluepill-2.3.2-supermarket.chef.io",
|
|
520
|
+
+ "origin": "https://supermarket.chef.io/api/v1/cookbooks/bluepill/versions/2.3.2/download",
|
|
521
|
+
+ "source_options": {
|
|
522
|
+
+ "artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/bluepill/versions/2.3.2/download",
|
|
523
|
+
+ "version": "2.3.2"
|
|
524
|
+
+ }
|
|
525
|
+
+}
|
|
526
526
|
|
|
527
527
|
E
|
|
528
528
|
differ.run_report
|
|
@@ -557,32 +557,32 @@ E
|
|
|
557
557
|
end
|
|
558
558
|
|
|
559
559
|
it "reports the updated revision_id and modified policyfile_demo cookbook" do
|
|
560
|
-
expected_message =
|
|
561
|
-
Policy lock 'jenkins' differs between 'git: HEAD' and 'local disk':
|
|
560
|
+
expected_message = <<~E
|
|
561
|
+
Policy lock 'jenkins' differs between 'git: HEAD' and 'local disk':
|
|
562
562
|
|
|
563
|
-
REVISION ID CHANGED
|
|
564
|
-
===================
|
|
563
|
+
REVISION ID CHANGED
|
|
564
|
+
===================
|
|
565
565
|
|
|
566
|
-
@@ -1,2 +1,2 @@
|
|
567
|
-
-cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b
|
|
568
|
-
+304566f86a620aae85797a3c491a51fb8c6ecf996407e77b8063aa3ee59672c5
|
|
566
|
+
@@ -1,2 +1,2 @@
|
|
567
|
+
-cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b
|
|
568
|
+
+304566f86a620aae85797a3c491a51fb8c6ecf996407e77b8063aa3ee59672c5
|
|
569
569
|
|
|
570
|
-
MODIFIED COOKBOOKS
|
|
571
|
-
==================
|
|
570
|
+
MODIFIED COOKBOOKS
|
|
571
|
+
==================
|
|
572
572
|
|
|
573
|
-
policyfile_demo
|
|
574
|
-
---------------
|
|
573
|
+
policyfile_demo
|
|
574
|
+
---------------
|
|
575
575
|
|
|
576
|
-
@@ -1,7 +1,7 @@
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
- "identifier": "ea96c99da079db9ff3cb22601638fabd5df49599",
|
|
580
|
-
- "dotted_decimal_identifier": "66030937227426267.45022575077627448.275691232073113",
|
|
581
|
-
+ "identifier": "f04cc40faf628253fe7d9566d66a1733fb1afbe9",
|
|
582
|
-
+ "dotted_decimal_identifier": "67638399371010690.23642238397896298.25512023620585",
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
576
|
+
@@ -1,7 +1,7 @@
|
|
577
|
+
{
|
|
578
|
+
"version": "0.1.0",
|
|
579
|
+
- "identifier": "ea96c99da079db9ff3cb22601638fabd5df49599",
|
|
580
|
+
- "dotted_decimal_identifier": "66030937227426267.45022575077627448.275691232073113",
|
|
581
|
+
+ "identifier": "f04cc40faf628253fe7d9566d66a1733fb1afbe9",
|
|
582
|
+
+ "dotted_decimal_identifier": "67638399371010690.23642238397896298.25512023620585",
|
|
583
|
+
"source": "cookbooks/policyfile_demo",
|
|
584
|
+
"cache_key": null,
|
|
585
|
+
"scm_info": {
|
|
586
586
|
|
|
587
587
|
E
|
|
588
588
|
differ.run_report
|
|
@@ -610,25 +610,25 @@ E
|
|
|
610
610
|
end
|
|
611
611
|
|
|
612
612
|
it "reports the updated revision_id and modified attributes" do
|
|
613
|
-
expected_output =
|
|
614
|
-
Policy lock 'jenkins' differs between 'git: HEAD' and 'local disk':
|
|
613
|
+
expected_output = <<~E
|
|
614
|
+
Policy lock 'jenkins' differs between 'git: HEAD' and 'local disk':
|
|
615
615
|
|
|
616
|
-
REVISION ID CHANGED
|
|
617
|
-
===================
|
|
616
|
+
REVISION ID CHANGED
|
|
617
|
+
===================
|
|
618
618
|
|
|
619
|
-
@@ -1,2 +1,2 @@
|
|
620
|
-
-cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b
|
|
621
|
-
+304566f86a620aae85797a3c491a51fb8c6ecf996407e77b8063aa3ee59672c5
|
|
619
|
+
@@ -1,2 +1,2 @@
|
|
620
|
+
-cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b
|
|
621
|
+
+304566f86a620aae85797a3c491a51fb8c6ecf996407e77b8063aa3ee59672c5
|
|
622
622
|
|
|
623
|
-
DEFAULT ATTRIBUTES CHANGED
|
|
624
|
-
==========================
|
|
623
|
+
DEFAULT ATTRIBUTES CHANGED
|
|
624
|
+
==========================
|
|
625
625
|
|
|
626
|
-
@@ -1,4 +1,5 @@
|
|
627
|
-
|
|
628
|
-
- "greeting": "Attributes, f*** yeah"
|
|
629
|
-
+ "greeting": "Attributes, f*** yeah",
|
|
630
|
-
+ "new_attr": "hello"
|
|
631
|
-
|
|
626
|
+
@@ -1,4 +1,5 @@
|
|
627
|
+
{
|
|
628
|
+
- "greeting": "Attributes, f*** yeah"
|
|
629
|
+
+ "greeting": "Attributes, f*** yeah",
|
|
630
|
+
+ "new_attr": "hello"
|
|
631
|
+
}
|
|
632
632
|
|
|
633
633
|
E
|
|
634
634
|
differ.run_report
|
|
@@ -656,25 +656,25 @@ E
|
|
|
656
656
|
end
|
|
657
657
|
|
|
658
658
|
it "reports the updated revision_id and override_attributes" do
|
|
659
|
-
expected_output =
|
|
660
|
-
Policy lock 'jenkins' differs between 'git: HEAD' and 'local disk':
|
|
659
|
+
expected_output = <<~E
|
|
660
|
+
Policy lock 'jenkins' differs between 'git: HEAD' and 'local disk':
|
|
661
661
|
|
|
662
|
-
REVISION ID CHANGED
|
|
663
|
-
===================
|
|
662
|
+
REVISION ID CHANGED
|
|
663
|
+
===================
|
|
664
664
|
|
|
665
|
-
@@ -1,2 +1,2 @@
|
|
666
|
-
-cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b
|
|
667
|
-
+304566f86a620aae85797a3c491a51fb8c6ecf996407e77b8063aa3ee59672c5
|
|
665
|
+
@@ -1,2 +1,2 @@
|
|
666
|
+
-cf4b8a020bdc1ba6914093a8a07a5514cce8a3a2979a967b1f32ea704a61785b
|
|
667
|
+
+304566f86a620aae85797a3c491a51fb8c6ecf996407e77b8063aa3ee59672c5
|
|
668
668
|
|
|
669
|
-
OVERRIDE ATTRIBUTES CHANGED
|
|
670
|
-
===========================
|
|
669
|
+
OVERRIDE ATTRIBUTES CHANGED
|
|
670
|
+
===========================
|
|
671
671
|
|
|
672
|
-
@@ -1,4 +1,5 @@
|
|
673
|
-
|
|
674
|
-
- "attr_only_updating": "use -a"
|
|
675
|
-
+ "attr_only_updating": "use -a",
|
|
676
|
-
+ "new_attr": "ALL THE DIFF"
|
|
677
|
-
|
|
672
|
+
@@ -1,4 +1,5 @@
|
|
673
|
+
{
|
|
674
|
+
- "attr_only_updating": "use -a"
|
|
675
|
+
+ "attr_only_updating": "use -a",
|
|
676
|
+
+ "new_attr": "ALL THE DIFF"
|
|
677
|
+
}
|
|
678
678
|
|
|
679
679
|
E
|
|
680
680
|
|