Operational policy implementation is aimed to allow for the customization of the deployment and location planning process but not only. The Policies aim to allow to change the system's behaviour in a user-controlled manner.
The 2 Policy types were distinguished:
system-scoped - applicable to the whole system functioning
resource-scoped - applicable to the specific resource like a robot or the Network Application instance
The Policies available in the Middleware will be predefined. Their operational properties will be user managed, but the end-user will not be able to delete or add any new custom policy definitions.
The user-managed properties of the Policies will be:
Is Policy active,
Priority of the Policy,
Assignment of the resource-scoped policy to the specified Network Application
As an initial policy, the LocationSelection Policy type has been created to support the integration with the 5G testbed. The developed UrllcSliceLocation Policy aims to find the Middleware location with the Urllc slice that has the lowest latency.
Fixes #124, #67
Type of change
[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update
What has been changed?
Feature: Allow to assign policies to the Instance
Feature: DefaultLocation Policy that always returns the current location to keep the existing functioning of the system by Default.
Feature: UrllcSliceLocation Policy to find the best possible location that has Urllc Slice
Feature: Negotiation of the best location when more than one Location Policy is applied to the object. The Negotiation process takes into consideration how many policies from the applied set, the specified location meets, and the specified Policy Priority.
Feature: Negotiation of the policies for the specified Instance, and for the Action. All Instances within an Action are deployed in the same location. The identified Locations are negotiated to establish the best possible location for Action from the assigned set.
Doc: documentation of the Policies and the Location Negotiation mechanism
How Has This Been Tested?
[x] Testing of the existing functionality through the Unit Tests
[ ] Integration with the Slicing mechanism to be completed when all the building blocks are completed
Checklist:
[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
@radu-popescu, when you will be checking the changes, don't be afraid of the scope. A lot of files are changed only due to the autoformatting applied :) The Meat of the PR is in the /src/ResourcePlanner/Policies.
Description
Operational policy implementation is aimed to allow for the customization of the deployment and location planning process but not only. The Policies aim to allow to change the system's behaviour in a user-controlled manner. The 2 Policy types were distinguished:
system
-scoped - applicable to the whole system functioningresource
-scoped - applicable to the specific resource like a robot or the Network Application instanceThe Policies available in the Middleware will be predefined. Their operational properties will be user managed, but the end-user will not be able to delete or add any new custom policy definitions. The user-managed properties of the Policies will be:
As an initial policy, the
LocationSelection
Policy type has been created to support the integration with the 5G testbed. The developedUrllcSliceLocation
Policy aims to find the Middleware location with theUrllc
slice that has the lowest latency.Fixes #124, #67
Type of change
What has been changed?
Instance
DefaultLocation
Policy that always returns the current location to keep the existing functioning of the system by Default.UrllcSliceLocation
Policy to find the best possible location that hasUrllc
SliceInstance
, and for theAction
. AllInstances
within anAction
are deployed in the same location. The identified Locations are negotiated to establish the best possible location forAction
from the assigned set.How Has This Been Tested?
Checklist: