mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 10:08:40 -05:00
Move tag-filtering and exporting to API helper methods
This commit is contained in:
parent
6523062b62
commit
c720f12c05
2 changed files with 22 additions and 11 deletions
|
|
@ -79,6 +79,26 @@ module Vmpooler
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def export_tags(backend, hostname, tags)
|
||||||
|
tags.each_pair do |tag, value|
|
||||||
|
next if value.nil? or value.empty?
|
||||||
|
|
||||||
|
backend.hset('vmpooler__vm__' + hostname, 'tag:' + tag, value)
|
||||||
|
backend.hset('vmpooler__tag__' + Date.today.to_s, hostname + ':' + tag, value)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def filter_tags(tags)
|
||||||
|
return unless Vmpooler::API.settings.config[:tagfilter]
|
||||||
|
|
||||||
|
tags.each_pair do |tag, value|
|
||||||
|
next unless filter = Vmpooler::API.settings.config[:tagfilter][tag]
|
||||||
|
tags[tag] = value.match(filter).captures.join if value.match(filter)
|
||||||
|
end
|
||||||
|
|
||||||
|
tags
|
||||||
|
end
|
||||||
|
|
||||||
def mean(list)
|
def mean(list)
|
||||||
s = list.map(&:to_f).reduce(:+).to_f
|
s = list.map(&:to_f).reduce(:+).to_f
|
||||||
(s > 0 && list.length > 0) ? s / list.length.to_f : 0
|
(s > 0 && list.length > 0) ? s / list.length.to_f : 0
|
||||||
|
|
|
||||||
|
|
@ -497,17 +497,8 @@ module Vmpooler
|
||||||
|
|
||||||
backend.hset('vmpooler__vm__' + params[:hostname], param, arg)
|
backend.hset('vmpooler__vm__' + params[:hostname], param, arg)
|
||||||
when 'tags'
|
when 'tags'
|
||||||
arg.keys.each do |tag|
|
filter_tags(arg)
|
||||||
if Vmpooler::API.settings.config[:tagfilter] and Vmpooler::API.settings.config[:tagfilter][tag]
|
export_tags(backend, params[:hostname], arg)
|
||||||
filter = Vmpooler::API.settings.config[:tagfilter][tag]
|
|
||||||
arg[tag] = arg[tag].match(filter).captures.join if arg[tag].match(filter)
|
|
||||||
end
|
|
||||||
|
|
||||||
next if arg[tag].nil? or arg[tag].empty?
|
|
||||||
|
|
||||||
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue