Table of Contents |
---|
The following 3 APIs will be introduced in Dublin to support the OOF CMSO Architecture:
- Topology Service API - Definition of the interface to be implemented by individual carriers to support providing topology data necessary for CMSO to present conflict free scheduling of maintenance on a target network element. The ONAP implmentation of this interface will provide network topology information that is available in A&AI, however, the API will be designed to enable carriers to implement network topology data that is necessary to meet their scheduling needs.
- Network elements required to be available in order to complete the maintenance on the target element. (REST) - Commonly referred to as vertical conflict avoidance.
- Network elements required to be available to avoid network outages during the maintenance on the target element. - Commonly referred to as horizontal conflict avoidance.
- Topology Service API Swagger
- Change Management (CM) Ticket Management API - Definition of the interface to be implemented by individual carriers to provide scheduled outages of network elements/assets returned by the Topolgy API to determine availabliilty. (REST)
- Change Management (CM) Schedule Optimizer API - Definition of the interface to the schedule optimization manager. (REST)
The existing CMSO Create Schedule API will be deprecated in favor of the CMSO Create Optimized Schedule API. This new API will enable providing customized information to the schedule optimizer three new APIs.
The interface to the Change Management (CM) Schedule Optimizer Engine is not a REST API but rather a internal definition of the input/output to the MiniZinc based schedule optimizer engine.targeted for Dublin.
CMSO API Swagger Pages
Request / Response Examples
Updated CMSO Create Schedule Request
{ "domain": "ChangeManagement", "scheduleName": "3e828de1-c6b9-4782-b028-e2a98b0cce72", "userId": "onap-user", "scheduleId": "3e828de1-c6b9-4782-b028-e2a98b0cce72", "commonData": [{ "name": "requestType", "value": "VNF Config Update" }, { "name": "policies", "value": ["vertical", "localMaintenanceWindow"] } ], "schedulingData": { "additionalDurationInSeconds": 10, "changeWindows": [{ "endTime": "2019-02-01T00:00:00Z", "startTime": "2019-03-01T00:00:00Z" }, { "endTime": "2019-04-15T00:00:00Z", "startTime": "2019-05-15T00:00:00Z" } ], "normalDurationInSeconds": 100, "concurrencyLimit": 10, "elements": [{ "elementId": "nodeid1", "elementData": [{ "name": "ticketManagementId", "value": "33333-333a-dsfa-dsfadsfadsfdsfdasfdaf" }, { "name": "id", "value": "33333333adsfadsfadsfadsfdsfdasfdaf" } ], "request": { "vnfName": "rdm5adbux8991v", "vnfInstanceId": "7fe2a239-52c8-40ec-866a-53815c802f09", "modelInfo": { "modelType": "vnf", "modelInvariantId": "a8880c9f-9454-4a1e-b856-b3c0569625de", "modelVersionId": "0bc86968-fe07-4453-a729-683fafef2607", "modelName": "rdm5adbux8991v", "modelVersion": "1.0", "modelCustomizationId": "4e3bbaba-5348-4d4c-9d27-11ff39958a84" }, "cloudConfiguration": { "lcpCloudRegionId": "rdm5a", "tenantId": "71b9b87f2ad947fa9a19eac463558040" }, "requestInfo": { "source": "VID", "suppressRollback": false, "requestorId": "mm018u" }, "relatedInstanceList": [{ "relatedInstance": { "instanceId": "d91b2d81-3e96-43b8-b111-527d3a934a6a", "modelInfo": { "modelType": "service", "modelInvariantId": "dd118927-8360-4a9a-959c-403386a12226", "modelVersionId": "f98b191f-2bb6-4881-a514-ac9132f26284", "modelName": "vDBE_Svc_E2E_DBE_vDBE_U", "modelVersion": "1.0" } } } ], "requestParameters": { "payload": "{\"request-parameters\":{\"vnf-host-ip-address\":\"135.50.170.7\",\"vnf-name\":\"rdm5adbux8991v\"},\"configuration-parameters\":{\"node0_name\":\"rdm5adbux8999vm001\"}}" } } } ] } }
This example represents CMSO Create Schedule for Dublin release. Significant changes are:
Replacement of domainData with commonData name / value structure. This structure is used to provide carrier specific to all of the underlying interfaces, some of which are carrier specific (i.e. Topology and Ticket Management).
Inclusion of elementData name / value structure for every element to be changed. This structure is used to provide carrier specific to all of the underlying interfaces, some of which are carrier specific (i.e. Topology and Ticket Management).
Move of callbackData from domainData structure to the request attribute for each element. The request attribute represents the exact message to b provided to SO to initiate the change request.
CMSO Optimization Engine Interface Input
numElements = 5; maxTime = 5; numLoaders = 1; noConflict = [| true , true , true , true , true | true , true , true , true , true | false , true , false , true , false | false , false , false , false , false | true , false , true , false , true |]; slotCapacity = [1, 2, 1, 3, 4]; loaderCapacity = [| 5, 5, 5, 5, 5 |]; numAttributes = 0; attributesRange = []; attributes = []; attributeConcurrencyLimit = [];
This request will represent the information gathered by the Scheduler Optimizer to be passed to the Mini Zinc schedule optimizer engine.
numElements the number elements to be scheduled
maxTime is the index of last possible time-slot for scheduling (total number of slots in the noConflict array)
noConflict reflects the availability of the elements within change window. Each row defines the availability of an element. Each column represents a time slot within the user provided change window. Each timeslot is equivelent to the max duration of a single change.
slotCapacity represents the concurrency limit for each of the time slots. In Dublin, for VNFs, each entry will be equal to the concurrency limit provided in the create schedule request.
The optimizer engine will support the following constraint inputs, The definition of these constraints will be determined by policy???.
numLoaders is 1 (scheduler)
loaderCapacity is unlimited (scheduler must be able to support the slotCapacity)
numAttributes, attributeRange, attributes and attributeConcurrencyLimit - From policy / templates.
CMSO Optimization Engine Interface Output
results: result: num_scheduled: 0 total_completion_time: 0 element_slot: | 1,0 2,0 3,0 4,0 5,0 result: num_scheduled: 1 total_completion_time: 2 element_slot: | 1,0 2,0 3,2 4,0 5,0 result: num_scheduled: 4 total_completion_time: 8 element_slot: | 1,2 2,1 3,2 4,0 5,3 elapsed_millis: 3400
This request will represent the information returned to the Scheduler Optimizer from the Mini Zinc schedule optimizer engine.
Multiple "schedules" may be returned the objective being to schedule the most changes in the least amount of time.