Sha256: e345d8e5f1bfac824fc2dfa1e353f1b9255395837da18b49993a1b53cb99a3ea

Contents?: true

Size: 1.97 KB

Versions: 32

Compression:

Stored size: 1.97 KB

Contents

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

require 'vmpooler'
require 'vmpooler/version'

config = Vmpooler.config
logger_file = config[:config]['logfile']
prefix = config[:config]['prefix']
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']
redis_reconnect_attempts = config[:redis]['reconnect_attempts']
tracing_enabled = config[:tracing]['enabled']
tracing_jaeger_host = config[:tracing]['jaeger_host']

logger = Vmpooler::Logger.new logger_file
metrics = Vmpooler::Metrics.init(logger, config)

version = Vmpooler::VERSION

startup_args = ARGV
Vmpooler.configure_tracing(startup_args, prefix, tracing_enabled, tracing_jaeger_host, version)

torun_threads = []
if ARGV.count == 0
  torun = %i[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
    redis = Vmpooler.new_redis(redis_host, redis_port, redis_password)
    Vmpooler::API.execute(torun, config, redis, metrics, logger)
  end
  torun_threads << api
elsif metrics.respond_to?(:setup_prometheus_metrics)
  # Run the cut down API - Prometheus Metrics only.
  prometheus_only_api = Thread.new do
    Vmpooler::API.execute(torun, config, nil, metrics, logger)
  end
  torun_threads << prometheus_only_api
end

if torun.include?(:manager)
  manager = Thread.new do
    Vmpooler::PoolManager.new(
      config,
      logger,
      Vmpooler.redis_connection_pool(redis_host, redis_port, redis_password, redis_connection_pool_size, redis_connection_pool_timeout, metrics, redis_reconnect_attempts),
      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

32 entries across 32 versions & 1 rubygems

Version Path
vmpooler-3.6.0 bin/vmpooler
vmpooler-3.5.1 bin/vmpooler
vmpooler-3.5.0 bin/vmpooler
vmpooler-3.4.0 bin/vmpooler
vmpooler-3.3.0 bin/vmpooler
vmpooler-3.2.0 bin/vmpooler
vmpooler-3.1.0 bin/vmpooler
vmpooler-3.0.0 bin/vmpooler
vmpooler-2.5.0 bin/vmpooler
vmpooler-2.4.0 bin/vmpooler
vmpooler-2.3.0 bin/vmpooler
vmpooler-2.2.0 bin/vmpooler
vmpooler-2.1.0 bin/vmpooler
vmpooler-2.0.0 bin/vmpooler
vmpooler-1.3.0 bin/vmpooler
vmpooler-1.2.0 bin/vmpooler
vmpooler-1.1.2 bin/vmpooler
vmpooler-1.1.1 bin/vmpooler
vmpooler-1.1.0 bin/vmpooler
vmpooler-1.0.0 bin/vmpooler