diff --git a/gbpservice/neutron/db/all_models.py b/gbpservice/neutron/db/all_models.py new file mode 100644 index 000000000..1b4a37f0c --- /dev/null +++ b/gbpservice/neutron/db/all_models.py @@ -0,0 +1,66 @@ +# 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. + +# This module must import all modules from the GBP repo that define +# SQLAlchemy database models using Neutron's +# neutron_lib.db.model_base.BASEV2 base class. It also must itself be +# imported, directly or indirectly, by every test module for which +# Neutron's neutron.tests.unit.testlib_api.SqlFixture, or any derived +# class, manages the creation of the DB schema prior to running tests +# and the clearing of DB tables between tests. + +from gbpservice.neutron.db.grouppolicy.extensions import ( # noqa + apic_allowed_vm_name_db, + apic_auto_ptg_db, + apic_intra_ptg_db, + apic_reuse_bd_db, + apic_segmentation_label_db, + group_proxy_db +) +from gbpservice.neutron.db.grouppolicy import ( # noqa + group_policy_db, + group_policy_mapping_db +) +from gbpservice.neutron.db import ( # noqa + implicitsubnetpool_db, + servicechain_db +) +from gbpservice.neutron.plugins.ml2plus.drivers.apic_aim import ( # noqa + data_migrations, + db, + extension_db +) +from gbpservice.neutron.services.grouppolicy.drivers import ( # noqa + chain_mapping, + implicit_policy, + nsp_manager, + resource_mapping +) +from gbpservice.neutron.services.grouppolicy.drivers.cisco.apic import ( # noqa + port_ha_ipaddress_binding +) +from gbpservice.neutron.services.servicechain.plugins.ncp import ( # noqa + model +) +from gbpservice.neutron.services.servicechain.plugins.ncp.node_drivers import ( # noqa + heat_node_driver, + nfp_node_driver +) +from gbpservice.neutron.tests.unit.plugins.ml2plus.drivers import ( # noqa + extension_test +) +from gbpservice.neutron.tests.unit.services.grouppolicy.drivers import ( # noqa + extension_test +) + +# Note that the models in gbpservice.nfp.orchestrator.db.nfp_db_model +# are managed by a separate fixture, so are not imported here. diff --git a/gbpservice/neutron/services/grouppolicy/drivers/chain_mapping.py b/gbpservice/neutron/services/grouppolicy/drivers/chain_mapping.py index fecef7df1..88c2c2bc9 100644 --- a/gbpservice/neutron/services/grouppolicy/drivers/chain_mapping.py +++ b/gbpservice/neutron/services/grouppolicy/drivers/chain_mapping.py @@ -23,7 +23,6 @@ import sqlalchemy as sa from gbpservice.common import utils from gbpservice.network.neutronv2 import local_api from gbpservice.neutron.db.grouppolicy import group_policy_mapping_db as gpdb -from gbpservice.neutron.db import servicechain_db # noqa from gbpservice.neutron.services.grouppolicy import ( group_policy_driver_api as api) from gbpservice.neutron.services.grouppolicy.common import constants as gconst diff --git a/gbpservice/neutron/services/grouppolicy/drivers/resource_mapping.py b/gbpservice/neutron/services/grouppolicy/drivers/resource_mapping.py index 99cd46049..dca492622 100755 --- a/gbpservice/neutron/services/grouppolicy/drivers/resource_mapping.py +++ b/gbpservice/neutron/services/grouppolicy/drivers/resource_mapping.py @@ -37,7 +37,6 @@ from gbpservice.common import utils from gbpservice.network.neutronv2 import local_api from gbpservice.neutron.db.grouppolicy import group_policy_db as gpdb from gbpservice.neutron.db.grouppolicy import group_policy_mapping_db as gpmdb -from gbpservice.neutron.db import servicechain_db # noqa from gbpservice.neutron.extensions import driver_proxy_group as proxy_ext from gbpservice.neutron.extensions import group_policy as gp_ext from gbpservice.neutron.services.grouppolicy import ( diff --git a/gbpservice/neutron/tests/unit/db/grouppolicy/test_group_policy_db.py b/gbpservice/neutron/tests/unit/db/grouppolicy/test_group_policy_db.py index a8e73b6cb..0c6d990d2 100644 --- a/gbpservice/neutron/tests/unit/db/grouppolicy/test_group_policy_db.py +++ b/gbpservice/neutron/tests/unit/db/grouppolicy/test_group_policy_db.py @@ -20,17 +20,16 @@ import mock from neutron.api import extensions from neutron.api.rpc.callbacks.producer import registry from neutron import context -from neutron.db import api as db_api from neutron.plugins.common import constants from neutron import policy from neutron.tests.unit.api import test_extensions from neutron.tests.unit.db import test_db_base_plugin_v2 from neutron_lib import constants as nl_constants -from neutron_lib.db import model_base from neutron_lib.plugins import directory from oslo_utils import importutils from oslo_utils import uuidutils +from gbpservice.neutron.db import all_models # noqa from gbpservice.neutron.db.grouppolicy import group_policy_db as gpdb from gbpservice.neutron.db import servicechain_db as svcchain_db from gbpservice.neutron.extensions import group_policy as gpolicy @@ -366,8 +365,6 @@ class GroupPolicyDbTestCase(GroupPolicyDBTestBase, if not ext_mgr: ext_mgr = extensions.PluginAwareExtensionManager.get_instance() self.ext_api = test_extensions.setup_extensions_middleware(ext_mgr) - engine = db_api.context_manager.writer.get_engine() - model_base.BASEV2.metadata.create_all(engine) plugins = directory.get_plugins() self._gbp_plugin = plugins.get(constants.GROUP_POLICY) diff --git a/gbpservice/neutron/tests/unit/db/grouppolicy/test_group_policy_mapping_db.py b/gbpservice/neutron/tests/unit/db/grouppolicy/test_group_policy_mapping_db.py index df16e19a1..e5942d5f1 100644 --- a/gbpservice/neutron/tests/unit/db/grouppolicy/test_group_policy_mapping_db.py +++ b/gbpservice/neutron/tests/unit/db/grouppolicy/test_group_policy_mapping_db.py @@ -14,9 +14,7 @@ import webob.exc from neutron import context as nctx -from neutron.db import api as db_api from neutron.tests.unit.extensions import test_l3 -from neutron_lib.db import model_base from gbpservice.neutron.db.grouppolicy import group_policy_mapping_db as gpmdb from gbpservice.neutron.services.grouppolicy.common import exceptions as gpexc @@ -59,8 +57,6 @@ class GroupPolicyMappingDbTestCase(tgpdb.GroupPolicyDbTestCase, core_plugin=core_plugin, gp_plugin=gp_plugin, service_plugins=service_plugins ) - engine = db_api.context_manager.writer.get_engine() - model_base.BASEV2.metadata.create_all(engine) class TestMappedGroupResources(GroupPolicyMappingDbTestCase, diff --git a/gbpservice/neutron/tests/unit/db/test_port_ha_ipaddress_binding.py b/gbpservice/neutron/tests/unit/db/test_port_ha_ipaddress_binding.py index fd0cd022b..f1fee88db 100644 --- a/gbpservice/neutron/tests/unit/db/test_port_ha_ipaddress_binding.py +++ b/gbpservice/neutron/tests/unit/db/test_port_ha_ipaddress_binding.py @@ -16,6 +16,7 @@ from neutron.tests.unit import testlib_api from oslo_db import exception as exc from oslo_utils import importutils +from gbpservice.neutron.db import all_models # noqa from gbpservice.neutron.services.grouppolicy.drivers.cisco.apic import ( port_ha_ipaddress_binding as ha) diff --git a/gbpservice/neutron/tests/unit/plugins/ml2plus/test_apic_aim.py b/gbpservice/neutron/tests/unit/plugins/ml2plus/test_apic_aim.py index 8af012a6a..119f9f9ef 100644 --- a/gbpservice/neutron/tests/unit/plugins/ml2plus/test_apic_aim.py +++ b/gbpservice/neutron/tests/unit/plugins/ml2plus/test_apic_aim.py @@ -50,7 +50,7 @@ from opflexagent import constants as ofcst from oslo_config import cfg import webob.exc -from gbpservice.neutron.db import implicitsubnetpool_db # noqa +from gbpservice.neutron.db import all_models # noqa from gbpservice.neutron.extensions import cisco_apic_l3 as l3_ext from gbpservice.neutron.plugins.ml2plus.drivers.apic_aim import ( extension_db as extn_db) diff --git a/gbpservice/neutron/tests/unit/plugins/ml2plus/test_plugin.py b/gbpservice/neutron/tests/unit/plugins/ml2plus/test_plugin.py index f5f7bd9ba..5fe5b9974 100644 --- a/gbpservice/neutron/tests/unit/plugins/ml2plus/test_plugin.py +++ b/gbpservice/neutron/tests/unit/plugins/ml2plus/test_plugin.py @@ -23,7 +23,7 @@ from neutron.tests.unit.db import test_db_base_plugin_v2 as test_plugin from neutron.tests.unit.extensions import test_address_scope from neutron_lib.plugins import directory -from gbpservice.neutron.db import implicitsubnetpool_db # noqa +from gbpservice.neutron.db import all_models # noqa import gbpservice.neutron.extensions from gbpservice.neutron.tests.unit.plugins.ml2plus.drivers import ( mechanism_logger as mech_logger) diff --git a/gbpservice/neutron/tests/unit/plugins/ml2plus/test_tracked_resources.py b/gbpservice/neutron/tests/unit/plugins/ml2plus/test_tracked_resources.py index ec9af4951..ef5639108 100644 --- a/gbpservice/neutron/tests/unit/plugins/ml2plus/test_tracked_resources.py +++ b/gbpservice/neutron/tests/unit/plugins/ml2plus/test_tracked_resources.py @@ -18,7 +18,6 @@ from neutron.tests.unit.plugins.ml2 import ( test_tracked_resources as n_tracked) from neutron.tests.unit.plugins.ml2 import test_plugin -from gbpservice.neutron.db import implicitsubnetpool_db # noqa import gbpservice.neutron.extensions PLUGIN_NAME = 'ml2plus' diff --git a/gbpservice/neutron/tests/unit/services/grouppolicy/drivers/__init__.py b/gbpservice/neutron/tests/unit/services/grouppolicy/drivers/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/gbpservice/neutron/tests/unit/services/grouppolicy/drivers/extension_test.py b/gbpservice/neutron/tests/unit/services/grouppolicy/drivers/extension_test.py new file mode 100644 index 000000000..0278dcb7c --- /dev/null +++ b/gbpservice/neutron/tests/unit/services/grouppolicy/drivers/extension_test.py @@ -0,0 +1,282 @@ +# 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. + +from neutron_lib.db import model_base +import sqlalchemy as sa + +from gbpservice.neutron.services.grouppolicy import ( + group_policy_driver_api as api) +from gbpservice.neutron.tests.unit.services.grouppolicy.extensions import ( + test_extension as test_extension) + + +class TestPolicyTargetExtension(model_base.BASEV2): + __tablename__ = 'test_policy_target_extension' + policy_target_id = sa.Column(sa.String(36), + sa.ForeignKey('gp_policy_targets.id', + ondelete="CASCADE"), + primary_key=True) + pt_extension = sa.Column(sa.String(64)) + + +class TestPolicyTargetGroupExtension(model_base.BASEV2): + __tablename__ = 'test_policy_target_group_extension' + policy_target_group_id = sa.Column( + sa.String(36), sa.ForeignKey('gp_policy_target_groups.id', + ondelete="CASCADE"), + primary_key=True) + ptg_extension = sa.Column(sa.String(64)) + + +class TestL2PolicyExtension(model_base.BASEV2): + __tablename__ = 'test_l2_policy_extension' + l2_policy_id = sa.Column(sa.String(36), sa.ForeignKey('gp_l2_policies.id', + ondelete="CASCADE"), + primary_key=True) + l2p_extension = sa.Column(sa.String(64)) + + +class TestL3PolicyExtension(model_base.BASEV2): + __tablename__ = 'test_l3_policy_extension' + l3_policy_id = sa.Column(sa.String(36), + sa.ForeignKey('gp_l3_policies.id', + ondelete="CASCADE"), + primary_key=True) + l3p_extension = sa.Column(sa.String(64)) + + +class TestPolicyClassifierExtension(model_base.BASEV2): + __tablename__ = 'test_policy_classifier_extension' + policy_classifier_id = sa.Column(sa.String(36), + sa.ForeignKey('gp_policy_classifiers.id', + ondelete="CASCADE"), + primary_key=True) + pc_extension = sa.Column(sa.String(64)) + + +class TestPolicyActionExtension(model_base.BASEV2): + __tablename__ = 'test_policy_action_extension' + policy_action_id = sa.Column(sa.String(36), + sa.ForeignKey('gp_policy_actions.id', + ondelete="CASCADE"), + primary_key=True) + pa_extension = sa.Column(sa.String(64)) + + +class TestPolicyRuleExtension(model_base.BASEV2): + __tablename__ = 'test_policy_rule_extension' + policy_rule_id = sa.Column(sa.String(36), + sa.ForeignKey('gp_policy_rules.id', + ondelete="CASCADE"), + primary_key=True) + pr_extension = sa.Column(sa.String(64)) + + +class TestPolicyRuleSetExtension(model_base.BASEV2): + __tablename__ = 'test_policy_rule_set_extension' + policy_rule_set_id = sa.Column(sa.String(36), + sa.ForeignKey('gp_policy_rule_sets.id', + ondelete="CASCADE"), + primary_key=True) + prs_extension = sa.Column(sa.String(64)) + + +class TestNetworkServicePolicyExtension(model_base.BASEV2): + __tablename__ = 'test_network_service_policy_extension' + network_service_policy_id = sa.Column(sa.String(36), + sa.ForeignKey('gp_network_service_policies.id', + ondelete="CASCADE"), + primary_key=True) + nsp_extension = sa.Column(sa.String(64)) + + +class TestExternalSegmentExtension(model_base.BASEV2): + __tablename__ = 'test_external_segment_extension' + external_segment_id = sa.Column(sa.String(36), + sa.ForeignKey('gp_external_segments.id', + ondelete="CASCADE"), + primary_key=True) + es_extension = sa.Column(sa.String(64)) + + +class TestExternalPolicyExtension(model_base.BASEV2): + __tablename__ = 'test_external_policy_extension' + external_policy_id = sa.Column(sa.String(36), + sa.ForeignKey('gp_external_policies.id', + ondelete="CASCADE"), + primary_key=True) + ep_extension = sa.Column(sa.String(64)) + + +class TestNatPoolExtension(model_base.BASEV2): + __tablename__ = 'test_nat_pool_extension' + nat_pool_id = sa.Column(sa.String(36), + sa.ForeignKey('gp_nat_pools.id', + ondelete="CASCADE"), + primary_key=True) + np_extension = sa.Column(sa.String(64)) + + +class TestExtensionDriver(api.ExtensionDriver): + _supported_extension_alias = 'test_extension' + _extension_dict = test_extension.EXTENDED_ATTRIBUTES_2_0 + + def initialize(self): + pass + + @property + def extension_alias(self): + return self._supported_extension_alias + + @api.default_extension_behavior(TestPolicyTargetExtension) + def process_create_policy_target(self, session, data, result): + pass + + @api.default_extension_behavior(TestPolicyTargetExtension) + def process_update_policy_target(self, session, data, result): + pass + + @api.default_extension_behavior(TestPolicyTargetExtension) + def extend_policy_target_dict(self, session, result): + pass + + @api.default_extension_behavior(TestPolicyTargetGroupExtension) + def process_create_policy_target_group(self, session, data, result): + pass + + @api.default_extension_behavior(TestPolicyTargetGroupExtension) + def process_update_policy_target_group(self, session, data, result): + pass + + @api.default_extension_behavior(TestPolicyTargetGroupExtension) + def extend_policy_target_group_dict(self, session, result): + pass + + @api.default_extension_behavior(TestL2PolicyExtension) + def process_create_l2_policy(self, session, data, result): + pass + + @api.default_extension_behavior(TestL2PolicyExtension) + def process_update_l2_policy(self, session, data, result): + pass + + @api.default_extension_behavior(TestL2PolicyExtension) + def extend_l2_policy_dict(self, session, result): + pass + + @api.default_extension_behavior(TestL3PolicyExtension) + def process_create_l3_policy(self, session, data, result): + pass + + @api.default_extension_behavior(TestL3PolicyExtension) + def process_update_l3_policy(self, session, data, result): + pass + + @api.default_extension_behavior(TestL3PolicyExtension) + def extend_l3_policy_dict(self, session, result): + pass + + @api.default_extension_behavior(TestPolicyClassifierExtension) + def process_create_policy_classifier(self, session, data, result): + pass + + @api.default_extension_behavior(TestPolicyClassifierExtension) + def process_update_policy_classifier(self, session, data, result): + pass + + @api.default_extension_behavior(TestPolicyClassifierExtension) + def extend_policy_classifier_dict(self, session, result): + pass + + @api.default_extension_behavior(TestPolicyActionExtension) + def process_create_policy_action(self, session, data, result): + pass + + @api.default_extension_behavior(TestPolicyActionExtension) + def process_update_policy_action(self, session, data, result): + pass + + @api.default_extension_behavior(TestPolicyActionExtension) + def extend_policy_action_dict(self, session, result): + pass + + @api.default_extension_behavior(TestPolicyRuleExtension) + def process_create_policy_rule(self, session, data, result): + pass + + @api.default_extension_behavior(TestPolicyRuleExtension) + def process_update_policy_rule(self, session, data, result): + pass + + @api.default_extension_behavior(TestPolicyRuleExtension) + def extend_policy_rule_dict(self, session, result): + pass + + @api.default_extension_behavior(TestPolicyRuleSetExtension) + def process_create_policy_rule_set(self, session, data, result): + pass + + @api.default_extension_behavior(TestPolicyRuleSetExtension) + def process_update_policy_rule_set(self, session, data, result): + pass + + @api.default_extension_behavior(TestPolicyRuleSetExtension) + def extend_policy_rule_set_dict(self, session, result): + pass + + @api.default_extension_behavior(TestNetworkServicePolicyExtension) + def process_create_network_service_policy(self, session, data, result): + pass + + @api.default_extension_behavior(TestNetworkServicePolicyExtension) + def process_update_network_service_policy(self, session, data, result): + pass + + @api.default_extension_behavior(TestNetworkServicePolicyExtension) + def extend_network_service_policy_dict(self, session, result): + pass + + @api.default_extension_behavior(TestExternalSegmentExtension) + def process_create_external_segment(self, session, data, result): + pass + + @api.default_extension_behavior(TestExternalSegmentExtension) + def process_update_external_segment(self, session, data, result): + pass + + @api.default_extension_behavior(TestExternalSegmentExtension) + def extend_external_segment_dict(self, session, result): + pass + + @api.default_extension_behavior(TestExternalPolicyExtension) + def process_create_external_policy(self, session, data, result): + pass + + @api.default_extension_behavior(TestExternalPolicyExtension) + def process_update_external_policy(self, session, data, result): + pass + + @api.default_extension_behavior(TestExternalPolicyExtension) + def extend_external_policy_dict(self, session, result): + pass + + @api.default_extension_behavior(TestNatPoolExtension) + def process_create_nat_pool(self, session, data, result): + pass + + @api.default_extension_behavior(TestNatPoolExtension) + def process_update_nat_pool(self, session, data, result): + pass + + @api.default_extension_behavior(TestNatPoolExtension) + def extend_nat_pool_dict(self, session, result): + pass diff --git a/gbpservice/neutron/tests/unit/services/grouppolicy/test_extension_driver_api.py b/gbpservice/neutron/tests/unit/services/grouppolicy/test_extension_driver_api.py index 3d3a6a0ba..1cca7f151 100644 --- a/gbpservice/neutron/tests/unit/services/grouppolicy/test_extension_driver_api.py +++ b/gbpservice/neutron/tests/unit/services/grouppolicy/test_extension_driver_api.py @@ -13,19 +13,13 @@ import os from neutron.common import config as neutron_config # noqa -from neutron_lib.db import model_base -import sqlalchemy as sa -from gbpservice.neutron.services.grouppolicy import ( - group_policy_driver_api as api) from gbpservice.neutron.services.grouppolicy import config from gbpservice.neutron.tests.unit import common as cm from gbpservice.neutron.tests.unit.services.grouppolicy import ( extensions as test_ext) from gbpservice.neutron.tests.unit.services.grouppolicy import ( test_grouppolicy_plugin as test_plugin) -from gbpservice.neutron.tests.unit.services.grouppolicy.extensions import ( - test_extension as test_extension) class ExtensionDriverTestBase(test_plugin.GroupPolicyPluginTestCase): @@ -449,268 +443,5 @@ class ExtensionDriverTestCase(ExtensionDriverTestBase): self.assertEqual("def", val) -class TestPolicyTargetExtension(model_base.BASEV2): - __tablename__ = 'test_policy_target_extension' - policy_target_id = sa.Column(sa.String(36), - sa.ForeignKey('gp_policy_targets.id', - ondelete="CASCADE"), - primary_key=True) - pt_extension = sa.Column(sa.String(64)) - - -class TestPolicyTargetGroupExtension(model_base.BASEV2): - __tablename__ = 'test_policy_target_group_extension' - policy_target_group_id = sa.Column( - sa.String(36), sa.ForeignKey('gp_policy_target_groups.id', - ondelete="CASCADE"), - primary_key=True) - ptg_extension = sa.Column(sa.String(64)) - - -class TestL2PolicyExtension(model_base.BASEV2): - __tablename__ = 'test_l2_policy_extension' - l2_policy_id = sa.Column(sa.String(36), sa.ForeignKey('gp_l2_policies.id', - ondelete="CASCADE"), - primary_key=True) - l2p_extension = sa.Column(sa.String(64)) - - -class TestL3PolicyExtension(model_base.BASEV2): - __tablename__ = 'test_l3_policy_extension' - l3_policy_id = sa.Column(sa.String(36), - sa.ForeignKey('gp_l3_policies.id', - ondelete="CASCADE"), - primary_key=True) - l3p_extension = sa.Column(sa.String(64)) - - -class TestPolicyClassifierExtension(model_base.BASEV2): - __tablename__ = 'test_policy_classifier_extension' - policy_classifier_id = sa.Column(sa.String(36), - sa.ForeignKey('gp_policy_classifiers.id', - ondelete="CASCADE"), - primary_key=True) - pc_extension = sa.Column(sa.String(64)) - - -class TestPolicyActionExtension(model_base.BASEV2): - __tablename__ = 'test_policy_action_extension' - policy_action_id = sa.Column(sa.String(36), - sa.ForeignKey('gp_policy_actions.id', - ondelete="CASCADE"), - primary_key=True) - pa_extension = sa.Column(sa.String(64)) - - -class TestPolicyRuleExtension(model_base.BASEV2): - __tablename__ = 'test_policy_rule_extension' - policy_rule_id = sa.Column(sa.String(36), - sa.ForeignKey('gp_policy_rules.id', - ondelete="CASCADE"), - primary_key=True) - pr_extension = sa.Column(sa.String(64)) - - -class TestPolicyRuleSetExtension(model_base.BASEV2): - __tablename__ = 'test_policy_rule_set_extension' - policy_rule_set_id = sa.Column(sa.String(36), - sa.ForeignKey('gp_policy_rule_sets.id', - ondelete="CASCADE"), - primary_key=True) - prs_extension = sa.Column(sa.String(64)) - - -class TestNetworkServicePolicyExtension(model_base.BASEV2): - __tablename__ = 'test_network_service_policy_extension' - network_service_policy_id = sa.Column(sa.String(36), - sa.ForeignKey('gp_network_service_policies.id', - ondelete="CASCADE"), - primary_key=True) - nsp_extension = sa.Column(sa.String(64)) - - -class TestExternalSegmentExtension(model_base.BASEV2): - __tablename__ = 'test_external_segment_extension' - external_segment_id = sa.Column(sa.String(36), - sa.ForeignKey('gp_external_segments.id', - ondelete="CASCADE"), - primary_key=True) - es_extension = sa.Column(sa.String(64)) - - -class TestExternalPolicyExtension(model_base.BASEV2): - __tablename__ = 'test_external_policy_extension' - external_policy_id = sa.Column(sa.String(36), - sa.ForeignKey('gp_external_policies.id', - ondelete="CASCADE"), - primary_key=True) - ep_extension = sa.Column(sa.String(64)) - - -class TestNatPoolExtension(model_base.BASEV2): - __tablename__ = 'test_nat_pool_extension' - nat_pool_id = sa.Column(sa.String(36), - sa.ForeignKey('gp_nat_pools.id', - ondelete="CASCADE"), - primary_key=True) - np_extension = sa.Column(sa.String(64)) - - -class TestExtensionDriver(api.ExtensionDriver): - _supported_extension_alias = 'test_extension' - _extension_dict = test_extension.EXTENDED_ATTRIBUTES_2_0 - - def initialize(self): - pass - - @property - def extension_alias(self): - return self._supported_extension_alias - - @api.default_extension_behavior(TestPolicyTargetExtension) - def process_create_policy_target(self, session, data, result): - pass - - @api.default_extension_behavior(TestPolicyTargetExtension) - def process_update_policy_target(self, session, data, result): - pass - - @api.default_extension_behavior(TestPolicyTargetExtension) - def extend_policy_target_dict(self, session, result): - pass - - @api.default_extension_behavior(TestPolicyTargetGroupExtension) - def process_create_policy_target_group(self, session, data, result): - pass - - @api.default_extension_behavior(TestPolicyTargetGroupExtension) - def process_update_policy_target_group(self, session, data, result): - pass - - @api.default_extension_behavior(TestPolicyTargetGroupExtension) - def extend_policy_target_group_dict(self, session, result): - pass - - @api.default_extension_behavior(TestL2PolicyExtension) - def process_create_l2_policy(self, session, data, result): - pass - - @api.default_extension_behavior(TestL2PolicyExtension) - def process_update_l2_policy(self, session, data, result): - pass - - @api.default_extension_behavior(TestL2PolicyExtension) - def extend_l2_policy_dict(self, session, result): - pass - - @api.default_extension_behavior(TestL3PolicyExtension) - def process_create_l3_policy(self, session, data, result): - pass - - @api.default_extension_behavior(TestL3PolicyExtension) - def process_update_l3_policy(self, session, data, result): - pass - - @api.default_extension_behavior(TestL3PolicyExtension) - def extend_l3_policy_dict(self, session, result): - pass - - @api.default_extension_behavior(TestPolicyClassifierExtension) - def process_create_policy_classifier(self, session, data, result): - pass - - @api.default_extension_behavior(TestPolicyClassifierExtension) - def process_update_policy_classifier(self, session, data, result): - pass - - @api.default_extension_behavior(TestPolicyClassifierExtension) - def extend_policy_classifier_dict(self, session, result): - pass - - @api.default_extension_behavior(TestPolicyActionExtension) - def process_create_policy_action(self, session, data, result): - pass - - @api.default_extension_behavior(TestPolicyActionExtension) - def process_update_policy_action(self, session, data, result): - pass - - @api.default_extension_behavior(TestPolicyActionExtension) - def extend_policy_action_dict(self, session, result): - pass - - @api.default_extension_behavior(TestPolicyRuleExtension) - def process_create_policy_rule(self, session, data, result): - pass - - @api.default_extension_behavior(TestPolicyRuleExtension) - def process_update_policy_rule(self, session, data, result): - pass - - @api.default_extension_behavior(TestPolicyRuleExtension) - def extend_policy_rule_dict(self, session, result): - pass - - @api.default_extension_behavior(TestPolicyRuleSetExtension) - def process_create_policy_rule_set(self, session, data, result): - pass - - @api.default_extension_behavior(TestPolicyRuleSetExtension) - def process_update_policy_rule_set(self, session, data, result): - pass - - @api.default_extension_behavior(TestPolicyRuleSetExtension) - def extend_policy_rule_set_dict(self, session, result): - pass - - @api.default_extension_behavior(TestNetworkServicePolicyExtension) - def process_create_network_service_policy(self, session, data, result): - pass - - @api.default_extension_behavior(TestNetworkServicePolicyExtension) - def process_update_network_service_policy(self, session, data, result): - pass - - @api.default_extension_behavior(TestNetworkServicePolicyExtension) - def extend_network_service_policy_dict(self, session, result): - pass - - @api.default_extension_behavior(TestExternalSegmentExtension) - def process_create_external_segment(self, session, data, result): - pass - - @api.default_extension_behavior(TestExternalSegmentExtension) - def process_update_external_segment(self, session, data, result): - pass - - @api.default_extension_behavior(TestExternalSegmentExtension) - def extend_external_segment_dict(self, session, result): - pass - - @api.default_extension_behavior(TestExternalPolicyExtension) - def process_create_external_policy(self, session, data, result): - pass - - @api.default_extension_behavior(TestExternalPolicyExtension) - def process_update_external_policy(self, session, data, result): - pass - - @api.default_extension_behavior(TestExternalPolicyExtension) - def extend_external_policy_dict(self, session, result): - pass - - @api.default_extension_behavior(TestNatPoolExtension) - def process_create_nat_pool(self, session, data, result): - pass - - @api.default_extension_behavior(TestNatPoolExtension) - def process_update_nat_pool(self, session, data, result): - pass - - @api.default_extension_behavior(TestNatPoolExtension) - def extend_nat_pool_dict(self, session, result): - pass - - def _acronim(type): return ''.join([x[0] for x in type.split('_')]) diff --git a/gbpservice/neutron/tests/unit/services/grouppolicy/test_implicit_policy.py b/gbpservice/neutron/tests/unit/services/grouppolicy/test_implicit_policy.py index 45719abdc..5d3441af1 100644 --- a/gbpservice/neutron/tests/unit/services/grouppolicy/test_implicit_policy.py +++ b/gbpservice/neutron/tests/unit/services/grouppolicy/test_implicit_policy.py @@ -11,14 +11,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -from neutron.db import api as db_api -from neutron_lib.db import model_base from oslo_config import cfg import webob.exc -from gbpservice.neutron.db import servicechain_db # noqa -from gbpservice.neutron.services.servicechain.plugins.ncp import ( # noqa - model) # noqa from gbpservice.neutron.tests.unit.services.grouppolicy import ( test_grouppolicy_plugin as test_plugin) @@ -30,8 +25,6 @@ class ImplicitPolicyTestCase( cfg.CONF.set_override('policy_drivers', ['implicit_policy'], group='group_policy') super(ImplicitPolicyTestCase, self).setUp() - engine = db_api.context_manager.writer.get_engine() - model_base.BASEV2.metadata.create_all(engine) class TestImplicitL2Policy(ImplicitPolicyTestCase): diff --git a/gbpservice/neutron/tests/unit/services/grouppolicy/test_neutron_resources_driver.py b/gbpservice/neutron/tests/unit/services/grouppolicy/test_neutron_resources_driver.py index 133a7d1e9..079fe66c7 100644 --- a/gbpservice/neutron/tests/unit/services/grouppolicy/test_neutron_resources_driver.py +++ b/gbpservice/neutron/tests/unit/services/grouppolicy/test_neutron_resources_driver.py @@ -13,10 +13,8 @@ import mock from neutron import context as nctx -from neutron.db import api as db_api from neutron.plugins.common import constants as pconst from neutron_lib import constants -from neutron_lib.db import model_base from neutron_lib.plugins import directory import webob.exc @@ -52,8 +50,6 @@ class CommonNeutronBaseTestCase(test_plugin.GroupPolicyPluginTestBase): ml2_options=ml2_options, sc_plugin=sc_plugin, qos_plugin=qos_plugin) - engine = db_api.context_manager.writer.get_engine() - model_base.BASEV2.metadata.create_all(engine) res = mock.patch('neutron.db.l3_db.L3_NAT_dbonly_mixin.' '_check_router_needs_rescheduling').start() res.return_value = None diff --git a/gbpservice/neutron/tests/unit/services/grouppolicy/test_nsx_policy_mapping_driver.py b/gbpservice/neutron/tests/unit/services/grouppolicy/test_nsx_policy_mapping_driver.py index 12b48bd7a..eba8bd0b7 100644 --- a/gbpservice/neutron/tests/unit/services/grouppolicy/test_nsx_policy_mapping_driver.py +++ b/gbpservice/neutron/tests/unit/services/grouppolicy/test_nsx_policy_mapping_driver.py @@ -15,8 +15,6 @@ import mock from mock import call import webob.exc -from neutron.db import api as db_api -from neutron_lib.db import model_base from oslo_config import cfg from vmware_nsx.common import config from vmware_nsxlib.v3 import exceptions as nsxlib_exc @@ -41,9 +39,6 @@ class NsxPolicyMappingTestCase(test_rmd.ResourceMappingTestCase): # REVISIT (annak): currently run with ML2 plugin # core_plugin='vmware_nsx.plugin.NsxV3Plugin' - engine = db_api.context_manager.writer.get_engine() - model_base.BASEV2.metadata.create_all(engine) - self.driver = self._gbp_plugin.policy_driver_manager.policy_drivers[ 'nsx_policy'].obj self.nsx_policy = self.driver.nsx_policy diff --git a/gbpservice/neutron/tests/unit/services/grouppolicy/test_resource_mapping.py b/gbpservice/neutron/tests/unit/services/grouppolicy/test_resource_mapping.py index 93d092966..998546a8e 100644 --- a/gbpservice/neutron/tests/unit/services/grouppolicy/test_resource_mapping.py +++ b/gbpservice/neutron/tests/unit/services/grouppolicy/test_resource_mapping.py @@ -19,7 +19,6 @@ from keystonemiddleware import auth_token # noqa import mock import netaddr from neutron import context as nctx -from neutron.db import api as db_api from neutron.db.qos import models as qos_models from neutron.extensions import external_net as external_net from neutron.extensions import securitygroup as ext_sg @@ -29,7 +28,6 @@ from neutron.tests.unit.extensions import test_l3 from neutron.tests.unit.extensions import test_securitygroup from neutron.tests.unit.plugins.ml2 import test_plugin as n_test_plugin from neutron_lib import constants as cst -from neutron_lib.db import model_base from neutron_lib.plugins import directory from oslo_utils import uuidutils import unittest2 @@ -102,8 +100,6 @@ class ResourceMappingTestCase(test_plugin.GroupPolicyPluginTestCase): sc_plugin=sc_plugin, qos_plugin=qos_plugin) - engine = db_api.context_manager.writer.get_engine() - model_base.BASEV2.metadata.create_all(engine) res = mock.patch('neutron.db.l3_db.L3_NAT_dbonly_mixin.' '_check_router_needs_rescheduling').start() res.return_value = None diff --git a/gbpservice/neutron/tests/unit/services/servicechain/base_test_servicechain_plugin.py b/gbpservice/neutron/tests/unit/services/servicechain/base_test_servicechain_plugin.py index d16e356fd..53b430ea1 100644 --- a/gbpservice/neutron/tests/unit/services/servicechain/base_test_servicechain_plugin.py +++ b/gbpservice/neutron/tests/unit/services/servicechain/base_test_servicechain_plugin.py @@ -14,6 +14,7 @@ import ast import collections +from neutron.common import config from neutron import context as n_ctx from oslo_config import cfg from oslo_serialization import jsonutils @@ -49,6 +50,24 @@ class ServiceChainPluginTestCase(test_servicechain_db.ServiceChainDbTestCase): sc_plugin=sc_plugin or SC_PLUGIN_KLASS, gp_plugin=gp_plugin) + try: + config.cfg.CONF.keystone_authtoken.username + except config.cfg.NoSuchOptError: + config.cfg.CONF.register_opt( + config.cfg.StrOpt('username'), + 'keystone_authtoken') + try: + config.cfg.CONF.keystone_authtoken.password + except config.cfg.NoSuchOptError: + config.cfg.CONF.register_opt( + config.cfg.StrOpt('password'), + 'keystone_authtoken') + try: + config.cfg.CONF.keystone_authtoken.project_name + except config.cfg.NoSuchOptError: + config.cfg.CONF.register_opt( + config.cfg.StrOpt('project_name'), + 'keystone_authtoken') class BaseTestGroupPolicyPluginGroupResources( diff --git a/gbpservice/neutron/tests/unit/services/servicechain/ncp/test_ncp_plugin.py b/gbpservice/neutron/tests/unit/services/servicechain/ncp/test_ncp_plugin.py index 1f208fd4e..1d0e14e57 100644 --- a/gbpservice/neutron/tests/unit/services/servicechain/ncp/test_ncp_plugin.py +++ b/gbpservice/neutron/tests/unit/services/servicechain/ncp/test_ncp_plugin.py @@ -16,15 +16,12 @@ import webob.exc import mock from neutron.common import config # noqa from neutron import context as n_context -from neutron.db import api as db_api from neutron.plugins.common import constants as pconst -from neutron_lib.db import model_base from neutron_lib import exceptions as n_exc from neutron_lib.plugins import directory from oslo_config import cfg from oslo_serialization import jsonutils -from gbpservice.neutron.db.grouppolicy import group_policy_mapping_db # noqa from gbpservice.neutron.services.grouppolicy import config as gpconfig # noqa from gbpservice.neutron.services.servicechain.plugins.ncp import ( context as ncp_context) @@ -143,8 +140,6 @@ class NodeCompositionPluginTestCase( core_plugin=core_plugin or CORE_PLUGIN, gp_plugin=gp_plugin or GP_PLUGIN_KLASS, sc_plugin=SC_PLUGIN_KLASS) - engine = db_api.context_manager.writer.get_engine() - model_base.BASEV2.metadata.create_all(engine) self.driver = self.sc_plugin.driver_manager.ordered_drivers[0].obj def _create_simple_chain(self): @@ -828,8 +823,6 @@ class TestQuotasForServiceChain(test_base.ServiceChainPluginTestCase): core_plugin=core_plugin or CORE_PLUGIN, gp_plugin=gp_plugin or GP_PLUGIN_KLASS, sc_plugin=SC_PLUGIN_KLASS) - engine = db_api.context_manager.writer.get_engine() - model_base.BASEV2.metadata.create_all(engine) self.driver = self.sc_plugin.driver_manager.ordered_drivers[0].obj cfg.CONF.set_override('quota_servicechain_node', 1, group='QUOTAS') diff --git a/gbpservice/neutron/tests/unit/services/servicechain/ncp/test_nfp_node_driver.py b/gbpservice/neutron/tests/unit/services/servicechain/ncp/test_nfp_node_driver.py index 88eeaf50c..cc2ed1954 100644 --- a/gbpservice/neutron/tests/unit/services/servicechain/ncp/test_nfp_node_driver.py +++ b/gbpservice/neutron/tests/unit/services/servicechain/ncp/test_nfp_node_driver.py @@ -12,9 +12,7 @@ # limitations under the License. import mock -from neutron.db import api as db_api from neutron.plugins.common import constants -from neutron_lib.db import model_base from oslo_serialization import jsonutils import webob @@ -193,8 +191,6 @@ class NFPNodeDriverTestCase( core_plugin=CORE_PLUGIN, gp_plugin=GP_PLUGIN_KLASS, sc_plugin=SC_PLUGIN_KLASS) - engine = db_api.context_manager.writer.get_engine() - model_base.BASEV2.metadata.create_all(engine) def test_manager_initialized(self): mgr = self.plugin.driver_manager diff --git a/setup.cfg b/setup.cfg index ac24ebb42..e9ce24d74 100644 --- a/setup.cfg +++ b/setup.cfg @@ -49,7 +49,7 @@ neutron.service_plugins = nfp_fwaas = gbpservice.contrib.nfp.service_plugins.firewall.nfp_fwaas_plugin:NFPFirewallPlugin apic_aim_l3 = gbpservice.neutron.services.apic_aim.l3_plugin:ApicL3Plugin gbpservice.neutron.group_policy.extension_drivers = - test = gbpservice.neutron.tests.unit.services.grouppolicy.test_extension_driver_api:TestExtensionDriver + test = gbpservice.neutron.tests.unit.services.grouppolicy.drivers.extension_test:TestExtensionDriver proxy_group = gbpservice.neutron.services.grouppolicy.drivers.extensions.proxy_group_driver:ProxyGroupDriver aim_extension = gbpservice.neutron.services.grouppolicy.drivers.extensions.aim_mapping_extension_driver:AIMExtensionDriver apic_segmentation_label = gbpservice.neutron.services.grouppolicy.drivers.extensions.apic_segmentation_label_driver:ApicSegmentationLabelExtensionDriver