Module: Fog

Defined in:
lib/fog/test_helpers/types_helper.rb,
lib/fog/cdn.rb,
lib/fog/dns.rb,
lib/fog/nfv.rb,
lib/fog/vpn.rb,
lib/fog/image.rb,
lib/fog/volume.rb,
lib/fog/account.rb,
lib/fog/billing.rb,
lib/fog/compute.rb,
lib/fog/network.rb,
lib/fog/storage.rb,
lib/fog/support.rb,
lib/fog/core/scp.rb,
lib/fog/core/ssh.rb,
lib/fog/identity.rb,
lib/fog/metering.rb,
lib/fog/baremetal.rb,
lib/fog/core/hmac.rb,
lib/fog/core/mock.rb,
lib/fog/core/time.rb,
lib/fog/core/uuid.rb,
lib/fog/core/cache.rb,
lib/fog/core/model.rb,
lib/fog/core/utils.rb,
lib/fog/formatador.rb,
lib/fog/monitoring.rb,
lib/fog/core/errors.rb,
lib/fog/core/logger.rb,
lib/tasks/test_task.rb,
lib/fog/core/service.rb,
lib/fog/core/version.rb,
lib/fog/core/provider.rb,
lib/fog/core/wait_for.rb,
lib/fog/introspection.rb,
lib/fog/orchestration.rb,
lib/fog/core/attributes.rb,
lib/fog/core/collection.rb,
lib/fog/core/connection.rb,
lib/fog/core/association.rb,
lib/fog/core/credentials.rb,
lib/fog/core/deprecation.rb,
lib/fog/core/services_mixin.rb,
lib/fog/core/stringify_keys.rb,
lib/fog/core/whitelist_keys.rb,
lib/fog/core/attributes/time.rb,
lib/fog/core/current_machine.rb,
lib/fog/compute/models/server.rb,
lib/fog/core/attributes/array.rb,
lib/fog/core/attributes/float.rb,
lib/fog/schema/data_validator.rb,
lib/fog/core/attributes/string.rb,
lib/fog/core/wait_for_defaults.rb,
lib/fog/core/attributes/boolean.rb,
lib/fog/core/attributes/default.rb,
lib/fog/core/attributes/integer.rb,
lib/fog/core/associations/default.rb,
lib/fog/core/attributes/timestamp.rb,
lib/fog/core/associations/one_model.rb,
lib/fog/core/associations/many_models.rb,
lib/fog/core/associations/one_identity.rb,
lib/fog/core/associations/many_identities.rb,
lib/fog/core/deprecated_connection_accessors.rb

Overview

Format related hackery allows both true.is_a?(Fog::Boolean) and false.is_a?(Fog::Boolean) allows both nil.is_a?(Fog::Nullable::String) and ”.is_a?(Fog::Nullable::String)

Defined Under Namespace

Modules: Account, Associations, Attributes, Baremetal, Billing, Boolean, CDN, Compute, Core, DNS, Deprecation, Errors, Formatador, Identity, Image, Introspection, Metering, Mock, Monitoring, NFV, Network, Nullable, Orchestration, Provider, Rake, SCP, SSH, Schema, ServicesMixin, Storage, StringifyKeys, Support, VPN, Volume, WhitelistKeys Classes: Association, Cache, Collection, CurrentMachine, HMAC, Logger, Model, PagedCollection, Service, Time, UUID

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.credentialsHash

Returns The credentials pulled from the configuration file.

Returns:

  • (Hash)

    The credentials pulled from the configuration file

Raises:

  • (LoadError)

    Configuration unavailable in configuration file



67
68
69
70
71
72
73
74
75
76
# File 'lib/fog/core/credentials.rb', line 67

def self.credentials
  @credentials ||= begin
    if credentials_path && File.exist?(credentials_path)
      credentials = Fog::Core::Utils.prepare_service_settings(YAML.load_file(credentials_path))
      (credentials && credentials[credential]) || Fog::Errors.missing_credentials
    else
      {}
    end
  end
end

.intervalObject

Returns the value of attribute interval.



5
6
7
# File 'lib/fog/core/wait_for_defaults.rb', line 5

def interval
  @interval
end

.max_intervalObject

Returns the value of attribute max_interval.



32
33
34
# File 'lib/fog/core/wait_for_defaults.rb', line 32

def max_interval
  @max_interval
end

.mockingObject (readonly) Also known as: mock?, mocking?

Returns the value of attribute mocking.



13
14
15
# File 'lib/fog/core/mock.rb', line 13

def mocking
  @mocking
end

.providersObject



6
7
8
# File 'lib/fog/core/provider.rb', line 6

def self.providers
  @providers ||= {}
end

.timeoutObject

Returns the value of attribute timeout.



20
21
22
# File 'lib/fog/core/wait_for_defaults.rb', line 20

def timeout
  @timeout
end

Class Method Details

.credentialSymbol

Note:

This can be set using the FOG_CREDENTIAL environment variable

This is the named credential from amongst the configuration file being used or :default

Returns:

  • (Symbol)

    The credential to use in Fog



40
41
42
# File 'lib/fog/core/credentials.rb', line 40

def self.credential
  @credential ||= (ENV["FOG_CREDENTIAL"] && ENV["FOG_CREDENTIAL"].to_sym) || :default
end

.credential=(new_credential) ⇒ Symbol

Assign a new credential to use from configuration file

Parameters:

  • new_credential (String, Symbol)

    name of new credential to use

Returns:

  • (Symbol)

    name of the new credential



30
31
32
33
# File 'lib/fog/core/credentials.rb', line 30

def self.credential=(new_credential)
  @credentials = nil
  @credential = new_credential && new_credential.to_sym
end

.credentials_pathString

Note:

This can be set using the FOG_RC environment variable or defaults to $HOME/.fog

This returns the path to the configuration file being used globally to look for sets of credentials

Returns:

  • (String)

    The path for configuration_file



50
51
52
53
54
55
56
57
# File 'lib/fog/core/credentials.rb', line 50

def self.credentials_path
  @credential_path ||= begin
    path = ENV["FOG_RC"] || (ENV["HOME"] && File.directory?(ENV["HOME"]) && "~/.fog")
    File.expand_path(path) if path
  rescue
    nil
  end
end

.credentials_path=(new_credentials_path) ⇒ String

Returns The new path for credentials file.

Returns:

  • (String)

    The new path for credentials file



60
61
62
63
# File 'lib/fog/core/credentials.rb', line 60

def self.credentials_path=(new_credentials_path)
  @credentials = nil
  @credential_path = new_credentials_path
end

.mock!Object



4
5
6
# File 'lib/fog/core/mock.rb', line 4

def self.mock!
  @mocking = true
end

.servicesObject



4
5
6
# File 'lib/fog/core/service.rb', line 4

def self.services
  @services ||= {}
end

.symbolize_credential?(key) ⇒ true

Deprecated.

Don’t use!

Returns if key == :headers.

Parameters:

  • key (Object)

Returns:

  • (true)

    if key == :headers



81
82
83
# File 'lib/fog/core/credentials.rb', line 81

def self.symbolize_credential?(key)
  ![:headers].include?(key)
end

.symbolize_credentials(hash) ⇒ Object



86
87
88
# File 'lib/fog/core/credentials.rb', line 86

def self.symbolize_credentials(hash)
  Fog::Core::Utils.prepare_service_settings(hash)
end

.unmock!Object



8
9
10
# File 'lib/fog/core/mock.rb', line 8

def self.unmock!
  @mocking = false
end

.wait_for(timeout = Fog.timeout, interval = Fog.interval, &_block) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/fog/core/wait_for.rb', line 2

def self.wait_for(timeout = Fog.timeout, interval = Fog.interval, &_block)
  duration = 0
  start = Time.now
  retries = 0
  loop do
    break if yield
    if duration > timeout
      raise Errors::TimeoutError, "The specified wait_for timeout (#{timeout} seconds) was exceeded"
    end

    sleep(interval.respond_to?(:call) ? interval.call(retries += 1).to_f : interval.to_f)
    duration = Time.now - start
  end
  { duration: duration }
end