chef-dk 3.3.23 → 3.4.38
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -176,13 +176,13 @@ module ChefDK
|
|
176
176
|
|
177
177
|
def default_command_options
|
178
178
|
{
|
179
|
-
:
|
180
|
-
:
|
179
|
+
cwd: component_path,
|
180
|
+
env: {
|
181
181
|
# Add the embedded/bin to the PATH so that bundle executable can
|
182
182
|
# be found while running the tests.
|
183
183
|
path_variable_key => omnibus_path,
|
184
184
|
},
|
185
|
-
:
|
185
|
+
timeout: 3600,
|
186
186
|
}
|
187
187
|
end
|
188
188
|
|
data/lib/chef-dk/exceptions.rb
CHANGED
@@ -128,12 +128,12 @@ module ChefDK
|
|
128
128
|
def resolution_message(overlapping_cookbooks)
|
129
129
|
example_source = cookbook_sources.first
|
130
130
|
source_key, location = example_source.default_source_args
|
131
|
-
|
132
|
-
You can set a preferred source to resolve this issue with code like:
|
131
|
+
<<~EXAMPLE
|
132
|
+
You can set a preferred source to resolve this issue with code like:
|
133
133
|
|
134
|
-
default_source :#{source_key}, "#{location}" do |s|
|
135
|
-
|
136
|
-
end
|
134
|
+
default_source :#{source_key}, "#{location}" do |s|
|
135
|
+
s.preferred_for "#{overlapping_cookbooks.join('", "')}"
|
136
|
+
end
|
137
137
|
EXAMPLE
|
138
138
|
end
|
139
139
|
|
data/lib/chef-dk/generator.rb
CHANGED
@@ -75,79 +75,79 @@ module ChefDK
|
|
75
75
|
when "all_rights", "none"
|
76
76
|
result = "Copyright:: #{year}, #{copyright_holder}, All Rights Reserved."
|
77
77
|
when "apachev2"
|
78
|
-
result =
|
79
|
-
Copyright:: #{year}, #{copyright_holder}
|
78
|
+
result = <<~EOH
|
79
|
+
Copyright:: #{year}, #{copyright_holder}
|
80
80
|
|
81
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
82
|
-
you may not use this file except in compliance with the License.
|
83
|
-
You may obtain a copy of the License at
|
81
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
82
|
+
you may not use this file except in compliance with the License.
|
83
|
+
You may obtain a copy of the License at
|
84
84
|
|
85
|
-
|
85
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
86
86
|
|
87
|
-
Unless required by applicable law or agreed to in writing, software
|
88
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
89
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
90
|
-
See the License for the specific language governing permissions and
|
91
|
-
limitations under the License.
|
87
|
+
Unless required by applicable law or agreed to in writing, software
|
88
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
89
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
90
|
+
See the License for the specific language governing permissions and
|
91
|
+
limitations under the License.
|
92
92
|
EOH
|
93
93
|
when "mit"
|
94
|
-
result =
|
95
|
-
The MIT License (MIT)
|
96
|
-
|
97
|
-
Copyright:: #{year}, #{copyright_holder}
|
98
|
-
|
99
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
100
|
-
of this software and associated documentation files (the "Software"), to deal
|
101
|
-
in the Software without restriction, including without limitation the rights
|
102
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
103
|
-
copies of the Software, and to permit persons to whom the Software is
|
104
|
-
furnished to do so, subject to the following conditions:
|
105
|
-
|
106
|
-
The above copyright notice and this permission notice shall be included in
|
107
|
-
all copies or substantial portions of the Software.
|
108
|
-
|
109
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
110
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
111
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
112
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
113
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
114
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
115
|
-
THE SOFTWARE.
|
94
|
+
result = <<~EOH
|
95
|
+
The MIT License (MIT)
|
96
|
+
|
97
|
+
Copyright:: #{year}, #{copyright_holder}
|
98
|
+
|
99
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
100
|
+
of this software and associated documentation files (the "Software"), to deal
|
101
|
+
in the Software without restriction, including without limitation the rights
|
102
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
103
|
+
copies of the Software, and to permit persons to whom the Software is
|
104
|
+
furnished to do so, subject to the following conditions:
|
105
|
+
|
106
|
+
The above copyright notice and this permission notice shall be included in
|
107
|
+
all copies or substantial portions of the Software.
|
108
|
+
|
109
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
110
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
111
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
112
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
113
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
114
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
115
|
+
THE SOFTWARE.
|
116
116
|
EOH
|
117
117
|
when "gplv2"
|
118
|
-
result =
|
119
|
-
Copyright:: #{year}, #{copyright_holder}
|
120
|
-
|
121
|
-
This program is free software; you can redistribute it and/or modify
|
122
|
-
it under the terms of the GNU General Public License as published by
|
123
|
-
the Free Software Foundation; either version 2 of the License, or
|
124
|
-
(at your option) any later version.
|
125
|
-
|
126
|
-
This program is distributed in the hope that it will be useful,
|
127
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
128
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
129
|
-
GNU General Public License for more details.
|
130
|
-
|
131
|
-
You should have received a copy of the GNU General Public License along
|
132
|
-
with this program; if not, write to the Free Software Foundation, Inc.,
|
133
|
-
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
118
|
+
result = <<~EOH
|
119
|
+
Copyright:: #{year}, #{copyright_holder}
|
120
|
+
|
121
|
+
This program is free software; you can redistribute it and/or modify
|
122
|
+
it under the terms of the GNU General Public License as published by
|
123
|
+
the Free Software Foundation; either version 2 of the License, or
|
124
|
+
(at your option) any later version.
|
125
|
+
|
126
|
+
This program is distributed in the hope that it will be useful,
|
127
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
128
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
129
|
+
GNU General Public License for more details.
|
130
|
+
|
131
|
+
You should have received a copy of the GNU General Public License along
|
132
|
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
133
|
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
134
134
|
EOH
|
135
135
|
when "gplv3"
|
136
|
-
result =
|
137
|
-
Copyright:: #{year}, #{copyright_holder}
|
136
|
+
result = <<~EOH
|
137
|
+
Copyright:: #{year}, #{copyright_holder}
|
138
138
|
|
139
|
-
This program is free software: you can redistribute it and/or modify
|
140
|
-
it under the terms of the GNU General Public License as published by
|
141
|
-
the Free Software Foundation, either version 3 of the License, or
|
142
|
-
(at your option) any later version.
|
139
|
+
This program is free software: you can redistribute it and/or modify
|
140
|
+
it under the terms of the GNU General Public License as published by
|
141
|
+
the Free Software Foundation, either version 3 of the License, or
|
142
|
+
(at your option) any later version.
|
143
143
|
|
144
|
-
This program is distributed in the hope that it will be useful,
|
145
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
146
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
147
|
-
GNU General Public License for more details.
|
144
|
+
This program is distributed in the hope that it will be useful,
|
145
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
146
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
147
|
+
GNU General Public License for more details.
|
148
148
|
|
149
|
-
You should have received a copy of the GNU General Public License
|
150
|
-
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
149
|
+
You should have received a copy of the GNU General Public License
|
150
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
151
151
|
EOH
|
152
152
|
else
|
153
153
|
raise ArgumentError, "Invalid generator.license setting: #{license}. See available licenses at https://docs.chef.io/ctl_chef.html#chef-generate-cookbook"
|
data/lib/chef-dk/helpers.rb
CHANGED
@@ -29,7 +29,7 @@ module ChefDK
|
|
29
29
|
# API contract
|
30
30
|
include StorageConfigDelegation
|
31
31
|
|
32
|
-
SOURCE_TYPES = [:git, :github, :path, :artifactserver, :chef_server, :chef_server_artifact, :artifactory]
|
32
|
+
SOURCE_TYPES = [:git, :github, :path, :artifactserver, :chef_server, :chef_server_artifact, :artifactory].freeze
|
33
33
|
|
34
34
|
#--
|
35
35
|
# Required by CookbookOmnifetch API contract
|
@@ -34,7 +34,7 @@ module ChefDK
|
|
34
34
|
# Base class for CookbookLock implementations
|
35
35
|
class CookbookLock
|
36
36
|
|
37
|
-
REQUIRED_LOCK_DATA_KEYS = %w{version identifier dotted_decimal_identifier cache_key source_options}
|
37
|
+
REQUIRED_LOCK_DATA_KEYS = %w{version identifier dotted_decimal_identifier cache_key source_options}.freeze
|
38
38
|
REQUIRED_LOCK_DATA_KEYS.each(&:freeze)
|
39
39
|
REQUIRED_LOCK_DATA_KEYS.freeze
|
40
40
|
|
@@ -105,15 +105,15 @@ module ChefDK
|
|
105
105
|
def lock_data
|
106
106
|
@lock_data ||= fetch_lock_data.tap do |data|
|
107
107
|
data["cookbook_locks"].each do |cookbook_name, cookbook_lock|
|
108
|
-
if cookbook_lock["source_options"].
|
108
|
+
if cookbook_lock["source_options"].key?("path")
|
109
109
|
cookbook_lock["source_options"].tap do |opt|
|
110
|
-
opt["git"] = uri unless opt.
|
111
|
-
opt["revision"] = revision unless opt.
|
112
|
-
opt["branch"] = branch unless opt.
|
113
|
-
opt["tag"] = tag unless opt.
|
114
|
-
opt["ref"] = ref unless opt.
|
110
|
+
opt["git"] = uri unless opt.key?("git")
|
111
|
+
opt["revision"] = revision unless opt.key?("revision")
|
112
|
+
opt["branch"] = branch unless opt.key?("branch") || branch.nil?
|
113
|
+
opt["tag"] = tag unless opt.key?("tag") || branch.nil?
|
114
|
+
opt["ref"] = ref unless opt.key?("ref") || ref.nil?
|
115
115
|
|
116
|
-
path_keys = %w{path rel}.map { |path_key| path_key if opt.
|
116
|
+
path_keys = %w{path rel}.map { |path_key| path_key if opt.key?(path_key) }.compact
|
117
117
|
|
118
118
|
path_keys.each do |name|
|
119
119
|
# We can safely grab the entire cookbook when the Policyfile defines a cookbook path of itself (".")
|
@@ -53,10 +53,10 @@ module ChefDK
|
|
53
53
|
ui.msg("Uploading policy #{policy_name} (#{short_revision_id}) to policy group #{policy_group}")
|
54
54
|
|
55
55
|
if !using_policy_document_native_api?
|
56
|
-
ui.msg(
|
57
|
-
WARN: Uploading policy to policy group #{policy_group} in compatibility mode.
|
58
|
-
Cookbooks will be uploaded with very large version numbers, which may be picked
|
59
|
-
up by existing nodes.
|
56
|
+
ui.msg(<<~DRAGONS)
|
57
|
+
WARN: Uploading policy to policy group #{policy_group} in compatibility mode.
|
58
|
+
Cookbooks will be uploaded with very large version numbers, which may be picked
|
59
|
+
up by existing nodes.
|
60
60
|
DRAGONS
|
61
61
|
end
|
62
62
|
|
@@ -390,7 +390,7 @@ module ChefDK
|
|
390
390
|
preferred = default_source.find { |s| s.preferred_source_for?(cookbook_name) }
|
391
391
|
if preferred.nil?
|
392
392
|
default_source.find do |s|
|
393
|
-
s.universe_graph.
|
393
|
+
s.universe_graph.key?(cookbook_name)
|
394
394
|
end
|
395
395
|
else
|
396
396
|
preferred
|
@@ -228,32 +228,32 @@ module ChefDK
|
|
228
228
|
|
229
229
|
def create_client_rb
|
230
230
|
File.open(client_rb_staging_path, "wb+") do |f|
|
231
|
-
f.print(
|
232
|
-
### Chef Client Configuration ###
|
233
|
-
# The settings in this file will configure chef to apply the exported policy in
|
234
|
-
# this directory. To use it, run:
|
235
|
-
#
|
236
|
-
# chef-client -z
|
237
|
-
#
|
238
|
-
|
239
|
-
policy_name '#{policy_name}'
|
240
|
-
policy_group 'local'
|
241
|
-
|
242
|
-
use_policyfile true
|
243
|
-
policy_document_native_api true
|
244
|
-
|
245
|
-
# In order to use this repo, you need a version of Chef Client and Chef Zero
|
246
|
-
# that supports policyfile "native mode" APIs:
|
247
|
-
current_version = Gem::Version.new(Chef::VERSION)
|
248
|
-
unless Gem::Requirement.new(">= 12.7").satisfied_by?(current_version)
|
249
|
-
|
250
|
-
|
251
|
-
This Chef Repo requires features introduced in Chef 12.7, but you are using
|
252
|
-
Chef \#{Chef::VERSION}. Please upgrade to Chef 12.7 or later.
|
253
|
-
MESSAGE
|
254
|
-
|
255
|
-
|
256
|
-
end
|
231
|
+
f.print( <<~CONFIG )
|
232
|
+
### Chef Client Configuration ###
|
233
|
+
# The settings in this file will configure chef to apply the exported policy in
|
234
|
+
# this directory. To use it, run:
|
235
|
+
#
|
236
|
+
# chef-client -z
|
237
|
+
#
|
238
|
+
|
239
|
+
policy_name '#{policy_name}'
|
240
|
+
policy_group 'local'
|
241
|
+
|
242
|
+
use_policyfile true
|
243
|
+
policy_document_native_api true
|
244
|
+
|
245
|
+
# In order to use this repo, you need a version of Chef Client and Chef Zero
|
246
|
+
# that supports policyfile "native mode" APIs:
|
247
|
+
current_version = Gem::Version.new(Chef::VERSION)
|
248
|
+
unless Gem::Requirement.new(">= 12.7").satisfied_by?(current_version)
|
249
|
+
puts("!" * 80)
|
250
|
+
puts(<<-MESSAGE)
|
251
|
+
This Chef Repo requires features introduced in Chef 12.7, but you are using
|
252
|
+
Chef \#{Chef::VERSION}. Please upgrade to Chef 12.7 or later.
|
253
|
+
MESSAGE
|
254
|
+
puts("!" * 80)
|
255
|
+
exit!(1)
|
256
|
+
end
|
257
257
|
|
258
258
|
CONFIG
|
259
259
|
end
|
@@ -261,42 +261,42 @@ CONFIG
|
|
261
261
|
|
262
262
|
def create_readme_md
|
263
263
|
File.open(readme_staging_path, "wb+") do |f|
|
264
|
-
f.print(
|
265
|
-
# Exported Chef Repository for Policy '#{policy_name}'
|
264
|
+
f.print( <<~README )
|
265
|
+
# Exported Chef Repository for Policy '#{policy_name}'
|
266
266
|
|
267
|
-
Policy revision: #{policyfile_lock.revision_id}
|
267
|
+
Policy revision: #{policyfile_lock.revision_id}
|
268
268
|
|
269
|
-
This directory contains all the cookbooks and configuration necessary for Chef
|
270
|
-
to converge a system using this exported policy. To converge a system with the
|
271
|
-
exported policy, use a privileged account to run `chef-client -z` from the
|
272
|
-
directory containing the exported policy.
|
269
|
+
This directory contains all the cookbooks and configuration necessary for Chef
|
270
|
+
to converge a system using this exported policy. To converge a system with the
|
271
|
+
exported policy, use a privileged account to run `chef-client -z` from the
|
272
|
+
directory containing the exported policy.
|
273
273
|
|
274
|
-
## Contents:
|
274
|
+
## Contents:
|
275
275
|
|
276
|
-
### Policyfile.lock.json
|
276
|
+
### Policyfile.lock.json
|
277
277
|
|
278
|
-
A copy of the exported policy, used by the `chef push-archive` command.
|
278
|
+
A copy of the exported policy, used by the `chef push-archive` command.
|
279
279
|
|
280
|
-
### .chef/config.rb
|
280
|
+
### .chef/config.rb
|
281
281
|
|
282
|
-
A configuration file for Chef Client. This file configures Chef Client to use
|
283
|
-
the correct `policy_name` and `policy_group` for this exported repository. Chef
|
284
|
-
Client will use this configuration automatically if you've set your working
|
285
|
-
directory properly.
|
282
|
+
A configuration file for Chef Client. This file configures Chef Client to use
|
283
|
+
the correct `policy_name` and `policy_group` for this exported repository. Chef
|
284
|
+
Client will use this configuration automatically if you've set your working
|
285
|
+
directory properly.
|
286
286
|
|
287
|
-
### cookbook_artifacts/
|
287
|
+
### cookbook_artifacts/
|
288
288
|
|
289
|
-
All of the cookbooks required by the policy will be stored in this directory.
|
289
|
+
All of the cookbooks required by the policy will be stored in this directory.
|
290
290
|
|
291
|
-
### policies/
|
291
|
+
### policies/
|
292
292
|
|
293
|
-
A different copy of the exported policy, used by the `chef-client` command.
|
293
|
+
A different copy of the exported policy, used by the `chef-client` command.
|
294
294
|
|
295
|
-
### policy_groups/
|
295
|
+
### policy_groups/
|
296
296
|
|
297
|
-
Policy groups are used by Chef Server to manage multiple revisions of the same
|
298
|
-
policy. However, exported policies contain only a single policy revision, so
|
299
|
-
this policy group name is hardcoded to "local" and should not be changed.
|
297
|
+
Policy groups are used by Chef Server to manage multiple revisions of the same
|
298
|
+
policy. However, exported policies contain only a single policy revision, so
|
299
|
+
this policy group name is hardcoded to "local" and should not be changed.
|
300
300
|
|
301
301
|
README
|
302
302
|
end
|
@@ -145,9 +145,9 @@ module ChefDK
|
|
145
145
|
end
|
146
146
|
|
147
147
|
def prepare_constraints_for_policies
|
148
|
-
Policyfile::LockApplier
|
149
|
-
new(policyfile_lock, policyfile_compiler)
|
150
|
-
apply!
|
148
|
+
Policyfile::LockApplier
|
149
|
+
.new(policyfile_lock, policyfile_compiler)
|
150
|
+
.apply!
|
151
151
|
end
|
152
152
|
|
153
153
|
def install_from_lock
|
@@ -86,12 +86,12 @@ module ChefDK
|
|
86
86
|
policyfile_lock_path = File.join(staging_dir, "Policyfile.lock.json")
|
87
87
|
|
88
88
|
if looks_like_old_format_archive?(staging_dir)
|
89
|
-
raise InvalidPolicyArchive,
|
90
|
-
This archive is in an unsupported format.
|
89
|
+
raise InvalidPolicyArchive, <<~MESSAGE
|
90
|
+
This archive is in an unsupported format.
|
91
91
|
|
92
|
-
This archive was created with an older version of ChefDK. This version of
|
93
|
-
ChefDK does not support archives in the older format. Re-create the archive
|
94
|
-
with a newer version of ChefDK or downgrade ChefDK.
|
92
|
+
This archive was created with an older version of ChefDK. This version of
|
93
|
+
ChefDK does not support archives in the older format. Re-create the archive
|
94
|
+
with a newer version of ChefDK or downgrade ChefDK.
|
95
95
|
MESSAGE
|
96
96
|
end
|
97
97
|
|
@@ -52,7 +52,7 @@ module ChefDK
|
|
52
52
|
undo_record.description = "delete-policy-group #{policy_group}"
|
53
53
|
policy_group_list = http_client.get("/policy_groups")
|
54
54
|
|
55
|
-
unless policy_group_list.
|
55
|
+
unless policy_group_list.key?(policy_group)
|
56
56
|
ui.err("Policy group '#{policy_group}' does not exist on the server")
|
57
57
|
return false
|
58
58
|
end
|
@@ -32,17 +32,17 @@ module ChefDK
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def extended_error_info
|
35
|
-
|
36
|
-
--- REQUEST DATA ----
|
37
|
-
#{http_method} #{uri}
|
38
|
-
#{request_headers}
|
39
|
-
#{req_body}
|
35
|
+
<<~END
|
36
|
+
--- REQUEST DATA ----
|
37
|
+
#{http_method} #{uri}
|
38
|
+
#{request_headers}
|
39
|
+
#{req_body}
|
40
40
|
|
41
|
-
--- RESPONSE DATA ---
|
42
|
-
#{code} #{response_message}
|
43
|
-
#{response_headers}
|
41
|
+
--- RESPONSE DATA ---
|
42
|
+
#{code} #{response_message}
|
43
|
+
#{response_headers}
|
44
44
|
|
45
|
-
#{response_body}
|
45
|
+
#{response_body}
|
46
46
|
|
47
47
|
END
|
48
48
|
end
|