Sha256: 962318397cb36ac4b315088e67d78e5c6d0f489c0eddb7a1f55ef1aab90ded4e

Contents?: true

Size: 1.67 KB

Versions: 1

Compression:

Stored size: 1.67 KB

Contents

#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.  The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License.  You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
# License for the specific language governing permissions and limitations
# under the License.


class LoadBalancer < BaseModel

  attr_accessor :realms
  attr_accessor :listeners
  attr_accessor :instances
  attr_accessor :public_addresses
  attr_accessor :created_at

  def add_listener(opts)
    @listeners << Listener.new(opts)
  end

  def to_hash(context)
    {
      :id => self.id,
      :href => context.load_balancer_url(self.id),
      :realms => realms,
      :listeners => listeners.map { |l| l.to_hash(context) },
      :instances => instances.map { |i| i.to_hash(context) },
      :public_addresses => public_addresses,
      :created_at => created_at
    }
  end

  class Listener < BaseModel
    attr_accessor :protocol
    attr_accessor :load_balancer_port
    attr_accessor :instance_port

    def to_hash(context)
      {
        :id => self.id,
        :protocol => protocol,
        :load_balancer_port => load_balancer_port,
        :instance_port => instance_port
      }
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
deltacloud-core-1.1.1 lib/deltacloud/models/load_balancer.rb