Class: Fog::Identity::OpenStack::V3::Domains

Inherits:
OpenStack::Collection show all
Defined in:
lib/fog/openstack/models/identity_v3/domains.rb

Constant Summary collapse

@@cache =
{}

Instance Attribute Summary

Attributes inherited from OpenStack::Collection

#response

Instance Method Summary collapse

Methods inherited from OpenStack::Collection

#get, #load_response, #summary

Instance Method Details

#all(options = {}) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/fog/openstack/models/identity_v3/domains.rb', line 14

def all(options = {})
  cached_domain, expires = @@cache[{token: service.auth_token, options: options}]
  return cached_domain if cached_domain && expires > Time.now
  domain_to_cache = load_response(service.list_domains(options), 'domains')
  @@cache[{token: service.auth_token, options: options}] = domain_to_cache, Time.now + 30 # 30-second TTL
  return domain_to_cache
end

#auth_domains(options = {}) ⇒ Object



27
28
29
# File 'lib/fog/openstack/models/identity_v3/domains.rb', line 27

def auth_domains(options = {})
  load(service.auth_domains(options).body['domains'])
end

#create(attributes) ⇒ Object



22
23
24
25
# File 'lib/fog/openstack/models/identity_v3/domains.rb', line 22

def create(attributes)
  @@cache.clear if @@cache
  super(attributes)
end

#destroy(id) ⇒ Object



41
42
43
44
45
# File 'lib/fog/openstack/models/identity_v3/domains.rb', line 41

def destroy(id)
  @@cache.clear if @@cache
  domain = self.find_by_id(id)
  domain.destroy
end

#find_by_id(id) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/fog/openstack/models/identity_v3/domains.rb', line 31

def find_by_id(id)
  cached_domain, expires = @@cache[{token: service.auth_token, id: id}]
  return cached_domain if cached_domain && expires > Time.now
  domain_hash = service.get_domain(id).body['domain']
  domain_to_cache = Fog::Identity::OpenStack::V3::Domain.new(
      domain_hash.merge(:service => service))
  @@cache[{token: service.auth_token, id: id}] = domain_to_cache, Time.now + 30 # 30-second TTL
  return domain_to_cache
end