beaker-docker 2.0.0 → 2.2.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec5e8da1c0bde0ac2d4fb47e3aa6e895dfa64c847601eb8ee2a81b6e6ddbcb99
4
- data.tar.gz: c9a290762c10c8353be0ac34c5d2d3a71560f2d872d04f6c524281518cf54c4b
3
+ metadata.gz: 841111065b59b77771dab0534b4f9e3f3963378c0a0daf27d86330ab0c733f7a
4
+ data.tar.gz: '025243139d8c52cad6a50cd5fa27e6cea07414cdb278aadb395072bd1897448d'
5
5
  SHA512:
6
- metadata.gz: 74aab6d73118cfea7aa6a29c7f1159c900dd392fe5de144f5440d6f0e9b4630f7c87010903b0342e2ed3edd7626efcdcd1f96d5aa6226a5db27a92be54e89b60
7
- data.tar.gz: 99a7fc569eea379541e5177432daa3e6c568773de88d6ba56047a69231fab107e76397167a024eae6192f296d9c09b235820df9d4c55f25f47050cbad9a25d5c
6
+ metadata.gz: 98afc27265b51cd18868d25651e7003e50f9c26785af54ab277d0e9c673d256aad8a2f4b16905e096c1a2917766b247e44c11d75ae7a7f80e8bd6689174325b4
7
+ data.tar.gz: 3d84cef6317f571b79277c17cd3be523184a04fd81aa97bd7e4f3340417aabc19c2a07bbc339c13529e644efbf2b37f099ed1e41e6072d7f00b847e41b3fbb49
@@ -10,7 +10,7 @@ jobs:
10
10
  runs-on: ubuntu-latest
11
11
  if: github.repository_owner == 'voxpupuli'
12
12
  steps:
13
- - uses: actions/checkout@v3
13
+ - uses: actions/checkout@v4
14
14
  - name: Install Ruby 3.0
15
15
  uses: ruby/setup-ruby@v1
16
16
  with:
@@ -18,7 +18,7 @@ jobs:
18
18
  env:
19
19
  BUNDLE_WITHOUT: release
20
20
  - name: Build gem
21
- run: gem build *.gemspec
21
+ run: gem build --strict --verbose *.gemspec
22
22
  - name: Publish gem to rubygems.org
23
23
  run: gem push *.gem
24
24
  env:
@@ -13,7 +13,7 @@ jobs:
13
13
  rubocop:
14
14
  runs-on: ubuntu-latest
15
15
  steps:
16
- - uses: actions/checkout@v3
16
+ - uses: actions/checkout@v4
17
17
  - name: Install Ruby 3.2
18
18
  uses: ruby/setup-ruby@v1
19
19
  with:
@@ -37,7 +37,7 @@ jobs:
37
37
  COVERAGE: ${{ matrix.coverage }}
38
38
  name: RSpec - Ruby ${{ matrix.ruby }}
39
39
  steps:
40
- - uses: actions/checkout@v3
40
+ - uses: actions/checkout@v4
41
41
  - name: Install Ruby ${{ matrix.ruby }}
42
42
  uses: ruby/setup-ruby@v1
43
43
  with:
@@ -46,13 +46,13 @@ jobs:
46
46
  - name: spec tests
47
47
  run: bundle exec rake test:spec
48
48
  - name: Build gem
49
- run: gem build *.gemspec
49
+ run: gem build --strict --verbose *.gemspec
50
50
 
51
51
  docker:
52
52
  runs-on: ubuntu-latest
53
53
  name: Docker
54
54
  steps:
55
- - uses: actions/checkout@v3
55
+ - uses: actions/checkout@v4
56
56
  - name: Install Ruby 3.2
57
57
  uses: ruby/setup-ruby@v1
58
58
  with:
@@ -65,7 +65,7 @@ jobs:
65
65
  runs-on: ubuntu-latest
66
66
  name: Docker - Beaker in container connection test
67
67
  steps:
68
- - uses: actions/checkout@v3
68
+ - uses: actions/checkout@v4
69
69
  # use this and not container key from gha to not have a docker network from github
70
70
  - name: Run Beaker in docker container
71
71
  uses: addnab/docker-run-action@v3
@@ -83,7 +83,7 @@ jobs:
83
83
  runs-on: ubuntu-latest
84
84
  name: Podman
85
85
  steps:
86
- - uses: actions/checkout@v3
86
+ - uses: actions/checkout@v4
87
87
  - name: Install Ruby 3.2
88
88
  uses: ruby/setup-ruby@v1
89
89
  with:
data/.rubocop.yml CHANGED
@@ -2,7 +2,7 @@
2
2
  inherit_from: .rubocop_todo.yml
3
3
 
4
4
  inherit_gem:
5
- beaker: rubocop.yml
5
+ voxpupuli-rubocop: rubocop.yml
6
6
 
7
7
  Naming/FileName:
8
8
  Description: Some files violates the snake_case convention
data/.rubocop_todo.yml CHANGED
@@ -1,16 +1,11 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2023-03-28 10:44:07 UTC using RuboCop version 1.48.1.
3
+ # on 2024-03-17 17:48:41 UTC using RuboCop version 1.62.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 4
10
- RSpec/AnyInstance:
11
- Exclude:
12
- - 'spec/beaker/hypervisor/docker_spec.rb'
13
-
14
9
  # Offense count: 23
15
10
  # Configuration parameters: CountAsOne.
16
11
  RSpec/ExampleLength:
@@ -31,9 +26,9 @@ RSpec/MultipleExpectations:
31
26
  RSpec/MultipleMemoizedHelpers:
32
27
  Max: 12
33
28
 
34
- # Offense count: 5
35
- # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
36
- RSpec/VerifiedDoubles:
29
+ # Offense count: 7
30
+ # This cop supports unsafe autocorrection (--autocorrect-all).
31
+ RSpec/ReceiveMessages:
37
32
  Exclude:
38
33
  - 'spec/beaker/hypervisor/docker_spec.rb'
39
34
 
data/CHANGELOG.md CHANGED
@@ -1,5 +1,39 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.2.0](https://github.com/voxpupuli/beaker-docker/tree/2.2.0) (2024-03-17)
4
+
5
+ [Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/2.1.0...2.2.0)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - Implement writing out a containerfile for a host [\#125](https://github.com/voxpupuli/beaker-docker/pull/125) ([ekohl](https://github.com/ekohl))
10
+ - Support Amazon Linux 2023 [\#123](https://github.com/voxpupuli/beaker-docker/pull/123) ([treydock](https://github.com/treydock))
11
+
12
+ **Merged pull requests:**
13
+
14
+ - Rakefile: Use rubocop tasks from voxpupuli-rubocop [\#131](https://github.com/voxpupuli/beaker-docker/pull/131) ([bastelfreak](https://github.com/bastelfreak))
15
+ - voxpupuli-rubocop: Update 1.2-\>2.6 [\#129](https://github.com/voxpupuli/beaker-docker/pull/129) ([bastelfreak](https://github.com/bastelfreak))
16
+ - README.md: Document CLI; Add ToC [\#127](https://github.com/voxpupuli/beaker-docker/pull/127) ([bastelfreak](https://github.com/bastelfreak))
17
+
18
+ ## [2.1.0](https://github.com/voxpupuli/beaker-docker/tree/2.1.0) (2023-05-05)
19
+
20
+ [Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/2.0.0...2.1.0)
21
+
22
+ **Implemented enhancements:**
23
+
24
+ - switch to voxpupuli-rubocop & restore beaker 4 support [\#120](https://github.com/voxpupuli/beaker-docker/pull/120) ([bastelfreak](https://github.com/bastelfreak))
25
+
26
+ **Closed issues:**
27
+
28
+ - Enable SSH Agent forwarding on MacOS [\#117](https://github.com/voxpupuli/beaker-docker/issues/117)
29
+
30
+ **Merged pull requests:**
31
+
32
+ - GCG: Add faraday-retry dep [\#119](https://github.com/voxpupuli/beaker-docker/pull/119) ([bastelfreak](https://github.com/bastelfreak))
33
+ - CI: Build gems with strictness and verbosity [\#118](https://github.com/voxpupuli/beaker-docker/pull/118) ([bastelfreak](https://github.com/bastelfreak))
34
+ - rubocop: Fix RSpec/AnyInstance [\#116](https://github.com/voxpupuli/beaker-docker/pull/116) ([jay7x](https://github.com/jay7x))
35
+ - rubocop: Fix RSpec/VerifiedDoubles [\#115](https://github.com/voxpupuli/beaker-docker/pull/115) ([jay7x](https://github.com/jay7x))
36
+
3
37
  ## [2.0.0](https://github.com/voxpupuli/beaker-docker/tree/2.0.0) (2023-03-28)
4
38
 
5
39
  [Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/1.5.0...2.0.0)
@@ -65,7 +99,6 @@
65
99
 
66
100
  **Merged pull requests:**
67
101
 
68
- - Bump actions/checkout from 2 to 3 [\#90](https://github.com/voxpupuli/beaker-docker/pull/90) ([dependabot[bot]](https://github.com/apps/dependabot))
69
102
  - dependabot: check for github actions as well [\#89](https://github.com/voxpupuli/beaker-docker/pull/89) ([bastelfreak](https://github.com/bastelfreak))
70
103
 
71
104
  ## [1.3.0](https://github.com/voxpupuli/beaker-docker/tree/1.3.0) (2022-12-18)
data/Gemfile CHANGED
@@ -10,5 +10,6 @@ group :coverage, optional: ENV['COVERAGE'] != 'yes' do
10
10
  end
11
11
 
12
12
  group :release do
13
+ gem 'faraday-retry', require: false
13
14
  gem 'github_changelog_generator', require: false
14
15
  end
data/README.md CHANGED
@@ -10,6 +10,18 @@
10
10
 
11
11
  Beaker library to use docker hypervisor
12
12
 
13
+ * [How to use this wizardry](#how-to-use-this-wizardry)
14
+ * [Nodeset Options](#nodeset-options)
15
+ * [Privileged containers](#privileged-containers)
16
+ * [Cleaning up after tests](#cleaning-up-after-tests)
17
+ * [Working with `podman`](#working-with-podman)
18
+ * [Generating a Dockerfile](#generating-a-dockerfile)
19
+ * [Spec tests]()
20
+ * [Acceptance tests]()
21
+ * [Transfer Notice](#transfer-notice)
22
+ * [License](#license)
23
+ * [Release Information](#release-information)
24
+
13
25
  ## How to use this wizardry
14
26
 
15
27
  This gem that allows you to use hosts with [docker](docker.md) hypervisor with [beaker](https://github.com/voxpupuli/beaker).
@@ -102,6 +114,56 @@ See the
102
114
  [HostConfig](https://any-api.com/docker_com/engine/docs/Definitions/HostConfig)
103
115
  portion of the docker API for more information.
104
116
 
117
+ ## Generating a Dockerfile
118
+
119
+ Usually beaker-docker is used to provision docker instances with beaker. During
120
+ this step beaker-docker generates a Dockerfile and posts it to the docker daemon
121
+ API.
122
+
123
+ There's also a small CLI command to only generate the file:
124
+
125
+ ```
126
+ bundle exec beaker-docker dockerfile archlinux-64
127
+ ```
128
+
129
+ Will generate a local `Dockerfile`:
130
+
131
+ ```dockerfile
132
+ FROM archlinux/archlinux
133
+ ENV container docker
134
+ RUN pacman --sync --refresh --noconfirm archlinux-keyring && pacman --sync --refresh --noconfirm --sysupgrade && pacman --sync --noconfirm curl ntp net-tools openssh && ssh-keygen -A && sed -ri 's/^#?UsePAM .*/UsePAM no/' /etc/ssh/sshd_config && systemctl enable sshd
135
+ RUN mkdir -p /var/run/sshd && echo root:root | chpasswd
136
+ RUN sed -ri -e 's/^#?PermitRootLogin .*/PermitRootLogin yes/' -e 's/^#?PasswordAuthentication .*/PasswordAuthentication yes/' -e 's/^#?UseDNS .*/UseDNS no/' -e 's/^#?MaxAuthTries.*/MaxAuthTries 1000/' /etc/ssh/sshd_config
137
+ EXPOSE 22
138
+ CMD ["/sbin/init"]
139
+ ```
140
+
141
+ This works by calling
142
+ (beaker-hostgenerator](https://github.com/voxpupuli/beaker-hostgenerator?tab=readme-ov-file#beaker-host-generator).
143
+ So you can provide any host string that's supported by beaker-hostgenerator.
144
+
145
+ For non-rolling release distros this is usually `$os$majorversion-$architecture`
146
+
147
+ ```
148
+ beaker-docker dockerfile centos9-64
149
+ ```
150
+
151
+ ```dockerfile
152
+ FROM quay.io/centos/centos:stream9
153
+ ENV container docker
154
+ RUN dnf clean all && dnf install -y sudo openssh-server openssh-clients chrony && ssh-keygen -A && sed 's@session *required *pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/*
155
+ RUN mkdir -p /var/run/sshd && echo root:root | chpasswd
156
+ RUN sed -ri -e 's/^#?PermitRootLogin .*/PermitRootLogin yes/' -e 's/^#?PasswordAuthentication .*/PasswordAuthentication yes/' -e 's/^#?UseDNS .*/UseDNS no/' -e 's/^#?MaxAuthTries.*/MaxAuthTries 1000/' /etc/ssh/sshd_config
157
+ RUN cp /bin/true /sbin/agetty
158
+ RUN dnf install -y cronie crontabs initscripts iproute openssl wget which glibc-langpack-en hostname
159
+ EXPOSE 22
160
+ CMD ["/sbin/init"]
161
+ ```
162
+
163
+ This requires a running docker daemon. You can also request a containerfile.
164
+ This will currently generate a `Containerfile` but with the same content (this
165
+ may change in the future, depending on the API spec).
166
+
105
167
  ## Spec tests
106
168
 
107
169
  Spec test live under the `spec` folder. There are the default rake task and therefore can run with a simple command:
data/Rakefile CHANGED
@@ -3,16 +3,9 @@
3
3
  require 'rspec/core/rake_task'
4
4
 
5
5
  begin
6
- require 'rubocop/rake_task'
6
+ require 'voxpupuli/rubocop/rake'
7
7
  rescue LoadError
8
- # RuboCop is an optional group
9
- else
10
- RuboCop::RakeTask.new(:rubocop) do |task|
11
- # These make the rubocop experience maybe slightly less terrible
12
- task.options = ['--display-cop-names', '--display-style-guide', '--extra-details']
13
- # Use Rubocop's Github Actions formatter if possible
14
- task.formatters << 'github' if ENV['GITHUB_ACTIONS'] == 'true'
15
- end
8
+ # the voxpupuli-rubocop gem is optional
16
9
  end
17
10
 
18
11
  namespace :test do
@@ -73,7 +66,7 @@ rescue LoadError
73
66
  # Do nothing if no required gem installed
74
67
  else
75
68
  GitHubChangelogGenerator::RakeTask.new :changelog do |config|
76
- config.exclude_labels = %w[duplicate question invalid wontfix wont-fix skip-changelog]
69
+ config.exclude_labels = %w[duplicate question invalid wontfix wont-fix skip-changelog github_actions]
77
70
  config.user = 'voxpupuli'
78
71
  config.project = 'beaker-docker'
79
72
  gem_version = Gem::Specification.load("#{config.project}.gemspec").version
@@ -28,13 +28,10 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency 'fakefs', '>= 1.3', '< 3.0'
29
29
  s.add_development_dependency 'rake', '~> 13.0'
30
30
  s.add_development_dependency 'rspec', '~> 3.0'
31
- s.add_development_dependency 'rubocop', '~> 1.48.1'
32
- s.add_development_dependency 'rubocop-performance', '~> 1.10'
33
- s.add_development_dependency 'rubocop-rake', '~> 0.2'
34
- s.add_development_dependency 'rubocop-rspec', '>= 1.44'
31
+ s.add_development_dependency 'voxpupuli-rubocop', '~> 2.6.0'
35
32
 
36
33
  # Run time dependencies
37
- s.add_runtime_dependency 'beaker', '~> 5.0'
34
+ s.add_runtime_dependency 'beaker', '>= 4', '< 6'
38
35
  s.add_runtime_dependency 'docker-api', '~> 2.1'
39
36
  s.add_runtime_dependency 'stringify-hash', '~> 0.0.0'
40
37
  end
data/bin/beaker-docker CHANGED
@@ -2,8 +2,27 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require 'rubygems' unless defined?(Gem)
5
+ require 'beaker'
5
6
  require 'beaker-docker'
6
7
 
8
+ def dockerfile(hostspec, filename)
9
+ ENV['BEAKER_HYPERVISOR'] = 'docker'
10
+ options = Beaker::Options::Parser.new.parse_args(['--hosts', hostspec || '', '--no-provision'])
11
+ options[:logger] = Beaker::Logger.new(options)
12
+ network_manager = Beaker::NetworkManager.new(options, options[:logger])
13
+ network_manager.provision
14
+ hosts = network_manager.hosts
15
+
16
+ if hosts.size != 1
17
+ options[:logger].error "Found #{hosts.size} hosts, expected 1"
18
+ exit(1)
19
+ end
20
+
21
+ hypervisor = network_manager.hypervisors['docker']
22
+ # TODO: private method
23
+ File.write(filename, hypervisor.send(:dockerfile_for, hosts.first))
24
+ end
25
+
7
26
  VERSION_STRING = <<'VER'
8
27
  _ .--.
9
28
  ( ` )
@@ -25,6 +44,13 @@ VERSION_STRING = <<'VER'
25
44
  '=='
26
45
  VER
27
46
 
28
- puts VERSION_STRING % BeakerDocker::VERSION
47
+ case ARGV[0]
48
+ when 'containerfile'
49
+ dockerfile(ARGV[1], ARGV[2] || 'Containerfile')
50
+ when 'dockerfile'
51
+ dockerfile(ARGV[1], ARGV[2] || 'Dockerfile')
52
+ else
53
+ puts VERSION_STRING % BeakerDocker::VERSION
54
+ end
29
55
 
30
56
  exit 0
@@ -165,7 +165,7 @@ module Beaker
165
165
  # Container to container
166
166
  unless ip && port
167
167
  ip = network_settings['IPAddress']
168
- port = ip && !ip.empty? ? 22 : nil
168
+ port = (ip && !ip.empty?) ? 22 : nil
169
169
  end
170
170
 
171
171
  # Container through gateway
@@ -195,7 +195,7 @@ module Beaker
195
195
  port = port22[0]['HostPort'] if port22
196
196
  end
197
197
 
198
- ssh_connection_info[:ip] = ip == '0.0.0.0' ? '127.0.0.1' : ip
198
+ ssh_connection_info[:ip] = (ip == '0.0.0.0') ? '127.0.0.1' : ip
199
199
  ssh_connection_info[:port] = port || '22'
200
200
  ssh_connection_info
201
201
  end
@@ -375,7 +375,7 @@ module Beaker
375
375
  container.exec(%w[apt-get update])
376
376
  container.exec(%w[apt-get install -y openssh-server openssh-client])
377
377
  container.exec(%w[sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/*])
378
- when /el-[89]/, /fedora-(2[2-9]|3[0-9])/
378
+ when /el-[89]/, /fedora-(2[2-9]|3[0-9])/, /amazon-2023/
379
379
  container.exec(%w[dnf clean all])
380
380
  container.exec(%w[dnf install -y sudo openssh-server openssh-clients])
381
381
  container.exec(%w[ssh-keygen -A])
@@ -509,7 +509,7 @@ module Beaker
509
509
  RUN apt-get update \
510
510
  && apt-get install -y openssh-server openssh-client #{additional_packages.join(' ')}
511
511
  DF
512
- when /el-[89]/, /fedora-(2[2-9]|3)/
512
+ when /el-[89]/, /fedora-(2[2-9]|3)/, /amazon-2023/
513
513
  dockerfile += <<~DF
514
514
  RUN dnf clean all \
515
515
  && dnf install -y sudo openssh-server openssh-clients #{additional_packages.join(' ')} \
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BeakerDocker
4
- VERSION = '2.0.0'
4
+ VERSION = '2.2.0'
5
5
  end
@@ -11,6 +11,7 @@ module Beaker
11
11
  'centos-7-x86_64',
12
12
  'sles-12-x86_64',
13
13
  'archlinux-2017.12.27-x86_64',
14
+ 'amazon-2023-x86_64',
14
15
  ]
15
16
 
16
17
  describe Docker do
@@ -28,7 +29,7 @@ module Beaker
28
29
  end
29
30
 
30
31
  let(:logger) do
31
- logger = double('logger')
32
+ logger = instance_double(Logger)
32
33
  allow(logger).to receive(:debug)
33
34
  allow(logger).to receive(:info)
34
35
  allow(logger).to receive(:warn)
@@ -52,7 +53,7 @@ module Beaker
52
53
  end
53
54
 
54
55
  let(:image) do
55
- image = double('Docker::Image')
56
+ image = instance_double(::Docker::Image)
56
57
  allow(image).to receive(:id).and_return('zyxwvu')
57
58
  allow(image).to receive(:tag)
58
59
  image
@@ -87,7 +88,7 @@ module Beaker
87
88
  end
88
89
 
89
90
  let(:container) do
90
- container = double('Docker::Container')
91
+ container = instance_double(::Docker::Container)
91
92
  allow(container).to receive(:id).and_return('abcdef')
92
93
  allow(container).to receive(:start)
93
94
  allow(container).to receive(:stats)
@@ -129,32 +130,16 @@ module Beaker
129
130
 
130
131
  context 'with a working connection' do
131
132
  before do
132
- # Stub out all of the docker-api gem. we should never really call it
133
- # from these tests
134
- allow_any_instance_of(::Beaker::Docker).to receive(:require).with('docker')
133
+ # Stub out all of the docker-api gem. we should never really call it from these tests
135
134
  allow(::Docker).to receive(:options).and_return(docker_options)
136
- allow(::Docker).to receive(:options=)
137
- allow(::Docker).to receive(:logger=)
138
135
  allow(::Docker).to receive(:podman?).and_return(false)
139
136
  allow(::Docker).to receive(:version).and_return(version)
140
137
  allow(::Docker::Image).to receive(:build).and_return(image)
141
138
  allow(::Docker::Image).to receive(:create).and_return(image)
142
139
  allow(::Docker::Container).to receive(:create).and_return(container)
143
- allow_any_instance_of(::Docker::Container).to receive(:start)
144
140
  end
145
141
 
146
142
  describe '#initialize' do
147
- it 'requires the docker gem' do
148
- expect_any_instance_of(::Beaker::Docker).to receive(:require).with('docker').once
149
-
150
- docker
151
- end
152
-
153
- it 'fails when the gem is absent' do
154
- allow_any_instance_of(::Beaker::Docker).to receive(:require).with('docker').and_raise(LoadError)
155
- expect { docker }.to raise_error(LoadError)
156
- end
157
-
158
143
  it 'sets Docker options' do
159
144
  expect(::Docker).to receive(:options=).with({ write_timeout: 300, read_timeout: 300 }).once
160
145
 
@@ -183,7 +168,7 @@ module Beaker
183
168
  end
184
169
 
185
170
  describe '#install_ssh_components' do
186
- let(:test_container) { double('container') }
171
+ let(:test_container) { object_double(container) }
187
172
  let(:host) { hosts[0] }
188
173
 
189
174
  before do
@@ -222,7 +207,7 @@ module Beaker
222
207
  end
223
208
  end
224
209
 
225
- it 'will tag the image with the value of the tag' do
210
+ it 'tags the image with the value of the tag' do
226
211
  expect(image).to receive(:tag).with({ repo: 'my_tag' }).exactly(3).times
227
212
  docker.provision
228
213
  end
@@ -324,8 +309,8 @@ module Beaker
324
309
  },
325
310
  },
326
311
  'Labels' => {
327
- 'one' => (index == 2 ? 3 : 1),
328
- 'two' => (index == 2 ? 4 : 2),
312
+ 'one' => ((index == 2) ? 3 : 1),
313
+ 'two' => ((index == 2) ? 4 : 2),
329
314
  },
330
315
  'name' => /\Abeaker-/,
331
316
  })
@@ -355,8 +340,8 @@ module Beaker
355
340
  },
356
341
  },
357
342
  'Labels' => {
358
- 'one' => (index == 2 ? 3 : 1),
359
- 'two' => (index == 2 ? 4 : 2),
343
+ 'one' => ((index == 2) ? 3 : 1),
344
+ 'two' => ((index == 2) ? 4 : 2),
360
345
  },
361
346
  })
362
347
  end
@@ -412,8 +397,8 @@ module Beaker
412
397
  },
413
398
  },
414
399
  'Labels' => {
415
- 'one' => (index == 2 ? 3 : 1),
416
- 'two' => (index == 2 ? 4 : 2),
400
+ 'one' => ((index == 2) ? 3 : 1),
401
+ 'two' => ((index == 2) ? 4 : 2),
417
402
  },
418
403
  'name' => /\Abeaker-/,
419
404
  })
@@ -440,8 +425,8 @@ module Beaker
440
425
  'CapAdd' => %w[NET_ADMIN SYS_ADMIN],
441
426
  },
442
427
  'Labels' => {
443
- 'one' => (index == 2 ? 3 : 1),
444
- 'two' => (index == 2 ? 4 : 2),
428
+ 'one' => ((index == 2) ? 3 : 1),
429
+ 'two' => ((index == 2) ? 4 : 2),
445
430
  },
446
431
  'name' => /\Abeaker-/,
447
432
  })
@@ -474,8 +459,8 @@ module Beaker
474
459
  },
475
460
  },
476
461
  'Labels' => {
477
- 'one' => (index == 2 ? 3 : 1),
478
- 'two' => (index == 2 ? 4 : 2),
462
+ 'one' => ((index == 2) ? 3 : 1),
463
+ 'two' => ((index == 2) ? 4 : 2),
479
464
  },
480
465
  'name' => /\Abeaker-/,
481
466
  })
@@ -756,7 +741,7 @@ module Beaker
756
741
  end
757
742
 
758
743
  describe '#fix_ssh' do
759
- let(:test_container) { double('container') }
744
+ let(:test_container) { object_double(container) }
760
745
  let(:host) { hosts[0] }
761
746
 
762
747
  before do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beaker-docker
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vox Pupuli
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2023-03-28 00:00:00.000000000 Z
14
+ date: 2024-03-17 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: fakefs
@@ -62,75 +62,39 @@ dependencies:
62
62
  - !ruby/object:Gem::Version
63
63
  version: '3.0'
64
64
  - !ruby/object:Gem::Dependency
65
- name: rubocop
65
+ name: voxpupuli-rubocop
66
66
  requirement: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
- version: 1.48.1
70
+ version: 2.6.0
71
71
  type: :development
72
72
  prerelease: false
73
73
  version_requirements: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - "~>"
76
76
  - !ruby/object:Gem::Version
77
- version: 1.48.1
77
+ version: 2.6.0
78
78
  - !ruby/object:Gem::Dependency
79
- name: rubocop-performance
80
- requirement: !ruby/object:Gem::Requirement
81
- requirements:
82
- - - "~>"
83
- - !ruby/object:Gem::Version
84
- version: '1.10'
85
- type: :development
86
- prerelease: false
87
- version_requirements: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - "~>"
90
- - !ruby/object:Gem::Version
91
- version: '1.10'
92
- - !ruby/object:Gem::Dependency
93
- name: rubocop-rake
94
- requirement: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - "~>"
97
- - !ruby/object:Gem::Version
98
- version: '0.2'
99
- type: :development
100
- prerelease: false
101
- version_requirements: !ruby/object:Gem::Requirement
102
- requirements:
103
- - - "~>"
104
- - !ruby/object:Gem::Version
105
- version: '0.2'
106
- - !ruby/object:Gem::Dependency
107
- name: rubocop-rspec
79
+ name: beaker
108
80
  requirement: !ruby/object:Gem::Requirement
109
81
  requirements:
110
82
  - - ">="
111
83
  - !ruby/object:Gem::Version
112
- version: '1.44'
113
- type: :development
114
- prerelease: false
115
- version_requirements: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- version: '1.44'
120
- - !ruby/object:Gem::Dependency
121
- name: beaker
122
- requirement: !ruby/object:Gem::Requirement
123
- requirements:
124
- - - "~>"
84
+ version: '4'
85
+ - - "<"
125
86
  - !ruby/object:Gem::Version
126
- version: '5.0'
87
+ version: '6'
127
88
  type: :runtime
128
89
  prerelease: false
129
90
  version_requirements: !ruby/object:Gem::Requirement
130
91
  requirements:
131
- - - "~>"
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '4'
95
+ - - "<"
132
96
  - !ruby/object:Gem::Version
133
- version: '5.0'
97
+ version: '6'
134
98
  - !ruby/object:Gem::Dependency
135
99
  name: docker-api
136
100
  requirement: !ruby/object:Gem::Requirement