diff --git a/lib/vmpooler.rb b/lib/vmpooler.rb index c7bf065..697a4c8 100644 --- a/lib/vmpooler.rb +++ b/lib/vmpooler.rb @@ -37,6 +37,12 @@ module Vmpooler parsed_config[:graphite]['prefix'] ||= 'vmpooler' end + if parsed_config[:tagfilter] + parsed_config[:tagfilter].keys.each do |tag| + parsed_config[:tagfilter][tag] = Regexp.new(parsed_config[:tagfilter][tag]) + end + end + parsed_config[:uptime] = Time.now parsed_config diff --git a/lib/vmpooler/api/v1.rb b/lib/vmpooler/api/v1.rb index d10bdc4..9bc2a37 100644 --- a/lib/vmpooler/api/v1.rb +++ b/lib/vmpooler/api/v1.rb @@ -542,8 +542,13 @@ module Vmpooler backend.hset('vmpooler__vm__' + params[:hostname], param, arg) when 'tags' arg.keys.each do |tag| - backend.hset('vmpooler__vm__' + params[:hostname], 'tag:' + tag, arg[tag]) - backend.hset('vmpooler__tag__' + Date.today.to_s, params[:hostname] + ':' + tag, arg[tag]) + if Vmpooler::API.settings.config[:tagfilter] and Vmpooler::API.settings.config[:tagfilter][tag] + filter = Vmpooler::API.settings.config[:tagfilter][tag] + arg[tag] = arg[tag].match(filter).captures.join + end + + backend.hset('vmpooler__vm__' + params[:hostname], 'tag:' + tag, arg[tag]) + backend.hset('vmpooler__tag__' + Date.today.to_s, params[:hostname] + ':' + tag, arg[tag]) end end end