vagrant-proxyconf 2.0.3 → 2.0.8

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.
Files changed (41) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +12 -7
  3. data/CHANGELOG.md +141 -1
  4. data/Gemfile +1 -18
  5. data/Jenkinsfile +60 -0
  6. data/Makefile +33 -0
  7. data/README.md +22 -0
  8. data/deps/patches/lib/vagrant/bundler.rb.patch +14 -0
  9. data/jenkins/helper_functions +206 -0
  10. data/lib/vagrant-proxyconf/action/base.rb +20 -9
  11. data/lib/vagrant-proxyconf/action/configure_docker_proxy.rb +21 -21
  12. data/lib/vagrant-proxyconf/config/apt_proxy.rb +21 -2
  13. data/lib/vagrant-proxyconf/version.rb +1 -1
  14. data/spec/unit/support/shared/apt_proxy_config.rb +12 -0
  15. data/spec/unit/vagrant-proxyconf/action/configure_docker_proxy_spec.rb +23 -21
  16. data/spec/unit/vagrant-proxyconf/action/configure_svn_proxy_spec.rb +1 -0
  17. data/test/issues/172/README.md +2 -2
  18. data/test/issues/172/spec/docker_host/redhat_spec.rb +2 -2
  19. data/test/issues/180/spec/docker_host/redhat_spec.rb +2 -2
  20. data/test/issues/192/.rspec +2 -0
  21. data/test/issues/192/Dockerfile +47 -0
  22. data/test/issues/192/Dockerfile.bionic +40 -0
  23. data/test/issues/192/README.md +29 -0
  24. data/test/issues/192/Rakefile +27 -0
  25. data/test/issues/192/Vagrantfile +64 -0
  26. data/test/issues/192/entrypoint.sh +50 -0
  27. data/test/issues/192/spec/default/redhat_spec.rb +15 -0
  28. data/test/issues/192/spec/docker_host/ubuntu_spec.rb +3 -0
  29. data/test/issues/192/spec/spec_helper.rb +52 -0
  30. data/test/issues/192/tinyproxy.conf +333 -0
  31. data/test/issues/199/.rspec +2 -0
  32. data/test/issues/199/Dockerfile +47 -0
  33. data/test/issues/199/README.md +31 -0
  34. data/test/issues/199/Rakefile +27 -0
  35. data/test/issues/199/Vagrantfile +74 -0
  36. data/test/issues/199/entrypoint.sh +50 -0
  37. data/test/issues/199/spec/apt_host/ubuntu_spec.rb +135 -0
  38. data/test/issues/199/spec/default/redhat_spec.rb +15 -0
  39. data/test/issues/199/spec/spec_helper.rb +52 -0
  40. data/test/issues/199/tinyproxy.conf +333 -0
  41. metadata +49 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: e3b17734205419226e064520e1dabdcd04e368fb
4
- data.tar.gz: c479e89afc35d15965a2de05855b8c2521e9dcb9
2
+ SHA256:
3
+ metadata.gz: 4d721ed3ca409df6422674ace6fe21eb4d061f2803ab1e3d3297f2a6443ca06b
4
+ data.tar.gz: ba5327b55dbda01b797803002c990b96a9905897ec9fa933f38dac8c9fd00341
5
5
  SHA512:
6
- metadata.gz: 4c56154d1e9a74dc94374f8818564e350f1ea18ed576a3865c80632f1e416040b912340f3f811ad717aa53dacfc9e5a58e881e192f931c5a2eebbb7b453a8ffb
7
- data.tar.gz: 3492607c652bc801396ee47c36550de224487a65f5db6b419c6dce3eabe04381a287f51057080c80c5844ec828589717dcde7a36a0f4a3fc499ac29ec61f2ab7
6
+ metadata.gz: d4be0de47b43ad064279e9820e22de28a3ac55436635eb655dea3e407df08c71900569a565df930d090e4ebe8a887542feeeb4f1018881aae6e0166179882bb1
7
+ data.tar.gz: e259b6a96d86aca4fdebca70a029c918c574801569aee4acee0299908d7f2f34633627561e4b35d13f5b4af16e3d45c34025683523808dedcc09988bd827d881
@@ -1,24 +1,29 @@
1
+ ---
2
+
1
3
  language: ruby
2
4
  cache: bundler
3
5
  sudo: false
4
6
 
5
7
  before_install: ./travis/before_install
8
+ install: make
9
+ script: bundle exec rspec
6
10
  bundler_args: --without=development
7
11
 
8
12
  env:
9
13
  global:
10
14
  - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
11
15
 
12
- rvm: 2.4.4
16
+ rvm:
17
+ - 2.6.6
18
+
13
19
  matrix:
14
20
  include:
21
+ - env: VAGRANT_VERSION=v2.2.9
22
+ - env: VAGRANT_VERSION=v2.2.8
23
+ - env: VAGRANT_VERSION=v2.2.7
24
+ - env: VAGRANT_VERSION=v2.2.6
25
+ - env: VAGRANT_VERSION=v2.2.5
15
26
  - env: VAGRANT_VERSION=v2.2.4
16
- - env: VAGRANT_VERSION=v2.2.3
17
- - env: VAGRANT_VERSION=v2.2.2
18
- - env: VAGRANT_VERSION=v2.1.5
19
- - env: VAGRANT_VERSION=v2.0.4
20
- - env: VAGRANT_VERSION=v1.9.8
21
- rvm: 2.3.4
22
27
  - env: VAGRANT_VERSION=master
23
28
  allow_failures:
24
29
  - env: VAGRANT_VERSION=master
@@ -1,4 +1,144 @@
1
- # 2.0.4 / NOT_YET_RELEASED
1
+ # 2.0.9 / not yet released
2
+
3
+ # 2.0.8 / 2020-06-10
4
+
5
+ This is a bug fix release for windows users which fixes a bug with the
6
+ tempfile creation when uploading and downloading files from the vagrant
7
+ machine.
8
+
9
+ #### Closed Issues
10
+
11
+ - [tempfile implementation on windows doesn't always seem to work
12
+ #220](https://github.com/tmatilai/vagrant-proxyconf/issues/220)
13
+
14
+ #### Credits
15
+
16
+ Big thanks to @chucknelson for debugging and troubleshooting and getting
17
+ to the bottom of this for windows users. Thank you!
18
+
19
+ - @chucknelson
20
+
21
+ # 2.0.7 / 2019-11-14
22
+
23
+ This is a bug fix release.
24
+
25
+ - Addresses issues with docker proxy configuration and permissions.
26
+
27
+ #### Closed Issues
28
+
29
+ - https://github.com/tmatilai/vagrant-proxyconf/milestone/3
30
+
31
+
32
+ #### Credits
33
+
34
+ Thank you to these folks how identified the bugs and provided
35
+ workarounds.
36
+
37
+ - @antoinetran
38
+ - @tkang007
39
+
40
+
41
+ # 2.0.6 / 2019-08-09
42
+
43
+ This is a bug fix release addressing a permissions problem with the docker proxy client config.
44
+ The fixes the permissions problem setting /etc/docker/config.json from 0600 to 0644 permissions.
45
+
46
+ #### Credits
47
+
48
+ - Credit to this release goes to @takuto-h.
49
+
50
+ # 2.0.5 / 2019-07-27
51
+
52
+ #### Deprecations:
53
+
54
+ - Dropped support for vagrant 1.9.8 due to our tests failinging and it's more than 2 years old.
55
+
56
+ #### Credits
57
+
58
+ - Credit to this release goes to @greut. Thank you for your detailed information and for reporting a solution.
59
+
60
+ This is a feature enhancement for the APT proxy configuration when using
61
+ a proxy that is terminating SSL. By default, these settings are left
62
+ as-is and only enabled when a user wants to configure these settings.
63
+ This feature supports enabling/disabling the follwoing settings
64
+
65
+ #### file `/etc/apt/apt.conf.d/01proxy`
66
+
67
+ ```
68
+ Acquire::https::Verify-Host
69
+ Acquire::https::Verify-Peer
70
+ ```
71
+
72
+ #### Configuration settings for `Acquire::https::Verify-Host` and `Acquire::https::Verify-Peer`
73
+
74
+ * The value for these settings must be a string.
75
+ * When `"true"` enable the setting
76
+ * When `"false"` disable the setting
77
+ * When `""` this setting is removed.
78
+
79
+ #### Example Inside the Vagrantfile
80
+
81
+ ```
82
+ Vagrant.configure("2") do |config|
83
+
84
+ config.vm.define 'apt_host' do |c|
85
+ c.vm.box = "bento/ubuntu-18.04"
86
+
87
+ if Vagrant.has_plugin?('vagrant-proxyconf')
88
+ c.proxy.http = ENV['HTTP_PROXY']
89
+ c.proxy.https = ENV['HTTPS_PROXY']
90
+ c.proxy.no_proxy = ENV['NO_PROXY']
91
+ c.apt_proxy.verify_host = "false"
92
+ c.apt_proxy.verify_peer = "false"
93
+
94
+ c.proxy.enabled = {
95
+ :apt => {
96
+ :enabled => true,
97
+ :skip => false,
98
+ },
99
+ :env => {
100
+ :enabled => true,
101
+ :skip => false,
102
+ },
103
+ :git => {
104
+ :enabled => true,
105
+ :skip => false,
106
+ }
107
+ }
108
+ end
109
+ end
110
+
111
+ end
112
+ ```
113
+
114
+ #### Example setting the environment variables
115
+
116
+ ```
117
+ export VAGRANT_APT_VERIFY_HOST="false"
118
+ export VAGRANT_APT_VERIFY_PEER="false"
119
+ vagrant up
120
+ vagrant provision
121
+ ```
122
+
123
+ **NOTE** If you change a setting in your `Vagrantfile` and the box is
124
+ running, you can run `vagrant provision` or `vagrant reload` to adjust
125
+ the settings.
126
+
127
+ Supporting Issues:
128
+ - https://github.com/tmatilai/vagrant-proxyconf/issues/199
129
+
130
+ Supporting Integration Tests:
131
+ - Look at the examples in directory [199](test/issues/199/)
132
+
133
+
134
+ # 2.0.4 / 2019-07-24
135
+
136
+ This is a bug fix release to address a logic issue for supporting docker
137
+ versions when attempting to configure a docker proxy.
138
+
139
+
140
+ Bug Fixes:
141
+ - https://github.com/tmatilai/vagrant-proxyconf/issues/197
2
142
 
3
143
  # 2.0.3 / 2019-07-23
4
144
 
data/Gemfile CHANGED
@@ -1,25 +1,8 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- #### Added due to https://groups.google.com/forum/#!topic/vagrant-up/J8J6LmhzBqM/discussion
4
- embedded_locations = %w(/Applications/Vagrant/embedded /opt/vagrant/embedded)
5
-
6
- embedded_locations.each do |p|
7
- ENV['VAGRANT_INSTALLER_EMBEDDED_DIR'] = p if File.directory?(p)
8
- end
9
-
10
- unless ENV.key?('VAGRANT_INSTALLER_EMBEDDED_DIR')
11
- $stderr.puts "Couldn't find a packaged install of vagrant, and we need this"
12
- $stderr.puts 'in order to make use of the RubyEncoder libraries.'
13
- $stderr.puts 'I looked in:'
14
- embedded_locations.each do |p|
15
- $stderr.puts " #{p}"
16
- end
17
- end
18
- #### End Added due to https://groups.google.com/forum/#!topic/vagrant-up/J8J6LmhzBqM/discussion
19
-
20
3
  gem 'vagrant',
21
4
  git: 'https://github.com/hashicorp/vagrant.git',
22
- ref: ENV.fetch('VAGRANT_VERSION', 'v2.2.4')
5
+ tag: ENV.fetch('VAGRANT_VERSION', 'v2.2.9')
23
6
 
24
7
  gem 'rake'
25
8
  gem 'rspec', '~> 3.1'
@@ -0,0 +1,60 @@
1
+ pipeline {
2
+
3
+ agent { label 'virtualbox' }
4
+
5
+ options {
6
+ disableConcurrentBuilds()
7
+ }
8
+
9
+ parameters {
10
+
11
+ string(
12
+ name: 'VAGRANT_TEST_ISSUE',
13
+ defaultValue: '180',
14
+ description: 'The test/issues/# where "#" refers to the test environment to invoke'
15
+ )
16
+
17
+ string(
18
+ name: 'DEFAULT_RVM_RUBY',
19
+ defaultValue: '2.4.4',
20
+ description: 'The default ruby to use for RVM'
21
+ )
22
+
23
+ }
24
+
25
+ stages {
26
+
27
+ stage('test') {
28
+
29
+ environment {
30
+ VAGRANT_TEST_ISSUE = "${params.VAGRANT_TEST_ISSUE}"
31
+ DEFAULT_RVM_RUBY = "${params.DEFAULT_RVM_RUBY}"
32
+ }
33
+
34
+ steps {
35
+ timestamps {
36
+ ansiColor('xterm') {
37
+
38
+ dir("${WORKSPACE}") {
39
+
40
+ sh '''#!/usr/bin/env bash -l
41
+
42
+ set +x
43
+ tty
44
+ . jenkins/helper_functions
45
+
46
+ setup_test_env
47
+
48
+ set -e
49
+ run_all_tests
50
+
51
+ '''
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ } // stages
59
+
60
+ }
@@ -0,0 +1,33 @@
1
+ .PHONY: clean
2
+ .PHONY: help
3
+ .PHONY: init
4
+ .PHONY: patch_bundler
5
+
6
+
7
+ all: clean init patch_bundler
8
+
9
+
10
+ clean:
11
+ rm -f Gemfile.lock
12
+ rm -rf .bundle/
13
+
14
+
15
+ help:
16
+ @echo "[Commands]"
17
+ @echo ""
18
+ @echo " all -> The default which runs all tasks"
19
+ @echo " clean -> Deletes Gemfile.lock and .bundle/"
20
+ @echo " init -> Creates the bundle for developing the next release"
21
+ @echo " patch_bundler -> Attemps to patch vagrant bundler with known issues"
22
+ @echo ""
23
+
24
+ init: clean
25
+ bundle config set path '.bundle/gems'
26
+ bundle install
27
+
28
+
29
+ patch_bundler:
30
+ [ "$(VAGRANT_VERSION)" == "v2.2.5" ] && (patch -p0 --batch --backup -d "`bundle info --path vagrant`" < deps/patches/lib/vagrant/bundler.rb.patch) || true
31
+ [ "$(VAGRANT_VERSION)" == "v2.2.6" ] && (patch -p0 --batch --backup -d "`bundle info --path vagrant`" < deps/patches/lib/vagrant/bundler.rb.patch) || true
32
+ [ "$(VAGRANT_VERSION)" == "v2.2.7" ] && (patch -p0 --batch --backup -d "`bundle info --path vagrant`" < deps/patches/lib/vagrant/bundler.rb.patch) || true
33
+ [ "$(VAGRANT_VERSION)" == "v2.2.8" ] && (egrep -q 'cap/redhat' `bundle info --path vagrant`/plugins/provisioners/docker/plugin.rb && sed -i.bak -e 's/redhat/centos/g' `bundle info --path vagrant`/plugins/provisioners/docker/plugin.rb) || true
data/README.md CHANGED
@@ -237,6 +237,8 @@ VAGRANT_APT_HTTP_PROXY="http://proxy.example.com:8080" vagrant up
237
237
  | apt | `VAGRANT_APT_HTTP_PROXY` | Configures APT http proxy | Highest |
238
238
  | | `VAGRANT_APT_HTTPS_PROXY` | Configures APT https proxy | Highest |
239
239
  | | `VAGRANT_APT_FTP_PROXY` | Configures APT ftp proxy | Highest |
240
+ | | `VAGRANT_APT_VERIFY_PEER` | Configures APT Verify-Peer | Highest |
241
+ | | `VAGRANT_APT_VERIFY_HOST` | Configures APT Verify-Host | Highest |
240
242
  | chef | `VAGRANT_CHEF_HTTP_PROXY` | Configures CHEF http proxy | Highest |
241
243
  | | `VAGRANT_CHEF_HTTPS_PROXY` | Configures CHEF https proxy | Highest |
242
244
  | | `VAGRANT_CHEF_NO_PROXY` | Configures CHEF no proxy | Highest |
@@ -330,3 +332,23 @@ unless ENV.key?('VAGRANT_INSTALLER_EMBEDDED_DIR')
330
332
  end
331
333
  end
332
334
  ```
335
+
336
+ # Contributors
337
+
338
+ * @tmatilai
339
+ * @otahi
340
+ * @jperville
341
+ * @johnbellone
342
+ * @SaschaGuenther
343
+ * @mrsheepuk
344
+ * @vboerchers
345
+ * @rlaveycal
346
+ * @pomeh
347
+ * @mynamewastaken
348
+ * @lawsonj2019
349
+ * @jonekdahl
350
+ * @hexmode
351
+ * @craigmunro
352
+ * @greut
353
+ * @chucknelson
354
+ * @codylane
@@ -0,0 +1,14 @@
1
+ --- lib/vagrant/bundler.rb 2020-04-27 14:19:39.000000000 -0600
2
+ +++ lib/vagrant/bundler.rb 2020-04-27 14:20:01.000000000 -0600
3
+ @@ -421,8 +421,9 @@
4
+ def vagrant_internal_specs
5
+ # activate any dependencies up front so we can always
6
+ # pin them when resolving
7
+ - Gem::Specification.find { |s| s.name == "vagrant" && s.activated? }.
8
+ - runtime_dependencies.each { |d| gem d.name, *d.requirement.as_list }
9
+ + if (vs = Gem::Specification.find { |s| s.name == "vagrant" && s.activated? })
10
+ + vs.runtime_dependencies.each { |d| gem d.name, *d.requirement.as_list }
11
+ + end
12
+ # discover all the gems we have available
13
+ list = {}
14
+ directories = [Gem::Specification.default_specifications_dir]
@@ -0,0 +1,206 @@
1
+ #!/usr/bin/env bash
2
+
3
+ DEFAULT_RVM_RUBY="${DEFAULT_RVM_RUBY:-2.4.4}"
4
+
5
+ RVM_HOME_DIR="${RVM_HOME_DIR:-${HOME}/.rvm/scripts/rvm}"
6
+
7
+ VAGRANT_TEST_ISSUE="${VAGRANT_TEST_ISSUE:-180}"
8
+
9
+ err() {
10
+
11
+ echo "ERR: $* exiting" >&2
12
+
13
+ reset_docker_perms || true
14
+
15
+ exit 1
16
+
17
+ }
18
+
19
+
20
+ bundle_exec() {
21
+
22
+ local run_dir="test/issues/${VAGRANT_TEST_ISSUE}"
23
+
24
+ pushd "${run_dir}" || err "The directory: '${run_dir}' does not exist" && true
25
+
26
+ bundle exec $@
27
+
28
+ popd >>/dev/null 2>&1
29
+
30
+ }
31
+
32
+
33
+ enable_rvm_ruby() {
34
+
35
+ local ruby_version="${1:-${DEFAULT_RVM_RUBY}}"
36
+
37
+ shift
38
+ local persist="${1:-persist}"
39
+
40
+
41
+ [ -f "${RVM_HOME_DIR}" ] && . "${RVM_HOME_DIR}" >> /dev/null || true
42
+
43
+ rvm use "ruby-${ruby_version}" || err "Unable to switch to ruby ${ruby_version}"
44
+
45
+ [ -z "${persist}" ] || echo "${DEFAULT_RVM_RUBY}" > .ruby-version
46
+
47
+ }
48
+
49
+
50
+ enable_rbenv_ruby() {
51
+
52
+ local ruby_version="${1:-${DEFAULT_RVM_RUBY}}"
53
+
54
+ shift
55
+ local persist="${1:-persist}"
56
+
57
+ eval "$(rbenv init -)"
58
+
59
+ rbenv_install "${DEFAULT_RVM_RUBY}"
60
+
61
+ if [ -n "${persist}" ]; then
62
+
63
+ echo "${DEFAULT_RVM_RUBY}" > .ruby-version
64
+
65
+ rbenv shell "${DEFAULT_RVM_RUBY}"
66
+
67
+ fi
68
+
69
+ rbenv versions
70
+
71
+ }
72
+
73
+ rbenv_install() {
74
+
75
+ rbenv versions | grep -q "${1}" || rbenv install "${1}"
76
+
77
+ }
78
+
79
+ vagrant_cmd() {
80
+
81
+ bundle_exec vagrant $@
82
+
83
+ }
84
+
85
+
86
+ install_gems() {
87
+
88
+ command -v bundle >>/dev/null 2>&1 || gem install bundler --no-doc
89
+ command -v rake >>/dev/null 2>&1 || gem install rake --no-doc
90
+
91
+ gem update --system --no-doc || err "Updating system gems"
92
+
93
+ rm -f Gemfile.lock
94
+ bundle install --path .bundle/gems
95
+
96
+ }
97
+
98
+
99
+ install_from_gemfile() {
100
+
101
+ [ -d ".bundle/gems" ] || install_gems
102
+
103
+ }
104
+
105
+
106
+ run_all_tests() {
107
+
108
+ set -e
109
+
110
+ vagrant_cmd status
111
+ bundle_exec rake spec
112
+
113
+ set +e
114
+
115
+ }
116
+
117
+
118
+ setup_test_env() {
119
+
120
+ set -e
121
+
122
+ whoami
123
+ env
124
+
125
+ ruby -v
126
+ gem list
127
+
128
+ install_from_gemfile
129
+
130
+ bundle show
131
+
132
+ update_docker_perms
133
+
134
+ vagrant_cmd plugin repair || true
135
+ vagrant_cmd status
136
+ vagrant_cmd up || err "Starting the virtual machine"
137
+ vagrant_cmd provision || err "Attempting to provision the virtual machine"
138
+
139
+ reset_docker_perms
140
+
141
+ set +e
142
+
143
+ }
144
+
145
+
146
+ reset_docker_perms() {
147
+
148
+ [ -L /var/run/docker.sock ] && sudo chmod 0770 "$(readlink /var/run/docker.sock)" || true
149
+
150
+ }
151
+
152
+ update_docker_perms() {
153
+
154
+ [ -L /var/run/docker.sock ] && sudo chmod 6770 "$(readlink /var/run/docker.sock)" || true
155
+
156
+ }
157
+
158
+
159
+ is_container_running() {
160
+
161
+ CONTAINER_ID=$(docker ps -a | grep ':8888' | awk '{print $1}')
162
+
163
+ [ -z "${CONTAINER_ID}" ] && return 0
164
+
165
+ echo "${CONTAINER_ID}"
166
+ return 1
167
+
168
+ }
169
+
170
+
171
+ initialize() {
172
+ reset_docker_perms
173
+
174
+ OS_TYPE="$(uname -s 2>>/dev/null)"
175
+
176
+ case "${OS_TYPE}" in
177
+
178
+ Darwin)
179
+ HOME_DIR_PREFIX="/Users"
180
+ ;;
181
+
182
+ *)
183
+ HOME_DIR_PREFIX="/home"
184
+ ;;
185
+
186
+ esac
187
+
188
+ [ -f ${HOME_DIR_PREFIX}/jenkins/.bash_profile ] && . ${HOME_DIR_PREFIX}/jenkins/.bash_profile || true
189
+ [ -f ${HOME_DIR_PREFIX}/jenkins/.bashrc ] && . ${HOME_DIR_PREFIX}/jenkins/.bashrc || true
190
+
191
+ command -v rvm >>/dev/null 2>&1 && enable_rvm_ruby "${DEFAULT_RVM_RUBY}" "persist" || true
192
+ command -v rbenv >>/dev/null 2>&1 && enable_rbenv_ruby "${DEFAULT_RVM_RUBY}" "persist" || true
193
+
194
+ command -v docker || err "Docker must be installed on this host."
195
+ command -v bsdtar || err "Please install bsdtar"
196
+
197
+ id
198
+ groups
199
+
200
+ CONTAINER_ID=$(is_container_running)
201
+ [ $? -ne 0 ] && docker rm -vf "${CONTAINER_ID}"
202
+
203
+ reset_docker_perms
204
+ }
205
+
206
+ initialize