Class: NCC
- Inherits:
-
Object
show all
- Defined in:
- lib/ncc/error.rb,
lib/ncc/config.rb,
lib/ncc/version.rb,
lib/ncc/instance.rb,
lib/ncc/connection.rb,
lib/ncc.rb
Defined Under Namespace
Classes: Config, Configurator, Connection, Error, Instance
Constant Summary
collapse
- VERSION =
'1.1.2'
- @@global_config =
NCC::Configurator.new
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(config_path = nil, opt = {}) ⇒ NCC
Returns a new instance of NCC.
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/ncc.rb', line 46
def initialize(config_path=nil, opt={})
@logger = opt[:logger] if opt.has_key? :logger
config_path ||= @@global_config.config_path
config_path = [config_path] unless config_path.respond_to? :unshift
config_path.unshift(File.join(ENV['NCCAPI_HOME'], 'etc')) if
ENV['NCCAPI_HOME']
@config = NCC::Config.new(config_path, :logger => @logger)
@inventory = NOMS::CMDB.new(@config)
@clouds = { }
end
|
Instance Attribute Details
#config ⇒ Object
Returns the value of attribute config.
38
39
40
|
# File 'lib/ncc.rb', line 38
def config
@config
end
|
#inventory ⇒ Object
Returns the value of attribute inventory.
38
39
40
|
# File 'lib/ncc.rb', line 38
def inventory
@inventory
end
|
Class Method Details
42
43
44
|
# File 'lib/ncc.rb', line 42
def self.configure
yield @@global_config
end
|
Instance Method Details
#api_url ⇒ Object
110
111
112
113
114
115
116
|
# File 'lib/ncc.rb', line 110
def api_url
if @config['services'].has_key? 'v2api'
@config['services']['v2api']
else
'http://localhost/ncc_api/v2'
end
end
|
#clouds(cloud = nil, opt = {}) ⇒ Object
78
79
80
81
82
83
84
|
# File 'lib/ncc.rb', line 78
def clouds(cloud=nil, opt={})
if cloud.nil?
@config[:clouds].keys
else
connect(cloud, :logger => @logger)
end
end
|
#connect(cloud, opt = {}) ⇒ Object
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/ncc.rb', line 67
def connect(cloud, opt={})
if ! @config[:clouds].has_key? cloud
raise NCC::Error::NotFound, "Cloud #{cloud} not provided"
end
@clouds[cloud] ||= NCC::Connection.connect(self, cloud, opt)
if @clouds[cloud].nil? or ! @clouds[cloud].current?
@clouds[cloud] = NCC::Connection.connect(self, cloud, opt)
end
@clouds[cloud]
end
|
#debug(msg) ⇒ Object
57
58
59
60
61
|
# File 'lib/ncc.rb', line 57
def debug(msg)
if @logger.respond_to? :debug
@logger.debug "#{me}: #{msg}"
end
end
|
#images(image = nil) ⇒ Object
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/ncc.rb', line 98
def images(image=nil)
if image.nil?
@config[:images].to_array
else
if @config[:images].has_key? image
@config[:images][image].to_hash
else
raise NCC::Error::NotFound, "No such image #{image.inspect}"
end
end
end
|
#me ⇒ Object
63
64
65
|
# File 'lib/ncc.rb', line 63
def me
self.class
end
|
#sizes(size = nil) ⇒ Object
86
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/ncc.rb', line 86
def sizes(size=nil)
if size.nil?
@config[:sizes].to_array
else
if @config[:sizes].has_key? size
@config[:sizes][size].to_hash
else
raise NCC::Error::NotFound, "No such size #{size.inspect}"
end
end
end
|