(maint) Fix deprecation warning for redis ruby library

The syntax for pipelined has changed and the old syntax will be removed in v5.0.0
Fixing the syntax now since the block syntax has been supported for a while now.
This commit is contained in:
Samuel Beaulieu 2022-03-30 09:01:25 -05:00
parent 3d203e2578
commit 2ad9b8c549
No known key found for this signature in database
GPG key ID: 12030F74136D0F34
2 changed files with 52 additions and 52 deletions

View file

@ -147,12 +147,12 @@ module Vmpooler
def export_tags(backend, hostname, tags) def export_tags(backend, hostname, tags)
tracer.in_span("Vmpooler::API::Helpers.#{__method__}") do tracer.in_span("Vmpooler::API::Helpers.#{__method__}") do
backend.pipelined do backend.pipelined do |pipeline|
tags.each_pair do |tag, value| tags.each_pair do |tag, value|
next if value.nil? or value.empty? next if value.nil? or value.empty?
backend.hset("vmpooler__vm__#{hostname}", "tag:#{tag}", value) pipeline.hset("vmpooler__vm__#{hostname}", "tag:#{tag}", value)
backend.hset("vmpooler__tag__#{Date.today}", "#{hostname}:#{tag}", value) pipeline.hset("vmpooler__tag__#{Date.today}", "#{hostname}:#{tag}", value)
end end
end end
end end
@ -201,9 +201,9 @@ module Vmpooler
tracer.in_span("Vmpooler::API::Helpers.#{__method__}") do tracer.in_span("Vmpooler::API::Helpers.#{__method__}") do
# using pipelined is much faster than querying each of the pools and adding them # using pipelined is much faster than querying each of the pools and adding them
# as we get the result. # as we get the result.
res = backend.pipelined do res = backend.pipelined do |pipeline|
pools.each do |pool| pools.each do |pool|
backend.scard(key + pool['name']) pipeline.scard(key + pool['name'])
end end
end end
res.inject(0) { |m, x| m + x }.to_i res.inject(0) { |m, x| m + x }.to_i
@ -217,9 +217,9 @@ module Vmpooler
# using pipelined is much faster than querying each of the pools and adding them # using pipelined is much faster than querying each of the pools and adding them
# as we get the result. # as we get the result.
temp_hash = {} temp_hash = {}
res = backend.pipelined do res = backend.pipelined do |pipeline|
pools.each do |pool| pools.each do |pool|
backend.scard(key + pool['name']) pipeline.scard(key + pool['name'])
end end
end end
pools.each_with_index do |pool, i| pools.each_with_index do |pool, i|
@ -236,9 +236,9 @@ module Vmpooler
# using pipelined is much faster than querying each of the pools and adding them # using pipelined is much faster than querying each of the pools and adding them
# as we get the result. # as we get the result.
temp_hash = {} temp_hash = {}
res = backend.pipelined do res = backend.pipelined do |pipeline|
pools.each do |pool| pools.each do |pool|
backend.hget(key, pool['name']) pipeline.hget(key, pool['name'])
end end
end end
pools.each_with_index do |pool, i| pools.each_with_index do |pool, i|

View file

@ -148,15 +148,15 @@ module Vmpooler
end end
pool_alias = redis.hget("vmpooler__vm__#{vm}", 'pool_alias') pool_alias = redis.hget("vmpooler__vm__#{vm}", 'pool_alias')
redis.pipelined do redis.pipelined do |pipeline|
redis.hset("vmpooler__active__#{pool}", vm, Time.now) pipeline.hset("vmpooler__active__#{pool}", vm, Time.now)
redis.hset("vmpooler__vm__#{vm}", 'checkout', Time.now) pipeline.hset("vmpooler__vm__#{vm}", 'checkout', Time.now)
if ondemandrequest_hash['token:token'] if ondemandrequest_hash['token:token']
redis.hset("vmpooler__vm__#{vm}", 'token:token', ondemandrequest_hash['token:token']) pipeline.hset("vmpooler__vm__#{vm}", 'token:token', ondemandrequest_hash['token:token'])
redis.hset("vmpooler__vm__#{vm}", 'token:user', ondemandrequest_hash['token:user']) pipeline.hset("vmpooler__vm__#{vm}", 'token:user', ondemandrequest_hash['token:user'])
redis.hset("vmpooler__vm__#{vm}", 'lifetime', $config[:config]['vm_lifetime_auth'].to_i) pipeline.hset("vmpooler__vm__#{vm}", 'lifetime', $config[:config]['vm_lifetime_auth'].to_i)
end end
redis.sadd("vmpooler__#{request_id}__#{pool_alias}__#{pool}", vm) pipeline.sadd("vmpooler__#{request_id}__#{pool_alias}__#{pool}", vm)
end end
move_vm_queue(pool, vm, 'pending', 'running', redis) move_vm_queue(pool, vm, 'pending', 'running', redis)
check_ondemand_request_ready(request_id, redis) check_ondemand_request_ready(request_id, redis)
@ -164,12 +164,12 @@ module Vmpooler
redis.smove("vmpooler__pending__#{pool}", "vmpooler__ready__#{pool}", vm) redis.smove("vmpooler__pending__#{pool}", "vmpooler__ready__#{pool}", vm)
end end
redis.pipelined do redis.pipelined do |pipeline|
redis.hset("vmpooler__boot__#{Date.today}", "#{pool}:#{vm}", finish) # maybe remove as this is never used by vmpooler itself? pipeline.hset("vmpooler__boot__#{Date.today}", "#{pool}:#{vm}", finish) # maybe remove as this is never used by vmpooler itself?
redis.hset("vmpooler__vm__#{vm}", 'ready', Time.now) pipeline.hset("vmpooler__vm__#{vm}", 'ready', Time.now)
# last boot time is displayed in API, and used by alarming script # last boot time is displayed in API, and used by alarming script
redis.hset('vmpooler__lastboot', pool, Time.now) pipeline.hset('vmpooler__lastboot', pool, Time.now)
end end
$metrics.timing("time_to_ready_state.#{pool}", finish) $metrics.timing("time_to_ready_state.#{pool}", finish)
@ -418,9 +418,9 @@ module Vmpooler
finish = format('%<time>.2f', time: Time.now - start) finish = format('%<time>.2f', time: Time.now - start)
@redis.with_metrics do |redis| @redis.with_metrics do |redis|
redis.pipelined do redis.pipelined do |pipeline|
redis.hset("vmpooler__clone__#{Date.today}", "#{pool_name}:#{new_vmname}", finish) pipeline.hset("vmpooler__clone__#{Date.today}", "#{pool_name}:#{new_vmname}", finish)
redis.hset("vmpooler__vm__#{new_vmname}", 'clone_time', finish) pipeline.hset("vmpooler__vm__#{new_vmname}", 'clone_time', finish)
end end
end end
$logger.log('s', "[+] [#{pool_name}] '#{new_vmname}' cloned in #{finish} seconds") $logger.log('s', "[+] [#{pool_name}] '#{new_vmname}' cloned in #{finish} seconds")
@ -428,10 +428,10 @@ module Vmpooler
$metrics.timing("clone.#{pool_name}", finish) $metrics.timing("clone.#{pool_name}", finish)
rescue StandardError rescue StandardError
@redis.with_metrics do |redis| @redis.with_metrics do |redis|
redis.pipelined do redis.pipelined do |pipeline|
redis.srem("vmpooler__pending__#{pool_name}", new_vmname) pipeline.srem("vmpooler__pending__#{pool_name}", new_vmname)
expiration_ttl = $config[:redis]['data_ttl'].to_i * 60 * 60 expiration_ttl = $config[:redis]['data_ttl'].to_i * 60 * 60
redis.expire("vmpooler__vm__#{new_vmname}", expiration_ttl) pipeline.expire("vmpooler__vm__#{new_vmname}", expiration_ttl)
end end
end end
raise raise
@ -462,12 +462,12 @@ module Vmpooler
mutex.synchronize do mutex.synchronize do
@redis.with_metrics do |redis| @redis.with_metrics do |redis|
redis.pipelined do redis.pipelined do |pipeline|
redis.hdel("vmpooler__active__#{pool}", vm) pipeline.hdel("vmpooler__active__#{pool}", vm)
redis.hset("vmpooler__vm__#{vm}", 'destroy', Time.now) pipeline.hset("vmpooler__vm__#{vm}", 'destroy', Time.now)
# Auto-expire metadata key # Auto-expire metadata key
redis.expire("vmpooler__vm__#{vm}", ($config[:redis]['data_ttl'].to_i * 60 * 60)) pipeline.expire("vmpooler__vm__#{vm}", ($config[:redis]['data_ttl'].to_i * 60 * 60))
end end
start = Time.now start = Time.now
@ -1204,19 +1204,19 @@ module Vmpooler
pool_check_response[:destroyed_vms] += 1 pool_check_response[:destroyed_vms] += 1
destroy_vm(vm, pool_name, provider) destroy_vm(vm, pool_name, provider)
rescue StandardError => e rescue StandardError => e
redis.pipelined do redis.pipelined do |pipeline|
redis.srem("vmpooler__completed__#{pool_name}", vm) pipeline.srem("vmpooler__completed__#{pool_name}", vm)
redis.hdel("vmpooler__active__#{pool_name}", vm) pipeline.hdel("vmpooler__active__#{pool_name}", vm)
redis.del("vmpooler__vm__#{vm}") pipeline.del("vmpooler__vm__#{vm}")
end end
$logger.log('d', "[!] [#{pool_name}] _check_pool failed with an error while evaluating completed VMs: #{e}") $logger.log('d', "[!] [#{pool_name}] _check_pool failed with an error while evaluating completed VMs: #{e}")
end end
else else
$logger.log('s', "[!] [#{pool_name}] '#{vm}' not found in inventory, removed from 'completed' queue") $logger.log('s', "[!] [#{pool_name}] '#{vm}' not found in inventory, removed from 'completed' queue")
redis.pipelined do redis.pipelined do |pipeline|
redis.srem("vmpooler__completed__#{pool_name}", vm) pipeline.srem("vmpooler__completed__#{pool_name}", vm)
redis.hdel("vmpooler__active__#{pool_name}", vm) pipeline.hdel("vmpooler__active__#{pool_name}", vm)
redis.del("vmpooler__vm__#{vm}") pipeline.del("vmpooler__vm__#{vm}")
end end
end end
end end
@ -1432,12 +1432,12 @@ module Vmpooler
score = redis.zscore('vmpooler__provisioning__request', request_id) score = redis.zscore('vmpooler__provisioning__request', request_id)
requested = requested.split(',') requested = requested.split(',')
redis.pipelined do redis.pipelined do |pipeline|
requested.each do |request| requested.each do |request|
redis.zadd('vmpooler__odcreate__task', Time.now.to_i, "#{request}:#{request_id}") pipeline.zadd('vmpooler__odcreate__task', Time.now.to_i, "#{request}:#{request_id}")
end end
redis.zrem('vmpooler__provisioning__request', request_id) pipeline.zrem('vmpooler__provisioning__request', request_id)
redis.zadd('vmpooler__provisioning__processing', score, request_id) pipeline.zadd('vmpooler__provisioning__processing', score, request_id)
end end
end end
@ -1467,9 +1467,9 @@ module Vmpooler
redis.incr('vmpooler__tasks__ondemandclone') redis.incr('vmpooler__tasks__ondemandclone')
clone_vm(pool, provider, request_id, pool_alias) clone_vm(pool, provider, request_id, pool_alias)
end end
redis.pipelined do redis.pipelined do |pipeline|
redis.zrem(queue_key, request) pipeline.zrem(queue_key, request)
redis.zadd(queue_key, score, "#{pool_alias}:#{pool}:#{remaining_count}:#{request_id}") pipeline.zadd(queue_key, score, "#{pool_alias}:#{pool}:#{remaining_count}:#{request_id}")
end end
end end
end end
@ -1520,10 +1520,10 @@ module Vmpooler
$logger.log('s', "Ondemand request for '#{request_id}' failed to provision all instances within the configured ttl '#{ondemand_request_ttl}'") $logger.log('s', "Ondemand request for '#{request_id}' failed to provision all instances within the configured ttl '#{ondemand_request_ttl}'")
expiration_ttl = $config[:redis]['data_ttl'].to_i * 60 * 60 expiration_ttl = $config[:redis]['data_ttl'].to_i * 60 * 60
redis.pipelined do redis.pipelined do |pipeline|
redis.zrem('vmpooler__provisioning__processing', request_id) pipeline.zrem('vmpooler__provisioning__processing', request_id)
redis.hset("vmpooler__odrequest__#{request_id}", 'status', 'failed') pipeline.hset("vmpooler__odrequest__#{request_id}", 'status', 'failed')
redis.expire("vmpooler__odrequest__#{request_id}", expiration_ttl) pipeline.expire("vmpooler__odrequest__#{request_id}", expiration_ttl)
end end
remove_vms_for_failed_request(request_id, expiration_ttl, redis) remove_vms_for_failed_request(request_id, expiration_ttl, redis)
true true
@ -1533,11 +1533,11 @@ module Vmpooler
request_hash = redis.hgetall("vmpooler__odrequest__#{request_id}") request_hash = redis.hgetall("vmpooler__odrequest__#{request_id}")
Parsing.get_platform_pool_count(request_hash['requested']) do |platform_alias, pool, _count| Parsing.get_platform_pool_count(request_hash['requested']) do |platform_alias, pool, _count|
pools_filled = redis.smembers("vmpooler__#{request_id}__#{platform_alias}__#{pool}") pools_filled = redis.smembers("vmpooler__#{request_id}__#{platform_alias}__#{pool}")
redis.pipelined do redis.pipelined do |pipeline|
pools_filled&.each do |vm| pools_filled&.each do |vm|
move_vm_queue(pool, vm, 'running', 'completed', redis, "moved to completed queue. '#{request_id}' could not be filled in time") move_vm_queue(pool, vm, 'running', 'completed', pipeline, "moved to completed queue. '#{request_id}' could not be filled in time")
end end
redis.expire("vmpooler__#{request_id}__#{platform_alias}__#{pool}", expiration_ttl) pipeline.expire("vmpooler__#{request_id}__#{platform_alias}__#{pool}", expiration_ttl)
end end
end end
end end