Commit graph

1372 commits

Author SHA1 Message Date
Spencer McElmurry
4aad84a045
Merge pull request #329 from mattkirby/pooler_140_1
(POOLER-140) Ensure a VM is alive at checkout
2019-07-17 12:09:56 -07:00
kirby@puppetlabs.com
d6e948d34d (POOLER-140) Ensure a VM is alive at checkout
This commit duplicates the vm_ready? check to the API layer to allow for API to validate that a VM is alive at checkout. Without this change API relies upon the checks in pool_manager validating pools. This change should allow for additional insight into whether a machine is in a ready state and resopnding at checkout time.
2019-07-17 12:03:55 -07:00
Jenkins
a755d8d6a2 (GEM) update vmpooler version to 0.6.1 2019-05-08 16:48:35 +00:00
Spencer McElmurry
2b5e511078
Merge pull request #328 from puppetlabs/changelog-0.6.1
Update Changelog ahead of building 0.6.1
2019-05-08 11:47:19 -05:00
Samuel
b047540ca8
Update Changelog ahead of building 0.6.1 2019-05-08 11:46:13 -05:00
Kevin Imber
b2446dac4c
Merge pull request #327 from puppetlabs/doc-api-note
Update API.md [skip ci]
2019-04-29 09:34:53 -07:00
Samuel
7139375b43
Update API.md 2019-04-29 11:13:59 -05:00
mattkirby
fa670ef3b9
Merge pull request #326 from puppetlabs/optimize-status-api
(maint) Optimize the status api using redis pipeline
2019-04-26 07:58:12 -07:00
mattkirby
4f48f7cbc7
Update changelog ahead of 0.6.0 release. (#325) 2019-04-25 13:04:02 -07:00
Jenkins
5f8f64d269 (GEM) update vmpooler version to 0.6.0 2019-04-24 21:25:35 +00:00
Samuel Beaulieu
8eb15f8d10 (maint) Optimize the status api using redis pipeline
Before this change looping over many pools would query the redis backend
for each pool, leading in slow response from the backend for configurations
with many pools (60+)
Changed the requests to use redis pipelines https://redis.io/topics/pipelining
This is supported since the beginning, so will not force any redis update for
users. The pipeline method runs the queries in batches and we need to loop
over the result and reduces the number of requests to redis by N=number of
pools in the configuration.
2019-04-18 13:24:40 -05:00
Spencer McElmurry
6141cd7ecf
Merge pull request #323 from mattkirby/POOLER_141
(POOLER-141) Fix order of processing migrating and pending queues
2019-04-17 11:57:22 -05:00
Spencer McElmurry
ce6ea1662d
Merge pull request #324 from puppetlabs/QENG-7201
(QENG-7201) Vmpooler pool statistic endpoint optimization
2019-04-17 11:56:48 -05:00
Samuel
399dfe255d
Merge pull request #321 from mattkirby/vmp_051
Update changelog to 0.5.1
2019-04-15 13:15:17 -05:00
Samuel Beaulieu
714a9edf5e (QENG-7201) Adding docs and tests 2019-04-15 13:09:53 -05:00
Samuel
96bd131aa1
Merge pull request #322 from mattkirby/dockerfile_local_bundler
(MAINT) Add bundler to dockerfile_local
2019-04-12 15:55:25 -05:00
Samuel Beaulieu
11d94cc3d2 (QENG-7201) Vmpooler Status API QueueProcessor Optimization
Before this change we used the API /status endpoint to get specific information
on pools such as the number of ready VMs and the max.
This commit creates two new endpoints to get to that information much quicker
1) poolstat?pool= takes a comma separated list of pools to return, and will provide
the max, ready and alias values.
2) /totalrunning will calculate the total number of running VMs across all pools
2019-04-12 14:34:09 -05:00
kirby@puppetlabs.com
2d94cb4266 (POOLER-141) Fix order of processing migrating and pending queues
This commit updates how migrating and pending queues are processed. Sets to be processed are created with sadd in redis, and iterated over as a list in ruby. The latest member is added to the beginning of this set in redis, and becomes the first member of the set in ruby. To ensure that items are processed in the order they are added it is necessary to reverse the list before iterating through its members. Without this change the newest members of the set are processed first, which creates inconsistent times to evaluation.
2019-04-11 12:29:05 -07:00
kirby@puppetlabs.com
0cc06f6eef (MAINT) Add bundler to dockerfile_local
This commit adds bundler to dockerfile_local in order to support building vmpooler. Without this change the dockerfile_local build fails reporting bundler is not available.
2019-04-11 11:54:00 -07:00
Jenkins CI
2f89de35e7 (TAG) update version to 0.5.1 2019-04-11 18:35:43 +00:00
kirby@puppetlabs.com
27a7f76dbf Update changelog to 0.5.1
This commit updates the changelog to version 0.5.1 in preparation for release.
2019-04-09 15:39:25 -07:00
Samuel
5351c9f45e
Merge pull request #320 from mattkirby/pooler_140
(POOLER-140) Ensure a running VM stays in a queue
2019-04-09 13:48:55 -05:00
kirby@puppetlabs.com
d738f35727 (POOLER-140) Ensure a running VM stays in a queue
This commit updates how a VM is checked out to ensure that there is no window where the VM could be considered discovered, and therefore destroyed. Without this change the VM is retrieved by calling 'spop' on the ready queue, and then adding it to the running queue. This change moves to selecting the VM by retrieving the last member of the set, and moving it with 'smove' from ready to running. As a result of this change vmpooler moves from retrieving the VMs from the ready state randomly, to instead retrieve the oldest VM in the queue. This change should reduce churn where it would otherwise not be required to satisfy demand.
2019-04-05 14:01:18 -07:00
Brian Cain
c815c130f8 Fix Dockerfile link in readme and add note about http requests for dev (#316)
* Fix Dockerfile link in README

* Add note about making http requests for dev
2019-03-04 10:05:42 -08:00
Jenkins
a1ec332ffe (TAG) update version to 0.5.0 2019-02-14 20:04:58 +00:00
Spencer McElmurry
9405ac841c
Merge pull request #318 from mattkirby/pooler_139
(POOLER-139) Fix discovering checked out VM
2019-02-14 11:27:52 -06:00
kirby@puppetlabs.com
3e26a8f998 (POOLER-139) Fix discovering checked out VM
This commit updates how vmpooler retrieves VMs to add a VM to the running queue as soon as it is checked out. Without this change it is possible that a VM can be discovered when it is checked out before it is added to the running queue if multiple systems are requested. Additionally, the dockerfile is updated to support specifying the version of vmpooler to install.
2019-02-13 16:43:55 -08:00
Jenkins
5e4ba2bc7e (TAG) update version to 0.4.0 2019-02-06 23:07:36 +00:00
mattkirby
6562117d13
(MAINT) Update changelog for 0.4.0 release (#315) 2019-02-05 16:52:54 -08:00
mchllweeks
8acf28d0b8
Merge pull request #314 from mattkirby/pooler_138
(POOLER-138) Support multiple pools per alias
2019-02-01 16:22:10 -08:00
kirby@puppetlabs.com
49ec06e151 (POOLER-138) Support multiple pools per alias
This change updates handling of pool aliases to allow for more than a
single pool to be configured as an alias pool. Without this change if
multiple pools are configured as an alias the last one to configure it
is set as the alias for that pool.

Additionally, redis testing requirements are removed in favor of
mock_redis. Without this change a redis server is required to run
vmpooler tests.
2019-02-01 09:05:23 -08:00
Spencer McElmurry
2fa8209642
Merge pull request #313 from mattkirby/jruby_92
Update dockerfile jruby to 9.2
2019-01-31 11:07:38 -06:00
Kevin Imber
d36e7dbee2
Merge pull request #311 from mattkirby/pooler_137
(POOLER-137) Support integer environment variables
2019-01-29 10:37:44 -07:00
kirby@puppetlabs.com
d94b14a4d8 (POOLER-137) Support integer environment variables
This commit updates vmpooler to set configuration values received via environment variables to integer values when an integer value is expected. Without this change vmpooler does not support setting integer values via environment variables. Additionally, testing is added for configuring vmpooler via environment variables.

To support this testing the gem climate_control is added, which allows
for testing environment variables without those set variables leaking to
other tests.
2019-01-22 15:02:07 -08:00
kirby@puppetlabs.com
cde7648a22 Update dockerfile jruby to 9.2
This commit updates jruby in dockerfiles from 9.1 to 9.2. Without this change the dockerfiles use a version of ruby that is no longer tested with vmpooler.
2019-01-22 15:01:30 -08:00
mchllweeks
a1704b239e
Merge pull request #312 from mattkirby/drop_23
Stop testing ruby 2.3.x
2019-01-18 15:41:28 -08:00
kirby@puppetlabs.com
db1e90d893 Stop testing ruby 2.3.x
This commit updates travis configuration to stop testing 2.3.x and jruby 9.1.x. Without this change tests fail due to library incompatibilities with ruby 2.3.x.
2019-01-18 14:29:14 -08:00
mchllweeks
345bdf9db9
Merge pull request #309 from mattkirby/test_current_versions
(MAINT) Update travis to test latest ruby
2019-01-14 09:39:32 -08:00
Jenkins
ae694c5167 (TAG) update version to 0.3.0 2018-12-20 22:52:00 +00:00
Spencer McElmurry
3ddc06406f
Merge pull request #310 from mattkirby/version_3
Change version 0.2.2 to 0.3.0
2018-12-20 09:30:56 -08:00
kirby@puppetlabs.com
c5e1722f30 Change version 0.2.2 to 0.3.0
This commit updates the changelog to change version 0.2.2 to 0.3.0. The changes implemented are not patches so should not be a z release.
2018-12-20 09:24:29 -08:00
Spencer McElmurry
25731194e3
Merge pull request #308 from mattkirby/control_your_layers
Ensure nodes are consistent for usage stats
2018-12-20 08:58:32 -08:00
kirby@puppetlabs.com
12df6830f5 (MAINT) Update travis to test latest ruby
This commit updates travis to test latest ruby versions for vmpooler. Without this change we test out of date versions of ruby with vmpooler.
2018-12-19 12:49:08 -08:00
kirby@puppetlabs.com
2de4a6db0b Ensure nodes are consistent for usage stats
This commit updates vm usage stats collection to replace all instances of '.' characters within node strings. Without this change the node string containing a '.' character causes the metric to be interpreted as containing another node.
2018-12-19 12:45:50 -08:00
Jenkins
b4dfbca40e (TAG) update version to 0.2.31 2018-12-10 22:35:08 +00:00
Jenkins
bfc0c24106 (TAG) update version to 0.2.3 2018-12-10 21:06:47 +00:00
Spencer McElmurry
74b378781f
Merge pull request #307 from mattkirby/030_release
Update changelog for 0.2.3
2018-12-10 11:44:54 -06:00
kirby@puppetlabs.com
d5e96636ce Update changelog for 0.2.3
This commit updates changelog in preparation of the 0.2.3 release.
2018-12-10 09:29:01 -08:00
mchllweeks
310dc7cbc9
Merge pull request #306 from mattkirby/pooler_134
(POOLER-134) Ship VM usage stats
2018-12-10 09:04:12 -08:00
kirby@puppetlabs.com
60b8715a80 Update providers_spec to match array contents
This commit updates providers_spec so the test ensures array content of the providers match. Without this change the provider_spec test will fail when comparing providers if the order is not exactly the same in each array.
2018-12-07 17:08:08 -08:00