Sha256: 4d49f3163066e49c6fbd0cd7578d0ccb3571a39da9448d3b9055fc39f330cab7

Contents?: true

Size: 1.35 KB

Versions: 4

Compression:

Stored size: 1.35 KB

Contents

#!/usr/bin/env ruby
# frozen_string_literal: true

require 'vmpooler'

config = Vmpooler.config
redis_host = config[:redis]['server']
redis_port = config[:redis]['port']
redis_password = config[:redis]['password']
redis_connection_pool_size = config[:redis]['connection_pool_size']
redis_connection_pool_timeout = config[:redis]['connection_pool_timeout']
logger_file = config[:config]['logfile']

metrics = Vmpooler.new_metrics(config)

torun_threads = []
if ARGV.count == 0
  torun = ['api', 'manager']
else
  torun = []
  torun << 'api' if ARGV.include? 'api'
  torun << 'manager' if ARGV.include? 'manager'
  exit(2) if torun.empty?
end

if torun.include? 'api'
  api = Thread.new do
    thr = Vmpooler::API.new
    redis = Vmpooler.new_redis(redis_host, redis_port, redis_password)
    thr.helpers.configure(config, redis, metrics)
    thr.helpers.execute!
  end
  torun_threads << api
end

if torun.include? 'manager'
  manager = Thread.new do
    Vmpooler::PoolManager.new(
      config,
      Vmpooler.new_logger(logger_file),
      Vmpooler.redis_connection_pool(redis_host, redis_port, redis_password, redis_connection_pool_size, redis_connection_pool_timeout, metrics),
      metrics
    ).execute!
  end
  torun_threads << manager
end

if ENV['VMPOOLER_DEBUG']
  trap('INT') do
    puts 'Shutting down.'
    torun_threads.each(&:exit)
  end
end

torun_threads.each(&:join)

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vmpooler-0.13.3 bin/vmpooler
vmpooler-0.13.2 bin/vmpooler
vmpooler-0.13.1 bin/vmpooler
vmpooler-0.13.0 bin/vmpooler