
Implements blueprint embrane-lbaas-driver This commit implements Embrane's driver for LBaaS, which uses Embrane's heleos(tm) appliances to provide Load Balancing. Change-Id: Ia76fbc8881d178cfe6df11a2cfe8e77d3f36094f
75 lines
2.8 KiB
Python
75 lines
2.8 KiB
Python
# Copyright 2014 Embrane, Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed 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.
|
|
#
|
|
# @author: Ivar Lazzaro, Embrane, Inc. ivar@embrane.com
|
|
|
|
from heleosapi import constants as h_con
|
|
from heleosapi import exceptions as h_exc
|
|
|
|
from neutron.plugins.common import constants as ccon
|
|
|
|
DELETED = 'DELETED' # not visible status
|
|
QUEUE_TIMEOUT = 300
|
|
BACK_SUB_LIMIT = 6
|
|
|
|
|
|
class BackendActions:
|
|
UPDATE = 'update'
|
|
GROW = 'grow'
|
|
REMOVE = 'remove'
|
|
SHRINK = 'shrink'
|
|
|
|
|
|
class Events:
|
|
CREATE_VIP = 'create_vip'
|
|
UPDATE_VIP = 'update_vip'
|
|
DELETE_VIP = 'delete_vip'
|
|
UPDATE_POOL = 'update_pool'
|
|
UPDATE_MEMBER = 'update_member'
|
|
ADD_OR_UPDATE_MEMBER = 'add_or_update_member'
|
|
REMOVE_MEMBER = 'remove_member'
|
|
DELETE_MEMBER = 'delete_member'
|
|
POLL_GRAPH = 'poll_graph'
|
|
ADD_POOL_HM = "create_pool_hm"
|
|
UPDATE_POOL_HM = "update_pool_hm"
|
|
DELETE_POOL_HM = "delete_pool_hm"
|
|
|
|
|
|
_DVA_PENDING_ERROR_MSG = _('Dva is pending for the following reason: %s')
|
|
_DVA_NOT_FOUNT_ERROR_MSG = _('%s, '
|
|
'probably was cancelled through the heleos UI')
|
|
_DVA_BROKEN_ERROR_MSG = _('Dva seems to be broken for reason %s')
|
|
_DVA_CREATION_FAILED_ERROR_MSG = _('Dva creation failed reason %s')
|
|
_DVA_CREATION_PENDING_ERROR_MSG = _('Dva creation is in pending state '
|
|
'for reason %s')
|
|
_CFG_FAILED_ERROR_MSG = _('Dva configuration failed for reason %s')
|
|
_DVA_DEL_FAILED_ERROR_MSG = _('Failed to delete the backend '
|
|
'load balancer for reason %s. Please remove '
|
|
'it manually through the heleos UI')
|
|
NO_MEMBER_SUBNET_WARN = _('No subnet is associated to member %s (required '
|
|
'to identify the proper load balancer port)')
|
|
|
|
error_map = {h_exc.PendingDva: _DVA_PENDING_ERROR_MSG,
|
|
h_exc.DvaNotFound: _DVA_NOT_FOUNT_ERROR_MSG,
|
|
h_exc.BrokenDva: _DVA_BROKEN_ERROR_MSG,
|
|
h_exc.DvaCreationFailed: _DVA_CREATION_FAILED_ERROR_MSG,
|
|
h_exc.DvaCreationPending: _DVA_CREATION_PENDING_ERROR_MSG,
|
|
h_exc.ConfigurationFailed: _CFG_FAILED_ERROR_MSG,
|
|
h_exc.DvaDeleteFailed: _DVA_DEL_FAILED_ERROR_MSG}
|
|
|
|
state_map = {h_con.DvaState.POWER_ON: ccon.ACTIVE,
|
|
None: ccon.ERROR,
|
|
DELETED: DELETED}
|