From a28d142f50ca16a3507780fb5600172f233fadc1 Mon Sep 17 00:00:00 2001 From: Jake Spain Date: Wed, 25 Aug 2021 08:27:30 -0400 Subject: [PATCH 1/2] Fix user metric so that poolnames with a dot are replaced by underscore --- lib/vmpooler/api/v1.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/vmpooler/api/v1.rb b/lib/vmpooler/api/v1.rb index 1503100..f7329b3 100644 --- a/lib/vmpooler/api/v1.rb +++ b/lib/vmpooler/api/v1.rb @@ -242,6 +242,7 @@ module Vmpooler backend.hget("vmpooler__vm__#{vmname}", 'token:user') backend.hget("vmpooler__vm__#{vmname}", 'template') jenkins_build_url, user, poolname = backend.exec + poolname = poolname.gsub('.', '_') if user user = user.gsub('.', '_') From c88f5d8b5a939613698f063c7e619a06ef84d835 Mon Sep 17 00:00:00 2001 From: Jake Spain Date: Wed, 25 Aug 2021 09:27:45 -0400 Subject: [PATCH 2/2] Fix missing function when moving metrics from pool_manager to api/v1 Fix dependency function component_to_test for jenkins metrics that was not copied from pool_manager to api/v1 in https://github.com/puppetlabs/vmpooler/pull/455 --- lib/vmpooler/api/v1.rb | 12 +++++++++++ lib/vmpooler/pool_manager.rb | 12 ----------- spec/unit/pool_manager_spec.rb | 37 ---------------------------------- 3 files changed, 12 insertions(+), 49 deletions(-) diff --git a/lib/vmpooler/api/v1.rb b/lib/vmpooler/api/v1.rb index f7329b3..2fffee5 100644 --- a/lib/vmpooler/api/v1.rb +++ b/lib/vmpooler/api/v1.rb @@ -236,6 +236,18 @@ module Vmpooler result end + def component_to_test(match, labels_string) + return if labels_string.nil? + + labels_string_parts = labels_string.split(',') + labels_string_parts.each do |part| + key, value = part.split('=') + next if value.nil? + return value if key == match + end + 'none' + end + def update_user_metrics(operation, vmname) backend.multi backend.hget("vmpooler__vm__#{vmname}", 'tag:jenkins_build_url') diff --git a/lib/vmpooler/pool_manager.rb b/lib/vmpooler/pool_manager.rb index 8ad7902..668d1c0 100644 --- a/lib/vmpooler/pool_manager.rb +++ b/lib/vmpooler/pool_manager.rb @@ -478,18 +478,6 @@ module Vmpooler dereference_mutex(vm) end - def component_to_test(match, labels_string) - return if labels_string.nil? - - labels_string_parts = labels_string.split(',') - labels_string_parts.each do |part| - key, value = part.split('=') - next if value.nil? - return value if key == match - end - 'none' - end - def purge_unused_vms_and_folders global_purge = $config[:config]['purge_unconfigured_folders'] providers = $config[:providers].keys diff --git a/spec/unit/pool_manager_spec.rb b/spec/unit/pool_manager_spec.rb index 89ba5da..cc5777b 100644 --- a/spec/unit/pool_manager_spec.rb +++ b/spec/unit/pool_manager_spec.rb @@ -1062,43 +1062,6 @@ EOT end end - describe '#component_to_test' do - let(:matching_key) { 'LABEL_ONE' } - let(:matching_value) { 'test' } - let(:labels_string) { "#{matching_key}=#{matching_value},LABEL_TWO=test2,LABEL_THREE=test3" } - let(:nonmatrix_string) { 'test,stuff,and,things' } - - context 'when string contains a matching key' do - it 'should print the corresponding value' do - expect(subject.component_to_test(matching_key, labels_string)).to eq(matching_value) - end - - context 'when match contains no value' do - it 'should return none' do - expect(subject.component_to_test(matching_key, matching_key)).to eq('none') - end - end - end - - context 'when string contains no key value pairs' do - it 'should return' do - expect(subject.component_to_test(matching_key, nonmatrix_string)).to eq('none') - end - end - - context 'when labels_string is a job number' do - it 'should return nil' do - expect(subject.component_to_test(matching_key, '25')).to eq('none') - end - end - - context 'when labels_string is nil' do - it 'should return nil' do - expect(subject.component_to_test(matching_key, nil)).to be nil - end - end - end - describe '#purge_unused_vms_and_folders' do let(:config) { YAML.load(<<-EOT ---