1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/hp/models/network/router.rb

66 lines
1.4 KiB
Ruby

require 'fog/core/model'
module Fog
module HP
class Network
class Router < Fog::Model
identity :id
attribute :name
attribute :tenant_id
attribute :external_gateway_info
attribute :admin_state_up
attribute :status
def destroy
requires :id
service.delete_router(id)
true
end
def add_interface(subnet_id=nil, port_id=nil, options={})
requires :id
begin
service.add_router_interface(id, subnet_id, port_id, options).body['router']
true
rescue ArgumentError, Fog::HP::Network::NotFound
false
end
end
def remove_interface(subnet_id=nil, port_id=nil, options={})
requires :id
begin
service.remove_router_interface(id, subnet_id, port_id, options)
true
rescue ArgumentError, Fog::HP::Network::NotFound
false
end
end
def ready?
self.status == 'ACTIVE'
end
def save
identity ? update : create
end
private
def create
merge_attributes(service.create_router(attributes).body['router'])
true
end
def update
requires :id
merge_attributes(service.update_router(id, attributes).body['router'])
true
end
end
end
end
end