725c7aa466
* The IP addresses handed by Neutron’s ipam are no longer sequential per the following commit:dcb2a931b5
Several UTs were making sequential assignment assumptions and were expecting specific IP address allocations. These had to be refactored appropriately by checking if the assigned IP address belongs to the expected CIDR. * There was a bug in Neutron until stable/mitaka which prevented duplicate SG rules being added. Since that is fixed in stable/newton overlapping SG rules can be added within the same tenant, see:3c1a068c7a
We actually dont want to add overlapping rules in the resource_mapping driver, hence a check was added to prevent adding of duplicate rules. * The unit test discovery path is being set to "gbpservice/neutron" in .testr.conf to avoid running the tests in gbpservice/contrib path which currently have some NFP related tests. The path can be reverted back to “gbpservice” once the contrib code has been updated. * There is a bug in the neutron code which always requires passing the filters argument (even if empty) to get_sg_rules() call. * The flavors service plugin needs to be explicitly configured in the UTs:0e3f4b8335
* The use of unittest has been migrated to using unittest2. * The default tenant in the Neutron UTs is no longer ‘test-tenant’. Instead the following constant should be used: neutron.tests.unit.db.test_db_base_plugin_v2.TEST_TENANT_ID * The project_id is now being added to the resource by the API layer. The extension test cases had to be updated to accommodate for this extra argument. * Neutron now sends DHCP and Nova notifications for operations on resources from the ML2 plugin. See the following relevant commits in Neutron:181bdb374f
a5cd3b65d1
877778ee4c
a4df99ff5d
With the above changes, it is no longer needed for GBP to send DHCP and Nova notifications (previously being sent from local_api.py). The neutron_resource and the aim_mapping drivers, which attempt to provide transactional semantics, still need the queueing functionality on the notification framework, so this is being preserved. The send_or_queue_notification method from this framework is also being preserved since the aim_mapping driver makes use of this method to send specific notifications which are outside the scope of the notifications that Neutron sends. When the ML2Plus plugin is used for the aim_mapping driver, Neutron’s registry notification is patched to allow the notification to be queued. It should be noted that at this point, some notifications cannot be queued since for some resources the existence checks fail if they are queued and sent at a later time. In such cases, the notifications are sent immediately. This logic needs to be revisited. * The _get_tenant_id_for_create() method was removed in Neutron since the context object provides the project_id:5d53dfb8d6
GBP should also follow this approach, however its a big change, mostly in the UTs. So this patch temporarily adds the _get_tenant_id_for_create() method to the GBP service plugins. * The patch for create_floatingip in gbpservice/neutron/extensions/patch.py is no longer needed and is being removed. Other such methods in the module cannot be blindly removed, so for now, they have been updated to sync with their newton version, but should be revisited to explore their removal. * The ml2_network_segments table was renamed to network segments, and the allowed_address_pair definition was moved in neutron:c8fca1c96f
7c0f189309
* DB objects are being detached from the session when the extension attribute processing happens. However, ml2plus needs the session context in the extend_dict functions. Hence, a utility function was added in gbpservice/neutron/plugins/ml2plus/patch_neutron.py to get the currently active session. * The following change adds a transaction guard to some operations which prevent then from being called from within a transaction: https://review.openstack.org/gitweb?p=openstack/neutron.git;a=commitdiff;h=afe1a834000d33900b8646d308fa26fa807a2ca0 ml2plus however needs to support calling these operations from within a transaction. Hence the transaction guard is disabled by use of a decorator on the ml2plus functions. * Neutron defines a new dns-integration extension and all the DB related DNS handling was moved out of the DB core plugin:64f5fc8259
* Retry decorator has been added to ml2plus methods to align with the following:acbabaa3db
09c87425fa
* A bug in the aim_mapping log statements was fixed by using vars() to displace aim resource dictionary attributes. * A bug was fixed in the test_apic_aim code, where the tests set the expected value of dns_name to None, but the implementation sets it to ‘’. * The following changes were made to move things to neutron_lib and have been refactored in this patch: ** neutron.db.model_base was moved to neutron_lib:61cc14fd67
** neutron.common.exceptions was moved to neutron_lib, and has been refactored here. ** The converter and validator functions in neutron.api.v2.attributes were moved to neutron_lib and has been refactored here. ** Constants like ATTR_NOT_SPECIFIED have been moved from neutron.api.v2.attributes to neutron_lib and has been refactored here. Note that the integration tests fail in this patch since the DB schema needs to be updated to rename the tenant_id column to project_id. This is being done in the dependent patch, and the integration tests should be validated on that patch. Follow up items: * The following test fails sporadically: gbpservice.neutron.tests.unit.services.grouppolicy.test_aim_mapping_driver.TestNeutronPortOperation.test_gbp_details_for_allowed_address_pair * Some hacking directives have been disabled and need to enabled but will * require significant code refactoring. * HasId and HasTenant are deprecated, move to HasProject and HasId in * model_base, see commit:61cc14fd67 (diff-b923b82d6a7b3c5cd77c32354ffc9f13)
* A couple of UTs are being skipped in: * gbpservice/neutron/tests/unit/plugins/ml2plus/test_extension_driver_api.py * and need to updated per the comments in the code. Change-Id: I887ee6cfca8199710cf5c653b5f57dff86bb035a
47 lines
1.8 KiB
Plaintext
47 lines
1.8 KiB
Plaintext
# The order of packages is significant, because pip processes them in the order
|
|
# of appearance. Changing the order has an impact on the overall integration
|
|
# process, which may cause wedges in the gate later.
|
|
|
|
-e git+https://git.openstack.org/openstack/neutron.git@stable/newton#egg=neutron
|
|
|
|
# TODO(rkukura): Switch apicapi back to master branch eventually.
|
|
-e git+https://github.com/noironetworks/apicapi.git@aci_integration_manager#egg=apicapi
|
|
|
|
-e git+https://github.com/noironetworks/python-opflex-agent.git@master#egg=python-opflexagent-agent
|
|
-e git+https://github.com/noironetworks/apic-ml2-driver.git@master#egg=apic_ml2
|
|
|
|
-e git+https://git.openstack.org/openstack/python-group-based-policy-client@master#egg=gbpclient
|
|
-e git+https://git.openstack.org/openstack/neutron-vpnaas@stable/newton#egg=neutron-vpnaas
|
|
-e git+https://git.openstack.org/openstack/neutron-lbaas@stable/newton#egg=neutron-lbaas
|
|
-e git+https://git.openstack.org/openstack/neutron-fwaas@stable/newton#egg=neutron-fwaas
|
|
hacking<0.12,>=0.11.0 # Apache-2.0
|
|
|
|
cliff>=1.15.0 # Apache-2.0
|
|
coverage>=3.6 # Apache-2.0
|
|
fixtures>=3.0.0 # Apache-2.0/BSD
|
|
httplib2>=0.7.5
|
|
mock>=2.0 # BSD
|
|
python-subunit>=0.0.18 # Apache-2.0/BSD
|
|
requests-mock>=1.0 # Apache-2.0
|
|
sphinx!=1.3b1,<1.3,>=1.2.1 # BSD
|
|
ordereddict
|
|
testrepository>=0.0.18 # Apache-2.0/BSD
|
|
testtools>=1.4.0 # MIT
|
|
testresources>=0.2.4 # Apache-2.0/BSD
|
|
testscenarios>=0.4 # Apache-2.0/BSD
|
|
WebTest>=2.0 # MIT
|
|
oslotest>=1.10.0 # Apache-2.0
|
|
os-testr>=0.7.0 # Apache-2.0
|
|
ddt>=1.0.1 # MIT
|
|
pylint==1.4.5 # GNU GPL v2
|
|
reno>=1.8.0 # Apache2
|
|
pyOpenSSL>=0.13.0,<=0.15.1
|
|
|
|
# Since version numbers for these are specified in
|
|
# https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt,
|
|
# they cannot be refernced as GIT URLs
|
|
python-heatclient
|
|
python-keystoneclient
|
|
|
|
-e git+https://github.com/noironetworks/aci-integration-module.git#egg=aci-integration-module
|