Module: Pec
- Defined in:
- lib/pec.rb,
lib/pec/cli.rb,
lib/pec/core.rb,
lib/pec/init.rb,
lib/pec/logger.rb,
lib/pec/sample.rb,
lib/pec/command.rb,
lib/pec/handler.rb,
lib/pec/version.rb,
lib/pec/configure.rb,
lib/pec/config_file.rb
Defined Under Namespace
Modules: Command, Core, Handler
Classes: CLI, ConfigError, ConfigFile, Configure, Init, Logger, PortError
Constant Summary
collapse
- VERSION =
"1.0.3"
Class Method Summary
collapse
Class Method Details
.check_env ⇒ Object
80
81
82
83
84
85
86
87
88
|
# 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 ⇒ Object
99
100
101
102
103
104
105
106
107
108
|
# 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
|
48
49
50
51
|
# File 'lib/pec.rb', line 48
def self.configure
load_config unless @_configure
@_configure
end
|
.fetch_server(config) ⇒ Object
62
63
64
|
# File 'lib/pec.rb', line 62
def self.fetch_server(config)
server_list(config).find {|s|s.name == config.name}
end
|
.flavor_list(server) ⇒ Object
75
76
77
78
|
# 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 ⇒ Object
66
67
68
|
# File 'lib/pec.rb', line 66
def self.get_tenant_id
Yao.current_tenant_id
end
|
.init_yao(_tenant_name) ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# 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") ⇒ Object
38
39
40
41
42
43
44
45
46
|
# 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) ⇒ Object
110
111
112
113
114
|
# File 'lib/pec.rb', line 110
def self.options(opt=nil)
@_opt ||= {}
@_opt = opt if opt
@_opt
end
|
.processor_matching(source, klass) ⇒ Object
90
91
92
93
94
95
96
97
|
# 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) ⇒ Boolean
34
35
36
|
# 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) ⇒ Object
70
71
72
73
|
# 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) ⇒ Object
53
54
55
56
57
58
59
60
|
# 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
|