Sha256: 3ea3cf4d60b8b8000c5efad5480882f1d50d8ea9b47902726bb9450d31356844

Contents?: true

Size: 1.19 KB

Versions: 2

Compression:

Stored size: 1.19 KB

Contents

module Yao::Resources
  class Router < Base
    include TenantAssociationable

    friendly_attributes :name, :description, :admin_state_up, :status, :external_gateway_info,
                        :network_id, :enable_snat, :external_fixed_ips, :routes, :destination, :nexthop, :distributed,
                        :ha, :availability_zone_hints, :availability_zones

    self.service        = 'network'
    self.resource_name  = 'router'
    self.resources_name = 'routers'

    # @return [Array<Yao::Resources::Port>]
    def interfaces
      Yao::Port.list(device_id: id)
    end

    class << self
      # @param id [String]
      # @param param [Hash]
      # @return [Hash]
      def add_interface(id, param)
        PUT(['routers', id, 'add_router_interface.json'].join('/'), param.to_json)
      end

      # @param id [String]
      # @param param [Hash]
      # @return [Hash]
      def remove_interface(id, param)
        PUT(['routers', id, 'remove_router_interface.json'].join('/'), param.to_json)
      end

      # @param name [String]
      # @return [Array<Yao::Resources::Router>]
      def get_by_name(name)
        self.list(name: name)
      end
      alias find_by_name get_by_name
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
yao-0.15.0 lib/yao/resources/router.rb
yao-0.14.0 lib/yao/resources/router.rb