Commit graph

1159 commits

Author SHA1 Message Date
Jenkins
d47df61c19 (GEM) update vmpooler version to 0.14.5 2020-08-21 18:15:48 +00:00
f8c64b4006
Merge pull request #396 from jcoconnor/MAINT-Fix-Staledns-count
(MAINT) Fix Staledns error counter
2020-08-21 14:13:24 -04:00
John O'Connor
18988ddc3c (MAINT) Fix Staledns error counter
This was logging the hostname instead of the poolname.
2020-08-21 19:03:19 +01:00
Jenkins
90e91f858a (GEM) update vmpooler version to 0.14.4 2020-08-21 17:30:39 +00:00
e533223db8
Merge pull request #395 from jcoconnor/MAINT-Remove-Tokens
(MAINT) Normalise all tokens for stats
2020-08-21 12:37:45 -04:00
John O'Connor
3050e99fd6 (MAINT) Normalise all tokens for stats
/api/v1/token, /token, /img and /lib endpoints need to be normalised the
same way that /vm and /ondemandvm endpoints are handled.
2020-08-21 17:24:56 +01:00
Jenkins
f4f0904168 (GEM) update vmpooler version to 0.14.3 2020-08-06 00:11:19 +00:00
Heath Seals
cef050b129
Merge pull request #394 from mattkirby/pooler_186
(POOLER-186) Fix template alias evaluation with backend weight of 0
2020-08-05 18:50:34 -05:00
kirby@puppetlabs.com
c6fdc8d6fd (POOLER-186) Fix template alias evaluation with backend weight of 0
This change fixes template alias evaluation to ensure that the correct
data is set when generating on demand requests for pools that have a
backend weight configured for a value of 0. Without this change vmpooler
will return an empty selection in api for template alias evaluation.

To support this change tests are added that first reproduced the
failure, and then verified that it is resolved with the addition of the
patch. Additionally, test coverage is added to ensure that code paths
that include pickup gem usage are covered.
2020-08-05 16:33:10 -07:00
Belén
ea160ca9ca
Merge pull request #390 from jcoconnor/MAINT-promstats-refactor
(MAINT) Clarity refactor of Prom Stats code
2020-08-05 07:19:56 -07:00
John O'Connor
0a6ad896f5 (MAINT) Clarity refactor of Prom Stats code
Introducing the Prometheus Stats code into ABS showed that the Clarity
could be improved a bit with better variable naming, some refactoring
to reduce repitition and documenting the Metrics table itself.

Filtering these changes back to the vmpooler code base.
2020-08-05 14:57:48 +01:00
Jenkins
2556ed6105 (GEM) update vmpooler version to 0.14.2 2020-08-03 22:24:28 +00:00
Heath Seals
662fdf2851
Merge pull request #389 from mattkirby/fix_purge
Fix vmpooler folder purging
2020-08-03 17:15:30 -05:00
kirby@puppetlabs.com
ef4ca261d0 Fix vmpooler folder purging
This commit updates folder purging references to ensure that provider
name references are referring to the named provider, rather than the
provider type. Without this change folder purging fails because it
cannot identify target folders.
2020-08-03 15:08:03 -07:00
Heath Seals
807daef248
Merge pull request #392 from mattkirby/pooler_185
Ensure lifetime is set when creating ondemand instances
2020-08-03 16:53:35 -05:00
kirby@puppetlabs.com
ef7e54e288 Ensure lifetime is set when creating ondemand instances 2020-08-03 14:22:51 -07:00
Jenkins
733506fdd9 (GEM) update vmpooler version to 0.14.1 2020-07-08 20:11:28 +00:00
Belén
8da96e1af7
Merge pull request #388 from mattkirby/alias_bug_fix
Correctly handle multiple pools of same alias in ondemand checkout
2020-07-08 10:54:06 -07:00
Belén
f0670b3130
Merge branch 'master' into alias_bug_fix 2020-07-08 10:14:48 -07:00
kirby@puppetlabs.com
88899d4513 Correctly handle multiple pools of same alias in ondemand checkout
This commit updates the method used for chceking the status of an
ondemand request to ensure that if multiple aliases are used to fulfill
a request that they are correctly presented as a single pool again when
everything is ready. Without this change it is possible for only one
group of an aliased pool to show up in pending or completed requests.
2020-07-08 09:15:47 -07:00
70292bf860
Merge pull request #386 from puppetlabs/dependabot/add-v2-config-file
Update Dependabot config file
2020-07-07 15:02:05 -04:00
e46ff69220
Merge pull request #387 from puppetlabs/maint-update-travis
Update travis config to remove deprecated style
2020-07-07 14:57:36 -04:00
Belen Bustamante
99e4976941 Update travis config to remove deprecated style 2020-07-07 11:36:11 -07:00
dependabot-preview[bot]
a1de58280e
Update Dependabot config file 2020-07-07 14:43:21 +00:00
Jenkins
6d01079f4a (GEM) update vmpooler version to 0.14.0 2020-07-01 18:19:27 +00:00
Brandon High
8c18880e29
Merge pull request #372 from jcoconnor/POOLER-160-Prometheus-Endpoints
(POOLER-160) Add Prometheus Metrics to vmpooler
2020-07-01 11:14:08 -07:00
John O'Connor
416f1f6e7b (POOLER-160) Revise Redis buckets
Output from our discussion on histogram buckets for the Clone, Time to
ready and Redis connection buckets.
2020-06-30 21:56:37 +01:00
John O'Connor
85ff3f7022 (MAINT) Add optional API Request Logging
This was partially an exercise to use middleware, but also to enable
basic logging for the API by logging all the API calls to the logger.
2020-06-29 19:56:29 +01:00
John O'Connor
a21d8c5642 (POOLER-178) Target Stats for api & manager
Ensure that the correct stats are registered for the Manager and the api
respectively. E.g. all checkout counters are for the api only, whereas
clone times belong to the manager.

Also new ondemand functionality stats weren't registered, so add these
along with missing delete stats.
2020-06-29 19:54:28 +01:00
John O'Connor
8ed8c43970 (POOLER-160) Revise Metrics Classwork
Review changes suggested to revise the Metrics related files into a more
logical class structure.

Also fixup grammar typos in docs strings and any trailing metrics that
have been recently added to vmpooler.
2020-06-29 19:54:28 +01:00
John O'Connor
cb955a1bed (POOLER-177) Filter hostname from API Paths
Use the example provided in the Ruby Client to provide a customised
collector appropriate to log all calls to the API. The customised
filtering is used to replace individual node names and templates
for the /vm and request ID's for the /ondemand endpoints.

This module was failing our rubocop checks so have updated it since
it now forms part of vmpooler.

Separate trapping for litmus jobs is also included so that they don't
interfere with stats from the jenkins pipelines.
2020-06-29 19:53:59 +01:00
John O'Connor
b6dcd77228 (POOLER-170) Revise vmpooler usage stats
Break down the usage stats into smaller groups so as to manage the
number of stat lines collected for Prometheus.

This may need some further revision to filter out Litmus stats, or
otherwise collect litmus usage information.
2020-06-29 19:52:15 +01:00
John O'Connor
72564de4b4 (POOLER-160) Revise connection metrics
The redis pooler connection metric used "metric_prefix" which is
misleading, so split this into connpool_type and connpool_provider.
Also remove some earlier jruby compatibility code to reduce
rebase conflicts when this is rebased on top of Matt's changes.
2020-06-29 19:52:14 +01:00
John O'Connor
5c38ba240a (POOLER-160) Revise some smelly logger code
Need the logger code in promstats.rb so move logger initialisation to
the top of the vmpooler script, remove the class method from vmpooler.rb
and make appropriate downstream changes to metrics and pooler manger
handling.

This also means we can start decent logging in the API if we wish do.

Fixed up to rebase on top of Matts POOLER-158 changes
2020-06-29 19:52:14 +01:00
John O'Connor
bbd76bde4c (POOLER-160) Add Prometheus to pooler startup
This is a re-architect of the vmpooler initialisation code to:
1. Allow an API service for both manager and the api
2. Add the Prometheus endpoints to the web service.
   Needed to change the way the Rack Service is started as instantiating
   using ".New" leads to a failure to initialise the http Stats
   collection.
3. Selectively load the pooler api and/or Prometheus endpoints.
4. Rework API Spec tests for revised API loading. Needed to tidy up the
   initialisation and perform a reset! after each test to avoid "leaks"
   and dependencies between the tests.
2020-06-29 19:52:14 +01:00
John O'Connor
ffab7def9e (POOLER-160) Add Prometheus Stats Feeds
Add a new Prometheus class as an additional stats feed along with the
existing feeds.

Move the metrics initialisation code into its own class and sub-class
the individual metrics implementations under this.
2020-06-26 21:37:22 +01:00
John O'Connor
c6ab52372a (MAINT) Change redis.exists calls
The mock_redis backend.exists return code has change with release 0.24.
See https://github.com/sds/mock_redis/compare/v0.23.0...v0.24.0#diff-af51dcbfed678206fc95148d957ff5bf

This meant that some spec tests started to fail after the new gem was
released.

So have changed all backend.exists to use the safer exists? method.
2020-06-26 21:37:22 +01:00
John O'Connor
ab92eb366d (MAINT) Change Rubocop Screening
Screen out redundant begin block rubocop compliance checks as these
are causing vsphere.rb and pool_manager.rb to fail with differing
ruby version checks.
2020-06-26 21:36:50 +01:00
mattkirby
a2a3bb7dfd
Merge pull request #382 from puppetlabs/pooler-167
(POOLER-167) Allow for network configuration at vm clone time
2020-06-23 14:30:25 -07:00
John O'Connor
5eba958796
Merge pull request #384 from mattkirby/jruby_9211_notes
Add a note on jruby 9.2.11 and redis connection pooling changes
2020-06-16 10:19:47 +01:00
kirby@puppetlabs.com
c42448a86c Add a note on jruby 9.2.11 and redis connection pooling changes 2020-06-15 17:11:49 -07:00
Jenkins
ffe07a3140 (GEM) update vmpooler version to 0.13.3 2020-06-15 15:21:59 +00:00
Belen Bustamante
3dfd70fa0e Allow for network configuration at vm clone time 2020-06-12 11:56:41 -07:00
Samuel
4ecd5dea51
(POOLER-174) Reduce duplicate of on demand code introduced in POOLER-158 (#383)
* (POOLER-174) Reduce duplicate of on demand code introduced in POOLER-158
refactored every parsing of request of type 'pool_alias:pool:count' into a
utility class, that is used by pool_manager and the api v1 class
* add some metrics to the od request generation
* fix rubocop offenses, we are now friends
2020-06-11 12:39:34 -05:00
Jenkins
2afc2a242b (GEM) update vmpooler version to 0.13.2 2020-06-05 22:43:53 +00:00
Brandon High
fc4ae967af
Merge pull request #379 from mattkirby/graphite_error
Rescue and warn when graphite connection cannot be opened
2020-06-05 12:08:47 -07:00
kirby@puppetlabs.com
e390efbb10 Rescue and warn when graphite connection cannot be opened
This commit updates vmpooler graphite stats behavior when a connection cannot be opened to the graphite server to warn instead of allowing the full backtrace to be output to stderr. Without this change a backtrace is output to stderr when a graphite connection fails.
2020-06-05 11:27:49 -07:00
Jenkins
9f397f02fb (GEM) update vmpooler version to 0.13.1 2020-06-04 18:10:55 +00:00
Belén
621aa07c3c
Merge pull request #378 from puppetlabs/fix-merge-issue
(maint) Fix merge issue
2020-06-04 11:07:51 -07:00
Samuel Beaulieu
30b96536b3 (maint) Fix merge issue
It seems like generate_and_check_hostname does not need a method argument
this was fixed in one PR, and another change made in another PR and was used
inconsistently
2020-06-04 12:55:30 -05:00