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.
This commit is contained in:
kirby@puppetlabs.com 2018-07-13 09:31:42 -07:00
parent fcb3880852
commit 4788693749
4 changed files with 39 additions and 111 deletions

35
Gemfile
View file

@ -1,29 +1,16 @@
source ENV['GEM_SOURCE'] || 'https://rubygems.org' source ENV['GEM_SOURCE'] || 'https://rubygems.org'
gem 'puma', '>= 3.6.0' gem 'json', '>= 1.8'
# Rack 2.x requires ruby 2.2 or above. gem 'puma', '~> 3.11'
# As VMPooler should work in older jruby, we need to be Ruby 1.9.3 compatible. gem 'rack', '~> 2.0'
gem 'rack', '~> 1.6' gem 'rake', '~> 12.3'
gem 'rake', '>= 10.4' gem 'redis', '~> 4.0'
gem 'rbvmomi', '>= 1.8' gem 'rbvmomi', '~> 1.13'
gem 'sinatra', '>= 1.4' gem 'sinatra', '~> 2.0'
gem 'net-ldap', '>= 0.16.1' gem 'net-ldap', '~> 0.16'
gem 'statsd-ruby', '>= 1.3.0', :require => 'statsd' gem 'statsd-ruby', '~> 1.4.0', :require => 'statsd'
gem 'connection_pool', '>= 2.2.1' gem 'connection_pool', '~> 2.2'
gem 'nokogiri', '>= 1.8.2' gem 'nokogiri', '~> 1.8'
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
group :development do group :development do
gem 'pry' gem 'pry'

View file

@ -1,6 +1,9 @@
#!/usr/bin/env ruby #!/usr/bin/env ruby
require 'vmpooler' $LOAD_PATH.unshift(File.dirname(__FILE__))
require 'rubygems' unless defined?(Gem)
require 'lib/vmpooler'
config = Vmpooler.config config = Vmpooler.config
redis_host = config[:redis]['server'] redis_host = config[:redis]['server']
@ -43,7 +46,7 @@ if torun.include? 'manager'
torun_threads << manager torun_threads << manager
end end
if ENV['VMPOOLER_DEBUG'] || torun_threads.count == 2 if ENV['VMPOOLER_DEBUG']
trap('INT') do trap('INT') do
puts 'Shutting down.' puts 'Shutting down.'
torun_threads.each(&:exit) torun_threads.each(&:exit)

View file

@ -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

View file

@ -2,33 +2,29 @@ lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'vmpooler/version' require 'vmpooler/version'
Gem::Specification.new do |spec| Gem::Specification.new do |s|
spec.name = 'vmpooler' s.name = 'vmpooler'
spec.version = Vmpooler::VERSION s.version = Vmpooler::VERSION
spec.authors = ['Puppet'] s.authors = ['Puppet']
spec.email = ['support@puppet.com'] s.email = ['support@puppet.com']
spec.summary = 'vmpooler provides configurable pools of instantly-available (running) virtual machines' s.summary = 'vmpooler provides configurable pools of instantly-available (running) virtual machines'
spec.description = 'vmpooler provides configurable pools of instantly-available (running) virtual machines' s.homepage = 'https://github.com/puppetlabs/vmpooler'
spec.homepage = 'https://github.com/puppetlabs/vmpooler' s.license = 'Apache-2.0'
spec.license = 'MIT' s.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
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.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 end