From 4788693749bead18c107f68c5aa2284a1f9c9e36 Mon Sep 17 00:00:00 2001 From: "kirby@puppetlabs.com" Date: Fri, 13 Jul 2018 09:31:42 -0700 Subject: [PATCH] Update gemspec in preparation for vmpooler release This commit updates gemspec and Gemfile in preparation of a vmpooler release. To support this change the vmpooler executable is placed into a bin directory for inclusion in the gem. The license in gemspec is updated to Apache 2.0 to reflect the vmpooler project license. --- Gemfile | 35 +++++++++-------------------- bin/vmpooler | 7 ++++-- vmpooler | 58 ------------------------------------------------ vmpooler.gemspec | 50 +++++++++++++++++++---------------------- 4 files changed, 39 insertions(+), 111 deletions(-) delete mode 100755 vmpooler diff --git a/Gemfile b/Gemfile index d12abf5..3a74d05 100644 --- a/Gemfile +++ b/Gemfile @@ -1,29 +1,16 @@ source ENV['GEM_SOURCE'] || 'https://rubygems.org' -gem 'puma', '>= 3.6.0' -# Rack 2.x requires ruby 2.2 or above. -# As VMPooler should work in older jruby, we need to be Ruby 1.9.3 compatible. -gem 'rack', '~> 1.6' -gem 'rake', '>= 10.4' -gem 'rbvmomi', '>= 1.8' -gem 'sinatra', '>= 1.4' -gem 'net-ldap', '>= 0.16.1' -gem 'statsd-ruby', '>= 1.3.0', :require => 'statsd' -gem 'connection_pool', '>= 2.2.1' -gem 'nokogiri', '>= 1.8.2' -gem 'vmpooler', path: './' -# Pin gems against Ruby version -# Note we can't use platform restrictions easily so use -# lowest version range any platform -# ---- -# redis -if RUBY_VERSION =~ /^2\.[1]/ - gem 'redis', '~> 3.0' -elsif RUBY_VERSION =~ /^2\.2\.[01]/ - gem 'redis', '~> 3.0' -else - gem 'redis', '>= 3.2' -end +gem 'json', '>= 1.8' +gem 'puma', '~> 3.11' +gem 'rack', '~> 2.0' +gem 'rake', '~> 12.3' +gem 'redis', '~> 4.0' +gem 'rbvmomi', '~> 1.13' +gem 'sinatra', '~> 2.0' +gem 'net-ldap', '~> 0.16' +gem 'statsd-ruby', '~> 1.4.0', :require => 'statsd' +gem 'connection_pool', '~> 2.2' +gem 'nokogiri', '~> 1.8' group :development do gem 'pry' diff --git a/bin/vmpooler b/bin/vmpooler index 9f4fe03..eec75c0 100755 --- a/bin/vmpooler +++ b/bin/vmpooler @@ -1,6 +1,9 @@ #!/usr/bin/env ruby -require 'vmpooler' +$LOAD_PATH.unshift(File.dirname(__FILE__)) + +require 'rubygems' unless defined?(Gem) +require 'lib/vmpooler' config = Vmpooler.config redis_host = config[:redis]['server'] @@ -43,7 +46,7 @@ if torun.include? 'manager' torun_threads << manager end -if ENV['VMPOOLER_DEBUG'] || torun_threads.count == 2 +if ENV['VMPOOLER_DEBUG'] trap('INT') do puts 'Shutting down.' torun_threads.each(&:exit) diff --git a/vmpooler b/vmpooler deleted file mode 100755 index eec75c0..0000000 --- a/vmpooler +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env ruby - -$LOAD_PATH.unshift(File.dirname(__FILE__)) - -require 'rubygems' unless defined?(Gem) -require 'lib/vmpooler' - -config = Vmpooler.config -redis_host = config[:redis]['server'] -redis_port = config[:redis]['port'] -redis_password = config[:redis]['password'] -logger_file = config[:config]['logfile'] -api_logger_file = config[:config]['api_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.new_redis(redis_host, redis_port, redis_password), - 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 do |th| - th.join -end diff --git a/vmpooler.gemspec b/vmpooler.gemspec index 409b558..4df9609 100644 --- a/vmpooler.gemspec +++ b/vmpooler.gemspec @@ -2,33 +2,29 @@ lib = File.expand_path('../lib', __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'vmpooler/version' -Gem::Specification.new do |spec| - spec.name = 'vmpooler' - spec.version = Vmpooler::VERSION - spec.authors = ['Puppet'] - spec.email = ['support@puppet.com'] +Gem::Specification.new do |s| + s.name = 'vmpooler' + s.version = Vmpooler::VERSION + s.authors = ['Puppet'] + s.email = ['support@puppet.com'] - spec.summary = 'vmpooler provides configurable pools of instantly-available (running) virtual machines' - spec.description = 'vmpooler provides configurable pools of instantly-available (running) virtual machines' - spec.homepage = 'https://github.com/puppetlabs/vmpooler' - spec.license = 'MIT' - - spec.files = `git ls-files -z`.split("\x0").reject do |f| - f.match(%r{^(test|spec|features)/}) - end - spec.bindir = 'exe' - spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } - spec.require_paths = ['lib'] - spec.add_dependency 'puma', '>= 3.6.0' - spec.add_dependency 'rack', '~> 1.6' - spec.add_dependency 'rake', '>= 10.4' - spec.add_dependency 'rbvmomi', '>= 1.8' - spec.add_dependency 'sinatra', '>= 1.4' - spec.add_dependency 'net-ldap', '>= 0.16.1' - spec.add_dependency 'statsd-ruby', '>= 1.3.0' - spec.add_dependency 'connection_pool', '>= 2.2.1' - spec.add_dependency 'nokogiri', '>= 1.8.2' - # we should lock ruby support down to 2.2.2+ and update redis version 3.2 - spec.add_dependency 'redis', '>= 3.0' + s.summary = 'vmpooler provides configurable pools of instantly-available (running) virtual machines' + s.homepage = 'https://github.com/puppetlabs/vmpooler' + s.license = 'Apache-2.0' + s.required_ruby_version = Gem::Requirement.new('>= 2.3.0') + s.files = Dir[ "bin/*", "lib/**/*" ] + s.bindir = 'bin' + s.executables = 'vmpooler' + s.require_paths = ["lib"] + s.add_dependency 'puma', '~> 3.11' + s.add_dependency 'rack', '~> 2.0' + s.add_dependency 'rake', '~> 12.3' + s.add_dependency 'redis', '~> 4.0' + s.add_dependency 'rbvmomi', '~> 1.13' + s.add_dependency 'sinatra', '~> 2.0' + s.add_dependency 'net-ldap', '~> 0.16' + s.add_dependency 'statsd-ruby', '~> 1.4' + s.add_dependency 'connection_pool', '~> 2.2' + s.add_dependency 'nokogiri', '~> 1.8' end