poise-archive 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.kitchen.yml +3 -0
- data/.travis.yml +22 -0
- data/.yardopts +7 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +34 -0
- data/LICENSE +201 -0
- data/README.md +79 -0
- data/Rakefile +17 -0
- data/lib/poise_archive/archive_providers/base.rb +103 -0
- data/lib/poise_archive/archive_providers/tar.rb +121 -0
- data/lib/poise_archive/archive_providers/zip.rb +30 -0
- data/lib/poise_archive/archive_providers.rb +34 -0
- data/lib/poise_archive/cheftie.rb +18 -0
- data/lib/poise_archive/resources/poise_archive.rb +80 -0
- data/lib/poise_archive/resources.rb +26 -0
- data/lib/poise_archive/version.rb +20 -0
- data/lib/poise_archive.rb +21 -0
- data/poise-archive.gemspec +40 -0
- data/test/cookbook/files/myapp-1.0.0.tar +0 -0
- data/test/cookbook/files/myapp-1.0.0.tar.bz2 +0 -0
- data/test/cookbook/files/myapp-1.0.0.tar.gz +0 -0
- data/test/cookbook/files/myapp-1.0.0.zip +0 -0
- data/test/cookbook/metadata.rb +18 -0
- data/test/cookbook/recipes/default.rb +84 -0
- data/test/docker/docker.ca +29 -0
- data/test/docker/docker.pem +83 -0
- data/test/gemfiles/chef-12.1.gemfile +19 -0
- data/test/gemfiles/chef-12.2.gemfile +19 -0
- data/test/gemfiles/chef-12.3.gemfile +19 -0
- data/test/gemfiles/chef-12.4.gemfile +21 -0
- data/test/gemfiles/chef-12.5.gemfile +19 -0
- data/test/gemfiles/chef-12.6.gemfile +19 -0
- data/test/gemfiles/chef-12.gemfile +19 -0
- data/test/gemfiles/master.gemfile +25 -0
- data/test/integration/default/serverspec/default_spec.rb +66 -0
- data/test/spec/archive_providers/tar_spec.rb +134 -0
- data/test/spec/archive_providers/zip_spec.rb +32 -0
- data/test/spec/resources/poise_archive_spec.rb +87 -0
- data/test/spec/spec_helper.rb +19 -0
- metadata +148 -0
@@ -0,0 +1,29 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIFCzCCAvOgAwIBAgIJAJTJgn9tSdKmMA0GCSqGSIb3DQEBBQUAMA0xCzAJBgNV
|
3
|
+
BAMTAkNBMB4XDTE1MDExMjIwMjk0M1oXDTI1MDEwOTIwMjk0M1owDTELMAkGA1UE
|
4
|
+
AxMCQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDDPFn79sz1kQLk
|
5
|
+
rAS5z/zfCMXuE+V9IEmGXJeSprsXrv+AdjFpVDr52lpvZ36i2gixk8grcWtFqQMC
|
6
|
+
jB1c2HUe69ebC89rHSPmGCx5eRcWQPQG29fdH/nC+I34EbYadJB7PdzkvTj0KuN8
|
7
|
+
YfQj6lhwqltYiELZhuGoXcuhwZ5SC4VcJ2cdvx7oQPECLlMft8dhWyk15WGhp0jL
|
8
|
+
2H5noGajz9IFzHieoKJyh+oYA3BYCugpNBLTweNw+NuRxMwHixftvkXvlqKeZ402
|
9
|
+
4iwmIO8MG9oUxXs6D85gv6tJOau+dD1EDYH9VzYwSvLto3QBzJX0NiHKlmeq4BG2
|
10
|
+
1V3n+N1kZmMDgEtX2TDFsGHlUo77Gw0ob/w7qJU+7GAXRwWw7TPhMBLSkOlGM726
|
11
|
+
Lq9p5+7mK1YThk0PmlsSAU6/fT79PSdrYpTKr3WkBTnwd76df+Koh8fpN4BHf9L4
|
12
|
+
9bWSYc9Nb9/wp0md9xhzjjVHargpVxZmNH7bcIa8YA9tYaW+oifo2hfb7o0qhGQ1
|
13
|
+
8pES3LPUi/qtZkBYUQdh8/mkqTvRjeS446iUmYWcrHyiIzQk/cMbrAVYOi3Xnq0J
|
14
|
+
ui/r48iv7uLhpcDEQl2mENr0syygrPthVKa4gYHAZ0tK3pfe0yUGMiwS2D23xMR4
|
15
|
+
WYLWLwYSK0j1JYpEbsBNS3wZX91FIwIDAQABo24wbDAdBgNVHQ4EFgQU1j2CHhNt
|
16
|
+
sWAvDmu49yRFfHRBp9kwPQYDVR0jBDYwNIAU1j2CHhNtsWAvDmu49yRFfHRBp9mh
|
17
|
+
EaQPMA0xCzAJBgNVBAMTAkNBggkAlMmCf21J0qYwDAYDVR0TBAUwAwEB/zANBgkq
|
18
|
+
hkiG9w0BAQUFAAOCAgEAD7apefon65k3Xey7vsTb/A18m7JwBNLB48ILNcSKVgO1
|
19
|
+
iuSMCGNQ+4bNU4o9cTpRoijB3w4RY7IIaDlRcUg8FIO6kgEhjhiAjSSqJAaajOFc
|
20
|
+
urxOmi9E7xYmTDqLxEGF5/5vaG4olAi3tRgZNd2+Ue0ANZ1KMh3ZkE0nA5v1zb/g
|
21
|
+
Ax/Zs6tATdoG6umMQg8TjiKucwi9J9he+xJ5y0E77/RrdNL9aKcU47wTAwUkokpb
|
22
|
+
u1JFo1da3yZLDwQuBN5DCc4pgPgxXlfa6DnzQM1veKIhP5sa9T4sCC8S4IjGFenw
|
23
|
+
yl4xm+9AOZQeLFpczqgVJhun5P41syepnZ433hWoLXKLHd1n0ILgw9JyVF686LIt
|
24
|
+
bSar3+krmFuzdRCfet0kJR762p8jmxJOwL+KQGELGlkleJK48a+ruWIeeulZhpJ5
|
25
|
+
tF4QJxytq4aXpjeFma0Yi/0rQuNi3H1QIW5YPnFL0XlJ8Rvr8gSVc1zhkM9rsnxX
|
26
|
+
l9Pun0flP/mf/ulOa020hQUPqEYjSfdJOkLy2gZDvHRL2LRXNjGHoteGNJCq34Q1
|
27
|
+
wQerxofHn+Hpp61+Ebj+RLK0KJE+QeP3T8rL30aSSzQZQZJVI0ict5C71kiTbQnw
|
28
|
+
Z0vE6LquvFfMSqfPLt6uuCRVywBjLx19B7TuMf/DgAD+lR+1FFGKy1hO2Q1jfCY=
|
29
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,83 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIFBjCCAu6gAwIBAgIBKTANBgkqhkiG9w0BAQUFADANMQswCQYDVQQDEwJDQTAe
|
3
|
+
Fw0xNjAzMjEyMTI5MDdaFw0yNjAzMTkyMTI5MDdaMGcxKDAmBgNVBAMTH0RvY2tl
|
4
|
+
ciBjbGllbnQgZm9yIHBvaXNlLWFyY2hpdmUxFzAVBgNVBAsTDmtpdGNoZW4tZG9j
|
5
|
+
a2VyMSIwIAYDVQQKExlDb2RlcmFuZ2VyIENvbnN1bHRpbmcgTExDMIICIjANBgkq
|
6
|
+
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxdOXGfJDlj2avkt3BUUfMj1zeqG5lVIP
|
7
|
+
mXb3HgfwjOJykE5exkVaBJsaJm6VKAloci8c/22Yqv9muHQpUDKbLYfqlsgBB2Ws
|
8
|
+
POpbN7VYreGUvzjy1vo6KJWW8DJJfkPNcsq9ZuazsAyV/Ax1ssmjqAGIizvqgaox
|
9
|
+
eu97McPI4t5kKuGKySve8uGzpfC0d2sPlIydHKldWAFrUcs0wp862dz3TJqPLEbm
|
10
|
+
6Sc/V+LBxIGicL9PlQW2rhpq3DoZdTUkmE6gNps4IcFPIWxvKY2Rmki/BfQvQtSb
|
11
|
+
aOXEpCvzSdL8iXfzfKQtpY9cIdNBsK6Q45qeI6Ec6RRsIjOM2MfKkqVho+qyZdgU
|
12
|
+
bg6WsROB+IPthCLyUECo7t1AzrZBQVWpbiIB92kX3Orv30Eq29Xr3cj1HnVJvwYM
|
13
|
+
Qe1VviURDWt7wQt79SK8TrvFDZTwdgbC/t+JawBh4ORyqeO6bcE6LZtCNtt5yqs4
|
14
|
+
b5XKayDttNZtix8T+OLMmDJMk9N7YJBvxo3AQC9Dd3KIrDjoZmvPjWU+RM93lRSK
|
15
|
+
+9YY6OMTPUzpU731+6hSB6GbpgwfLpHGunKd7M7LoXAQpQzNKyyNZ/WhczugrjET
|
16
|
+
Svk9nxXD9kPHK44VbYE+Wd19nJ4iS/L0LdArpLFxy/xWSQ4c0lNF1m/5ie26Dvsh
|
17
|
+
tRHHs6qIxmkCAwEAAaMXMBUwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcN
|
18
|
+
AQEFBQADggIBAI8ddajh/Jg5rTjh5ZskAzfyiqxIdirQ7VD3qPIwfpGYrsSX/WxJ
|
19
|
+
Rmsf0TXTE/uCwsxHaBgnXdXHvY4KyAuKDdLvfDQ/TUcXd0ck4Fb1icAk7nl/1EMg
|
20
|
+
vVXmkhBHeF4rAbZClZjl7hFByn9w5YIsMKcLc4Lfz1Cw2GQ5MTkaqfsTKtwIa+Oo
|
21
|
+
Qd34VL7/QSQzwPdO65kI6Y8JHMePWd5LnN56m4X+9HWKbUshcO/BB+/TVaoLN4QC
|
22
|
+
/tmGbqvri6C4BssUVuEorXHCqBTJY8pnsElXfPzOd9PhY8mYcjC10Gw6kJGLKZ/A
|
23
|
+
5Gisz0zCLtSRaaAUb3SiYdTTl3wVJ5Ha/m/40E6YnC1/E+09esywp067/x84lWjA
|
24
|
+
o4SA4BoegTB4PlHUOHERFsJ2iAiaosTQv6+YYbEUrLn29l/4dVaMd4cmgkFEDI2g
|
25
|
+
ivk4NRDGw6NF0oBFHVGq/oEN4qcSYnPJdtQaaq8du0gTSsCyx6Atae4gv0l5qWnB
|
26
|
+
RfE6NqhpClacqu/ODIrXwIQQkAP/SbVsUJmTZSuS7rd4tF6J+NbDlxBTdmF9CuB5
|
27
|
+
OavzG/y5v+0fiOWyfG9tXwhfdVJyeT2VuZysgDedFUc71tVnRfGQwcDuwdL7n9y5
|
28
|
+
i0ynm9/2bbAeCjIha2+2PIClXXYWRawiR9fH3dzeZAETh/89HskO+RFc
|
29
|
+
-----END CERTIFICATE-----
|
30
|
+
-----BEGIN RSA PRIVATE KEY-----
|
31
|
+
Proc-Type: 4,ENCRYPTED
|
32
|
+
DEK-Info: AES-256-CBC,029E66FD74E24E9BB59712990EE99341
|
33
|
+
|
34
|
+
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
|
83
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
|
+
|
19
|
+
gem 'chef', '~> 12.1.2'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
|
+
|
19
|
+
gem 'chef', '~> 12.2.1'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
|
+
|
19
|
+
gem 'chef', '~> 12.3.0'
|
@@ -0,0 +1,21 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
|
+
|
19
|
+
gem 'chef', '~> 12.4.3'
|
20
|
+
# Pending https://github.com/berkshelf/ridley/pull/335
|
21
|
+
gem 'ridley', '4.4.1'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
|
+
|
19
|
+
gem 'chef', '~> 12.5.1'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
|
+
|
19
|
+
gem 'chef', '~> 12.6.0'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
|
+
|
19
|
+
gem 'chef', '~> 12.6'
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
|
+
|
19
|
+
gem 'chef', github: 'chef/chef'
|
20
|
+
gem 'halite', github: 'poise/halite'
|
21
|
+
gem 'poise', github: 'poise/poise'
|
22
|
+
gem 'poise-boiler', github: 'poise/poise-boiler'
|
23
|
+
# gem 'poise-languages', github: 'poise/poise-languages'
|
24
|
+
gem 'poise-profiler', github: 'poise/poise-profiler'
|
25
|
+
gem 'poise-service', github: 'poise/poise-service'
|
@@ -0,0 +1,66 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2016, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'serverspec'
|
18
|
+
set :backend, :exec
|
19
|
+
|
20
|
+
RSpec.shared_examples 'a poise_archive test' do |ext|
|
21
|
+
base = "/test/#{ext}"
|
22
|
+
|
23
|
+
describe file("#{base}/LICENSE") do
|
24
|
+
its(:content) { is_expected.to eq "This is in the public domain.\n" }
|
25
|
+
end
|
26
|
+
describe file("#{base}/README") do
|
27
|
+
its(:content) { is_expected.to eq "This is a project!\n\n" }
|
28
|
+
end
|
29
|
+
describe file("#{base}/src/main.c") do
|
30
|
+
it { is_expected.to be_a_file }
|
31
|
+
end
|
32
|
+
describe file("#{base}_0/myapp-1.0.0/src/main.c") do
|
33
|
+
it { is_expected.to be_a_file }
|
34
|
+
end
|
35
|
+
describe file("#{base}_2/main.c") do
|
36
|
+
it { is_expected.to be_a_file }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe 'tar' do
|
41
|
+
it_should_behave_like 'a poise_archive test', 'tar'
|
42
|
+
end
|
43
|
+
|
44
|
+
describe 'tar.gz' do
|
45
|
+
it_should_behave_like 'a poise_archive test', 'tar.gz'
|
46
|
+
end
|
47
|
+
|
48
|
+
describe 'tar.bz2' do
|
49
|
+
it_should_behave_like 'a poise_archive test', 'tar.bz2'
|
50
|
+
end
|
51
|
+
|
52
|
+
describe 'core features' do
|
53
|
+
describe file('/test/user') do
|
54
|
+
it { is_expected.to be_owned_by 'poise' }
|
55
|
+
it { is_expected.to be_mode '700' }
|
56
|
+
end
|
57
|
+
describe file('/test/user/README') do
|
58
|
+
it { is_expected.to be_owned_by 'poise' }
|
59
|
+
end
|
60
|
+
describe file('/test/keep/EXISTING') do
|
61
|
+
it { is_expected.to be_a_file }
|
62
|
+
end
|
63
|
+
describe file('/test/existing/EXISTING') do
|
64
|
+
it { is_expected.to_not exist }
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,134 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2016, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'spec_helper'
|
18
|
+
|
19
|
+
describe PoiseArchive::ArchiveProviders::Tar do
|
20
|
+
step_into(:poise_archive)
|
21
|
+
|
22
|
+
describe '#action_unpack' do
|
23
|
+
let(:tar_cmd) { [] }
|
24
|
+
let(:archive_provider) { chef_run.poise_archive('myapp').provider_for_action(:unpack) }
|
25
|
+
before do
|
26
|
+
allow(described_class).to receive(:mktmpdir).and_yield('/test')
|
27
|
+
allow(Dir).to receive(:entries).and_call_original
|
28
|
+
allow(Dir).to receive(:entries).with('/root/myapp').and_return([])
|
29
|
+
expect_any_instance_of(described_class).to receive(:poise_shell_out!).with(tar_cmd, cwd: '/test', group: nil, user: nil)
|
30
|
+
expect_any_instance_of(described_class).to receive(:entries_at_depth).with('/test', 1).and_return(%w{/test/myapp/bin /test/myapp/src})
|
31
|
+
expect(File).to receive(:rename).with('/test/myapp/bin', '/root/myapp/bin')
|
32
|
+
expect(File).to receive(:rename).with('/test/myapp/src', '/root/myapp/src')
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'with a .tar path' do
|
36
|
+
let(:tar_cmd) { %w{tar -xvf /root/myapp.tar} }
|
37
|
+
recipe do
|
38
|
+
poise_archive 'myapp' do
|
39
|
+
path '/root/myapp.tar'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
it { expect(archive_provider).to be_a described_class }
|
44
|
+
end # /context with a .tar path
|
45
|
+
|
46
|
+
context 'with a .tar.gz path' do
|
47
|
+
let(:tar_cmd) { %w{tar -xzvf /root/myapp.tar.gz} }
|
48
|
+
recipe do
|
49
|
+
poise_archive 'myapp' do
|
50
|
+
path '/root/myapp.tar.gz'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
it { expect(archive_provider).to be_a described_class }
|
55
|
+
end # /context with a .tar.gz path
|
56
|
+
|
57
|
+
context 'with a .tar.bz path' do
|
58
|
+
let(:tar_cmd) { %w{tar -xjvf /root/myapp.tar.bz} }
|
59
|
+
recipe do
|
60
|
+
poise_archive 'myapp' do
|
61
|
+
path '/root/myapp.tar.bz'
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
it { expect(archive_provider).to be_a described_class }
|
66
|
+
end # /context with a .tar.bz path
|
67
|
+
|
68
|
+
context 'with a .tar.bz2 path' do
|
69
|
+
let(:tar_cmd) { %w{tar -xjvf /root/myapp.tar.bz2} }
|
70
|
+
recipe do
|
71
|
+
poise_archive 'myapp' do
|
72
|
+
path '/root/myapp.tar.bz2'
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
it { expect(archive_provider).to be_a described_class }
|
77
|
+
end # /context with a .tar.bz2 path
|
78
|
+
|
79
|
+
context 'with a .tgz path' do
|
80
|
+
let(:tar_cmd) { %w{tar -xzvf /root/myapp.tgz} }
|
81
|
+
recipe do
|
82
|
+
poise_archive 'myapp' do
|
83
|
+
path '/root/myapp.tgz'
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
it { expect(archive_provider).to be_a described_class }
|
88
|
+
end # /context with a .tgz path
|
89
|
+
|
90
|
+
context 'with a .tbz path' do
|
91
|
+
let(:tar_cmd) { %w{tar -xjvf /root/myapp.tbz} }
|
92
|
+
recipe do
|
93
|
+
poise_archive 'myapp' do
|
94
|
+
path '/root/myapp.tbz'
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
it { expect(archive_provider).to be_a described_class }
|
99
|
+
end # /context with a .tbz path
|
100
|
+
end # /describe #action_unpack
|
101
|
+
|
102
|
+
describe '#entries_at_depth' do
|
103
|
+
let(:depth) { nil }
|
104
|
+
subject { described_class.new(nil, nil).send(:entries_at_depth, '/test', depth) }
|
105
|
+
before do
|
106
|
+
allow(Dir).to receive(:entries).and_call_original
|
107
|
+
allow(Dir).to receive(:entries).with('/test').and_return(%w{. .. a b})
|
108
|
+
allow(Dir).to receive(:entries).with('/test/a').and_return(%w{. .. aa ab})
|
109
|
+
allow(Dir).to receive(:entries).with('/test/a/aa').and_return(%w{. .. aaa})
|
110
|
+
allow(Dir).to receive(:entries).with('/test/a/ab').and_return(%w{. .. aba abb})
|
111
|
+
allow(File).to receive(:directory?).and_call_original
|
112
|
+
allow(File).to receive(:directory?).with('/test').and_return(true)
|
113
|
+
allow(File).to receive(:directory?).with('/test/a').and_return(true)
|
114
|
+
allow(File).to receive(:directory?).with('/test/b').and_return(false)
|
115
|
+
allow(File).to receive(:directory?).with('/test/a/aa').and_return(true)
|
116
|
+
allow(File).to receive(:directory?).with('/test/a/ab').and_return(true)
|
117
|
+
end
|
118
|
+
|
119
|
+
context 'with depth 0' do
|
120
|
+
let(:depth) { 0 }
|
121
|
+
it { is_expected.to eq %w{/test/a /test/b} }
|
122
|
+
end # /context with depth 0
|
123
|
+
|
124
|
+
context 'with depth 1' do
|
125
|
+
let(:depth) { 1 }
|
126
|
+
it { is_expected.to eq %w{/test/a/aa /test/a/ab} }
|
127
|
+
end # /context with depth 1
|
128
|
+
|
129
|
+
context 'with depth 2' do
|
130
|
+
let(:depth) { 2 }
|
131
|
+
it { is_expected.to eq %w{/test/a/aa/aaa /test/a/ab/aba /test/a/ab/abb} }
|
132
|
+
end # /context with depth 2
|
133
|
+
end # /describe #entries_at_depth
|
134
|
+
end
|