Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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)
    Engine API  - Definition of the interface to the schedule optimization engine. Minizinc-based scheduler optimizer engine is targeted for Dublin. (REST?)

Image Removed

Children Display

Request / Response Examples

Updated CMSO Create Schedule Request

Code Block
titleCreate Schedule Request Example
linenumberstrue
collapsetrue
{
	"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:

...


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.


Image Added

CMSO API Swagger Pages

Children Display

...

CMSO Schedule Optimizer Request

Code Block
titleOptimizer Request
linenumberstrue
collapsetrue
{
	"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"
					}
				]
			}
		]
	}
}


The message is a representative of an Scheduler Optimizer Request that is derived from the Create Schedule request. The Schedule Optimizer will use the following APIs to retrieve the data necessary to invoke the Schedule Optimizer Engine:

  • Policy API - 
  • Topology Service
  • Ticket Management Service

Note that the commonData and elementData structures provide a means for passing carrier specific information to the Topology and Ticket Management interfaces which are necessarily carrier specific implementations. 

CMSO Schedule Optimizer Response

...

titleOptimizer Response
linenumberstrue
collapsetrue

TBD - Dependent upon the response from Optimizer Engine

CMSO Topology Service Request

Code Block
titleTopology Service Request
linenumberstrue
collapsetrue
{
	"topologyRequest": {
		"id": "<uuid>",
		"commonData":
		[{
				"name": "requestType",
				"value": "VNF Config Update"
			}, {
				"name": "policies",
				"value": ["vertical", "localMaintenanceWindow"]
			}
		],
		"elements": [{
				"elementId": "nodeid1",
				"elementData": [{
						"name": "ticketManagementId",
						"value": "33333-333a-dsfa-dsfadsfadsfdsfdasfdaf"
					}, {
						"name": "id",
						"value": "33333333adsfadsfadsfadsfdsfdasfdaf"
					}
				]
			}
		]
	}
}


This represents a sample request to the Topology Service request. The request is designed to enable providing carrier specific data the the Topology Interface (commonData and elementData) In this example, we are modeling that the carrier is using different IDs (ticketManagementId and id) to identify the same element within the ticket management and topology systems, respectively.  It is up to the carrier's to define the contents of commonData and elementData  to support their individual needs. Since ONAP Dublin is providing sample implementations of both of these interfaces, the same Id will be used in both services and this will be equal to the elementId.

CMSO Topology Service Response

Code Block
titleTopology Service Response
linenumberstrue
collapsetrue
{
	"id": "<uuid>",
	"commonData":
	[{
			"name": "requestType",
			"value": "VNF Config Update"
		}, {
			"name": "policies",
			"value": ["vertical", "localMaintenanceWindow"]
		}
	],
	"elements":
	[{
			"elementId": "nodeid1",
            "elementLocation": {
			       "lat": 32.000,
			       "lon": -71.0000
            },
			"requiredElements": ["pserverid1"],
			"constraintElements": [{
					"elementId": "nodeid1",
					"constraintType": "backupElement",
					"constraintTypeMinimum": 1,
					"optimizerAvailabilityMatrixName": "",
					"availabilityMatrixScope": "NONE",
					"elementAvailabilityAggreagation": true,
					"elements": [
						"nodeid1backup"
					]
				}
			]
			"elementData":
			[{
					"name": "ticketManagementId",
					"value": "33333-333a-dsfa-dsfadsfadsfdsfdasfdaf"
				}, {
					"name": "id",
					"value": "33333333adsfadsfadsfadsfdsfdasfdaf"
				}
			]
		}
	]
	"referencedElements":
	[{
			"elementId": "pserverid1",
			"lat": 32.000,
			"lon": -71.0000,
			"referencingElements": ["nodeid1"],
			"elementData":
			[{
					"name": "ticketManagementId",
					"value": "33333-333a-dsfa"
				}, {
					"name": "id",
					"value": "33333333adsfa"
				}
			]
		}, {
			"elementId": "nodeid1backup",
			"lat": 44.000,
			"lon": -71.0000,
			"referencingElements": ["nodeid1"],
			"elementData":
			[{
					"name": "ticketManagementId",
					"value": "33333-333a-dsfadsfadsfdsbackup"
				}, {
					"name": "id",
					"value": "33333333adsfadsfadsfadsbackup"
				}
			]
		}
	]
}

This represents a response from the Topology Service Note the following attributes

  • lat/lon - This is required for determining the time zone that the elements are serving - may be functionally replaced by timezone if available (TBD)
  • requiredElements - these elements are required to be available in order to accomplish the requested change
  • constraintElements - these represent elements that must be available to avoid a network outage during the requested change
  • referencedElements - appearing on new elements returned by the topology server. The relatedElements id will appear in either requiredElements or failoverElements fo the elements to be changed.

These relationships will be important for determining element availability to provide to the Schedule Optimizer Engine.  

 

CMSO Ticket Management - Active Tickets Request

Code Block
titleActive Tickets Request
linenumberstrue
collapsetrue
{
	"ticketManagementRequest": {
		"requestId": "<uuid>",
		"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"

			}
		],
		"commonData":
		[{
				"name": "requestType",
				"value": "VNF Config Update"
			}, {
				"name": "policies",
				"value": ["vertical", "localMaintenanceWindow"]
			}
		],
		"elements":
		[{
				"elementId": "nodeId1",
				"elementData":
				[{
						"name": "ticketManagementId",
						"value": "33333-333a-dsfa-dsfadsfadsfdsfdasfdaf"
					}, {
						"name": "id",
						"value": "33333333adsfadsfadsfadsfdsfdasfdaf"
					}
				]
			}, {
				"elementId": "pserverid1",
				"elementData":
				[{
						"name": "ticketManagementId",
						"value": "33333-333a-dsfa"
					}, {
						"name": "id",
						"value": "33333333adsfa"
					}
				]
			}
		]
	}
}


This represents a request to determine the availability of the elements in the list. The results of the request to find the "active" tickets for the elements within the change windows provided will be used to identify when elements will not be available. "Active" tickets leaves it to the carrier will determine which tickets are appropriate to be used for determining availability.

CMSO Ticket Management - Active Tickets Response

Code Block
titleActive Tickets Response
linenumberstrue
collapsetrue
{
	"ticketManagementResponse": {
		"id": "<uuid>",
		"elementa": [{
				"elementId": "nodeid1",
				"tickets": []
			}, {
				"elementId": "pserverid1",
				"tickets": [{
						"ticketId": "2b385684-3eac-11e9-b210-d663bd873d93",
						"startTime": "2019-02-19T14:16:18Z",
						"endTime": "2019-02-19T20:16:18Z",
						"availability": "unavailable | partial | full"

					}, {
						"ticketId": "3d4afa7a-3eac-11e9-b210-d663bd873d93",
						"startTime": "2019-03-19T14:16:18Z",
						"endTime": "2019-03-19T20:16:18Z",
						"availability": "unavailable | partial | full"
					}
				]
			}
		}
	}
	}


The represents a response from the Active Tickets request that provides the ticket information necessary to determine element availability for the Schedule Optimizer Engine.

The start and end times and the availability enum are the attributes that will be significant to the schedule optimizer engine

  • unavailable - element is unavailable during this change 
  • partial - element is partially available (i.e. running degraded.)
  • available - element availability is not affected by this change

CMSO Optimization Engine Interface Request

...

titleOptimization Engine Request
linenumberstrue
collapsetrue

This request will represent the information gathered by the Scheduler Optimizer to be passed to the Mini Zinc schedule optimizer engine.

CMSO Optimization Engine Interface Response

...

titleOptimization Engine Response
linenumberstrue
collapsetrue

...