Commit graph

465 commits

Author SHA1 Message Date
kirby@puppetlabs.com
9ea80f2a10 Add capability to specify max lifetime via environment variable 2020-05-08 15:43:59 -07:00
kirby@puppetlabs.com
203cadf1ed Add auth from ondemand request to provisioned vms 2020-05-08 15:43:35 -07:00
kirby@puppetlabs.com
74fbc74c4d Update clone_vm so the redis connection is released during the VM clone. 2020-05-08 15:04:59 -07:00
kirby@puppetlabs.com
e4062dc005 Remove unreasonable ttl of 0 concept for a ready vm 2020-05-08 14:39:25 -07:00
kirby@puppetlabs.com
b1d4f0971c Expire ondemand requests and remove associated instances when ondemand_request_ttl has been exceeded for a given request 2020-05-07 21:38:42 -07:00
kirby@puppetlabs.com
9538c0b3e3 Address rubocop offenses 2020-05-07 15:19:44 -07:00
kirby@puppetlabs.com
86f6848ef0 Undo redis new_redis rename. Update vmpooler version in dockerfile. 2020-05-07 09:06:47 -07:00
kirby@puppetlabs.com
ef40f2610b Remove request_id from fail_pending_vm 2020-05-07 09:01:21 -07:00
kirby@puppetlabs.com
3f1a2a2dc4 Remove debug statements and fix additional config_spec tests 2020-05-07 02:00:34 -07:00
kirby@puppetlabs.com
c29ce0d56e Add remaining tests for new functionality 2020-05-07 01:57:38 -07:00
kirby@puppetlabs.com
2ed170fa23 Add tests for api additions. Begin adding tests for pool_manager additions 2020-05-06 17:45:47 -07:00
kirby@puppetlabs.com
ebde903ddc Start adding tests for ondemandvm 2020-04-30 21:02:30 -07:00
kirby@puppetlabs.com
62aaa37f78 Fix accepting request_id 2020-04-30 15:17:15 -07:00
kirby@puppetlabs.com
2b96d7e476 Fix tests for changes 2020-04-30 12:31:40 -07:00
kirby@puppetlabs.com
90e09bfe1c Replace connection_pool with vmpooler generic_connection_pool. Fix tests for changes. 2020-04-30 12:25:01 -07:00
kirby@puppetlabs.com
b32b88b753 Add parameters for redis connection pool size and timeout values. 2020-04-30 12:25:01 -07:00
kirby@puppetlabs.com
9973ed878f Implement redis connection pooling, multi, and pipelines. 2020-04-30 12:25:01 -07:00
kirby@puppetlabs.com
52bf6c4c89 First attempt at adding connection pool to pool manager 2020-04-30 12:25:01 -07:00
kirby@puppetlabs.com
70f0482d33 Provisioning on demand initially functioning prototype. 2020-04-30 12:25:01 -07:00
kirby@puppetlabs.com
edd9d9e62c Handle the delta between requested and configured limits 2020-04-30 12:25:01 -07:00
kirby@puppetlabs.com
11c5107279 Add concurrent-ruby and configure additional parts for provisioning on demand 2020-04-30 12:25:01 -07:00
kirby@puppetlabs.com
63712741a0 (POOLER-158) Getting started with provisioning on demand 2020-04-30 12:25:01 -07:00
Jenkins
e9a79cb6db (GEM) update vmpooler version to 0.11.3 2020-04-29 15:02:04 +00: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
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
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
Jenkins
451003484e (GEM) update vmpooler version to 0.11.1 2020-03-17 23:51:30 +00:00
kirby@puppetlabs.com
7597185fa4 Fix reference to unused e to satisfy rubocop 2020-03-17 11:24:03 -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
Jenkins
d653ce482e (GEM) update vmpooler version to 0.11.0 2020-03-11 22:39:14 +00: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
Brandon High
f1f173ddb6
Fix alignment of end keywords 2020-03-05 16:56:06 -08:00
Brandon High
a839af2710
Use URI.parse.open/File.open instead of open
This commit updates the dashboard to use `URI.parse` instead of `Kernel#open`
because open can potentially open files on the server and has other
possible security issues.

Also updated the logger to use `File.open` as it is more explicit and
doesn't have the extra potential for abuse like `Kernel#open`

https://rubocop.readthedocs.io/en/latest/cops_security/#securityopen
2020-03-05 16:56:06 -08:00
Brandon High
f90ef4839e
Remove unused assignment
As far as I can tell, this variable doesn't exist before this assignment
and is immediately overwritten with the result of the method call so I
don't think it needs to be here?
2020-03-05 16:56:05 -08:00
Brandon High
0b841d63fd
Do not save exception in a variable if it isn't referenced
Prior to this commit there were a couple locations where exceptions were
saved to `_e` but weren't used in the handler except to re-raise the
exception, which simply calling the `raise` keyword will do without a
provided argument.
This commit removes the unnecessary assignment of the exception to a
variable and simply uses `raise` instead.
2020-03-05 16:56:05 -08:00
Brandon High
a5a2740762
Consistent Style/FormatStringToken
This commit fixes the various calls to `format` to consistently use the
keyword token style. Hopefully this is more understandable and explicit?
2020-03-05 16:53:06 -08:00
Brandon High
b4f42cd4b1
Disable Naming/VariableName for propSpecs
I assume `propSpecs` is a reference to the VMWare API so using camelCase
is intentional.
2020-03-05 16:23:43 -08:00
mattkirby
f85f5126e8
Merge pull request #360 from highb/2020-03-05_unsafe_rubocop_fixes
"Unsafe" rubocop fixes
2020-03-05 16:03:21 -08:00
Brandon High
f22a84f26f
"Unsafe" rubocop fixes
Adds the remaining "unsafe" fixes that aren't included in #359
2020-03-05 11:23:37 -08:00