Module: Pec

Defined in:
lib/pec.rb,
lib/pec/cli.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

Defined Under Namespace

Modules: Command, Handler Classes: CLI, ConfigError, Configure, Init, Logger

Constant Summary collapse

VERSION =
"0.7.1"

Class Method Summary collapse

Class Method Details

.check_env ⇒ Object



51
52
53
54
55
56
57
58
59
# File 'lib/pec.rb', line 51

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

.configure ⇒ Object



37
38
39
40
# File 'lib/pec.rb', line 37

def self.configure
  load_config unless @_configure
  @_configure
end

.init_yao(_tenant_name = nil) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/pec.rb', line 19

def self.init_yao(_tenant_name=nil)
  check_env
  Yao.configure do
    auth_url "#{ENV["OS_AUTH_URL"]}/tokens"
    username ENV["OS_USERNAME"]
    password ENV["OS_PASSWORD"]
    tenant_name _tenant_name || ENV["OS_TENANT_NAME"]
  end
end

.load_config(file_name = nil) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/pec.rb', line 29

def self.load_config(file_name=nil)
  file_name ||= 'Pec.yaml'
  @_configure = []
  YAML.load_file(file_name).to_hash.reject {|c| c[0].to_s.match(/^_/)}.each do |host|
    @_configure << Pec::Configure.new(host)
  end
end

.servers(host_name) ⇒ Object



42
43
44
45
46
47
48
49
# File 'lib/pec.rb', line 42

def self.servers(host_name)
  self.configure.each do |host|
    next if host_name && host.name != host_name
    Pec.init_yao(host.tenant)
    server = Yao::Server.list_detail.find {|s|s.name == host.name}
    yield(server, host)
  end
end