mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-27 02:18:41 -05:00
Fix Rubocop "safe" auto-corrections
Generated using `bundle exec rubocop --safe --auto-correct`
This commit is contained in:
parent
252a2c2344
commit
29519006fa
14 changed files with 327 additions and 302 deletions
|
|
@ -1,7 +1,6 @@
|
|||
module Vmpooler
|
||||
class API
|
||||
class Dashboard < Sinatra::Base
|
||||
|
||||
helpers do
|
||||
include Vmpooler::API::Helpers
|
||||
end
|
||||
|
|
@ -21,9 +20,11 @@ module Vmpooler
|
|||
|
||||
if config[:graphs]
|
||||
return false unless config[:graphs]['server']
|
||||
|
||||
@graph_server = config[:graphs]['server']
|
||||
elsif config[:graphite]
|
||||
return false unless config[:graphite]['server']
|
||||
|
||||
@graph_server = config[:graphite]['server']
|
||||
else
|
||||
false
|
||||
|
|
@ -36,9 +37,11 @@ module Vmpooler
|
|||
|
||||
if config[:graphs]
|
||||
return 'vmpooler' unless config[:graphs]['prefix']
|
||||
|
||||
@graph_prefix = config[:graphs]['prefix']
|
||||
elsif config[:graphite]
|
||||
return false unless config[:graphite]['prefix']
|
||||
|
||||
@graph_prefix = config[:graphite]['prefix']
|
||||
else
|
||||
false
|
||||
|
|
@ -48,12 +51,14 @@ module Vmpooler
|
|||
# what is the base URL for viewable graphs?
|
||||
def graph_url
|
||||
return false unless graph_server && graph_prefix
|
||||
|
||||
@graph_url ||= "http://#{graph_server}/render?target=#{graph_prefix}"
|
||||
end
|
||||
|
||||
# return a full URL to a viewable graph for a given metrics target (graphite syntax)
|
||||
def graph_link(target = '')
|
||||
return '' unless graph_url
|
||||
|
||||
graph_url + target
|
||||
end
|
||||
|
||||
|
|
@ -100,7 +105,7 @@ module Vmpooler
|
|||
end
|
||||
end
|
||||
end
|
||||
rescue
|
||||
rescue StandardError
|
||||
end
|
||||
else
|
||||
pools.each do |pool|
|
||||
|
|
@ -147,7 +152,7 @@ module Vmpooler
|
|||
end
|
||||
end
|
||||
end
|
||||
rescue
|
||||
rescue StandardError
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ module Vmpooler
|
|||
)
|
||||
|
||||
return true if ldap.bind
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
|
|
@ -90,7 +91,7 @@ module Vmpooler
|
|||
auth[:ldap]['user_object'],
|
||||
search_base,
|
||||
username_str,
|
||||
password_str,
|
||||
password_str
|
||||
)
|
||||
return true if result == true
|
||||
end
|
||||
|
|
@ -101,7 +102,7 @@ module Vmpooler
|
|||
auth[:ldap]['user_object'],
|
||||
ldap_base,
|
||||
username_str,
|
||||
password_str,
|
||||
password_str
|
||||
)
|
||||
return result
|
||||
end
|
||||
|
|
@ -124,6 +125,7 @@ module Vmpooler
|
|||
|
||||
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
|
||||
|
||||
|
|
@ -161,7 +163,7 @@ module Vmpooler
|
|||
backend.scard(key + pool['name'])
|
||||
end
|
||||
end
|
||||
res.inject(0){ |m, x| m+x }.to_i
|
||||
res.inject(0) { |m, x| m + x }.to_i
|
||||
end
|
||||
|
||||
# Takes the pools and a key to run scard on
|
||||
|
|
@ -201,12 +203,12 @@ module Vmpooler
|
|||
def get_capacity_metrics(pools, backend)
|
||||
capacity = {
|
||||
current: 0,
|
||||
total: 0,
|
||||
total: 0,
|
||||
percent: 0
|
||||
}
|
||||
|
||||
pools.each do |pool|
|
||||
capacity[:total] += pool['size'].to_i
|
||||
capacity[:total] += pool['size'].to_i
|
||||
end
|
||||
|
||||
capacity[:current] = get_total_across_pools_redis_scard(pools, 'vmpooler__ready__', backend)
|
||||
|
|
@ -220,16 +222,16 @@ module Vmpooler
|
|||
|
||||
def get_queue_metrics(pools, backend)
|
||||
queue = {
|
||||
pending: 0,
|
||||
cloning: 0,
|
||||
booting: 0,
|
||||
ready: 0,
|
||||
running: 0,
|
||||
pending: 0,
|
||||
cloning: 0,
|
||||
booting: 0,
|
||||
ready: 0,
|
||||
running: 0,
|
||||
completed: 0,
|
||||
total: 0
|
||||
total: 0
|
||||
}
|
||||
|
||||
queue[:pending] = get_total_across_pools_redis_scard(pools,'vmpooler__pending__', backend)
|
||||
queue[:pending] = get_total_across_pools_redis_scard(pools, 'vmpooler__pending__', backend)
|
||||
queue[:ready] = get_total_across_pools_redis_scard(pools, 'vmpooler__ready__', backend)
|
||||
queue[:running] = get_total_across_pools_redis_scard(pools, 'vmpooler__running__', backend)
|
||||
queue[:completed] = get_total_across_pools_redis_scard(pools, 'vmpooler__completed__', backend)
|
||||
|
|
@ -306,11 +308,11 @@ module Vmpooler
|
|||
task = {
|
||||
duration: {
|
||||
average: 0,
|
||||
min: 0,
|
||||
max: 0,
|
||||
total: 0
|
||||
min: 0,
|
||||
max: 0,
|
||||
total: 0
|
||||
},
|
||||
count: {
|
||||
count: {
|
||||
total: 0
|
||||
}
|
||||
}
|
||||
|
|
@ -450,7 +452,7 @@ module Vmpooler
|
|||
def pool_index(pools)
|
||||
pools_hash = {}
|
||||
index = 0
|
||||
for pool in pools
|
||||
pools.each do |pool|
|
||||
pools_hash[pool['name']] = index
|
||||
index += 1
|
||||
end
|
||||
|
|
@ -461,13 +463,14 @@ module Vmpooler
|
|||
prepared_template = backend.hget('vmpooler__template__prepared', pool['name'])
|
||||
return false if prepared_template.nil?
|
||||
return true if pool['template'] == prepared_template
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
def is_integer?(x)
|
||||
Integer(x)
|
||||
true
|
||||
rescue
|
||||
rescue StandardError
|
||||
false
|
||||
end
|
||||
|
||||
|
|
@ -487,7 +490,7 @@ module Vmpooler
|
|||
def vm_ready?(vm_name, domain = nil)
|
||||
begin
|
||||
open_socket(vm_name, domain)
|
||||
rescue => _err
|
||||
rescue StandardError => _e
|
||||
return false
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -37,22 +37,24 @@ module Vmpooler
|
|||
end
|
||||
|
||||
def checkoutlock
|
||||
Vmpooler::API::settings.checkoutlock
|
||||
Vmpooler::API.settings.checkoutlock
|
||||
end
|
||||
|
||||
def fetch_single_vm(template)
|
||||
template_backends = [template]
|
||||
aliases = Vmpooler::API.settings.config[:alias]
|
||||
if aliases
|
||||
template_backends = template_backends + aliases[template] if aliases[template].is_a?(Array)
|
||||
template_backends += aliases[template] if aliases[template].is_a?(Array)
|
||||
template_backends << aliases[template] if aliases[template].is_a?(String)
|
||||
pool_index = pool_index(pools)
|
||||
weighted_pools = {}
|
||||
template_backends.each do |t|
|
||||
next unless pool_index.key? t
|
||||
|
||||
index = pool_index[t]
|
||||
clone_target = pools[index]['clone_target'] || config['clone_target']
|
||||
next unless config.key?('backend_weight')
|
||||
|
||||
weight = config['backend_weight'][clone_target]
|
||||
if weight
|
||||
weighted_pools[t] = weight
|
||||
|
|
@ -75,6 +77,7 @@ module Vmpooler
|
|||
template_backends.each do |template_backend|
|
||||
vms = backend.smembers("vmpooler__ready__#{template_backend}")
|
||||
next if vms.empty?
|
||||
|
||||
vms.reverse.each do |vm|
|
||||
ready = vm_ready?(vm, config['domain'])
|
||||
if ready
|
||||
|
|
@ -104,7 +107,7 @@ module Vmpooler
|
|||
|
||||
backend.hset('vmpooler__vm__' + vm, 'token:token', request.env['HTTP_X_AUTH_TOKEN'])
|
||||
backend.hset('vmpooler__vm__' + vm, 'token:user',
|
||||
backend.hget('vmpooler__token__' + request.env['HTTP_X_AUTH_TOKEN'], 'user')
|
||||
backend.hget('vmpooler__token__' + request.env['HTTP_X_AUTH_TOKEN'], 'user')
|
||||
)
|
||||
|
||||
if config['vm_lifetime_auth'].to_i > 0
|
||||
|
|
@ -136,14 +139,14 @@ module Vmpooler
|
|||
metrics.increment('checkout.empty.' + requested)
|
||||
break
|
||||
else
|
||||
vms << [ vmpool, vmname, vmtemplate ]
|
||||
vms << [vmpool, vmname, vmtemplate]
|
||||
metrics.increment('checkout.success.' + vmtemplate)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if failed
|
||||
vms.each do |(vmpool, vmname, vmtemplate)|
|
||||
vms.each do |(vmpool, vmname, _vmtemplate)|
|
||||
return_vm_to_ready_state(vmpool, vmname)
|
||||
end
|
||||
status 503
|
||||
|
|
@ -203,7 +206,7 @@ module Vmpooler
|
|||
def reset_pool(payload)
|
||||
result = { 'ok' => false }
|
||||
|
||||
payload.each do |poolname, count|
|
||||
payload.each do |poolname, _count|
|
||||
backend.sadd('vmpooler__poolreset', poolname)
|
||||
end
|
||||
status 201
|
||||
|
|
@ -234,42 +237,36 @@ module Vmpooler
|
|||
def sync_pool_templates
|
||||
pool_index = pool_index(pools)
|
||||
template_configs = backend.hgetall('vmpooler__config__template')
|
||||
unless template_configs.nil?
|
||||
template_configs.each do |poolname, template|
|
||||
template_configs&.each do |poolname, template|
|
||||
if pool_index.include? poolname
|
||||
unless pools[pool_index[poolname]]['template'] == template
|
||||
pools[pool_index[poolname]]['template'] = template
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def sync_pool_sizes
|
||||
pool_index = pool_index(pools)
|
||||
poolsize_configs = backend.hgetall('vmpooler__config__poolsize')
|
||||
unless poolsize_configs.nil?
|
||||
poolsize_configs.each do |poolname, size|
|
||||
poolsize_configs&.each do |poolname, size|
|
||||
if pool_index.include? poolname
|
||||
unless pools[pool_index[poolname]]['size'] == size.to_i
|
||||
pools[pool_index[poolname]]['size'] == size.to_i
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def sync_clone_targets
|
||||
pool_index = pool_index(pools)
|
||||
clone_target_configs = backend.hgetall('vmpooler__config__clone_target')
|
||||
unless clone_target_configs.nil?
|
||||
clone_target_configs.each do |poolname, clone_target|
|
||||
clone_target_configs&.each do |poolname, clone_target|
|
||||
if pool_index.include? poolname
|
||||
unless pools[pool_index[poolname]]['clone_target'] == clone_target
|
||||
pools[pool_index[poolname]]['clone_target'] == clone_target
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -368,36 +365,38 @@ module Vmpooler
|
|||
pending_hash = get_list_across_pools_redis_scard(pools, 'vmpooler__pending__', backend)
|
||||
lastBoot_hash = get_list_across_pools_redis_hget(pools, 'vmpooler__lastboot', backend)
|
||||
|
||||
pools.each do |pool|
|
||||
# REMIND: move this out of the API and into the back-end
|
||||
ready = ready_hash[pool['name']]
|
||||
running = running_hash[pool['name']]
|
||||
pending = pending_hash[pool['name']]
|
||||
max = pool['size']
|
||||
lastBoot = lastBoot_hash[pool['name']]
|
||||
aka = pool['alias']
|
||||
unless views and not views.include?("pools")
|
||||
pools.each do |pool|
|
||||
# REMIND: move this out of the API and into the back-end
|
||||
ready = ready_hash[pool['name']]
|
||||
running = running_hash[pool['name']]
|
||||
pending = pending_hash[pool['name']]
|
||||
max = pool['size']
|
||||
lastBoot = lastBoot_hash[pool['name']]
|
||||
aka = pool['alias']
|
||||
|
||||
result[:pools][pool['name']] = {
|
||||
ready: ready,
|
||||
running: running,
|
||||
pending: pending,
|
||||
max: max,
|
||||
lastBoot: lastBoot
|
||||
}
|
||||
result[:pools][pool['name']] = {
|
||||
ready: ready,
|
||||
running: running,
|
||||
pending: pending,
|
||||
max: max,
|
||||
lastBoot: lastBoot
|
||||
}
|
||||
|
||||
if aka
|
||||
result[:pools][pool['name']][:alias] = aka
|
||||
if aka
|
||||
result[:pools][pool['name']][:alias] = aka
|
||||
end
|
||||
|
||||
# for backwards compatibility, include separate "empty" stats in "status" block
|
||||
if ready == 0
|
||||
result[:status][:empty] ||= []
|
||||
result[:status][:empty].push(pool['name'])
|
||||
|
||||
result[:status][:ok] = false
|
||||
result[:status][:message] = "Found #{result[:status][:empty].length} empty pools."
|
||||
end
|
||||
end
|
||||
|
||||
# for backwards compatibility, include separate "empty" stats in "status" block
|
||||
if ready == 0
|
||||
result[:status][:empty] ||= []
|
||||
result[:status][:empty].push(pool['name'])
|
||||
|
||||
result[:status][:ok] = false
|
||||
result[:status][:message] = "Found #{result[:status][:empty].length} empty pools."
|
||||
end
|
||||
end unless views and not views.include?("pools")
|
||||
end
|
||||
|
||||
result[:status][:uptime] = (Time.now - Vmpooler::API.settings.config[:uptime]).round(1) if Vmpooler::API.settings.config[:uptime]
|
||||
|
||||
|
|
@ -442,7 +441,6 @@ module Vmpooler
|
|||
if aka
|
||||
result[:pools][pool['name']][:alias] = aka
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
ready_hash = get_list_across_pools_redis_scard(poolscopy, 'vmpooler__ready__', backend)
|
||||
|
|
@ -456,7 +454,7 @@ module Vmpooler
|
|||
get "#{api_prefix}/totalrunning/?" do
|
||||
content_type :json
|
||||
queue = {
|
||||
running: 0,
|
||||
running: 0
|
||||
}
|
||||
|
||||
queue[:running] = get_total_across_pools_redis_scard(pools, 'vmpooler__running__', backend)
|
||||
|
|
@ -753,7 +751,7 @@ module Vmpooler
|
|||
|
||||
def invalid_pool(payload)
|
||||
invalid = []
|
||||
payload.each do |pool, clone_target|
|
||||
payload.each do |pool, _clone_target|
|
||||
invalid << pool unless pool_exists?(pool)
|
||||
end
|
||||
invalid
|
||||
|
|
@ -837,7 +835,7 @@ module Vmpooler
|
|||
# Look up IP address of the hostname
|
||||
begin
|
||||
ipAddress = TCPSocket.gethostbyname(params[:hostname])[3]
|
||||
rescue
|
||||
rescue StandardError
|
||||
ipAddress = ""
|
||||
end
|
||||
|
||||
|
|
@ -893,7 +891,7 @@ module Vmpooler
|
|||
if backend.exists('vmpooler__vm__' + params[:hostname])
|
||||
begin
|
||||
jdata = JSON.parse(request.body.read)
|
||||
rescue
|
||||
rescue StandardError
|
||||
halt 400, JSON.pretty_generate(result)
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue