Compare commits

...

47 commits
3.1.0 ... main

Author SHA1 Message Date
Jake Spain
3c7bd24fa4
Merge pull request #61 from puppetlabs/fix-release-prep-param
(maint) Fix missing param in auto_release_prep
2024-01-19 16:48:30 -05:00
Jake Spain
ed03dc54fa
Remove interactive option from release prep script 2024-01-19 15:33:34 -05:00
Jake Spain
d6127f92de
Fix missing param in auto_release_prep 2024-01-15 09:25:02 -05:00
Jake Spain
3eff725eee
Merge pull request #60 from puppetlabs/dependabot/github_actions/actions/github-script-7
Bump actions/github-script from 6 to 7
2023-12-07 08:52:15 -05:00
Jake Spain
d1d4c936c8
Merge pull request #59 from puppetlabs/dependabot/github_actions/actions/checkout-4
Bump actions/checkout from 3 to 4
2023-12-07 08:51:59 -05:00
Jake Spain
eed45279f7
Merge pull request #58 from puppetlabs/dependabot/github_actions/actions/setup-java-4
Bump actions/setup-java from 3 to 4
2023-12-07 08:51:39 -05:00
dependabot[bot]
15cd166f9d
Bump actions/github-script from 6 to 7
Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 7.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-07 13:49:11 +00:00
dependabot[bot]
71bcf16ee8
Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-07 13:49:05 +00:00
dependabot[bot]
29d3d29fee
Bump actions/setup-java from 3 to 4
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-07 13:49:00 +00:00
Jake Spain
ee6e01f601
Merge pull request #57 from puppetlabs/repo-sync
Add dependabot, release prep, and label reusable workflows from release-engineering-repo-standards
2023-12-07 08:48:26 -05:00
Jake Spain
f04162f421
syncing files from release-engineering-repo-standards 2023-12-06 17:17:25 -05:00
isaac-hammes
c91e62150a
Merge pull request #53 from puppetlabs/RE-15750
(RE-15750) Handle vm no longer existing when attempting to migrate.
2023-09-07 15:07:44 -07:00
isaac-hammes
a223bf4d61 (RE-15750) Handle vm no longer existing when attempting to migrate. 2023-09-07 12:47:58 -07:00
isaac-hammes
93b43ed99d
Merge pull request #52 from puppetlabs/3.3.4-release-prep
(maint) Release prep for version 3.3.4
2023-08-30 09:39:07 -07:00
isaac-hammes
7a6685927a (maint) Release prep for version 3.3.4 2023-08-30 09:32:36 -07:00
isaac-hammes
24204421c6
Merge pull request #51 from puppetlabs/fix_redis_commands
(maint) Convert booleans and Time objects to strings when being added to redis
2023-08-30 09:07:20 -07:00
isaac-hammes
9fa1072a32 (maint) Convert booleans and Time objects to strings when being added to redis 2023-08-30 08:57:07 -07:00
isaac-hammes
47176e6b5b
Merge pull request #50 from puppetlabs/3.3.3-release-prep
(maint) Release prep for version 3.3.3
2023-08-28 08:25:38 -07:00
isaac-hammes
1dc1d8e568 (maint) Release prep for version 3.3.3 2023-08-28 08:04:27 -07:00
isaac-hammes
b4819f2d39
Merge pull request #49 from puppetlabs/update_for_redis_5
(maint) Update Gemfile.lock and use block for transaction.
2023-08-28 07:48:31 -07:00
isaac-hammes
81f5192ded (maint) Update Gemfile.lock and use block for transaction. 2023-08-28 07:39:11 -07:00
isaac-hammes
18068ecacf
Merge pull request #48 from puppetlabs/3.3.2-release-prep
(maint) Release prep for version 3.3.2
2023-08-23 06:15:20 -07:00
isaac-hammes
69629e1019 (maint) Release prep for version 3.3.2 2023-08-23 06:03:47 -07:00
isaac-hammes
d538eb200e
Merge pull request #47 from puppetlabs/increase_timeout_to_obtain_ip
(maint) Increase timeout for cloned vms to obtain IPs.
2023-08-23 05:59:20 -07:00
isaac-hammes
978fc0031a (maint) Increase timeout for cloned vms to obtain IPs. 2023-08-23 05:46:49 -07:00
Jake Spain
c70920a56e
Merge pull request #45 from puppetlabs/3.3.1-release-prep
3.3.1 release prep
2023-08-22 08:26:27 -04:00
Jake Spain
f0c7d377d1
3.3.1 release prep 2023-08-22 08:23:04 -04:00
Jake Spain
9971e84186
Merge pull request #44 from puppetlabs/fix-returning-ip
(RE-15710) Fix IP address that is returned and increase timeout
2023-08-22 08:16:17 -04:00
Jake Spain
7316431f78
Increase timeout for getting an IP 2023-08-21 23:27:12 -04:00
Jake Spain
f02e0eb19a
Fix getting IP by not returning a bad address 2023-08-21 23:27:03 -04:00
isaac-hammes
7822b2182e
Merge pull request #43 from puppetlabs/3.3.0-release
(maint) Release prep for version 3.3.0
2023-08-18 09:01:19 -07:00
isaac-hammes
506e874dad (maint) Release prep for version 3.3.0 2023-08-18 08:41:54 -07:00
isaac-hammes
c11a783980
Merge pull request #42 from puppetlabs/POD-10
(POD-10) Log reason for failed VM checks.
2023-08-18 06:27:48 -07:00
isaac-hammes
5ca0555a52 (POD-10) Log reason for failed VM checks. 2023-08-17 13:18:33 -07:00
Jake Spain
b2f7907618
Merge pull request #41 from puppetlabs/3.2.0-release-prep
3.2.0 release prep
2023-08-10 12:56:10 -04:00
Jake Spain
677226e83b
3.2.0 release prep 2023-08-10 12:22:00 -04:00
Jake Spain
4ba64b942a
Merge pull request #40 from puppetlabs/bump-jruby
Bump jruby to 9.4.3.0 and update lockfile
2023-08-10 11:39:07 -04:00
Jake Spain
bf46ca2642
Bump jruby to 9.4.3.0 and update lockfile 2023-08-10 10:10:23 -04:00
Jake Spain
5d79042a10
Merge pull request #39 from puppetlabs/revert_issue_management
Revert issue management change
2023-07-11 07:14:20 -04:00
Jake Spain
1e4719e670
Revert "Comment changelog validation until jira support is added"
This reverts commit 9bb978e702.
2023-07-10 15:57:04 -04:00
Jake Spain
9e31ed815f
Revert "Migrate issue management to Jira"
This reverts commit 2f0e817b7c.
2023-07-10 15:56:57 -04:00
Jake Spain
801aaa743c
Merge pull request #37 from puppetlabs/dependabot/bundler/vmpooler-3.1.0
Bump vmpooler from 3.0.0 to 3.1.0
2023-05-16 07:33:19 -04:00
Jake Spain
b1871fdab8
Merge pull request #38 from puppetlabs/dependabot/bundler/thor-1.2.2
Bump thor from 1.2.1 to 1.2.2
2023-05-16 07:32:03 -04:00
dependabot[bot]
922e994017
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] <support@github.com>
2023-05-15 21:58:13 +00:00
dependabot[bot]
21417260da
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] <support@github.com>
2023-05-09 18:37:07 +00:00
Jake Spain
f2525c54af
Merge pull request #36 from puppetlabs/dependabot/bundler/rack-test-2.1.0
Bump rack-test from 2.0.2 to 2.1.0
2023-05-09 14:02:36 -04:00
dependabot[bot]
3f34008795
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] <support@github.com>
2023-05-08 21:58:18 +00:00
17 changed files with 282 additions and 136 deletions

View file

@ -5,3 +5,9 @@ updates:
schedule: schedule:
interval: weekly interval: weekly
open-pull-requests-limit: 10 open-pull-requests-limit: 10
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
open-pull-requests-limit: 10

12
.github/workflows/auto_release_prep.yml vendored Normal file
View file

@ -0,0 +1,12 @@
name: Automated release prep
on:
workflow_dispatch:
jobs:
auto_release_prep:
uses: puppetlabs/release-engineering-repo-standards/.github/workflows/auto_release_prep.yml@v1
secrets: inherit
with:
project-type: ruby
version-file-path: lib/vmpooler-provider-vsphere/version.rb

View file

@ -0,0 +1,8 @@
name: Dependabot auto-merge
on: pull_request
jobs:
dependabot_merge:
uses: puppetlabs/release-engineering-repo-standards/.github/workflows/dependabot_merge.yml@v1
secrets: inherit

8
.github/workflows/ensure_label.yml vendored Normal file
View file

@ -0,0 +1,8 @@
name: Ensure label
on: pull_request
jobs:
ensure_label:
uses: puppetlabs/release-engineering-repo-standards/.github/workflows/ensure_label.yml@v1
secrets: inherit

View file

@ -7,10 +7,10 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.repository == 'puppetlabs/vmpooler-provider-vsphere' if: github.repository == 'puppetlabs/vmpooler-provider-vsphere'
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Get Current Version - name: Get Current Version
uses: actions/github-script@v6 uses: actions/github-script@v7
id: cv id: cv
with: with:
script: | script: |
@ -29,26 +29,26 @@ jobs:
echo "version=$version" >> $GITHUB_OUTPUT echo "version=$version" >> $GITHUB_OUTPUT
echo "Found version $version from lib/vmpooler-provider-vsphere/version.rb" echo "Found version $version from lib/vmpooler-provider-vsphere/version.rb"
# - name: Generate Changelog - name: Generate Changelog
# uses: docker://githubchangeloggenerator/github-changelog-generator:1.16.2 uses: docker://githubchangeloggenerator/github-changelog-generator:1.16.2
# with: with:
# args: >- args: >-
# --future-release ${{ steps.nv.outputs.version }} --future-release ${{ steps.nv.outputs.version }}
# env: env:
# CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - name: Validate Changelog - name: Validate Changelog
# run : | run : |
# set -e set -e
# if [[ -n $(git status --porcelain) ]]; then if [[ -n $(git status --porcelain) ]]; then
# echo "Here is the current git status:" echo "Here is the current git status:"
# git status git status
# echo echo
# echo "The following changes were detected:" echo "The following changes were detected:"
# git --no-pager diff git --no-pager diff
# echo "Uncommitted PRs found in the changelog. Please submit a release prep PR of changes after running `./update-changelog`" echo "Uncommitted PRs found in the changelog. Please submit a release prep PR of changes after running `./update-changelog`"
# exit 1 exit 1
# fi fi
- name: Generate Release Notes - name: Generate Release Notes
uses: docker://githubchangeloggenerator/github-changelog-generator:1.16.2 uses: docker://githubchangeloggenerator/github-changelog-generator:1.16.2
@ -73,7 +73,7 @@ jobs:
- name: Install Ruby jruby-9.3.6.0 - name: Install Ruby jruby-9.3.6.0
uses: ruby/setup-ruby@v1 uses: ruby/setup-ruby@v1
with: with:
ruby-version: 'jruby-9.4.2.0' ruby-version: 'jruby-9.4.3.0'
- name: Build gem - name: Build gem
run: gem build *.gemspec run: gem build *.gemspec

View file

@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: checkout repo content - name: checkout repo content
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
fetch-depth: 1 fetch-depth: 1
- name: setup ruby - name: setup ruby
@ -22,7 +22,7 @@ jobs:
- name: check lock - name: check lock
run: '[ -f "Gemfile.lock" ] && echo "package lock file exists, skipping" || bundle lock' run: '[ -f "Gemfile.lock" ] && echo "package lock file exists, skipping" || bundle lock'
# install java # install java
- uses: actions/setup-java@v3 - uses: actions/setup-java@v4
with: with:
distribution: 'temurin' # See 'Supported distributions' for available options distribution: 'temurin' # See 'Supported distributions' for available options
java-version: '17' java-version: '17'

View file

@ -18,9 +18,9 @@ jobs:
strategy: strategy:
matrix: matrix:
ruby-version: ruby-version:
- 'jruby-9.4.2.0' - 'jruby-9.4.3.0'
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Set up Ruby - name: Set up Ruby
uses: ruby/setup-ruby@v1 uses: ruby/setup-ruby@v1
with: with:
@ -34,9 +34,9 @@ jobs:
strategy: strategy:
matrix: matrix:
ruby-version: ruby-version:
- 'jruby-9.4.2.0' - 'jruby-9.4.3.0'
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Set up Ruby - name: Set up Ruby
uses: ruby/setup-ruby@v1 uses: ruby/setup-ruby@v1
with: with:

View file

@ -1,5 +1,59 @@
# Changelog # Changelog
## [3.3.4](https://github.com/puppetlabs/vmpooler-provider-vsphere/tree/3.3.4) (2023-08-30)
[Full Changelog](https://github.com/puppetlabs/vmpooler-provider-vsphere/compare/3.3.3...3.3.4)
**Fixed bugs:**
- \(maint\) Convert booleans and Time objects to strings when being added to redis [\#51](https://github.com/puppetlabs/vmpooler-provider-vsphere/pull/51) ([isaac-hammes](https://github.com/isaac-hammes))
## [3.3.3](https://github.com/puppetlabs/vmpooler-provider-vsphere/tree/3.3.3) (2023-08-28)
[Full Changelog](https://github.com/puppetlabs/vmpooler-provider-vsphere/compare/3.3.2...3.3.3)
**Fixed bugs:**
- \(maint\) Update Gemfile.lock and use block for transaction. [\#49](https://github.com/puppetlabs/vmpooler-provider-vsphere/pull/49) ([isaac-hammes](https://github.com/isaac-hammes))
## [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)
**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)
**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)
**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) ## [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) [Full Changelog](https://github.com/puppetlabs/vmpooler-provider-vsphere/compare/3.0.0...3.1.0)

View file

@ -1,7 +1,7 @@
PATH PATH
remote: . remote: .
specs: specs:
vmpooler-provider-vsphere (3.1.0) vmpooler-provider-vsphere (3.3.4)
rbvmomi2 (>= 3.1, < 4.0) rbvmomi2 (>= 3.1, < 4.0)
vmpooler (~> 3.0) vmpooler (~> 3.0)
@ -14,105 +14,125 @@ GEM
climate_control (1.2.0) climate_control (1.2.0)
coderay (1.1.3) coderay (1.1.3)
concurrent-ruby (1.2.2) concurrent-ruby (1.2.2)
connection_pool (2.4.0) connection_pool (2.4.1)
deep_merge (1.2.2) deep_merge (1.2.2)
diff-lcs (1.5.0) diff-lcs (1.5.0)
docile (1.4.0) docile (1.4.0)
faraday (2.7.4) faraday (2.7.10)
faraday-net_http (>= 2.0, < 3.1) faraday-net_http (>= 2.0, < 3.1)
ruby2_keywords (>= 0.0.4) ruby2_keywords (>= 0.0.4)
faraday-net_http (3.0.2) faraday-net_http (3.0.2)
ffi (1.15.5-java) ffi (1.15.5-java)
google-cloud-env (1.6.0) google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0) faraday (>= 0.17.3, < 3.0)
json (2.6.3)
json (2.6.3-java) json (2.6.3-java)
method_source (1.0.0) method_source (1.0.0)
mock_redis (0.36.0) mock_redis (0.37.0)
ruby2_keywords mustermann (3.0.0)
mustermann (2.0.2)
ruby2_keywords (~> 0.0.1) ruby2_keywords (~> 0.0.1)
net-ldap (0.17.1) net-ldap (0.18.0)
nio4r (2.5.8-java) nio4r (2.5.9)
nokogiri (1.14.2-java) nio4r (2.5.9-java)
nokogiri (1.15.4-java)
racc (~> 1.4) racc (~> 1.4)
opentelemetry-api (1.1.0) nokogiri (1.15.4-x86_64-linux)
opentelemetry-common (0.19.6) racc (~> 1.4)
opentelemetry-api (1.2.2)
opentelemetry-common (0.20.0)
opentelemetry-api (~> 1.0) opentelemetry-api (~> 1.0)
opentelemetry-exporter-jaeger (0.20.1) opentelemetry-exporter-jaeger (0.23.0)
opentelemetry-api (~> 1.0) opentelemetry-api (~> 1.1)
opentelemetry-common (~> 0.19.2) opentelemetry-common (~> 0.20)
opentelemetry-sdk (~> 1.0) opentelemetry-sdk (~> 1.2)
opentelemetry-semantic_conventions
thrift thrift
opentelemetry-instrumentation-base (0.19.0) opentelemetry-instrumentation-base (0.22.2)
opentelemetry-api (~> 1.0) 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-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.19.0) opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-http_client (0.19.4) opentelemetry-instrumentation-http_client (0.22.2)
opentelemetry-api (~> 1.0) opentelemetry-api (~> 1.0)
opentelemetry-common (~> 0.19.3) opentelemetry-common (~> 0.20.0)
opentelemetry-instrumentation-base (~> 0.19.0) opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-redis (0.21.3) opentelemetry-instrumentation-rack (0.23.4)
opentelemetry-api (~> 1.0) opentelemetry-api (~> 1.0)
opentelemetry-common (~> 0.19.3) opentelemetry-common (~> 0.20.0)
opentelemetry-instrumentation-base (~> 0.19.0) opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-sinatra (0.19.3) opentelemetry-instrumentation-redis (0.25.3)
opentelemetry-api (~> 1.0) opentelemetry-api (~> 1.0)
opentelemetry-common (~> 0.19.3) opentelemetry-common (~> 0.20.0)
opentelemetry-instrumentation-base (~> 0.19.0) opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-registry (0.2.0) 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-api (~> 1.1)
opentelemetry-resource_detectors (0.19.1) opentelemetry-resource_detectors (0.24.1)
google-cloud-env google-cloud-env
opentelemetry-sdk opentelemetry-sdk (~> 1.0)
opentelemetry-sdk (1.2.0) opentelemetry-sdk (1.3.0)
opentelemetry-api (~> 1.1) opentelemetry-api (~> 1.1)
opentelemetry-common (~> 0.19.3) opentelemetry-common (~> 0.20)
opentelemetry-registry (~> 0.2) opentelemetry-registry (~> 0.2)
opentelemetry-semantic_conventions opentelemetry-semantic_conventions
opentelemetry-semantic_conventions (1.8.0) opentelemetry-semantic_conventions (1.10.0)
opentelemetry-api (~> 1.0) opentelemetry-api (~> 1.0)
optimist (3.0.1) optimist (3.1.0)
parallel (1.22.1) parallel (1.23.0)
parser (3.2.1.0) parser (3.2.2.3)
ast (~> 2.4.1) ast (~> 2.4.1)
racc
pickup (0.0.11) pickup (0.0.11)
prometheus-client (2.1.0) prometheus-client (4.2.1)
pry (0.14.2)
coderay (~> 1.1)
method_source (~> 1.0)
pry (0.14.2-java) pry (0.14.2-java)
coderay (~> 1.1) coderay (~> 1.1)
method_source (~> 1.0) method_source (~> 1.0)
spoon (~> 0.0) spoon (~> 0.0)
puma (5.6.5-java) puma (6.3.1)
nio4r (~> 2.0) nio4r (~> 2.0)
racc (1.6.2-java) puma (6.3.1-java)
rack (2.2.6.2) nio4r (~> 2.0)
rack-protection (2.2.4) racc (1.7.1)
rack racc (1.7.1-java)
rack-test (2.0.2) rack (2.2.8)
rack-protection (3.1.0)
rack (~> 2.2, >= 2.2.4)
rack-test (2.1.0)
rack (>= 1.3) rack (>= 1.3)
rainbow (3.1.1) rainbow (3.1.1)
rake (13.0.6) rake (13.0.6)
rbvmomi2 (3.6.0) rbvmomi2 (3.6.1)
builder (~> 3.2) builder (~> 3.2)
json (~> 2.3) json (~> 2.3)
nokogiri (~> 1.12, >= 1.12.5) nokogiri (~> 1.12, >= 1.12.5)
optimist (~> 3.0) optimist (~> 3.0)
redis (4.8.1) redis (5.0.7)
regexp_parser (2.7.0) redis-client (>= 0.9.0)
rexml (3.2.5) redis-client (0.16.0)
connection_pool
regexp_parser (2.8.1)
rexml (3.2.6)
rspec (3.12.0) rspec (3.12.0)
rspec-core (~> 3.12.0) rspec-core (~> 3.12.0)
rspec-expectations (~> 3.12.0) rspec-expectations (~> 3.12.0)
rspec-mocks (~> 3.12.0) rspec-mocks (~> 3.12.0)
rspec-core (3.12.1) rspec-core (3.12.2)
rspec-support (~> 3.12.0) rspec-support (~> 3.12.0)
rspec-expectations (3.12.2) rspec-expectations (3.12.3)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0) rspec-support (~> 3.12.0)
rspec-mocks (3.12.3) rspec-mocks (3.12.6)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0) rspec-support (~> 3.12.0)
rspec-support (3.12.0) rspec-support (3.12.1)
rubocop (1.28.2) rubocop (1.28.2)
parallel (~> 1.10) parallel (~> 1.10)
parser (>= 3.1.0.0) parser (>= 3.1.0.0)
@ -122,9 +142,9 @@ GEM
rubocop-ast (>= 1.17.0, < 2.0) rubocop-ast (>= 1.17.0, < 2.0)
ruby-progressbar (~> 1.7) ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 3.0) unicode-display_width (>= 1.4.0, < 3.0)
rubocop-ast (1.27.0) rubocop-ast (1.29.0)
parser (>= 3.2.1.0) parser (>= 3.2.1.0)
ruby-progressbar (1.12.0) ruby-progressbar (1.13.0)
ruby2_keywords (0.0.5) ruby2_keywords (0.0.5)
simplecov (0.22.0) simplecov (0.22.0)
docile (~> 1.1) docile (~> 1.1)
@ -132,39 +152,39 @@ GEM
simplecov_json_formatter (~> 0.1) simplecov_json_formatter (~> 0.1)
simplecov-html (0.12.3) simplecov-html (0.12.3)
simplecov_json_formatter (0.1.4) simplecov_json_formatter (0.1.4)
sinatra (2.2.4) sinatra (3.1.0)
mustermann (~> 2.0) mustermann (~> 3.0)
rack (~> 2.2) rack (~> 2.2, >= 2.2.4)
rack-protection (= 2.2.4) rack-protection (= 3.1.0)
tilt (~> 2.0) tilt (~> 2.0)
spicy-proton (2.1.15) spicy-proton (2.1.15)
bindata (~> 2.3) bindata (~> 2.3)
spoon (0.0.6) spoon (0.0.6)
ffi ffi
statsd-ruby (1.5.0) statsd-ruby (1.5.0)
thor (1.2.1) thor (1.2.2)
thrift (0.18.1) thrift (0.18.1)
tilt (2.1.0) tilt (2.2.0)
unicode-display_width (2.4.2) unicode-display_width (2.4.2)
vmpooler (3.0.0) vmpooler (3.5.1)
concurrent-ruby (~> 1.1) concurrent-ruby (~> 1.1)
connection_pool (~> 2.2) connection_pool (~> 2.4)
deep_merge (~> 1.2) deep_merge (~> 1.2)
net-ldap (~> 0.16) net-ldap (~> 0.16)
opentelemetry-exporter-jaeger (= 0.20.1) opentelemetry-exporter-jaeger (= 0.23.0)
opentelemetry-instrumentation-concurrent_ruby (= 0.19.2) opentelemetry-instrumentation-concurrent_ruby (= 0.21.1)
opentelemetry-instrumentation-http_client (= 0.19.4) opentelemetry-instrumentation-http_client (= 0.22.2)
opentelemetry-instrumentation-redis (= 0.21.3) opentelemetry-instrumentation-redis (= 0.25.3)
opentelemetry-instrumentation-sinatra (= 0.19.3) opentelemetry-instrumentation-sinatra (= 0.23.2)
opentelemetry-resource_detectors (= 0.19.1) opentelemetry-resource_detectors (= 0.24.1)
opentelemetry-sdk (~> 1.0, >= 1.0.2) opentelemetry-sdk (~> 1.3, >= 1.3.0)
pickup (~> 0.0.11) pickup (~> 0.0.11)
prometheus-client (~> 2.0) prometheus-client (>= 2, < 5)
puma (~> 5.0, >= 5.0.4) puma (>= 5.0.4, < 7)
rack (~> 2.2) rack (>= 2.2, < 4.0)
rake (~> 13.0) rake (~> 13.0)
redis (~> 4.1) redis (~> 5.0)
sinatra (~> 2.0) sinatra (>= 2, < 4)
spicy-proton (~> 2.1) spicy-proton (~> 2.1)
statsd-ruby (~> 1.4) statsd-ruby (~> 1.4)
yarjuf (2.0.0) yarjuf (2.0.0)
@ -173,6 +193,7 @@ GEM
PLATFORMS PLATFORMS
universal-java-11 universal-java-11
x86_64-linux
DEPENDENCIES DEPENDENCIES
climate_control (>= 0.2.0) climate_control (>= 0.2.0)

View file

@ -4,7 +4,6 @@
- [Usage](#usage) - [Usage](#usage)
- [Custom VM Config Attribute](#custom-vm-config-attribute) - [Custom VM Config Attribute](#custom-vm-config-attribute)
- [Update the Gemfile Lock](#update-the-gemfile-lock) - [Update the Gemfile Lock](#update-the-gemfile-lock)
- [Submitting Issues](#submitting-issues)
- [Releasing](#releasing) - [Releasing](#releasing)
- [License](#license) - [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). 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 <https://puppet.atlassian.net/jira/software/c/projects/POOLER/issues> where project development is tracked across all VMPooler related components.
## Releasing ## Releasing
Follow these steps to publish a new GitHub release, and build and push the gem to <https://rubygems.org>. Follow these steps to publish a new GitHub release, and build and push the gem to <https://rubygems.org>.

View file

@ -3,5 +3,5 @@
# The container tag should closely match what is used in `docker/Dockerfile` in vmpooler-deployment # The container tag should closely match what is used in `docker/Dockerfile` in vmpooler-deployment
docker run -it --rm \ docker run -it --rm \
-v $(pwd):/app \ -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=$?"' /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=$?"'

View file

@ -1,5 +1,5 @@
# frozen_string_literal: true # frozen_string_literal: true
module VmpoolerProviderVsphere module VmpoolerProviderVsphere
VERSION = '3.1.0' VERSION = '3.3.4'
end end

View file

@ -68,14 +68,14 @@ module Vmpooler
try = 0 if try.nil? try = 0 if try.nil?
max_tries = 3 max_tries = 3
@redis.with_metrics do |redis| @redis.with_metrics do |redis|
redis.multi redis.multi do |transaction|
redis.srem("vmpooler__completed__#{pool}", vm_name) transaction.srem("vmpooler__completed__#{pool}", vm_name)
redis.hdel("vmpooler__active__#{pool}", vm_name) transaction.hdel("vmpooler__active__#{pool}", vm_name)
redis.hset("vmpooler__vm__#{vm_name}", 'destroy', Time.now) transaction.hset("vmpooler__vm__#{vm_name}", 'destroy', Time.now.to_s)
# Auto-expire metadata key # Auto-expire metadata key
redis.expire("vmpooler__vm__#{vm_name}", (data_ttl * 60 * 60)) transaction.expire("vmpooler__vm__#{vm_name}", (data_ttl * 60 * 60))
redis.exec end
end end
start = Time.now start = Time.now
@ -555,14 +555,15 @@ module Vmpooler
true true
end end
def vm_ready?(pool_name, vm_name) def vm_ready?(pool_name, vm_name, redis)
begin begin
domain = domain(pool_name) domain = domain(pool_name)
open_socket(vm_name, domain) 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 return false
end end
redis.hdel("vmpooler__vm__#{vm_name}", 'open_socket_error')
true true
end end
@ -598,13 +599,15 @@ module Vmpooler
boottime = vm_object.runtime.bootTime if vm_object.runtime&.bootTime boottime = vm_object.runtime.bootTime if vm_object.runtime&.bootTime
powerstate = vm_object.runtime.powerState if vm_object.runtime&.powerState powerstate = vm_object.runtime.powerState if vm_object.runtime&.powerState
ip_maxloop = 60 ip_maxloop = 240
ip_loop_delay = 1 ip_loop_delay = 1
ip_loop_count = 1 ip_loop_count = 1
ip = nil ip = nil
invalid_addresses = /(0|169)\.(0|254)\.\d+\.\d+/
while ip.nil? while ip.nil?
sleep(ip_loop_delay) sleep(ip_loop_delay)
ip = vm_object.guest_ip ip = vm_object.guest_ip
ip = nil if !ip.nil? && ip.match?(invalid_addresses)
unless ip_maxloop == 0 unless ip_maxloop == 0
break if ip_loop_count >= ip_maxloop break if ip_loop_count >= ip_maxloop
@ -1100,6 +1103,9 @@ module Vmpooler
begin begin
connection = ensured_vsphere_connection(pool_object) connection = ensured_vsphere_connection(pool_object)
vm_hash = get_vm_details(pool_name, vm_name, connection) vm_hash = get_vm_details(pool_name, vm_name, connection)
raise StandardError, 'failed to get vm details. vm is unreachable or no longer exists' if vm_hash.nil?
@redis.with_metrics do |redis| @redis.with_metrics do |redis|
redis.hset("vmpooler__vm__#{vm_name}", 'host', vm_hash['host_name']) redis.hset("vmpooler__vm__#{vm_name}", 'host', vm_hash['host_name'])
migration_count = redis.scard('vmpooler__migration') migration_count = redis.scard('vmpooler__migration')
@ -1134,10 +1140,10 @@ module Vmpooler
target_host_object = find_host_by_dnsname(connection, target_host_name) 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) finish = migrate_vm_and_record_timing(pool_name, vm_name, vm_hash, target_host_object, target_host_name)
@redis.with_metrics do |redis| @redis.with_metrics do |redis|
redis.multi redis.multi do |transaction|
redis.hset("vmpooler__vm__#{vm_name}", 'host', target_host_name) transaction.hset("vmpooler__vm__#{vm_name}", 'host', target_host_name)
redis.hset("vmpooler__vm__#{vm_name}", 'migrated', true) transaction.hset("vmpooler__vm__#{vm_name}", 'migrated', 'true')
redis.exec end
end end
logger.log('s', "[>] [#{pool_name}] '#{vm_name}' migrated from #{vm_hash['host_name']} to #{target_host_name} in #{finish} seconds") logger.log('s', "[>] [#{pool_name}] '#{vm_name}' migrated from #{vm_hash['host_name']} to #{target_host_name} in #{finish} seconds")
ensure ensure
@ -1155,10 +1161,10 @@ module Vmpooler
metrics.increment("migrate_to.#{dest_host_name}") metrics.increment("migrate_to.#{dest_host_name}")
@redis.with_metrics do |redis| @redis.with_metrics do |redis|
checkout_to_migration = format('%<time>.2f', time: Time.now - Time.parse(redis.hget("vmpooler__vm__#{vm_name}", 'checkout'))) checkout_to_migration = format('%<time>.2f', time: Time.now - Time.parse(redis.hget("vmpooler__vm__#{vm_name}", 'checkout')))
redis.multi redis.multi do |transaction|
redis.hset("vmpooler__vm__#{vm_name}", 'migration_time', finish) transaction.hset("vmpooler__vm__#{vm_name}", 'migration_time', finish)
redis.hset("vmpooler__vm__#{vm_name}", 'checkout_to_migration', checkout_to_migration) transaction.hset("vmpooler__vm__#{vm_name}", 'checkout_to_migration', checkout_to_migration)
redis.exec end
end end
finish finish
end end

View file

@ -3,13 +3,13 @@
# The container tag should closely match what is used in `docker/Dockerfile` in vmpooler-deployment # The container tag should closely match what is used in `docker/Dockerfile` in vmpooler-deployment
# #
# Update Gemfile.lock # Update Gemfile.lock
docker run -it --rm \ docker run -t --rm \
-v $(pwd):/app \ -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=$?"' /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 # Update Changelog
docker run -it --rm -e CHANGELOG_GITHUB_TOKEN -v $(pwd):/usr/local/src/your-app \ docker run -t --rm -e CHANGELOG_GITHUB_TOKEN -v $(pwd):/usr/local/src/your-app \
githubchangeloggenerator/github-changelog-generator:1.16.2 \ githubchangeloggenerator/github-changelog-generator:1.16.2 \
github_changelog_generator --future-release $(grep VERSION lib/vmpooler-provider-vsphere/version.rb |rev |cut -d "'" -f2 |rev) github_changelog_generator --future-release $(grep VERSION lib/vmpooler-provider-vsphere/version.rb |rev |cut -d "'" -f2 |rev)

View file

@ -818,7 +818,7 @@ end
def mock_RbVmomi_VIM_VirtualMachine(options = {}) def mock_RbVmomi_VIM_VirtualMachine(options = {})
options[:snapshot_tree] = nil if options[:snapshot_tree].nil? options[:snapshot_tree] = nil if options[:snapshot_tree].nil?
options[:name] = 'VM' + rand(65536).to_s if options[:name].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? options[:path] = [] if options[:path].nil?
mock = MockVirtualMachine.new() mock = MockVirtualMachine.new()

View file

@ -580,11 +580,41 @@ EOT
end end
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 context 'when VM exists and contains all information' do
let(:vm_hostname) { "#{vmname}.demo.local" } let(:vm_hostname) { "#{vmname}.demo.local" }
let(:boot_time) { Time.now } let(:boot_time) { Time.now }
let(:power_state) { 'MockPowerState' } let(:power_state) { 'MockPowerState' }
let(:ip) { '169.254.255.255' } let(:ip) { '192.168.0.2' }
let(:vm_object) { mock_RbVmomi_VIM_VirtualMachine({ let(:vm_object) { mock_RbVmomi_VIM_VirtualMachine({
:name => vmname, :name => vmname,
@ -1090,7 +1120,9 @@ EOT
end end
it 'should return true' do 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
end end
@ -1103,7 +1135,9 @@ EOT
it 'should return true' do it 'should return true' do
allow(subject).to receive(:domain).and_return('vmpooler.example.com') 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
end end
@ -1115,7 +1149,9 @@ EOT
end end
it 'should return false' do 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 end
end end

View file

@ -3,5 +3,5 @@
# The container tag should closely match what is used in `docker/Dockerfile` in vmpooler-deployment # The container tag should closely match what is used in `docker/Dockerfile` in vmpooler-deployment
docker run -it --rm \ docker run -it --rm \
-v $(pwd):/app \ -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=$?"' /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=$?"'