6ef87fe033
Similarly to what was done in 'allow_automatic_l3agent_failover' This patch adds a periodic check to examine the status of all LBaaS agents with loadbalancers scheduled to them. If the agent is dead, the loadbalancer will be rescheduled to an alive agent. The periodic LBaaS agents status check is invoked by add_agent_status_check_worker() which was introduced in neutron codebase in I3a32a95489831f0d862930384309eefdc881d8f6 to allow safe process forking. Closes-Bug: #1565511 Depends-On: I652ab029b7427c8783e4b2f0443a89ee884bf064 Change-Id: Id8d3218bf1e52722cc10ddcd34e3e734eef90658
57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
# Copyright 2013 OpenStack Foundation. 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.
|
|
#
|
|
|
|
"""
|
|
Neutron Lbaas base exception handling.
|
|
"""
|
|
|
|
from neutron_lib import exceptions
|
|
|
|
from neutron_lbaas._i18n import _LE
|
|
|
|
|
|
class ModelMapException(exceptions.NeutronException):
|
|
message = _LE("Unable to map model class %(target_name)s")
|
|
|
|
|
|
class LbaasException(exceptions.NeutronException):
|
|
pass
|
|
|
|
|
|
class TLSException(LbaasException):
|
|
pass
|
|
|
|
|
|
class NeedsPassphrase(TLSException):
|
|
message = _LE("Passphrase needed to decrypt key but client "
|
|
"did not provide one.")
|
|
|
|
|
|
class UnreadableCert(TLSException):
|
|
message = _LE("Could not read X509 from PEM")
|
|
|
|
|
|
class MisMatchedKey(TLSException):
|
|
message = _LE("Key and x509 certificate do not match")
|
|
|
|
|
|
class CertificateStorageException(TLSException):
|
|
message = _LE('Could not store certificate: %(msg)s')
|
|
|
|
|
|
class LoadbalancerReschedulingFailed(exceptions.Conflict):
|
|
message = _LE("Failed rescheduling loadbalancer %(loadbalancer_id)s: "
|
|
"no eligible lbaas agent found.")
|