Add AE-ID allocation/deallocation and notify function at vpg resource
partial-jira-bug: CEM-15158
Current behavior: An AE-ID per VPG/PR is added at ref between
VPG and PI and the function is available at VMI resource.
As a part of CEM-15158, this allocation needs to happen during
PI ref to VPG creation at VPG resource class.
After this change, for every PI ref update, an AE-ID will be allocated
and added as an ref attr at PI-VPG ref.
At this point of time, this function is called only from pre_dbe_update.
The same function may need to be called from pre_dbe_create as well but
its not clear how to publish allocated or deallocated AE-IDs.
So pre_dbe_create do not have AE-ID alloc/dealloc logic yet.
(squashed from 8c84b14)
Changeset-2:
Physical Interface can belong to only one Virtual Port Group
partial-jira-bug: CEM-15158
A physical-interface object can not be part of two different VPGs
This change verifies incoming PI that it do not belong to other VPGs
and throws BadRequest if given PI belong to other VPG.
In current implementation, this validation happens at VMI resource
which will be retried in next coming changes
(squashed from d063612)
Changeset-3:
Added support for pre_dbe_delete and pre_dbe_create
partial-jira-bug: CEM-15158
1. Added support for pre_dbe_delete
2. Added support for pre_dbe_create
3. For #1, updated deallocation logic
4. Added UT for both cases
(squashed from 0d0f40b)
Change-Id: I0c8522e1ed301c9390ccb8782570613b64446485
Changeset-4:
Added support for resource exhaustion error and more UTs
partial-jira-bug: CEM-15158
1. Added Resource Exhaustion exception when more than
supported AE-IDs are requested
2. Added UTs for all these usecases
(squashed from 035d119)
Changeset-5:
Removed reduntant code from virtual-machine-interface for AE allocation
closes-jira-bug: CEM-15158
1. AE-ID allocation log is now moved from virtual-machine-interface
resource class to virtual-port-group resource class
2. PEP-8 fixes
3. New UTs to cover ae-id alloc/dealloc for backward compatability
(squashed from 9e7aed6)
Changeset-6:
Rename _process_alloc_ae_id to _process_ae_id
1. remaning _process_alloc_ae_id to _process_ae_id for better
naming convention as it does both alloc and dealloc
(squashed from c0b75be)
Change-Id: Id0132b3f05b8bd5b85ff7dd4174945055875d3b2