class Misty::Cloud

Attributes

config[R]

Public Class Methods

dot_to_underscore(val) click to toggle source
# File lib/misty/cloud.rb, line 8
def self.dot_to_underscore(val)
  val.gsub(/\./,'_')
end
new(arg) click to toggle source
# File lib/misty/cloud.rb, line 12
def initialize(arg)
  @config = Misty::Config.new(arg)
end

Public Instance Methods

alarming(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 30
def alarming(arg = {})
  @alarming ||= build_service(__method__)
  @alarming.request_config(arg)
  @alarming
end
application_catalog(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 24
def application_catalog(arg = {})
  @application_catalog ||= build_service(__method__)
  @application_catalog.request_config(arg)
  @application_catalog
end
backup(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 36
def backup(arg = {})
  @backup ||= build_service(__method__)
  @backup.request_config(arg)
  @backup
end
baremetal(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 42
def baremetal(arg = {})
  @baremetal ||= build_service(__method__)
  @baremetal.request_config(arg)
  @baremetal
end
block_storage(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 48
def block_storage(arg = {})
  @block_storage ||= build_service(__method__)
  @block_storage.request_config(arg)
  @block_storage
end
Also aliased as: volume
build_service(method) click to toggle source
# File lib/misty/cloud.rb, line 16
def build_service(method)
  service = Misty.services.find {|service| service.type == method}
  service_config = @config.get_service(method)
  api_version = self.class.dot_to_underscore(service.default_version(service_config[:config][:api_version]))
  klass = Object.const_get("Misty::Openstack::API::#{service.project.capitalize}::#{api_version.capitalize}")
  klass.new(service_config)
end
clustering(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 54
def clustering(arg = {})
  @clustering ||= build_service(__method__)
  @clustering.request_config(arg)
  @clustering
end
compute(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 60
def compute(arg = {})
  @compute ||= build_service(__method__)
  @compute.request_config(arg)
  @compute
end
container_infrastructure_management(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 66
def container_infrastructure_management(arg = {})
  @container_infrastructure_management ||= build_service(__method__)
  @container_infrastructure_management.request_config(arg)
  @container_infrastructure_management
end
container_service(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 72
def container_service(arg = {})
  @container_service ||= build_service(__method__)
  @container_service.request_config(args)
  @container_service
end
data_processing(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 78
def data_processing(arg = {})
  @data_processing ||= build_service(__method__)
  @data_processing.request_config(arg)
  @data_processing
end
data_protection_orchestration(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 84
def data_protection_orchestration(arg = {})
  @data_protection_orchestration ||= build_service(__method__)
  @data_protection_orchestration.request_config(arg)
  @data_protection_orchestration
end
database(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 90
def database(arg = {})
  @database ||= build_service(__method__)
  @database.request_config(arg)
  @database
end
dns(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 96
def dns(arg = {})
  @dns ||= build_service(__method__)
  @dns.request_config(arg)
  @dns
end
Also aliased as: domain_name_server
domain_name_server(arg = {})
Alias for: dns
event(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 102
def event(arg = {})
  @event ||= build_service(__method__)
  @event.request_config(args)
  @event
end
identity(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 108
def identity(arg = {})
  @identity ||= build_service(__method__)
  @identity.request_config(arg)
  @identity
end
image(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 114
def image(arg = {})
  @image ||= build_service(__method__)
  @image.request_config(arg)
  @image
end
instance_ha(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 120
def instance_ha(arg = {})
  @instance_ha ||= build_service(__method__)
  @instance_ha.request_config(args)
  @instance_ha
end
key_manager(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 126
def key_manager(arg = {})
  @key_manager ||= build_service(__method__)
  @key_manager.request_config(args)
  @key_manager
end
load_balancer(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 132
def load_balancer(arg = {})
  @load_balancer ||= build_service(__method__)
  @load_balancer.request_config(arg)
  @load_balancer
end
messaging(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 138
def messaging(arg = {})
  @messaging ||= build_service(__method__)
  @messaging.request_config(arg)
  @messaging
end
metering(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 144
def metering(arg = {})
  @metering ||= build_service(__method__)
  @metering.request_config(arg)
  @metering
end
metric(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 150
def metric(arg = {})
  @metric ||= build_service(__method__)
  @metric.request_config(args)
  @metric
end
monitoring(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 156
def monitoring(arg = {})
  @monitoring ||= build_service(__method__)
  @monitoring.request_config(args)
  @monitoring
end
network(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 162
def network(arg = {})
  @network ||= build_service(__method__)
  @network.request_config(arg)
  @network
end
nfv_orchestration(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 168
def nfv_orchestration(arg = {})
  @nfv_orchestration ||= build_service(__method__)
  @nfv_orchestration.request_config(arg)
  @nfv_orchestration
end
object_storage(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 174
def object_storage(arg = {})
  @object_storage ||= build_service(__method__)
  @object_storage.request_config(arg)
  @object_storage
end
orchestration(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 180
def orchestration(arg = {})
  @orchestration ||= build_service(__method__)
  @orchestration.request_config(arg)
  @orchestration
end
placement(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 186
def placement(arg = {})
  @placement ||= build_service(__method__)
  @placement.request_config(args)
  @placement
end
reservation(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 192
def reservation(arg = {})
  @reservation ||= build_service(__method__)
  @reservation.request_config(args)
  @reservation
end
resource_optimization(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 198
def resource_optimization(arg = {})
  @resource_optimization ||= build_service(__method__)
  @resource_optimization.request_config(args)
  @resource_optimization
end
shared_file_systems(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 210
def shared_file_systems(arg = {})
  @shared_file_systems ||= build_service(__method__)
  @shared_file_systems.request_config(arg)
  @shared_file_systems
end
volume(arg = {})
Alias for: block_storage
workflow(arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 216
def workflow(arg = {})
  @workflow ||= build_service(__method__)
  @workflow.request_config(args)
  @workflow
end

Private Instance Methods

method_missing(method_name, arg = {}) click to toggle source
# File lib/misty/cloud.rb, line 227
def method_missing(method_name, arg = {})
  services_avail = []
  Misty.services.types.each do |serv|
    services_avail << serv if /^#{method_name}/.match(serv)
  end

  if services_avail.size == 1
    type = services_avail[0]
    raise NoMethodError, "No such Cloud Service: #{method_name}" unless self.class.method_defined?(type)
  elsif services_avail.size > 1
    raise NoMethodError, "Ambiguous Cloud Service: #{method_name}"
  else
    raise NoMethodError, "No such Cloud Service: #{method_name}"
  end

  send(type, arg)
end