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(params = {:auth => {}}) ⇒ Cloud
constructor
A new instance of Cloud.
- #messaging ⇒ Object
- #metering ⇒ Object
- #network ⇒ Object
- #object_storage ⇒ Object
- #orchestration ⇒ Object
- #search ⇒ Object
- #setup_services(params) ⇒ Object
- #shared_file_systems ⇒ Object
Constructor Details
#initialize(params = {:auth => {}}) ⇒ Cloud
Returns a new instance of Cloud.
14 15 16 17 18 |
# File 'lib/misty/cloud.rb', line 14 def initialize(params = {:auth => {}}) @setup = self.class.setup(params) = Options.new @services = setup_services(params) 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
56 57 58 |
# File 'lib/misty/cloud.rb', line 56 def self.dot_to_underscore(val) val.gsub(/\./,'_') end |
.setup(params) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/misty/cloud.rb', line 20 def self.setup(params) setup = Setup.new setup.content_type = params[:content_type] ? params[:content_type] : Misty::CONTENT_TYPE setup.interface = params[:interface] ? params[:interface] : Misty::INTERFACE setup.log = Logger.new(params[:log_file] ? params[:log_file] : Misty::LOG_FILE) setup.log.level = params[:log_level] ? params[:log_level] : Misty::LOG_LEVEL setup.region_id = params[:region_id] ? params[:region_id] : Misty::REGION_ID setup.ssl_verify_mode = params.key?(:ssl_verify_mode) ? params[:ssl_verify_mode] : Misty::SSL_VERIFY_MODE setup.auth = Misty::Auth.factory(params[:auth], setup.ssl_verify_mode, setup.log) setup end |
Instance Method Details
#alarming ⇒ Object
60 61 62 |
# File 'lib/misty/cloud.rb', line 60 def alarming @alarming ||= build_service(:alarming) end |
#baremetal ⇒ Object
64 65 66 |
# File 'lib/misty/cloud.rb', line 64 def ||= build_service(:baremetal) end |
#block_storage ⇒ Object Also known as: volume
68 69 70 |
# File 'lib/misty/cloud.rb', line 68 def block_storage @block_storage ||= build_service(:block_storage) end |
#build_service(service_name) ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/misty/cloud.rb', line 48 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(@setup, [service_name]) end |
#clustering ⇒ Object
74 75 76 |
# File 'lib/misty/cloud.rb', line 74 def clustering @clustering ||= build_service(:clustering) end |
#compute ⇒ Object
78 79 80 |
# File 'lib/misty/cloud.rb', line 78 def compute @compute ||= build_service(:compute) end |
#container ⇒ Object
82 83 84 |
# File 'lib/misty/cloud.rb', line 82 def container @container ||= build_service(:container) end |
#data_processing ⇒ Object
86 87 88 |
# File 'lib/misty/cloud.rb', line 86 def data_processing @data_processing ||= build_service(:data_processing) end |
#data_protection ⇒ Object
90 91 92 |
# File 'lib/misty/cloud.rb', line 90 def data_protection @data_protection ||= build_service(:data_protection) end |
#database ⇒ Object
94 95 96 |
# File 'lib/misty/cloud.rb', line 94 def database @database ||= build_service(:database) end |
#dns ⇒ Object
98 99 100 |
# File 'lib/misty/cloud.rb', line 98 def dns @dns ||= build_service(:dns) end |
#identity ⇒ Object
102 103 104 |
# File 'lib/misty/cloud.rb', line 102 def identity @identity ||= build_service(:identity) end |
#image ⇒ Object
106 107 108 |
# File 'lib/misty/cloud.rb', line 106 def image @image ||= build_service(:image) end |
#messaging ⇒ Object
110 111 112 |
# File 'lib/misty/cloud.rb', line 110 def messaging @messaging ||= build_service(:messaging) end |
#metering ⇒ Object
114 115 116 |
# File 'lib/misty/cloud.rb', line 114 def metering @metering ||= build_service(:metering) end |
#network ⇒ Object
118 119 120 |
# File 'lib/misty/cloud.rb', line 118 def network @network ||= build_service(:network) end |
#object_storage ⇒ Object
122 123 124 |
# File 'lib/misty/cloud.rb', line 122 def object_storage @object_storage ||= build_service(:object_storage) end |
#orchestration ⇒ Object
126 127 128 |
# File 'lib/misty/cloud.rb', line 126 def orchestration @orchestration ||= build_service(:orchestration) end |
#search ⇒ Object
130 131 132 |
# File 'lib/misty/cloud.rb', line 130 def search @search ||= build_service(:search) end |
#setup_services(params) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/misty/cloud.rb', line 32 def setup_services(params) services = {} Misty.services.each do |service| .send("#{service.name}=".to_sym, params[service.name] ? params[service.name] : {}) if params[service.name] && params[service.name][:api_version] \ && service.versions.include?(params[service.name][:api_version]) services.merge!(service.name => {service.project => params[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
134 135 136 |
# File 'lib/misty/cloud.rb', line 134 def shared_file_systems @shared_file_systems ||= build_service(:shared_file_systems) end |