lib/poolparty.rb in poolparty-0.2.84 vs lib/poolparty.rb in poolparty-1.2.2

- old
+ new

@@ -1,10 +1,10 @@ -require 'rubygems' - +$LOAD_PATH<< File.dirname(__FILE__) # Load required gems +#TODO: remove activesupport @required_software = Array.new -%w(activesupport ftools logging resolv ruby2ruby digest/sha2 open3 capistrano).each do |lib| +%w(rubygems activesupport ftools logging resolv ruby2ruby digest/sha2 json pp).each do |lib| begin require lib rescue Exception => e @required_software << lib end @@ -30,44 +30,97 @@ @np.print exit(0) end -# Use active supports auto load mechanism -ActiveSupport::Dependencies.load_paths << File.dirname(__FILE__) +Dir.glob(File.join(File.dirname(__FILE__),'..', 'vendor/gems/*/lib/*.rb')).each do |d| + require d +end +t=Time.now ## Load PoolParty -%w(version).each do |f| - require "#{File.dirname(__FILE__)}/poolparty/#{f}" +module PoolParty end -%w(core modules exceptions dependency_resolutions aska monitors provisioners extra net).each do |dir| - Dir[File.dirname(__FILE__) + "/poolparty/#{dir}/**.rb"].each do |file| - require file +def PoolParty.require_directory(dir) + if ::File.file?(dir) + puts "#{::File.expand_path(dir)}" if $DEBUGGING || $GENERATING_MANIFEST + require dir + else + Dir["#{dir}/*.rb"].sort.each do |file| + puts "#{::File.expand_path(file)}" if $DEBUGGING || $GENERATING_MANIFEST + require "#{file}" if ::File.file?(file) + end + Dir["#{dir}/*"].sort.each do |dir| + require_directory(dir) if ::File.directory?(dir) + end end end -Kernel.load_p File.dirname(__FILE__) + "/poolparty/poolparty" -Logging.init :debug, :info, :warn, :error, :fatal +#load poolparty framework in specific order +$_poolparty_load_directories = [ + "core", + "dependencies.rb", + "dependency_resolver/dependency_resolver_cloud_extensions.rb", + "dependency_resolver/dependency_resolver.rb", + "poolparty/poolparty_base_class.rb", + "poolparty/default.rb", + "modules", + "exceptions", + 'poolparty/key.rb', + "dependency_resolver", + "aska.rb", + "config", + "monitors/monitor_rack", + "capistrano.rb", + 'provisioners/provisioner_base.rb', + 'provisioners/capistrano/capistrano.rb', + 'provision', + "extra", + "net", + "helpers", + "verification", + "poolparty/resource.rb", + "poolparty/service.rb", + "resources", + "services", + "poolparty/cloud.rb", + "poolparty", + "templates" + ] +manifest_file_location = ::File.join(::File.dirname(__FILE__), '../config/manifest.pp') +if ::File.file?(manifest_file_location) + ::File.readlines(manifest_file_location).each do |line| + dputs "#{::File.expand_path(line)}" + require "#{line.gsub(/\n/, '')}" + end +else + $_poolparty_load_directories.each do |dir| + PoolParty.require_directory(::File.join(::File.dirname(__FILE__),'poolparty', dir)) + end +end + +# Logging.init :debug, :info, :warn, :error, :fatal + module PoolParty include FileWriter def log - @logger ||= make_new_logger + @logger ||= make_new_logger rescue STDOUT end + def reset! + $pools = $clouds = $plugins = @describe_instances = nil + end class PoolParty - def initialize(spec) - Script.inflate(spec) if spec - end end private #:nodoc:# def make_new_logger - FileUtils.mkdir_p ::File.dirname(Base.pool_logger_location) unless ::File.directory?(::File.dirname(Base.pool_logger_location)) + FileUtils.mkdir_p ::File.dirname(Default.pool_logger_location) unless ::File.directory?(::File.dirname(Default.pool_logger_location)) Loggable.new end end class Object @@ -77,16 +130,17 @@ include PoolParty::DefinableResource end class Class - include PoolParty::PluginModel + include PoolParty::PluginModel end ## Load PoolParty Plugins and package module PoolParty %w(plugins base_packages).each do |dir| - Dir[::File.dirname(__FILE__) + "/poolparty/#{dir}/*.rb"].each do |file| - require file - end + require_directory(::File.join(::File.dirname(__FILE__), 'poolparty', dir)) end -end \ No newline at end of file +end + +PoolParty.reset! +dputs "duration = #{Time.now-t}"