Module: Miasma::Contrib::OpenStackApiCore::ApiCommon

Included in:
Models::Compute::OpenStack, Models::Orchestration::OpenStack, Models::Storage::OpenStack
Defined in:
lib/miasma/contrib/open_stack.rb

Overview

Common API methods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object

Set attributes into model

Parameters:

  • klass (Class)


212
213
214
215
216
217
218
219
220
221
222
223
224
# File 'lib/miasma/contrib/open_stack.rb', line 212

def self.included(klass)
  klass.class_eval do
    attribute :open_stack_identity_url, String, :required => true
    attribute :open_stack_username, String
    attribute :open_stack_user_id, String
    attribute :open_stack_password, String
    attribute :open_stack_token, String
    attribute :open_stack_region, String
    attribute :open_stack_tenant_name, String
    attribute :open_stack_domain, String
    attribute :open_stack_project, String
  end
end

Instance Method Details

#connectionHTTP

Returns with auth token provided.

Returns:

  • (HTTP)

    with auth token provided



227
228
229
# File 'lib/miasma/contrib/open_stack.rb', line 227

def connection
  super.headers('X-Auth-Token' => token)
end

#endpointString

Returns endpoint URL.

Returns:

  • (String)

    endpoint URL



232
233
234
235
236
237
# File 'lib/miasma/contrib/open_stack.rb', line 232

def endpoint
  open_stack_api.endpoint_for(
    Utils.snake(self.class.to_s.split('::')[-2]).to_sym,
    open_stack_region
  )
end

#open_stack_apiMiasma::Contrib::OpenStackApiCore



245
246
247
248
249
250
# File 'lib/miasma/contrib/open_stack.rb', line 245

def open_stack_api
  key = "miasma_open_stack_api_#{attributes.checksum}".to_sym
  memoize(key, :direct) do
    Miasma::Contrib::OpenStackApiCore.new(attributes)
  end
end

#tokenString

Returns valid API token.

Returns:

  • (String)

    valid API token



240
241
242
# File 'lib/miasma/contrib/open_stack.rb', line 240

def token
  open_stack_api.api_token
end