Commit graph

1108 commits

Author SHA1 Message Date
Brandon High
3fc9ee0f4f
Merge pull request #375 from mattkirby/pooler_158
(POOLER-158) Add support for ondemand provisioning
2020-06-03 17:22:16 -07:00
kirby@puppetlabs.com
811fd8b60f (POOLER-158) Add capability to provision VMs on demand
This change adds a capability to vmpooler to provision instances on
demand. Without this change vmpooler only supports retrieving machines
from pre-provisioned pools.

Additionally, this change refactors redis interactions to reduce round
trips to redis. Specifically, multi and pipelined redis commands are
added where possible to reduce the number of times we are calling redis.

To support the redis refactor the redis interaction has changed to
leveraging a connection pool. In addition to offering multiple
connections for pool manager to use, the redis interactions in pool
manager are now thread safe.

Ready TTL is now a global parameter that can be set as a default for all
pools. A default of 0 has been removed, because this is an unreasonable
default behavior, which would leave a provisioned instance in the pool
indefinitely.

Pool empty messages have been removed when the pool size is set to 0.
Without this change, when a pool was set to a size of 0 the API and pool
manager would both show that a pool is empty.
2020-06-03 14:00:04 -07:00
Belén
1f6f08d172
Merge pull request #377 from puppetlabs/pooler_166_on_master
(POOLER-166) Check for stale dns records
2020-06-03 08:53:34 -07:00
Samuel Beaulieu
41f097cc3e with the addition of dns_available, renaming available to hostname_available 2020-05-29 12:14:29 -05:00
Samuel Beaulieu
6304743240 (POOLER-166) Check for stale dns records 2020-05-29 12:05:54 -05:00
Jenkins
eb0df8d83f (GEM) update vmpooler version to 0.12.0 2020-05-28 18:16:25 +00:00
mattkirby
e36c6444cb
Merge pull request #376 from puppetlabs/pooler-171
(POOLER-171) Enable support for multiple user objects
2020-05-28 10:59:41 -07:00
Belen Bustamante
477f270b52 Enable support for multiple user objects 2020-05-28 10:42:47 -07:00
Jenkins
e9a79cb6db (GEM) update vmpooler version to 0.11.3 2020-04-29 15:02:04 +00:00
Brandon High
9b41a542e9
Merge pull request #374 from puppetlabs/DIO-608
(DIO-608) vmpooler SUT handed out multiple times
2020-04-23 17:03:34 -07:00
Samuel Beaulieu
9c6f50691d (DIO-608) vmpooler SUT handed out multiple times
Before this change if the smove returned false, we would continue handing out the VM
which presumably could still be in the 'ready' state. Upon 'delete' that ready VM would not be
picked up and return a 404 which is consistent with the behavior seen. Adding a metric to keep
track of the smove failures since this is not expected. I think some API logging would be good
to add in the future.
2020-04-23 16:10:36 -05:00
Brandon High
48b4fb9a6b
Merge pull request #373 from jcoconnor/MAINT-Update-Codeowners
(MAINT) Update CODEOWNERS
2020-04-16 10:29:51 -07:00
John O'Connor
56a6e61dc7 (MAINT) Update CODEOWNERS
Changing ownership to DIO
2020-04-16 18:25:51 +01:00
Jenkins
4019a082f0 (GEM) update vmpooler version to 0.11.2 2020-04-16 15:54:02 +00:00
Brandon High
5fac5684a9
Merge pull request #371 from puppetlabs/POOLER-161
(POOLER-161) Fix extending vm lifetime when max lifetime is set
2020-04-15 13:27:27 -07:00
Samuel Beaulieu
953aa68907 (POOLER-161) Fix extending vm lifetime when max lifetime is set
Before this PR, the current running time was being inspected to decide if the
vm lifetime could be extended. But since vm lifetime is absolute and not relative
this check is now removed.
2020-04-15 13:17:14 -05:00
Brandon High
9ab1b89a6c
Merge pull request #370 from mattkirby/purge_failed
(POOLER-165) Fix purge_unconfigured_folders
2020-04-07 11:27:36 -07:00
kirby@puppetlabs.com
fc616ce055 Fix rubocop offenses 2020-04-07 11:22:05 -07:00
kirby@puppetlabs.com
68ecb7a3a4 (POOLER-165) Fix purge_unconfigured_folders
This commit fixes the purge_unconfigured_folders feature to ensure that it can successfully identify folders and instances that are no longer used. Without this change the feature does not work as advertised.
2020-04-07 09:39:59 -07:00
Brandon High
04a3c448fd
Merge pull request #369 from puppetlabs/16c0dependabot/bundler/rake-gte-12.3-and-lt-14.0
Update rake requirement from ~> 12.3 to >= 12.3, < 14.0
2020-03-18 14:25:13 -07:00
Jenkins
451003484e (GEM) update vmpooler version to 0.11.1 2020-03-17 23:51:30 +00:00
Brandon High
458b862b63
Update CHANGELOG for 0.11.1 2020-03-17 16:45:08 -07:00
Brandon High
0c0ee0cdd2
rake gemspec dep in ~> format instead of range 2020-03-17 15:10:15 -07:00
dependabot-preview[bot]
526d88d673
Update rake requirement from ~> 12.3 to >= 12.3, < 14.0
Updates the requirements on [rake](https://github.com/ruby/rake) to permit the latest version.
- [Release notes](https://github.com/ruby/rake/releases)
- [Changelog](https://github.com/ruby/rake/blob/master/History.rdoc)
- [Commits](https://github.com/ruby/rake/compare/v12.3.0...v13.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-17 19:33:09 +00:00
Brandon High
3e2ab2db5f
Merge pull request #367 from puppetlabs/dependabot
Add Dependabot to keep gems updated
2020-03-17 12:32:01 -07:00
Brandon High
0289dac4f0
Merge pull request #366 from mattkirby/update_gems
Update gem dependencies to latest versions
2020-03-17 12:31:08 -07:00
Brandon High
5cfad48aac
Merge pull request #368 from mattkirby/docker_compose_defaults
Remove providers addition to docker-compose.yml
2020-03-17 12:30:30 -07:00
kirby@puppetlabs.com
85cd1fb4ed Remove providers addition to docker-compose.yml 2020-03-17 12:17:53 -07:00
Brandon High
ad39b53445
Merge pull request #365 from mattkirby/pooler_156
(POOLER-156) Detect redis connection failures
2020-03-17 12:07:26 -07:00
a717e5c5ca
Add Dependabot to keep gems updated 2020-03-17 15:01:57 -04:00
kirby@puppetlabs.com
7597185fa4 Fix reference to unused e to satisfy rubocop 2020-03-17 11:24:03 -07:00
kirby@puppetlabs.com
9e5b434582 Update gem dependencies to latest versions
This commit updates vmpooler gem dependencies in Gemfile and gemspec files. Without this change vmpooler is pinned to out of date version of multiple libraries.
2020-03-17 11:20:57 -07:00
kirby@puppetlabs.com
283dea62a7 (POOLER-156) Detect redis connection failures
This commit adds detection for redis connection failures to pool_manager. When a connection fails the error will be raised to executeforcing the connection to be re-established. Without this change, when a redis connection fails, it generates a redis connection error, which is swallowed by a rescue for StandardError, preventing the manager application component from recovering in the case of a redis connection failure.
2020-03-17 11:17:52 -07:00
Brandon High
4cfa8732fb
Merge pull request #363 from mattkirby/dockerignore
Add a .dockerignore file
2020-03-12 16:22:12 -07:00
kirby@puppetlabs.com
329c24676e Add a .dockerignore file 2020-03-12 14:36:21 -07:00
Jenkins
d653ce482e (GEM) update vmpooler version to 0.11.0 2020-03-11 22:39:14 +00:00
Brandon High
c1198d8e59
Update CHANGELOG for 0.11.0
I will remember not to tag or bump version.rb because the pipeline
handles that.
2020-03-11 15:35:38 -07:00
mattkirby
339f1db045
Merge pull request #361 from highb/2020-03-05_update_rubocop_exceptions
Manual Rubocop Fixes
2020-03-10 13:44:48 -07:00
mattkirby
66029c7c13
Merge pull request #362 from highb/pin_docker_to_jruby_9_2_9
Pin to JRuby 9.2.9 in Dockerfiles
2020-03-09 12:43:57 -07:00
Brandon High
e7f53d659a
Pin to JRuby 9.2.9 in Dockerfiles
This commit pins all the `Dockerfile` to Jruby 9.2.9. This is an
attempt to narrow down if the JRuby 9.2.11 is the reason for the
StackOverflow we were seeing or if there is something strange going on
with an update to the Gemfiles.
2020-03-09 11:58:38 -07:00
Brandon High
d20e2a89b5
Require rubocop checks in Travis
This commit updates Travis to require Rubocop to pass. This is possible
now due to the fixes in #361.
2020-03-05 17:28:33 -08:00
Brandon High
57d2010db0
Use break instead of return in migrate_vm connection pool
This commit switches the early `return` in `migrate_vm`'s connection
pooling block to a `break`, since `return` implies you are returning
something from a method and I don't think `migrate_vm` wants to do that.

This is a place where a partial type system like Sorbet seems useful
because then we'd have some idea about what the intended return is here.
2020-03-05 17:17:30 -08:00
Brandon High
392232fb6a
Remove duplicated return statements
This commit removes two duplicate return statements in both branches of
a conditional with one return statement outside the conditional blocks.
2020-03-05 17:13:51 -08:00
Brandon High
ed88fb1302
Remove shadowed variable from get_provider_for_pool
This commit updates a block that was creating a shadow variable to use a
different variable.
2020-03-05 17:12:09 -08:00
Brandon High
61e9f56ed2
Fixing Naming/PredicateName issues
This commit drops the `has_` prefix from several `?` style methods
because that's against the ruby style guide and redundant for a method
ending in `?`.
2020-03-05 17:10:22 -08:00
Brandon High
5193ff6a84
Use consistent Style/NumericPredicate redux
Prior to this commit the codebase used the `zero?` method for comparing
to 0 on some places and not in others.
This commit makes all comparison to zero consistently use the `==`.
2020-03-05 17:10:22 -08:00
Brandon High
daa1a99073
Correct keyword arguments to traverse in create_folder
This commit fixes this call to `dc.vmFolder.traverse` to simply pass in
the arguements instead of assigning to variables that are discarded.
2020-03-05 17:10:22 -08:00
Brandon High
5dca8f9468
Fix bug in update_clone_target
This commit fixes a bug in update_clone_target where I believe `=` was
intended, not `==` because `==` just goes to the void context here.

Thanks Rubocop Lint/Void!
2020-03-05 16:56:06 -08:00
Brandon High
367565a3ee
Switch from casting to_f to using fdiv dividing floats
This commit updates places where previously we were casting both terms
in a float division into floats in order to ensure that float division
occurs to use the `fdiv` method, which will always do float division and
is available on both `Floats` and `Integers` because they are
both `Numeric`.
2020-03-05 16:56:06 -08:00
Brandon High
532ca96131
Ignore set_linked_clone for Naming/AccessorMethodName
This commit ignores the `set_linked_clone` method, which doesn't obey
the Rubocop recommended method naming convention.
2020-03-05 16:56:06 -08:00