Class: Misty::Cloud
- Inherits:
-
Object
- Object
- Misty::Cloud
- Defined in:
- lib/misty/cloud.rb
Defined Under Namespace
Instance Attribute Summary collapse
-
#services ⇒ Object
readonly
Returns the value of attribute services.
Class Method Summary collapse
Instance Method Summary collapse
- #alarming ⇒ Object
- #baremetal ⇒ Object
- #block_storage ⇒ Object (also: #volume)
- #build_service(service_name) ⇒ Object
- #clustering ⇒ Object
- #compute ⇒ Object
- #container ⇒ Object
- #data_processing ⇒ Object
- #data_protection ⇒ Object
- #database ⇒ Object
- #dns ⇒ Object
- #identity ⇒ Object
- #image ⇒ Object
-
#initialize(options = {:auth => {}}) ⇒ Cloud
constructor
A new instance of Cloud.
- #messaging ⇒ Object
- #metering ⇒ Object
- #network ⇒ Object
- #object_storage ⇒ Object
- #orchestration ⇒ Object
- #search ⇒ Object
- #setup_services(options) ⇒ Object
- #shared_file_systems ⇒ Object
Constructor Details
#initialize(options = {:auth => {}}) ⇒ Cloud
Returns a new instance of Cloud.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/misty/cloud.rb', line 14 def initialize( = {:auth => {}}) @cloud = Setup.new @cloud.auth = Misty::Auth.factory([:auth]) @cloud.content_type = [:content_type] ? [:content_type] : nil @cloud.log = Logger.new([:log_file] ? [:log_file] : Misty::LOG_FILE) @cloud.log.level = [:log_level] ? [:log_level] : Misty::LOG_LEVEL = Options.new Misty.services.each do |service| .send("#{service.name}=".to_sym, [service.name] ? [service.name] : {}) end @services = setup_services() end |
Instance Attribute Details
#services ⇒ Object (readonly)
Returns the value of attribute services.
12 13 14 |
# File 'lib/misty/cloud.rb', line 12 def services @services end |
Class Method Details
.dot_to_underscore(val) ⇒ Object
51 52 53 |
# File 'lib/misty/cloud.rb', line 51 def self.dot_to_underscore(val) val.gsub(/\./,'_') end |
Instance Method Details
#alarming ⇒ Object
55 56 57 |
# File 'lib/misty/cloud.rb', line 55 def alarming @alarming ||= build_service(:alarming) end |
#baremetal ⇒ Object
59 60 61 |
# File 'lib/misty/cloud.rb', line 59 def ||= build_service(:baremetal) end |
#block_storage ⇒ Object Also known as: volume
63 64 65 |
# File 'lib/misty/cloud.rb', line 63 def block_storage @block_storage ||= build_service(:block_storage) end |
#build_service(service_name) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/misty/cloud.rb', line 43 def build_service(service_name) project = @services[service_name].keys[0] version = @services[service_name].fetch(project) version = self.class.dot_to_underscore(version) klass = Object.const_get("Misty::Openstack::#{project.capitalize}::#{version.capitalize}") klass.new(@cloud, [service_name]) end |
#clustering ⇒ Object
69 70 71 |
# File 'lib/misty/cloud.rb', line 69 def clustering @clustering ||= build_service(:clustering) end |
#compute ⇒ Object
73 74 75 |
# File 'lib/misty/cloud.rb', line 73 def compute @compute ||= build_service(:compute) end |
#container ⇒ Object
77 78 79 |
# File 'lib/misty/cloud.rb', line 77 def container @container ||= build_service(:container) end |
#data_processing ⇒ Object
81 82 83 |
# File 'lib/misty/cloud.rb', line 81 def data_processing @data_processing ||= build_service(:data_processing) end |
#data_protection ⇒ Object
85 86 87 |
# File 'lib/misty/cloud.rb', line 85 def data_protection @data_protection ||= build_service(:data_protection) end |
#database ⇒ Object
89 90 91 |
# File 'lib/misty/cloud.rb', line 89 def database @database ||= build_service(:database) end |
#dns ⇒ Object
93 94 95 |
# File 'lib/misty/cloud.rb', line 93 def dns @dns ||= build_service(:dns) end |
#identity ⇒ Object
97 98 99 |
# File 'lib/misty/cloud.rb', line 97 def identity @identity ||= build_service(:identity) end |
#image ⇒ Object
101 102 103 |
# File 'lib/misty/cloud.rb', line 101 def image @image ||= build_service(:image) end |
#messaging ⇒ Object
105 106 107 |
# File 'lib/misty/cloud.rb', line 105 def messaging @messaging ||= build_service(:messaging) end |
#metering ⇒ Object
109 110 111 |
# File 'lib/misty/cloud.rb', line 109 def metering @metering ||= build_service(:metering) end |
#network ⇒ Object
113 114 115 |
# File 'lib/misty/cloud.rb', line 113 def network @network ||= build_service(:network) end |
#object_storage ⇒ Object
117 118 119 |
# File 'lib/misty/cloud.rb', line 117 def object_storage @object_storage ||= build_service(:object_storage) end |
#orchestration ⇒ Object
121 122 123 |
# File 'lib/misty/cloud.rb', line 121 def orchestration @orchestration ||= build_service(:orchestration) end |
#search ⇒ Object
125 126 127 |
# File 'lib/misty/cloud.rb', line 125 def search @search ||= build_service(:search) end |
#setup_services(options) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/misty/cloud.rb', line 29 def setup_services() services = {} Misty.services.each do |service| if [service.name] && [service.name][:api_version] \ && service.versions.include?([service.name][:api_version]) services.merge!(service.name => {service.project => [service.name][:api_version]}) else # Highest version is used by default! services.merge!(service.name => {service.project => service.versions.sort[-1]}) end end services end |
#shared_file_systems ⇒ Object
129 130 131 |
# File 'lib/misty/cloud.rb', line 129 def shared_file_systems @shared_file_systems ||= build_service(:shared_file_systems) end |