Class: Fog::Compute::QingCloud::Routers

Inherits:
Fog::Collection
  • Object
show all
Defined in:
lib/fog/qingcloud/models/compute/routers.rb

Constant Summary collapse

ACTIVE_STATUS =
%w[pending active poweroffed suspended]

Instance Method Summary collapse

Constructor Details

#initialize(attributes) ⇒ Routers

Returns a new instance of Routers.



16
17
18
19
20
# File 'lib/fog/qingcloud/models/compute/routers.rb', line 16

def initialize(attributes)
  self.filters ||= {}
  filters['status'] = ACTIVE_STATUS unless filters['status']
  super
end

Instance Method Details

#all(filters = self.filters) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/fog/qingcloud/models/compute/routers.rb', line 22

def all(filters = self.filters)
  self.filters = filters
  data = service.describe_routers(filters).body['router_set']
  load(data.map do |r|
      eip = r.delete('eip') || {}
      unless eip.empty?
        r['public_ip'] = eip['eip_addr']
        r['address_id'] = eip['eip_id']
      end
      vxnets = r.delete('vxnets') || []
      r['vxnets'] = []
      vxnets.each do |x|
        r['vxnets'] << service.vxnets.get(x['vxnet_id'])
      end
      r
    end
  )
end

#get(router_id) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/fog/qingcloud/models/compute/routers.rb', line 41

def get(router_id)
  if router_id
    self.class.new(:service => service).all('router-id' => router_id).first
  end
rescue Fog::QingCloud::Errors::NotFound
  nil
end