Merge "NSX|V log warning when getting a router-binding entry with bad status"
This commit is contained in:
commit
73a896e762
@ -23,3 +23,4 @@ oslo.utils>=3.5.0 # Apache-2.0
|
|||||||
oslo.vmware>=1.16.0 # Apache-2.0
|
oslo.vmware>=1.16.0 # Apache-2.0
|
||||||
PrettyTable<0.8,>=0.7 # BSD
|
PrettyTable<0.8,>=0.7 # BSD
|
||||||
tooz>=1.28.0 # Apache-2.0
|
tooz>=1.28.0 # Apache-2.0
|
||||||
|
decorator>=3.4.0 # BSD
|
||||||
|
@ -15,6 +15,9 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
import neutron.db.api as db
|
import neutron.db.api as db
|
||||||
|
from neutron.plugins.common import constants as neutron_const
|
||||||
|
|
||||||
|
import decorator
|
||||||
from oslo_db import exception as db_exc
|
from oslo_db import exception as db_exc
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
from oslo_utils import excutils
|
from oslo_utils import excutils
|
||||||
@ -23,7 +26,7 @@ from sqlalchemy import func
|
|||||||
from sqlalchemy.orm import exc
|
from sqlalchemy.orm import exc
|
||||||
from sqlalchemy.sql import expression as expr
|
from sqlalchemy.sql import expression as expr
|
||||||
|
|
||||||
from vmware_nsx._i18n import _, _LE
|
from vmware_nsx._i18n import _, _LE, _LW
|
||||||
from vmware_nsx.common import exceptions as nsx_exc
|
from vmware_nsx.common import exceptions as nsx_exc
|
||||||
from vmware_nsx.common import nsxv_constants
|
from vmware_nsx.common import nsxv_constants
|
||||||
from vmware_nsx.db import nsxv_models
|
from vmware_nsx.db import nsxv_models
|
||||||
@ -63,21 +66,50 @@ def add_nsxv_router_binding(session, router_id, vse_id, lswitch_id, status,
|
|||||||
return binding
|
return binding
|
||||||
|
|
||||||
|
|
||||||
|
@decorator.decorator
|
||||||
|
def warn_on_binding_status_error(f, *args, **kwargs):
|
||||||
|
result = f(*args, **kwargs)
|
||||||
|
if result is None:
|
||||||
|
return
|
||||||
|
# we support functions that return a single entry or a list
|
||||||
|
if type(result) == list:
|
||||||
|
bindings = result
|
||||||
|
else:
|
||||||
|
bindings = [result]
|
||||||
|
|
||||||
|
for binding in bindings:
|
||||||
|
if binding and binding['status'] == neutron_const.ERROR:
|
||||||
|
LOG.warning(_LW("Found NSXV router binding entry with status "
|
||||||
|
"%(status)s: router %(router)s, "
|
||||||
|
"edge %(edge)s, lswitch %(lswitch)s, "
|
||||||
|
"status description: %(desc)s "),
|
||||||
|
{'status': binding['status'],
|
||||||
|
'router': binding['router_id'],
|
||||||
|
'edge': binding['edge_id'],
|
||||||
|
'lswitch': binding['lswitch_id'],
|
||||||
|
'desc': binding['status_description']})
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
@warn_on_binding_status_error
|
||||||
def get_nsxv_router_binding(session, router_id):
|
def get_nsxv_router_binding(session, router_id):
|
||||||
return session.query(nsxv_models.NsxvRouterBinding).filter_by(
|
return session.query(nsxv_models.NsxvRouterBinding).filter_by(
|
||||||
router_id=router_id).first()
|
router_id=router_id).first()
|
||||||
|
|
||||||
|
|
||||||
|
@warn_on_binding_status_error
|
||||||
def get_nsxv_router_binding_by_edge(session, edge_id):
|
def get_nsxv_router_binding_by_edge(session, edge_id):
|
||||||
return session.query(nsxv_models.NsxvRouterBinding).filter_by(
|
return session.query(nsxv_models.NsxvRouterBinding).filter_by(
|
||||||
edge_id=edge_id).first()
|
edge_id=edge_id).first()
|
||||||
|
|
||||||
|
|
||||||
|
@warn_on_binding_status_error
|
||||||
def get_nsxv_router_bindings_by_edge(session, edge_id):
|
def get_nsxv_router_bindings_by_edge(session, edge_id):
|
||||||
return session.query(nsxv_models.NsxvRouterBinding).filter_by(
|
return session.query(nsxv_models.NsxvRouterBinding).filter_by(
|
||||||
edge_id=edge_id).all()
|
edge_id=edge_id).all()
|
||||||
|
|
||||||
|
|
||||||
|
@warn_on_binding_status_error
|
||||||
def get_nsxv_router_bindings(session, filters=None,
|
def get_nsxv_router_bindings(session, filters=None,
|
||||||
like_filters=None):
|
like_filters=None):
|
||||||
session = db.get_session()
|
session = db.get_session()
|
||||||
|
Loading…
Reference in New Issue
Block a user