V2T cmigration: Add validation on QoS limits
Change-Id: Ie7ef79652c41d823c6882b2166b249f848c916b4
This commit is contained in:
parent
c8ef8d263c
commit
1748e7cb4b
@ -19,6 +19,7 @@ from oslo_config import cfg
|
|||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
|
|
||||||
from networking_l2gw.db.l2gateway import l2gateway_models
|
from networking_l2gw.db.l2gateway import l2gateway_models
|
||||||
|
from neutron.services.qos import qos_plugin
|
||||||
from neutron_lib.api.definitions import allowedaddresspairs as addr_apidef
|
from neutron_lib.api.definitions import allowedaddresspairs as addr_apidef
|
||||||
from neutron_lib.api.definitions import provider_net as pnet
|
from neutron_lib.api.definitions import provider_net as pnet
|
||||||
from neutron_lib.api import validators
|
from neutron_lib.api import validators
|
||||||
@ -34,6 +35,7 @@ from vmware_nsx.plugins.nsx_v import availability_zones as nsx_az
|
|||||||
from vmware_nsx.services.lbaas.nsx_v import lbaas_common as lb_common
|
from vmware_nsx.services.lbaas.nsx_v import lbaas_common as lb_common
|
||||||
from vmware_nsx.services.lbaas.nsx_v3.implementation import lb_utils
|
from vmware_nsx.services.lbaas.nsx_v3.implementation import lb_utils
|
||||||
from vmware_nsx.services.lbaas.octavia import constants as oct_const
|
from vmware_nsx.services.lbaas.octavia import constants as oct_const
|
||||||
|
from vmware_nsx.services.qos.nsx_v3 import pol_utils as qos_utils
|
||||||
from vmware_nsx.shell.admin.plugins.common import constants
|
from vmware_nsx.shell.admin.plugins.common import constants
|
||||||
from vmware_nsx.shell.admin.plugins.common import utils as admin_utils
|
from vmware_nsx.shell.admin.plugins.common import utils as admin_utils
|
||||||
from vmware_nsx.shell.admin.plugins.nsxv.resources import utils
|
from vmware_nsx.shell.admin.plugins.nsxv.resources import utils
|
||||||
@ -317,6 +319,25 @@ def validate_config_for_migration(resource, event, trigger, **kwargs):
|
|||||||
"supported.", sg['id'])
|
"supported.", sg['id'])
|
||||||
n_errors = n_errors + 1
|
n_errors = n_errors + 1
|
||||||
|
|
||||||
|
# Validate QoS limits
|
||||||
|
qos_plugin_inst = qos_plugin.QoSPlugin()
|
||||||
|
policies = qos_plugin_inst.get_policies(admin_context)
|
||||||
|
for policy in policies:
|
||||||
|
for rule in policy.get('rules', []):
|
||||||
|
if rule.get('type') == 'bandwidth_limit':
|
||||||
|
# Validate the limits
|
||||||
|
if rule.get('max_kbps') < qos_utils.MAX_KBPS_MIN_VALUE:
|
||||||
|
LOG.error("ERROR: QoS Policy %s has max_kbps below the "
|
||||||
|
"minimal value of %s. This is not supported.",
|
||||||
|
policy['id'], rule['max_kbps'])
|
||||||
|
n_errors = n_errors + 1
|
||||||
|
if rule.get('max_burst_kbps') > qos_utils.MAX_BURST_MAX_VALUE:
|
||||||
|
LOG.error("ERROR: QoS Policy %s has max_burst_kbps above "
|
||||||
|
"the maximal value of %s. This is not "
|
||||||
|
"supported.",
|
||||||
|
policy['id'], rule['max_burst_kbps'])
|
||||||
|
n_errors = n_errors + 1
|
||||||
|
|
||||||
# L2GW is not supported with the policy plugin
|
# L2GW is not supported with the policy plugin
|
||||||
l2gws = admin_context.session.query(l2gateway_models.L2Gateway).all()
|
l2gws = admin_context.session.query(l2gateway_models.L2Gateway).all()
|
||||||
if len(l2gws):
|
if len(l2gws):
|
||||||
|
Loading…
Reference in New Issue
Block a user