From 3f34008795ce38c3c8e3ebaeca7b9115fffd08f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 May 2023 21:58:18 +0000 Subject: [PATCH 01/25] Bump rack-test from 2.0.2 to 2.1.0 Bumps [rack-test](https://github.com/rack/rack-test) from 2.0.2 to 2.1.0. - [Release notes](https://github.com/rack/rack-test/releases) - [Changelog](https://github.com/rack/rack-test/blob/main/History.md) - [Commits](https://github.com/rack/rack-test/compare/v2.0.2...v2.1.0) --- updated-dependencies: - dependency-name: rack-test dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 83c9c7e..8114160 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -25,6 +25,7 @@ GEM ffi (1.15.5-java) google-cloud-env (1.6.0) faraday (>= 0.17.3, < 3.0) + json (2.6.3) json (2.6.3-java) method_source (1.0.0) mock_redis (0.36.0) @@ -32,9 +33,12 @@ GEM mustermann (2.0.2) ruby2_keywords (~> 0.0.1) net-ldap (0.17.1) + nio4r (2.5.8) nio4r (2.5.8-java) nokogiri (1.14.2-java) racc (~> 1.4) + nokogiri (1.14.2-x86_64-linux) + racc (~> 1.4) opentelemetry-api (1.1.0) opentelemetry-common (0.19.6) opentelemetry-api (~> 1.0) @@ -78,17 +82,23 @@ GEM ast (~> 2.4.1) pickup (0.0.11) prometheus-client (2.1.0) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) pry (0.14.2-java) coderay (~> 1.1) method_source (~> 1.0) spoon (~> 0.0) + puma (5.6.5) + nio4r (~> 2.0) puma (5.6.5-java) nio4r (~> 2.0) + racc (1.6.2) racc (1.6.2-java) - rack (2.2.6.2) + rack (2.2.7) rack-protection (2.2.4) rack - rack-test (2.0.2) + rack-test (2.1.0) rack (>= 1.3) rainbow (3.1.1) rake (13.0.6) @@ -173,6 +183,7 @@ GEM PLATFORMS universal-java-11 + x86_64-linux DEPENDENCIES climate_control (>= 0.2.0) From 21417260daed04e788120728f6e3cca390185323 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 May 2023 18:37:07 +0000 Subject: [PATCH 02/25] Bump vmpooler from 3.0.0 to 3.1.0 Bumps [vmpooler](https://github.com/puppetlabs/vmpooler) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/puppetlabs/vmpooler/releases) - [Changelog](https://github.com/puppetlabs/vmpooler/blob/main/CHANGELOG.md) - [Commits](https://github.com/puppetlabs/vmpooler/compare/3.0.0...3.1.0) --- updated-dependencies: - dependency-name: vmpooler dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 51 ++++++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8114160..70516ee 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -30,11 +30,11 @@ GEM method_source (1.0.0) mock_redis (0.36.0) ruby2_keywords - mustermann (2.0.2) + mustermann (3.0.0) ruby2_keywords (~> 0.0.1) - net-ldap (0.17.1) - nio4r (2.5.8) - nio4r (2.5.8-java) + net-ldap (0.18.0) + nio4r (2.5.9) + nio4r (2.5.9-java) nokogiri (1.14.2-java) racc (~> 1.4) nokogiri (1.14.2-x86_64-linux) @@ -42,10 +42,11 @@ GEM opentelemetry-api (1.1.0) opentelemetry-common (0.19.6) opentelemetry-api (~> 1.0) - opentelemetry-exporter-jaeger (0.20.1) - opentelemetry-api (~> 1.0) - opentelemetry-common (~> 0.19.2) - opentelemetry-sdk (~> 1.0) + opentelemetry-exporter-jaeger (0.22.0) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.19.6) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions thrift opentelemetry-instrumentation-base (0.19.0) opentelemetry-api (~> 1.0) @@ -66,9 +67,9 @@ GEM opentelemetry-instrumentation-base (~> 0.19.0) opentelemetry-registry (0.2.0) opentelemetry-api (~> 1.1) - opentelemetry-resource_detectors (0.19.1) + opentelemetry-resource_detectors (0.23.0) google-cloud-env - opentelemetry-sdk + opentelemetry-sdk (~> 1.0) opentelemetry-sdk (1.2.0) opentelemetry-api (~> 1.1) opentelemetry-common (~> 0.19.3) @@ -81,7 +82,7 @@ GEM parser (3.2.1.0) ast (~> 2.4.1) pickup (0.0.11) - prometheus-client (2.1.0) + prometheus-client (4.1.0) pry (0.14.2) coderay (~> 1.1) method_source (~> 1.0) @@ -89,14 +90,14 @@ GEM coderay (~> 1.1) method_source (~> 1.0) spoon (~> 0.0) - puma (5.6.5) + puma (6.2.2) nio4r (~> 2.0) - puma (5.6.5-java) + puma (6.2.2-java) nio4r (~> 2.0) racc (1.6.2) racc (1.6.2-java) rack (2.2.7) - rack-protection (2.2.4) + rack-protection (3.0.6) rack rack-test (2.1.0) rack (>= 1.3) @@ -142,10 +143,10 @@ GEM simplecov_json_formatter (~> 0.1) simplecov-html (0.12.3) simplecov_json_formatter (0.1.4) - sinatra (2.2.4) - mustermann (~> 2.0) - rack (~> 2.2) - rack-protection (= 2.2.4) + sinatra (3.0.6) + mustermann (~> 3.0) + rack (~> 2.2, >= 2.2.4) + rack-protection (= 3.0.6) tilt (~> 2.0) spicy-proton (2.1.15) bindata (~> 2.3) @@ -156,25 +157,25 @@ GEM thrift (0.18.1) tilt (2.1.0) unicode-display_width (2.4.2) - vmpooler (3.0.0) + vmpooler (3.1.0) concurrent-ruby (~> 1.1) connection_pool (~> 2.2) deep_merge (~> 1.2) net-ldap (~> 0.16) - opentelemetry-exporter-jaeger (= 0.20.1) + opentelemetry-exporter-jaeger (= 0.22.0) opentelemetry-instrumentation-concurrent_ruby (= 0.19.2) opentelemetry-instrumentation-http_client (= 0.19.4) opentelemetry-instrumentation-redis (= 0.21.3) opentelemetry-instrumentation-sinatra (= 0.19.3) - opentelemetry-resource_detectors (= 0.19.1) + opentelemetry-resource_detectors (= 0.23.0) opentelemetry-sdk (~> 1.0, >= 1.0.2) pickup (~> 0.0.11) - prometheus-client (~> 2.0) - puma (~> 5.0, >= 5.0.4) - rack (~> 2.2) + prometheus-client (>= 2, < 5) + puma (>= 5.0.4, < 7) + rack (>= 2.2, < 4.0) rake (~> 13.0) redis (~> 4.1) - sinatra (~> 2.0) + sinatra (>= 2, < 4) spicy-proton (~> 2.1) statsd-ruby (~> 1.4) yarjuf (2.0.0) From 922e99401782e421bfd903ada3cd8e2ad11ed709 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 May 2023 21:58:13 +0000 Subject: [PATCH 03/25] Bump thor from 1.2.1 to 1.2.2 Bumps [thor](https://github.com/rails/thor) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/rails/thor/releases) - [Commits](https://github.com/rails/thor/compare/v1.2.1...v1.2.2) --- updated-dependencies: - dependency-name: thor dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8114160..085d986 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -152,7 +152,7 @@ GEM spoon (0.0.6) ffi statsd-ruby (1.5.0) - thor (1.2.1) + thor (1.2.2) thrift (0.18.1) tilt (2.1.0) unicode-display_width (2.4.2) From 9e31ed815f728fb17d4a7e4892c95b1485446c4d Mon Sep 17 00:00:00 2001 From: Jake Spain Date: Thu, 20 Apr 2023 08:51:12 -0400 Subject: [PATCH 04/25] Revert "Migrate issue management to Jira" This reverts commit 2f0e817b7cd1e0c8a591218afa54252689eee230. --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index 0529e18..b269094 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,6 @@ - [Usage](#usage) - [Custom VM Config Attribute](#custom-vm-config-attribute) - [Update the Gemfile Lock](#update-the-gemfile-lock) - - [Submitting Issues](#submitting-issues) - [Releasing](#releasing) - [License](#license) @@ -31,10 +30,6 @@ To update the `Gemfile.lock` run `./update-gemfile-lock`. Verify, and update if needed, that the docker tag in the script and GitHub action workflows matches what is used in the [vmpooler-deployment Dockerfile](https://github.com/puppetlabs/vmpooler-deployment/blob/main/docker/Dockerfile). -## Submitting Issues - -Please file any issues or requests in Jira at where project development is tracked across all VMPooler related components. - ## Releasing Follow these steps to publish a new GitHub release, and build and push the gem to . From 1e4719e670c9532ea35140f820baffcc12a69d80 Mon Sep 17 00:00:00 2001 From: Jake Spain Date: Mon, 1 May 2023 08:34:18 -0400 Subject: [PATCH 05/25] Revert "Comment changelog validation until jira support is added" This reverts commit 9bb978e7028c85844d719e0726ad1e982f284e0b. --- .github/workflows/release.yml | 38 +++++++++++++++++------------------ 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 39a358f..29be3d7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,26 +29,26 @@ jobs: echo "version=$version" >> $GITHUB_OUTPUT echo "Found version $version from lib/vmpooler-provider-vsphere/version.rb" - # - name: Generate Changelog - # uses: docker://githubchangeloggenerator/github-changelog-generator:1.16.2 - # with: - # args: >- - # --future-release ${{ steps.nv.outputs.version }} - # env: - # CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Generate Changelog + uses: docker://githubchangeloggenerator/github-changelog-generator:1.16.2 + with: + args: >- + --future-release ${{ steps.nv.outputs.version }} + env: + CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # - name: Validate Changelog - # run : | - # set -e - # if [[ -n $(git status --porcelain) ]]; then - # echo "Here is the current git status:" - # git status - # echo - # echo "The following changes were detected:" - # git --no-pager diff - # echo "Uncommitted PRs found in the changelog. Please submit a release prep PR of changes after running `./update-changelog`" - # exit 1 - # fi + - name: Validate Changelog + run : | + set -e + if [[ -n $(git status --porcelain) ]]; then + echo "Here is the current git status:" + git status + echo + echo "The following changes were detected:" + git --no-pager diff + echo "Uncommitted PRs found in the changelog. Please submit a release prep PR of changes after running `./update-changelog`" + exit 1 + fi - name: Generate Release Notes uses: docker://githubchangeloggenerator/github-changelog-generator:1.16.2 From bf46ca2642f39096cee68f134bd8c29fa09b2457 Mon Sep 17 00:00:00 2001 From: Jake Spain Date: Thu, 10 Aug 2023 07:20:37 -0400 Subject: [PATCH 06/25] Bump jruby to 9.4.3.0 and update lockfile --- .github/workflows/release.yml | 2 +- .github/workflows/testing.yml | 4 +- Gemfile.lock | 122 ++++++++++++++++++---------------- install-gemfile-lock | 2 +- release-prep | 2 +- update-gemfile-lock | 2 +- 6 files changed, 70 insertions(+), 64 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 29be3d7..5d71f9f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -73,7 +73,7 @@ jobs: - name: Install Ruby jruby-9.3.6.0 uses: ruby/setup-ruby@v1 with: - ruby-version: 'jruby-9.4.2.0' + ruby-version: 'jruby-9.4.3.0' - name: Build gem run: gem build *.gemspec diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 54dab4b..105fc8e 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -18,7 +18,7 @@ jobs: strategy: matrix: ruby-version: - - 'jruby-9.4.2.0' + - 'jruby-9.4.3.0' steps: - uses: actions/checkout@v3 - name: Set up Ruby @@ -34,7 +34,7 @@ jobs: strategy: matrix: ruby-version: - - 'jruby-9.4.2.0' + - 'jruby-9.4.3.0' steps: - uses: actions/checkout@v3 - name: Set up Ruby diff --git a/Gemfile.lock b/Gemfile.lock index d20929b..eecb540 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -14,11 +14,11 @@ GEM climate_control (1.2.0) coderay (1.1.3) concurrent-ruby (1.2.2) - connection_pool (2.4.0) + connection_pool (2.4.1) deep_merge (1.2.2) diff-lcs (1.5.0) docile (1.4.0) - faraday (2.7.4) + faraday (2.7.10) faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) faraday-net_http (3.0.2) @@ -28,61 +28,67 @@ GEM json (2.6.3) json (2.6.3-java) method_source (1.0.0) - mock_redis (0.36.0) - ruby2_keywords + mock_redis (0.37.0) mustermann (3.0.0) ruby2_keywords (~> 0.0.1) net-ldap (0.18.0) nio4r (2.5.9) nio4r (2.5.9-java) - nokogiri (1.14.2-java) + nokogiri (1.15.3-java) racc (~> 1.4) - nokogiri (1.14.2-x86_64-linux) + nokogiri (1.15.3-x86_64-linux) racc (~> 1.4) - opentelemetry-api (1.1.0) - opentelemetry-common (0.19.6) + opentelemetry-api (1.2.1) + opentelemetry-common (0.20.0) opentelemetry-api (~> 1.0) - opentelemetry-exporter-jaeger (0.22.0) + opentelemetry-exporter-jaeger (0.23.0) opentelemetry-api (~> 1.1) - opentelemetry-common (~> 0.19.6) + opentelemetry-common (~> 0.20) opentelemetry-sdk (~> 1.2) opentelemetry-semantic_conventions thrift - opentelemetry-instrumentation-base (0.19.0) + opentelemetry-instrumentation-base (0.22.2) opentelemetry-api (~> 1.0) - opentelemetry-instrumentation-concurrent_ruby (0.19.2) + opentelemetry-registry (~> 0.1) + opentelemetry-instrumentation-concurrent_ruby (0.21.1) opentelemetry-api (~> 1.0) - opentelemetry-instrumentation-base (~> 0.19.0) - opentelemetry-instrumentation-http_client (0.19.4) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-http_client (0.22.2) opentelemetry-api (~> 1.0) - opentelemetry-common (~> 0.19.3) - opentelemetry-instrumentation-base (~> 0.19.0) - opentelemetry-instrumentation-redis (0.21.3) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-rack (0.23.4) opentelemetry-api (~> 1.0) - opentelemetry-common (~> 0.19.3) - opentelemetry-instrumentation-base (~> 0.19.0) - opentelemetry-instrumentation-sinatra (0.19.3) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-redis (0.25.3) opentelemetry-api (~> 1.0) - opentelemetry-common (~> 0.19.3) - opentelemetry-instrumentation-base (~> 0.19.0) - opentelemetry-registry (0.2.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-sinatra (0.23.2) + opentelemetry-api (~> 1.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-rack (~> 0.21) + opentelemetry-registry (0.3.0) opentelemetry-api (~> 1.1) - opentelemetry-resource_detectors (0.23.0) + opentelemetry-resource_detectors (0.24.1) google-cloud-env opentelemetry-sdk (~> 1.0) - opentelemetry-sdk (1.2.0) + opentelemetry-sdk (1.3.0) opentelemetry-api (~> 1.1) - opentelemetry-common (~> 0.19.3) + opentelemetry-common (~> 0.20) opentelemetry-registry (~> 0.2) opentelemetry-semantic_conventions - opentelemetry-semantic_conventions (1.8.0) + opentelemetry-semantic_conventions (1.10.0) opentelemetry-api (~> 1.0) - optimist (3.0.1) - parallel (1.22.1) - parser (3.2.1.0) + optimist (3.1.0) + parallel (1.23.0) + parser (3.2.2.3) ast (~> 2.4.1) + racc pickup (0.0.11) - prometheus-client (4.1.0) + prometheus-client (4.2.1) pry (0.14.2) coderay (~> 1.1) method_source (~> 1.0) @@ -90,40 +96,40 @@ GEM coderay (~> 1.1) method_source (~> 1.0) spoon (~> 0.0) - puma (6.2.2) + puma (6.3.0) nio4r (~> 2.0) - puma (6.2.2-java) + puma (6.3.0-java) nio4r (~> 2.0) - racc (1.6.2) - racc (1.6.2-java) - rack (2.2.7) - rack-protection (3.0.6) - rack + racc (1.7.1) + racc (1.7.1-java) + rack (2.2.8) + rack-protection (3.1.0) + rack (~> 2.2, >= 2.2.4) rack-test (2.1.0) rack (>= 1.3) rainbow (3.1.1) rake (13.0.6) - rbvmomi2 (3.6.0) + rbvmomi2 (3.6.1) builder (~> 3.2) json (~> 2.3) nokogiri (~> 1.12, >= 1.12.5) optimist (~> 3.0) redis (4.8.1) - regexp_parser (2.7.0) - rexml (3.2.5) + regexp_parser (2.8.1) + rexml (3.2.6) rspec (3.12.0) rspec-core (~> 3.12.0) rspec-expectations (~> 3.12.0) rspec-mocks (~> 3.12.0) - rspec-core (3.12.1) + rspec-core (3.12.2) rspec-support (~> 3.12.0) - rspec-expectations (3.12.2) + rspec-expectations (3.12.3) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.12.0) - rspec-mocks (3.12.3) + rspec-mocks (3.12.6) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.12.0) - rspec-support (3.12.0) + rspec-support (3.12.1) rubocop (1.28.2) parallel (~> 1.10) parser (>= 3.1.0.0) @@ -133,9 +139,9 @@ GEM rubocop-ast (>= 1.17.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.27.0) + rubocop-ast (1.29.0) parser (>= 3.2.1.0) - ruby-progressbar (1.12.0) + ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) simplecov (0.22.0) docile (~> 1.1) @@ -143,10 +149,10 @@ GEM simplecov_json_formatter (~> 0.1) simplecov-html (0.12.3) simplecov_json_formatter (0.1.4) - sinatra (3.0.6) + sinatra (3.1.0) mustermann (~> 3.0) rack (~> 2.2, >= 2.2.4) - rack-protection (= 3.0.6) + rack-protection (= 3.1.0) tilt (~> 2.0) spicy-proton (2.1.15) bindata (~> 2.3) @@ -155,20 +161,20 @@ GEM statsd-ruby (1.5.0) thor (1.2.2) thrift (0.18.1) - tilt (2.1.0) + tilt (2.2.0) unicode-display_width (2.4.2) - vmpooler (3.1.0) + vmpooler (3.2.0) concurrent-ruby (~> 1.1) connection_pool (~> 2.2) deep_merge (~> 1.2) net-ldap (~> 0.16) - opentelemetry-exporter-jaeger (= 0.22.0) - opentelemetry-instrumentation-concurrent_ruby (= 0.19.2) - opentelemetry-instrumentation-http_client (= 0.19.4) - opentelemetry-instrumentation-redis (= 0.21.3) - opentelemetry-instrumentation-sinatra (= 0.19.3) - opentelemetry-resource_detectors (= 0.23.0) - opentelemetry-sdk (~> 1.0, >= 1.0.2) + opentelemetry-exporter-jaeger (= 0.23.0) + opentelemetry-instrumentation-concurrent_ruby (= 0.21.1) + opentelemetry-instrumentation-http_client (= 0.22.2) + opentelemetry-instrumentation-redis (= 0.25.3) + opentelemetry-instrumentation-sinatra (= 0.23.2) + opentelemetry-resource_detectors (= 0.24.1) + opentelemetry-sdk (~> 1.3, >= 1.3.0) pickup (~> 0.0.11) prometheus-client (>= 2, < 5) puma (>= 5.0.4, < 7) diff --git a/install-gemfile-lock b/install-gemfile-lock index 94a5e5e..a479b0d 100755 --- a/install-gemfile-lock +++ b/install-gemfile-lock @@ -3,5 +3,5 @@ # The container tag should closely match what is used in `docker/Dockerfile` in vmpooler-deployment docker run -it --rm \ -v $(pwd):/app \ - jruby:9.4.2.0-jdk11 \ + jruby:9.4.3.0-jdk11 \ /bin/bash -c 'apt-get update -qq && apt-get install -y --no-install-recommends make git netbase && cd /app && gem install bundler && bundle install --jobs 3; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"' diff --git a/release-prep b/release-prep index 072115e..ad040cc 100755 --- a/release-prep +++ b/release-prep @@ -5,7 +5,7 @@ # Update Gemfile.lock docker run -it --rm \ -v $(pwd):/app \ - jruby:9.4.2.0-jdk11 \ + jruby:9.4.3.0-jdk11 \ /bin/bash -c 'apt-get update -qq && apt-get install -y --no-install-recommends git make netbase && cd /app && gem install bundler && bundle install --jobs 3; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"' # Update Changelog diff --git a/update-gemfile-lock b/update-gemfile-lock index 68ea73f..31986cc 100755 --- a/update-gemfile-lock +++ b/update-gemfile-lock @@ -3,5 +3,5 @@ # The container tag should closely match what is used in `docker/Dockerfile` in vmpooler-deployment docker run -it --rm \ -v $(pwd):/app \ - jruby:9.4.2.0-jdk11 \ + jruby:9.4.3.0-jdk11 \ /bin/bash -c 'apt-get update -qq && apt-get install -y --no-install-recommends git make netbase && cd /app && gem install bundler && bundle install --jobs 3 && bundle update; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"' From 677226e83b9d487a4ba5d93596b375c40bb56a1d Mon Sep 17 00:00:00 2001 From: Jake Spain Date: Thu, 10 Aug 2023 12:22:00 -0400 Subject: [PATCH 07/25] 3.2.0 release prep --- CHANGELOG.md | 14 ++++++++++++++ Gemfile.lock | 2 +- lib/vmpooler-provider-vsphere/version.rb | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f47557..e1df778 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## [3.2.0](https://github.com/puppetlabs/vmpooler-provider-vsphere/tree/3.2.0) (2023-08-10) + +[Full Changelog](https://github.com/puppetlabs/vmpooler-provider-vsphere/compare/3.1.0...3.2.0) + +**Implemented enhancements:** + +- Bump jruby to 9.4.3.0 and update lockfile [\#40](https://github.com/puppetlabs/vmpooler-provider-vsphere/pull/40) ([yachub](https://github.com/yachub)) + +**Merged pull requests:** + +- Bump thor from 1.2.1 to 1.2.2 [\#38](https://github.com/puppetlabs/vmpooler-provider-vsphere/pull/38) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump vmpooler from 3.0.0 to 3.1.0 [\#37](https://github.com/puppetlabs/vmpooler-provider-vsphere/pull/37) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump rack-test from 2.0.2 to 2.1.0 [\#36](https://github.com/puppetlabs/vmpooler-provider-vsphere/pull/36) ([dependabot[bot]](https://github.com/apps/dependabot)) + ## [3.1.0](https://github.com/puppetlabs/vmpooler-provider-vsphere/tree/3.1.0) (2023-05-01) [Full Changelog](https://github.com/puppetlabs/vmpooler-provider-vsphere/compare/3.0.0...3.1.0) diff --git a/Gemfile.lock b/Gemfile.lock index eecb540..77488c7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - vmpooler-provider-vsphere (3.1.0) + vmpooler-provider-vsphere (3.2.0) rbvmomi2 (>= 3.1, < 4.0) vmpooler (~> 3.0) diff --git a/lib/vmpooler-provider-vsphere/version.rb b/lib/vmpooler-provider-vsphere/version.rb index e31090c..9dbbdd3 100644 --- a/lib/vmpooler-provider-vsphere/version.rb +++ b/lib/vmpooler-provider-vsphere/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module VmpoolerProviderVsphere - VERSION = '3.1.0' + VERSION = '3.2.0' end From 5ca0555a52bd330df6bcc6eeae2fd3e8ef0a14af Mon Sep 17 00:00:00 2001 From: isaac-hammes Date: Thu, 17 Aug 2023 13:18:33 -0700 Subject: [PATCH 08/25] (POD-10) Log reason for failed VM checks. --- lib/vmpooler/providers/vsphere.rb | 7 ++++--- spec/unit/providers/vsphere_spec.rb | 12 +++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/vmpooler/providers/vsphere.rb b/lib/vmpooler/providers/vsphere.rb index 99271bc..48eabd3 100644 --- a/lib/vmpooler/providers/vsphere.rb +++ b/lib/vmpooler/providers/vsphere.rb @@ -555,14 +555,15 @@ module Vmpooler true end - def vm_ready?(pool_name, vm_name) + def vm_ready?(pool_name, vm_name, redis) begin domain = domain(pool_name) open_socket(vm_name, domain) - rescue StandardError => _e + rescue StandardError => e + redis.hset("vmpooler__vm__#{vm_name}", 'open_socket_error', e.to_s) return false end - + redis.hdel("vmpooler__vm__#{vm_name}", 'open_socket_error') true end diff --git a/spec/unit/providers/vsphere_spec.rb b/spec/unit/providers/vsphere_spec.rb index 2dbc22e..0dc2092 100644 --- a/spec/unit/providers/vsphere_spec.rb +++ b/spec/unit/providers/vsphere_spec.rb @@ -1090,7 +1090,9 @@ EOT end it 'should return true' do - expect(subject.vm_ready?(poolname, vmname)).to be true + redis_connection_pool.with do |redis| + expect(subject.vm_ready?(poolname, vmname, redis)).to be true + end end end @@ -1103,7 +1105,9 @@ EOT it 'should return true' do allow(subject).to receive(:domain).and_return('vmpooler.example.com') - expect(subject.vm_ready?('missing_pool',vmname)).to be true + redis_connection_pool.with do |redis| + expect(subject.vm_ready?('missing_pool', vmname, redis)).to be true + end end end @@ -1115,7 +1119,9 @@ EOT end it 'should return false' do - expect(subject.vm_ready?(poolname,vmname)).to be false + redis_connection_pool.with do |redis| + expect(subject.vm_ready?(poolname, vmname, redis)).to be false + end end end end From 506e874dad08214f25b2b4073e8bcb4730793dec Mon Sep 17 00:00:00 2001 From: isaac-hammes Date: Fri, 18 Aug 2023 08:41:54 -0700 Subject: [PATCH 09/25] (maint) Release prep for version 3.3.0 --- CHANGELOG.md | 8 ++++++++ Gemfile.lock | 2 +- lib/vmpooler-provider-vsphere/version.rb | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1df778..9b9794b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [3.3.0](https://github.com/puppetlabs/vmpooler-provider-vsphere/tree/3.3.0) (2023-08-18) + +[Full Changelog](https://github.com/puppetlabs/vmpooler-provider-vsphere/compare/3.2.0...3.3.0) + +**Implemented enhancements:** + +- \(POD-10\) Log reason for failed VM checks. [\#42](https://github.com/puppetlabs/vmpooler-provider-vsphere/pull/42) ([isaac-hammes](https://github.com/isaac-hammes)) + ## [3.2.0](https://github.com/puppetlabs/vmpooler-provider-vsphere/tree/3.2.0) (2023-08-10) [Full Changelog](https://github.com/puppetlabs/vmpooler-provider-vsphere/compare/3.1.0...3.2.0) diff --git a/Gemfile.lock b/Gemfile.lock index 77488c7..2d7e14b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - vmpooler-provider-vsphere (3.2.0) + vmpooler-provider-vsphere (3.3.0) rbvmomi2 (>= 3.1, < 4.0) vmpooler (~> 3.0) diff --git a/lib/vmpooler-provider-vsphere/version.rb b/lib/vmpooler-provider-vsphere/version.rb index 9dbbdd3..e954ce9 100644 --- a/lib/vmpooler-provider-vsphere/version.rb +++ b/lib/vmpooler-provider-vsphere/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module VmpoolerProviderVsphere - VERSION = '3.2.0' + VERSION = '3.3.0' end From f02e0eb19a881a634b5bf8c27c35799039cd69b4 Mon Sep 17 00:00:00 2001 From: Jake Spain Date: Mon, 21 Aug 2023 21:20:36 -0400 Subject: [PATCH 10/25] Fix getting IP by not returning a bad address --- lib/vmpooler/providers/vsphere.rb | 2 ++ spec/rbvmomi_helper.rb | 2 +- spec/unit/providers/vsphere_spec.rb | 32 ++++++++++++++++++++++++++++- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/lib/vmpooler/providers/vsphere.rb b/lib/vmpooler/providers/vsphere.rb index 48eabd3..fe6749e 100644 --- a/lib/vmpooler/providers/vsphere.rb +++ b/lib/vmpooler/providers/vsphere.rb @@ -603,9 +603,11 @@ module Vmpooler ip_loop_delay = 1 ip_loop_count = 1 ip = nil + invalid_addresses = /(0|169)\.(0|254)\.\d+\.\d+/ while ip.nil? sleep(ip_loop_delay) ip = vm_object.guest_ip + ip = nil if !ip.nil? && ip.match?(invalid_addresses) unless ip_maxloop == 0 break if ip_loop_count >= ip_maxloop diff --git a/spec/rbvmomi_helper.rb b/spec/rbvmomi_helper.rb index ace62b6..c045a3f 100644 --- a/spec/rbvmomi_helper.rb +++ b/spec/rbvmomi_helper.rb @@ -818,7 +818,7 @@ end def mock_RbVmomi_VIM_VirtualMachine(options = {}) options[:snapshot_tree] = nil if options[:snapshot_tree].nil? options[:name] = 'VM' + rand(65536).to_s if options[:name].nil? - options[:ip] = '169.254.255.255' if options[:ip].nil? + options[:ip] = '192.168.0.2' if options[:ip].nil? options[:path] = [] if options[:path].nil? mock = MockVirtualMachine.new() diff --git a/spec/unit/providers/vsphere_spec.rb b/spec/unit/providers/vsphere_spec.rb index 0dc2092..893b545 100644 --- a/spec/unit/providers/vsphere_spec.rb +++ b/spec/unit/providers/vsphere_spec.rb @@ -580,11 +580,41 @@ EOT end end + context 'when VM exists but contains a self assigned ip' do + let(:vm_object) { mock_RbVmomi_VIM_VirtualMachine({ + :name => vmname, + :ip => '169.254.255.255', + }) + } + + it 'should return nil ip' do + allow(subject).to receive(:sleep) + result = subject.get_vm(poolname,vmname) + + expect(result['ip']).to eq(nil) + end + end + + context 'when VM exists but contains an invalid ip' do + let(:vm_object) { mock_RbVmomi_VIM_VirtualMachine({ + :name => vmname, + :ip => '0.0.0.0', + }) + } + + it 'should return nil for ip' do + allow(subject).to receive(:sleep) + result = subject.get_vm(poolname,vmname) + + expect(result['ip']).to eq(nil) + end + end + context 'when VM exists and contains all information' do let(:vm_hostname) { "#{vmname}.demo.local" } let(:boot_time) { Time.now } let(:power_state) { 'MockPowerState' } - let(:ip) { '169.254.255.255' } + let(:ip) { '192.168.0.2' } let(:vm_object) { mock_RbVmomi_VIM_VirtualMachine({ :name => vmname, From 7316431f783c2f963cb053872064895faf6664c0 Mon Sep 17 00:00:00 2001 From: Jake Spain Date: Mon, 21 Aug 2023 21:44:31 -0400 Subject: [PATCH 11/25] Increase timeout for getting an IP --- lib/vmpooler/providers/vsphere.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/vmpooler/providers/vsphere.rb b/lib/vmpooler/providers/vsphere.rb index fe6749e..358727f 100644 --- a/lib/vmpooler/providers/vsphere.rb +++ b/lib/vmpooler/providers/vsphere.rb @@ -599,7 +599,7 @@ module Vmpooler boottime = vm_object.runtime.bootTime if vm_object.runtime&.bootTime powerstate = vm_object.runtime.powerState if vm_object.runtime&.powerState - ip_maxloop = 60 + ip_maxloop = 120 ip_loop_delay = 1 ip_loop_count = 1 ip = nil From f0c7d377d18bd70939bc97974ea810a191fdc852 Mon Sep 17 00:00:00 2001 From: Jake Spain Date: Tue, 22 Aug 2023 08:23:04 -0400 Subject: [PATCH 12/25] 3.3.1 release prep --- CHANGELOG.md | 8 ++++++++ Gemfile.lock | 2 +- lib/vmpooler-provider-vsphere/version.rb | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b9794b..6ceb962 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [3.3.1](https://github.com/puppetlabs/vmpooler-provider-vsphere/tree/3.3.1) (2023-08-22) + +[Full Changelog](https://github.com/puppetlabs/vmpooler-provider-vsphere/compare/3.3.0...3.3.1) + +**Fixed bugs:** + +- \(RE-15710\) Fix IP address that is returned and increase timeout [\#44](https://github.com/puppetlabs/vmpooler-provider-vsphere/pull/44) ([yachub](https://github.com/yachub)) + ## [3.3.0](https://github.com/puppetlabs/vmpooler-provider-vsphere/tree/3.3.0) (2023-08-18) [Full Changelog](https://github.com/puppetlabs/vmpooler-provider-vsphere/compare/3.2.0...3.3.0) diff --git a/Gemfile.lock b/Gemfile.lock index 2d7e14b..6451e9e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - vmpooler-provider-vsphere (3.3.0) + vmpooler-provider-vsphere (3.3.1) rbvmomi2 (>= 3.1, < 4.0) vmpooler (~> 3.0) diff --git a/lib/vmpooler-provider-vsphere/version.rb b/lib/vmpooler-provider-vsphere/version.rb index e954ce9..b3bbe34 100644 --- a/lib/vmpooler-provider-vsphere/version.rb +++ b/lib/vmpooler-provider-vsphere/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module VmpoolerProviderVsphere - VERSION = '3.3.0' + VERSION = '3.3.1' end From 978fc0031ac5998b9e071b94945daa22fd1116fd Mon Sep 17 00:00:00 2001 From: isaac-hammes Date: Wed, 23 Aug 2023 05:46:49 -0700 Subject: [PATCH 13/25] (maint) Increase timeout for cloned vms to obtain IPs. --- lib/vmpooler/providers/vsphere.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/vmpooler/providers/vsphere.rb b/lib/vmpooler/providers/vsphere.rb index 358727f..c5e3212 100644 --- a/lib/vmpooler/providers/vsphere.rb +++ b/lib/vmpooler/providers/vsphere.rb @@ -599,7 +599,7 @@ module Vmpooler boottime = vm_object.runtime.bootTime if vm_object.runtime&.bootTime powerstate = vm_object.runtime.powerState if vm_object.runtime&.powerState - ip_maxloop = 120 + ip_maxloop = 240 ip_loop_delay = 1 ip_loop_count = 1 ip = nil From 69629e1019a7d310d24e3e94e28387b525a65440 Mon Sep 17 00:00:00 2001 From: isaac-hammes Date: Wed, 23 Aug 2023 06:03:47 -0700 Subject: [PATCH 14/25] (maint) Release prep for version 3.3.2 --- CHANGELOG.md | 8 ++++++++ Gemfile.lock | 2 +- lib/vmpooler-provider-vsphere/version.rb | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ceb962..dcb5fe9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [3.3.2](https://github.com/puppetlabs/vmpooler-provider-vsphere/tree/3.3.2) (2023-08-23) + +[Full Changelog](https://github.com/puppetlabs/vmpooler-provider-vsphere/compare/3.3.1...3.3.2) + +**Fixed bugs:** + +- \(maint\) Increase timeout for cloned vms to obtain IPs. [\#47](https://github.com/puppetlabs/vmpooler-provider-vsphere/pull/47) ([isaac-hammes](https://github.com/isaac-hammes)) + ## [3.3.1](https://github.com/puppetlabs/vmpooler-provider-vsphere/tree/3.3.1) (2023-08-22) [Full Changelog](https://github.com/puppetlabs/vmpooler-provider-vsphere/compare/3.3.0...3.3.1) diff --git a/Gemfile.lock b/Gemfile.lock index 6451e9e..44930ce 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - vmpooler-provider-vsphere (3.3.1) + vmpooler-provider-vsphere (3.3.2) rbvmomi2 (>= 3.1, < 4.0) vmpooler (~> 3.0) diff --git a/lib/vmpooler-provider-vsphere/version.rb b/lib/vmpooler-provider-vsphere/version.rb index b3bbe34..5952ba7 100644 --- a/lib/vmpooler-provider-vsphere/version.rb +++ b/lib/vmpooler-provider-vsphere/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module VmpoolerProviderVsphere - VERSION = '3.3.1' + VERSION = '3.3.2' end From 81f5192ded0ac5b0498a55bca039b253d127ac98 Mon Sep 17 00:00:00 2001 From: isaac-hammes Date: Mon, 28 Aug 2023 07:39:11 -0700 Subject: [PATCH 15/25] (maint) Update Gemfile.lock and use block for transaction. --- Gemfile.lock | 21 ++++++++++++--------- lib/vmpooler/providers/vsphere.rb | 30 +++++++++++++++--------------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 44930ce..220fd6d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -34,11 +34,11 @@ GEM net-ldap (0.18.0) nio4r (2.5.9) nio4r (2.5.9-java) - nokogiri (1.15.3-java) + nokogiri (1.15.4-java) racc (~> 1.4) - nokogiri (1.15.3-x86_64-linux) + nokogiri (1.15.4-x86_64-linux) racc (~> 1.4) - opentelemetry-api (1.2.1) + opentelemetry-api (1.2.2) opentelemetry-common (0.20.0) opentelemetry-api (~> 1.0) opentelemetry-exporter-jaeger (0.23.0) @@ -96,9 +96,9 @@ GEM coderay (~> 1.1) method_source (~> 1.0) spoon (~> 0.0) - puma (6.3.0) + puma (6.3.1) nio4r (~> 2.0) - puma (6.3.0-java) + puma (6.3.1-java) nio4r (~> 2.0) racc (1.7.1) racc (1.7.1-java) @@ -114,7 +114,10 @@ GEM json (~> 2.3) nokogiri (~> 1.12, >= 1.12.5) optimist (~> 3.0) - redis (4.8.1) + redis (5.0.7) + redis-client (>= 0.9.0) + redis-client (0.16.0) + connection_pool regexp_parser (2.8.1) rexml (3.2.6) rspec (3.12.0) @@ -163,9 +166,9 @@ GEM thrift (0.18.1) tilt (2.2.0) unicode-display_width (2.4.2) - vmpooler (3.2.0) + vmpooler (3.5.1) concurrent-ruby (~> 1.1) - connection_pool (~> 2.2) + connection_pool (~> 2.4) deep_merge (~> 1.2) net-ldap (~> 0.16) opentelemetry-exporter-jaeger (= 0.23.0) @@ -180,7 +183,7 @@ GEM puma (>= 5.0.4, < 7) rack (>= 2.2, < 4.0) rake (~> 13.0) - redis (~> 4.1) + redis (~> 5.0) sinatra (>= 2, < 4) spicy-proton (~> 2.1) statsd-ruby (~> 1.4) diff --git a/lib/vmpooler/providers/vsphere.rb b/lib/vmpooler/providers/vsphere.rb index c5e3212..a67ca7e 100644 --- a/lib/vmpooler/providers/vsphere.rb +++ b/lib/vmpooler/providers/vsphere.rb @@ -68,14 +68,14 @@ module Vmpooler try = 0 if try.nil? max_tries = 3 @redis.with_metrics do |redis| - redis.multi - redis.srem("vmpooler__completed__#{pool}", vm_name) - redis.hdel("vmpooler__active__#{pool}", vm_name) - redis.hset("vmpooler__vm__#{vm_name}", 'destroy', Time.now) + redis.multi do |transaction| + transaction.srem("vmpooler__completed__#{pool}", vm_name) + transaction.hdel("vmpooler__active__#{pool}", vm_name) + transaction.hset("vmpooler__vm__#{vm_name}", 'destroy', Time.now) - # Auto-expire metadata key - redis.expire("vmpooler__vm__#{vm_name}", (data_ttl * 60 * 60)) - redis.exec + # Auto-expire metadata key + transaction.expire("vmpooler__vm__#{vm_name}", (data_ttl * 60 * 60)) + end end start = Time.now @@ -1137,10 +1137,10 @@ module Vmpooler target_host_object = find_host_by_dnsname(connection, target_host_name) finish = migrate_vm_and_record_timing(pool_name, vm_name, vm_hash, target_host_object, target_host_name) @redis.with_metrics do |redis| - redis.multi - redis.hset("vmpooler__vm__#{vm_name}", 'host', target_host_name) - redis.hset("vmpooler__vm__#{vm_name}", 'migrated', true) - redis.exec + redis.multi do |transaction| + transaction.hset("vmpooler__vm__#{vm_name}", 'host', target_host_name) + transaction.hset("vmpooler__vm__#{vm_name}", 'migrated', true) + end end logger.log('s', "[>] [#{pool_name}] '#{vm_name}' migrated from #{vm_hash['host_name']} to #{target_host_name} in #{finish} seconds") ensure @@ -1158,10 +1158,10 @@ module Vmpooler metrics.increment("migrate_to.#{dest_host_name}") @redis.with_metrics do |redis| checkout_to_migration = format('%