class OpenShift::RoutingService

Abstract routing plug-in interface.

An optional routing plug-in may be used to communicate with infrastructure outside of OpenShift, such as an external load balancer or firewall.

Multiple routing plug-ins may be registered at the same time, or there may be none registered.

This class defines the abstract interface that plug-ins can implement in order to integrate with the external environment.

This class also proxies method calls to all registered plug-ins.

Public Class Methods

deregister_provider(provider) click to toggle source

Deregister a previously registered provider.

@param [Object] provider

An object to be removed from the list of providers.

@return [Object]

The deregistered object, or nil if the object was not found to
have been previously registered.
# File lib/openshift/routing_service.rb, line 37
def self.deregister_provider(provider)
  @routing_provider.delete provider
end
notify_create_application(app) click to toggle source
# File lib/openshift/routing_service.rb, line 46
def self.notify_create_application(app)
  notify_providers :notify_create_application, app
end
notify_create_public_endpoint(app, endpoint_name, public_ip, public_port) click to toggle source
# File lib/openshift/routing_service.rb, line 54
def self.notify_create_public_endpoint(app, endpoint_name, public_ip, public_port)
  notify_providers :notify_create_public_endpoint, app, endpoint_name, public_ip, public_port
end
notify_delete_application(app) click to toggle source
# File lib/openshift/routing_service.rb, line 50
def self.notify_delete_application(app)
  notify_providers :notify_delete_application, app
end
notify_delete_public_endpoint(app, endpoint_name, public_ip, public_port) click to toggle source
# File lib/openshift/routing_service.rb, line 58
def self.notify_delete_public_endpoint(app, endpoint_name, public_ip, public_port)
  notify_providers :notify_delete_public_endpoint, app, endpoint_name, public_ip, public_port
end
notify_providers(event, *args) click to toggle source

Notify provider objects of an event.

# File lib/openshift/routing_service.rb, line 42
def self.notify_providers(event, *args)
  @routing_provider.each { |p| p.send(event, *args) if p.respond_to?(event) }
end
register_provider(provider) click to toggle source

Register a provider object to which method calls will be proxied.

@param [Object] provider

An object to which method calls will be proxied.

@return [[Object]]

The list of classes to which method calls will be proxied.
# File lib/openshift/routing_service.rb, line 26
def self.register_provider(provider)
  @routing_provider << provider
end

Public Instance Methods

notify_create_public_endpoint(app, endpoint_name, public_ip, public_port) click to toggle source

Expose a new public endpoint.

@param [OpenShift::Application] app

The application to which the endpoint routes.

@param [String] endpoint_name

The name of the new endpoint.

@param [String] endpoint_port

The the public port for the new endpoint.

@return [Object]

The response from the service provider in what ever form
that takes.
# File lib/openshift/routing_service.rb, line 76
def notify_create_public_endpoint(app, endpoint_name, public_ip, public_port)
end
notify_delete_public_endpoint(app, endpoint_name, public_ip, public_port) click to toggle source

Delete an existing public endpoint.

@param [OpenShift::Application] app

The application to which the endpoint routes.

@param [String] endpoint_name

The name of the new endpoint.

@param [String] endpoint_port

The the public port for the new endpoint.

@return [Object]

The response from the service provider in what ever form
that takes
# File lib/openshift/routing_service.rb, line 90
def notify_delete_public_endpoint(app, endpoint_name, public_ip, public_port)
end