chef 15.6.10 → 15.7.30
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 +1 -1
- data/README.md +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +22 -5
- data/lib/chef/cookbook/cookbook_version_loader.rb +12 -6
- data/lib/chef/cookbook_loader.rb +55 -2
- data/lib/chef/cookbook_uploader.rb +2 -0
- data/lib/chef/cookbook_version.rb +17 -0
- data/lib/chef/dist.rb +3 -3
- data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
- data/lib/chef/knife/bootstrap.rb +5 -0
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +11 -11
- data/lib/chef/knife/cookbook_upload.rb +75 -45
- data/lib/chef/knife/core/bootstrap_context.rb +5 -5
- data/lib/chef/knife/core/windows_bootstrap_context.rb +1 -1
- data/lib/chef/knife/supermarket_install.rb +1 -1
- data/lib/chef/log/winevt.rb +1 -1
- data/lib/chef/mixin/openssl_helper.rb +21 -0
- data/lib/chef/monkey_patches/net_http.rb +0 -38
- data/lib/chef/provider/cron.rb +54 -9
- data/lib/chef/provider/cron/aix.rb +9 -2
- data/lib/chef/provider/launchd.rb +1 -1
- data/lib/chef/provider/user/aix.rb +1 -1
- data/lib/chef/provider/user/mac.rb +17 -22
- data/lib/chef/provider/windows_task.rb +2 -2
- data/lib/chef/resource/archive_file.rb +5 -2
- data/lib/chef/resource/cron.rb +29 -0
- data/lib/chef/resource/cron_d.rb +29 -0
- data/lib/chef/resource/openssl_x509_certificate.rb +32 -21
- data/lib/chef/resource/sudo.rb +13 -4
- data/lib/chef/version.rb +2 -2
- data/lib/chef/version_string.rb +3 -126
- data/spec/data/cookbooks/apache2/metadata.json +33 -0
- data/spec/data/cookbooks/java/metadata.json +33 -0
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +5 -5
- data/spec/integration/knife/chef_fs_data_store_spec.rb +7 -2
- data/spec/integration/knife/cookbook_upload_spec.rb +10 -0
- data/spec/integration/knife/deps_spec.rb +11 -0
- data/spec/integration/knife/upload_spec.rb +115 -14
- data/spec/unit/cookbook/cookbook_version_loader_spec.rb +7 -4
- data/spec/unit/knife/cookbook_upload_spec.rb +79 -18
- data/spec/unit/mixin/openssl_helper_spec.rb +42 -0
- data/spec/unit/provider/cron_spec.rb +127 -0
- data/spec/unit/provider/user/aix_spec.rb +2 -2
- metadata +8 -6
@@ -854,4 +854,46 @@ describe Chef::Mixin::OpenSSLHelper do
|
|
854
854
|
end
|
855
855
|
end
|
856
856
|
end
|
857
|
+
|
858
|
+
describe "#cert_need_renewall?" do
|
859
|
+
require "tempfile"
|
860
|
+
|
861
|
+
before(:each) do
|
862
|
+
@certfile = Tempfile.new("certfile")
|
863
|
+
end
|
864
|
+
|
865
|
+
context "When the cert file doesnt not exist" do
|
866
|
+
it "returns true" do
|
867
|
+
expect(instance.cert_need_renewall?("/tmp/bad_filename", 3650)).to be_truthy
|
868
|
+
end
|
869
|
+
end
|
870
|
+
|
871
|
+
context "When the cert file does exist, but does not contain a valid Certificate" do
|
872
|
+
it "returns true" do
|
873
|
+
@certfile.write("I_am_not_a_cert_I_am_a_free_man")
|
874
|
+
@certfile.close
|
875
|
+
expect(instance.cert_need_renewall?(@certfile.path, 3650)).to be_truthy
|
876
|
+
end
|
877
|
+
end
|
878
|
+
|
879
|
+
context "When the cert file does exist, and does not contain a soon to expire certficitate" do
|
880
|
+
it "returns false" do
|
881
|
+
@certfile.write("-----BEGIN CERTIFICATE-----\nMIIDODCCAiCgAwIBAgIVAPCkjE+wlZ1PgXwgvFgXKzhSpUkvMA0GCSqGSIb3DQEB\nCwUAMA0xCzAJBgNVBAMMAkNBMB4XDTE5MTIyNTEyNTY1NVoXDTI5MTIyMjEyNTY1\nNVowDTELMAkGA1UEAwwCQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQC9bDWs5akf85UEMj8kry4DYNuAnaL4GnMs6XukQtp3dso+FgbKprgVogyepnet\nE+GlQq32u/n4y8K228kB6NoCn+c/yP+4QlKUBt0xSzQbSUuAE/5xZoKi/kH1ZsQ/\nuKXN/tIHagApEUGn5zqc8WBvWPliRAqiklwj8WtSw1WRa5eCdaVtln3wKuvPnYR5\n/V4YBHyHNhtlfXJBMtEaXm1rRzJGun+FdcrsCfcIFXp8lWobF+EVP8fRwqFTEtT6\nRXv6RT8sHy53a0KNTm8qnbacfr1MofgUuhzLjOrbIVvXpnRLeOkv8XW5rSH+zgsC\nZFK3bJ3j6UVbFQV4jXwlAWVrAgMBAAGjgY4wgYswDgYDVR0PAQH/BAQDAgGmMA8G\nA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFK4S2PNu6bpjxkJxedNaxfCrwtD4MEkG\nA1UdIwRCMECAFK4S2PNu6bpjxkJxedNaxfCrwtD4oRGkDzANMQswCQYDVQQDDAJD\nQYIVAPCkjE+wlZ1PgXwgvFgXKzhSpUkvMA0GCSqGSIb3DQEBCwUAA4IBAQBGk+u3\n9N3PLWNOwYrqK7fD4yceWnz4UsV9uN1IU5PQTgYBaGyAZvU+VJluZZeDj7QjwbUW\ngISclvW/pSWpUVW3O0sfAM97u+5UMYHz4W5Bgq8CtdOKHgdZHKhzBePhmou11zO0\nZ6uQ7bkh0/REqKO7TFKaMMnakEhFXoDrS1EiB4W69KVXyrBVzVm5LK7uvOAQAeMp\nnEk3Oz+5pmKjSCf1cEd2jzAgDbaVrIvxICPgXAlNrKukmRW/0UHqDDVBfF7PioD2\nptlQFxWIkih6s/clwhsBFBwV1yyCirYfjhzmKPPLZUmx10okudLzaKrRbkPxrzbC\nmKEZoV+Nz2CNrGm5\n-----END CERTIFICATE-----\n")
|
882
|
+
@certfile.close
|
883
|
+
expect(instance.cert_need_renewall?(@certfile.path, 5)).to be_falsey
|
884
|
+
end
|
885
|
+
end
|
886
|
+
|
887
|
+
context "When the cert file does exist, and does contain a soon to expire certficitate" do
|
888
|
+
it "returns true" do
|
889
|
+
@certfile.write("-----BEGIN CERTIFICATE-----\nMIIDODCCAiCgAwIBAgIVAPCkjE+wlZ1PgXwgvFgXKzhSpUkvMA0GCSqGSIb3DQEB\nCwUAMA0xCzAJBgNVBAMMAkNBMB4XDTE5MTIyNTEyNTY1NVoXDTI5MTIyMjEyNTY1\nNVowDTELMAkGA1UEAwwCQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQC9bDWs5akf85UEMj8kry4DYNuAnaL4GnMs6XukQtp3dso+FgbKprgVogyepnet\nE+GlQq32u/n4y8K228kB6NoCn+c/yP+4QlKUBt0xSzQbSUuAE/5xZoKi/kH1ZsQ/\nuKXN/tIHagApEUGn5zqc8WBvWPliRAqiklwj8WtSw1WRa5eCdaVtln3wKuvPnYR5\n/V4YBHyHNhtlfXJBMtEaXm1rRzJGun+FdcrsCfcIFXp8lWobF+EVP8fRwqFTEtT6\nRXv6RT8sHy53a0KNTm8qnbacfr1MofgUuhzLjOrbIVvXpnRLeOkv8XW5rSH+zgsC\nZFK3bJ3j6UVbFQV4jXwlAWVrAgMBAAGjgY4wgYswDgYDVR0PAQH/BAQDAgGmMA8G\nA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFK4S2PNu6bpjxkJxedNaxfCrwtD4MEkG\nA1UdIwRCMECAFK4S2PNu6bpjxkJxedNaxfCrwtD4oRGkDzANMQswCQYDVQQDDAJD\nQYIVAPCkjE+wlZ1PgXwgvFgXKzhSpUkvMA0GCSqGSIb3DQEBCwUAA4IBAQBGk+u3\n9N3PLWNOwYrqK7fD4yceWnz4UsV9uN1IU5PQTgYBaGyAZvU+VJluZZeDj7QjwbUW\ngISclvW/pSWpUVW3O0sfAM97u+5UMYHz4W5Bgq8CtdOKHgdZHKhzBePhmou11zO0\nZ6uQ7bkh0/REqKO7TFKaMMnakEhFXoDrS1EiB4W69KVXyrBVzVm5LK7uvOAQAeMp\nnEk3Oz+5pmKjSCf1cEd2jzAgDbaVrIvxICPgXAlNrKukmRW/0UHqDDVBfF7PioD2\nptlQFxWIkih6s/clwhsBFBwV1yyCirYfjhzmKPPLZUmx10okudLzaKrRbkPxrzbC\nmKEZoV+Nz2CNrGm5\n-----END CERTIFICATE-----\n")
|
890
|
+
@certfile.close
|
891
|
+
expect(instance.cert_need_renewall?(@certfile.path, 3650)).to be_truthy
|
892
|
+
end
|
893
|
+
end
|
894
|
+
|
895
|
+
after(:each) do
|
896
|
+
@certfile.unlink
|
897
|
+
end
|
898
|
+
end
|
857
899
|
end
|
@@ -1081,4 +1081,131 @@ describe Chef::Provider::Cron do
|
|
1081
1081
|
end
|
1082
1082
|
end
|
1083
1083
|
end
|
1084
|
+
|
1085
|
+
describe "#env_var_str" do
|
1086
|
+
context "when no env vars are set" do
|
1087
|
+
it "returns an empty string" do
|
1088
|
+
expect(@provider.send(:env_var_str)).to be_empty
|
1089
|
+
end
|
1090
|
+
end
|
1091
|
+
let(:mailto) { "foo@example.com" }
|
1092
|
+
context "When set directly" do
|
1093
|
+
it "returns string with value" do
|
1094
|
+
@new_resource.mailto mailto
|
1095
|
+
expect(@provider.send(:env_var_str)).to include(mailto)
|
1096
|
+
end
|
1097
|
+
end
|
1098
|
+
context "When set within the hash" do
|
1099
|
+
context "env properties" do
|
1100
|
+
it "returns string with a warning" do
|
1101
|
+
@new_resource.environment "MAILTO" => mailto
|
1102
|
+
expect(logger).to receive(:warn).with("cronhole some stuff: the environment property contains the 'MAILTO' variable, which should be set separately as a property.")
|
1103
|
+
expect(@provider.send(:env_var_str)).to include(mailto)
|
1104
|
+
end
|
1105
|
+
end
|
1106
|
+
context "other properties" do
|
1107
|
+
it "returns string with no warning" do
|
1108
|
+
@new_resource.environment "FOOMAILTO" => mailto
|
1109
|
+
expect(logger).not_to receive(:warn).with("cronhole some stuff: the environment property contains the 'MAILTO' variable, which should be set separately as a property.")
|
1110
|
+
expect(@provider.send(:env_var_str)).to include(mailto)
|
1111
|
+
end
|
1112
|
+
it "and a line break within properties" do
|
1113
|
+
@new_resource.environment "FOOMAILTO" => mailto, "BARMAILTO" => mailto
|
1114
|
+
expect(@provider.send(:env_var_str)).to eq("FOOMAILTO=foo@example.com\nBARMAILTO=foo@example.com")
|
1115
|
+
end
|
1116
|
+
end
|
1117
|
+
context "both env and other properties" do
|
1118
|
+
it "returns string with line break within the properties" do
|
1119
|
+
@new_resource.mailto mailto
|
1120
|
+
@new_resource.environment "FOOMAILTO" => mailto
|
1121
|
+
expect(@provider.send(:env_var_str)).to eq("MAILTO=\"foo@example.com\"\nFOOMAILTO=foo@example.com")
|
1122
|
+
end
|
1123
|
+
end
|
1124
|
+
end
|
1125
|
+
end
|
1126
|
+
|
1127
|
+
describe "#duration_str" do
|
1128
|
+
context "time as a frequency" do
|
1129
|
+
it "returns string" do
|
1130
|
+
@new_resource.time :yearly
|
1131
|
+
expect(@provider.send(:duration_str)).to eq("@yearly")
|
1132
|
+
end
|
1133
|
+
end
|
1134
|
+
context "time as a duration" do
|
1135
|
+
it "defaults to * (No Specific Value)" do
|
1136
|
+
@new_resource.minute "1"
|
1137
|
+
expect(@provider.send(:duration_str)).to eq("1 * * * *")
|
1138
|
+
end
|
1139
|
+
it "returns cron format string" do
|
1140
|
+
@new_resource.minute "1"
|
1141
|
+
@new_resource.hour "2"
|
1142
|
+
@new_resource.day "3"
|
1143
|
+
@new_resource.month "4"
|
1144
|
+
@new_resource.weekday "5"
|
1145
|
+
expect(@provider.send(:duration_str)).to eq("1 2 3 4 5")
|
1146
|
+
end
|
1147
|
+
end
|
1148
|
+
end
|
1149
|
+
|
1150
|
+
describe "#time_out_str" do
|
1151
|
+
context "When not given" do
|
1152
|
+
it "Returns an empty string" do
|
1153
|
+
expect(@provider.send(:time_out_str)).to be_empty
|
1154
|
+
end
|
1155
|
+
end
|
1156
|
+
context "When given" do
|
1157
|
+
let(:time_out_str_val) { " timeout 10;" }
|
1158
|
+
context "as String" do
|
1159
|
+
it "returns string" do
|
1160
|
+
@new_resource.time_out "10"
|
1161
|
+
expect(@provider.send(:time_out_str)).to eq time_out_str_val
|
1162
|
+
end
|
1163
|
+
end
|
1164
|
+
context "as Integer" do
|
1165
|
+
it "returns string" do
|
1166
|
+
@new_resource.time_out "10"
|
1167
|
+
expect(@provider.send(:time_out_str)).to eq time_out_str_val
|
1168
|
+
end
|
1169
|
+
end
|
1170
|
+
context "as Hash" do
|
1171
|
+
it "returns string" do
|
1172
|
+
@new_resource.time_out "duration" => "10"
|
1173
|
+
expect(@provider.send(:time_out_str)).to eq time_out_str_val
|
1174
|
+
end
|
1175
|
+
it "also contains properties" do
|
1176
|
+
@new_resource.time_out "duration" => "10", "foreground" => "true", "signal" => "FOO"
|
1177
|
+
expect(@provider.send(:time_out_str)).to eq " timeout --foreground --signal FOO 10;"
|
1178
|
+
end
|
1179
|
+
end
|
1180
|
+
end
|
1181
|
+
end
|
1182
|
+
|
1183
|
+
describe "#cmd_str" do
|
1184
|
+
context "With command" do
|
1185
|
+
let(:cmd) { "FOOBAR" }
|
1186
|
+
before {
|
1187
|
+
@new_resource.command cmd
|
1188
|
+
}
|
1189
|
+
it "returns a string with command" do
|
1190
|
+
expect(@provider.send(:cmd_str)).to include(cmd)
|
1191
|
+
end
|
1192
|
+
it "string ends with a next line" do
|
1193
|
+
expect(@provider.send(:cmd_str)[-1]).to eq("\n")
|
1194
|
+
end
|
1195
|
+
end
|
1196
|
+
context "Without command, passed" do
|
1197
|
+
context "as nil" do
|
1198
|
+
it "returns an empty string with a next line" do
|
1199
|
+
@new_resource.command nil
|
1200
|
+
expect(@provider.send(:cmd_str)).to eq(" \n")
|
1201
|
+
end
|
1202
|
+
end
|
1203
|
+
context "as an empty string" do
|
1204
|
+
it "returns an empty string with a next line" do
|
1205
|
+
@new_resource.command ""
|
1206
|
+
expect(@provider.send(:cmd_str)).to eq(" \n")
|
1207
|
+
end
|
1208
|
+
end
|
1209
|
+
end
|
1210
|
+
end
|
1084
1211
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright:: Copyright 2017, Chef Software Inc.
|
1
|
+
# Copyright:: Copyright 2017-2019, Chef Software Inc.
|
2
2
|
#
|
3
3
|
# License:: Apache License, Version 2.0
|
4
4
|
#
|
@@ -51,7 +51,7 @@ describe Chef::Provider::User::Aix do
|
|
51
51
|
end
|
52
52
|
|
53
53
|
it "should call chpasswd correctly" do
|
54
|
-
expect(provider).to receive(:shell_out_compacted!).with("echo 'adam:Ostagazuzulum' | chpasswd -e").and_return true
|
54
|
+
expect(provider).to receive(:shell_out_compacted!).with("echo 'adam:Ostagazuzulum' | chpasswd -c -e").and_return true
|
55
55
|
provider.manage_user
|
56
56
|
end
|
57
57
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 15.
|
4
|
+
version: 15.7.30
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Jacob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef-config
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 15.
|
19
|
+
version: 15.7.30
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 15.
|
26
|
+
version: 15.7.30
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: chef-utils
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 15.
|
33
|
+
version: 15.7.30
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 15.
|
40
|
+
version: 15.7.30
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: train-core
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1509,6 +1509,7 @@ files:
|
|
1509
1509
|
- spec/data/cookbooks/angrybash/metadata.rb
|
1510
1510
|
- spec/data/cookbooks/angrybash/recipes/default.rb
|
1511
1511
|
- spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl
|
1512
|
+
- spec/data/cookbooks/apache2/metadata.json
|
1512
1513
|
- spec/data/cookbooks/apache2/metadata.rb
|
1513
1514
|
- spec/data/cookbooks/apache2/recipes/default.rb
|
1514
1515
|
- spec/data/cookbooks/borken/metadata.rb
|
@@ -1522,6 +1523,7 @@ files:
|
|
1522
1523
|
- spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb
|
1523
1524
|
- spec/data/cookbooks/irssi/files/default/irssi.response
|
1524
1525
|
- spec/data/cookbooks/java/files/default/java.response
|
1526
|
+
- spec/data/cookbooks/java/metadata.json
|
1525
1527
|
- spec/data/cookbooks/java/metadata.rb
|
1526
1528
|
- spec/data/cookbooks/name-mismatch-versionnumber/README.md
|
1527
1529
|
- spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb
|