module Pec
Constants
- VERSION
Public Class Methods
check_env()
click to toggle source
# File lib/pec.rb, line 80 def self.check_env %w( OS_AUTH_URL OS_USERNAME OS_PASSWORD ).each do |name| raise "please set env #{name}" unless ENV[name] end end
config_reset()
click to toggle source
# File lib/pec.rb, line 99 def self.config_reset %w( _configure _tenant_list _server_list _flavor_list ).each do |name| instance_variable_set("@#{name}".to_sym, nil) end end
configure()
click to toggle source
# File lib/pec.rb, line 48 def self.configure load_config unless @_configure @_configure end
fetch_server(config)
click to toggle source
# File lib/pec.rb, line 62 def self.fetch_server(config) server_list(config).find {|s|s.name == config.name} end
flavor_list(server)
click to toggle source
# File lib/pec.rb, line 75 def self.flavor_list(server) @_flavor_list ||= {} @_flavor_list[server.tenant_id] ||= Yao::Flavor.list end
get_tenant_id()
click to toggle source
# File lib/pec.rb, line 66 def self.get_tenant_id Yao.current_tenant_id end
init_yao(_tenant_name)
click to toggle source
# File lib/pec.rb, line 20 def self.init_yao(_tenant_name) return unless reload_yao?(_tenant_name) check_env Yao.configure do auth_url ENV["OS_AUTH_URL"] username ENV["OS_USERNAME"] password ENV["OS_PASSWORD"] tenant_name _tenant_name client_cert ENV['OS_CERT'] client_key ENV['OS_KEY'] region_name ENV['OS_REGION_NAME'] end end
load_config(config_name="Pec.yaml")
click to toggle source
# File lib/pec.rb, line 38 def self.load_config(config_name="Pec.yaml") @_configure ||= [] ConfigFile.new(Pec.options[:config_file] || config_name).load.to_hash.reject {|k,v| k[0].match(/\_/) || k.match(/^includes$/) }.each do |config| @_configure << Pec::Configure.new(config) end rescue => e Pec::Logger.critical "configure error!" raise e end
options(opt=nil)
click to toggle source
# File lib/pec.rb, line 110 def self.options(opt=nil) @_opt ||= {} @_opt = opt if opt @_opt end
processor_matching(source, klass) { |object| ... }
click to toggle source
# File lib/pec.rb, line 90 def self.processor_matching(source, klass) source.keys.each do |k| Object.const_get(klass.to_s).constants.each do |c| object = Object.const_get("#{klass.to_s}::#{c}") yield object if k.to_s == object.kind.to_s end end end
reload_yao?(_tenant_name)
click to toggle source
# File lib/pec.rb, line 34 def self.reload_yao?(_tenant_name) @_last_tenant = _tenant_name if _tenant_name != @_last_tenant end
server_list(config)
click to toggle source
# File lib/pec.rb, line 70 def self.server_list(config) @_server_list ||= {} @_server_list[config.tenant] ||= Yao::Server.list_detail({ tenant_id: get_tenant_id }) end
servers(filter_hosts, not_fetch) { |server, config| ... }
click to toggle source
# File lib/pec.rb, line 53 def self.servers(filter_hosts, not_fetch) self.configure.each do |config| next if filter_hosts.size > 0 && filter_hosts.none? {|name| config.name.match(/^#{name}/)} Pec.init_yao(config.tenant) server = fetch_server(config) unless not_fetch yield(server, config) end end