Module: Misty

Defined in:
lib/misty/misty.rb,
lib/misty/auth.rb,
lib/misty/cloud.rb,
lib/misty/config.rb,
lib/misty/errors.rb,
lib/misty/service.rb,
lib/misty/version.rb,
lib/misty/autoload.rb,
lib/misty/services.rb,
lib/misty/auth/name.rb,
lib/misty/client_pack.rb,
lib/misty/http/direct.rb,
lib/misty/http/header.rb,
lib/misty/auth/auth_v2.rb,
lib/misty/auth/auth_v3.rb,
lib/misty/http/request.rb,
lib/misty/microversion.rb,
lib/misty/http/net_http.rb,
lib/misty/openstack/aodh/v2.rb,
lib/misty/openstack/heat/v1.rb,
lib/misty/openstack/service.rb,
lib/misty/openstack/swift/v1.rb,
lib/misty/openstack/zaqar/v2.rb,
lib/misty/http/method_builder.rb,
lib/misty/openstack/cinder/v1.rb,
lib/misty/openstack/cinder/v2.rb,
lib/misty/openstack/cinder/v3.rb,
lib/misty/openstack/extension.rb,
lib/misty/openstack/glance/v1.rb,
lib/misty/openstack/glance/v2.rb,
lib/misty/openstack/ironic/v1.rb,
lib/misty/openstack/karbor/v1.rb,
lib/misty/openstack/magnum/v1.rb,
lib/misty/openstack/manila/v2.rb,
lib/misty/openstack/murano/v1.rb,
lib/misty/openstack/nova/v2_1.rb,
lib/misty/openstack/senlin/v1.rb,
lib/misty/openstack/freezer/v1.rb,
lib/misty/openstack/trove/v1_0.rb,
lib/misty/openstack/keystone/v3.rb,
lib/misty/openstack/sahara/v1_1.rb,
lib/misty/openstack/tacker/v1_0.rb,
lib/misty/openstack/designate/v2.rb,
lib/misty/openstack/neutron/v2_0.rb,
lib/misty/openstack/octavia/v2_0.rb,
lib/misty/openstack/ceilometer/v2.rb,
lib/misty/openstack/keystone/v2_0.rb,
lib/misty/openstack/searchlight/v1.rb

Overview

Misty is a HTTP client for OpenStack APIs, aiming to be fast, flexible and exhaustive. Misty acts as a conduit to OpenStack APIs by handling requests as transparently as possible.

Defined Under Namespace

Modules: Auth, ClientPack, HTTP, Microversion, Openstack Classes: AuthV2, AuthV3, Cloud, Config, Service, Services

Constant Summary collapse

SERVICES =
[
  { name: :application_catalog,                 project: :murano,      versions: ['v1']},
  { name: :alarming,                            project: :aodh,        versions: ['v2']},
  { name: :backup,                              project: :freezer,     versions: ['v1']},
  { name: :baremetal,                           project: :ironic,      versions: ['v1'],             microversion: 'v1'},
  { name: :block_storage,                       project: :cinder,      versions: ['v3', 'v2', 'v1'], microversion: 'v3'},
  { name: :clustering,                          project: :senlin,      versions: ['v1']},
  { name: :compute,                             project: :nova,        versions: ['v2.1'],           microversion: 'v2.1'},
  { name: :container_infrastructure_management, project: :magnum,      versions: ['v1'],             microversion: 'v1'},
  { name: :data_processing,                     project: :sahara,      versions: ['v1.1']},
  { name: :data_protection_orchestration,       project: :karbor,      versions: ['v1']},
  { name: :database,                            project: :trove,       versions: ['v1.0']},
  { name: :dns               ,                  project: :designate,   versions: ['v2']},
  { name: :identity,                            project: :keystone,    versions: ['v3', 'v2.0']},
  { name: :image,                               project: :glance,      versions: ['v2', 'v1']},
  { name: :load_balancer,                       project: :octavia,     versions: ['v2.0']},
  { name: :messaging,                           project: :zaqar,       versions: ['v2']},
  { name: :metering,                            project: :ceilometer,  versions: ['v2']},
  { name: :networking,                          project: :neutron,     versions: ['v2.0']},
  { name: :nfv_orchestration,                   project: :tacker,      versions: ['v1.0']},
  { name: :object_storage,                      project: :swift,       versions: ['v1']},
  { name: :orchestration,                       project: :heat,        versions: ['v1']},
  { name: :search,                              project: :searchlight, versions: ['v1']},
  { name: :shared_file_systems,                 project: :manila,      versions: ['v2'],             microversion: 'v2'}
]
DOMAIN_ID =

Default Domain ID

'default'
VERSION =
'1.4.0'

Class Method Summary collapse

Class Method Details

.json_encode?(data) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/misty/misty.rb', line 37

def self.json_encode?(data)
  return true if data.is_a?(Array) || data.is_a?(Hash)
  if data.is_a?(String)
    begin
      JSON.parse(data)
    rescue JSON::ParserError
      return false
    else
      return true
    end
  end
  return false
end

.servicesObject

Provides list of supported services

Example

pp Misty.services


55
56
57
58
59
60
61
# File 'lib/misty/misty.rb', line 55

def self.services
  services = Misty::Services.new
  SERVICES.each do |service|
    services.add(service)
  end
  services
end

.to_json(data) ⇒ Object



63
64
65
66
67
68
69
# File 'lib/misty/misty.rb', line 63

def self.to_json(data)
  if data.is_a? String
    JSON.parse(data)
    return data
  end
  return JSON.dump(data)
end