Service Creation
Service Creation Diagram
Response from Domain Controller to SDNC:
Condition | Response Code | Response Message (examples) |
Success | 200 | · Success |
Input Validation Error | 400 | · Service name is not unique · Missing service name · Service name exists with different request-id · Temporary service does not exist · Missing [A/Z] end CLLI · Include constraints not supported |
Path Computation Failure | 500 | · No route found for working path · Max latency constraint failed · Bandwidth not available for source (or destination) endpoint |
Response from SDNC to SO:
Condition | Response Code | Response Message (examples) |
Success | 200 | · Success |
Input Validation Error | 400 | · Request validation failed as "source" is not "SO" · Request validation failed as "action" is not "CREATE" or "DELETE" · Request validation failed as "request-id" is not present or null · Request validation failed as "due-date" is prior to current-date · Request validation failed as "service-layer" is not "OTN" · Service name is not unique · Missing service name · Service name exists with different request-id · Temporary service does not exist · Missing [A/Z] end CLLI · Include constraints not supported |
Path Computation Failure | 500 | · No route found for working path · Max latency constraint failed · Bandwidth not available for source (or destination) endpoint |
Detailed Description:
Step no. | Impact Description | Subcomponent/Class | method | Requirement Reference | Actions(Logic) |
---|---|---|---|---|---|
1 | SO invokes Service Create API of SDNC | /restconf/operations/opticalservice:optical-service-create | 1 |
| |
2 | Validate Request parameters received from SO | Operation in DG - > call optical-service_optical-validate-input-params for validation | 2.c |
| |
3. | On Validation success, Domain controller RPC gets invoked based on "domain-type" attribute | 2.a |
|
Actions to be performed in DG[opticalservice:optical-service-create]:
Step no. | Subcomponent/Class | Impact Description | plugin/adaptor | method | Requirement Reference | Actions(Logic) |
---|---|---|---|---|---|---|
7.b | opticalservice:optical-service-create | Send Service Create request to Domain controller | org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode | sendRequest | 2.d | <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' > |
Synchronous Response from Domain Controller:
Sync success response |
Step no. | Subcomponent/Class | plugin/adaptor | method | Requirement Reference | Description | Actions(Logic) |
---|---|---|---|---|---|---|
8.a(i) | opticalservice:optical-service-create | org.onap.ccsdk.sli.adaptors.aai.AAIService | 3.b | Create Domain Service instance in AAI | <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='service-instance' | |
8.a(ii) | opticalservice:optical-service-create | org.onap.ccsdk.sli.adaptors.aai.AAIService | 3.b | Relate p-interfaces to service-instance To determine Capacity: Get the available-capacity eg:100G and subtract it with rate(received during service create eg: 10G) and update the value in available_capacity 100-10=90G | <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='service-instance:relationship-list' key='customer.global-customer-id = $optical-service-create-input.global-customer-id AND service-subscription.service-type = $optical-service-create-input.service-type AND service-instance.service-instance-id = $optical-service-create-input.service-id' force="true" pfx="tmp.AnAI-data"> <parameter name="relationship-list.relationship[0].related-to" value="p-interface" /> <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $a-end-pnf-name + '/p-interfaces/p-interface/' + $optical-service-create-input.payload.service-aend.port-id `" /> <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="pnf.pnf-name" /> <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$a-end-pnf-name`" /> <parameter name="relationship-list.relationship[1].related-to" value="p-interface" /> <parameter name="relationship-list.relationship[1].related-link" value="`'/network/pnfs/pnf/' + $z-end-pnf-name + '/p-interfaces/p-interface/' + $optical-service-create-input.payload.service-zend.port-id `" /> <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-key" value="pnf.pnf-name" /> <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-value" value="`$z-end-pnf-name`" /> | |
8.a.(iii) | opticalservice:optical-service-create | org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource | Create request entry in DB | <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL" key="INSERT INTO REQUEST_DETAILS (request_id, status, service_rate, service_instance_id, service_type, global_customer_id, notification_url) VALUES ( $optical-service-create-input.request-id , 'CREATING' , $optical-service-create-input.payload.service-rate , $optical-service-create-input.service-id , $optical-service-create-input.service-type , $optical-service-create-input.global-customer-id , $optical-service-create-input.notification-url );"> | ||
8.a.(iv) | opticalservice:optical-service-create | 3.a | Return RPC response to SO { |
Sync failure response |
Step no. | Subcomponent/Class | plugin/adaptor | method | Requirement Reference | Description | Actions(Logic) |
---|---|---|---|---|---|---|
8.b(i) | opticalservice:optical-service-create | Return RPC response to SO { |
Asynchronous Response from Domain Controller:
Async success response |
Step no. | Subcomponent/Class | plugin/adaptor | method | Requirement Reference | Description | Actions(Logic) |
---|---|---|---|---|---|---|
9.a(i) | opticalservice: AsyncNotificationHandling.java | org.onap.ccsdk.sli.adaptors.aai.AAIService | 4.a | Update Orchestration-status under service-instance node in AAI | <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='createdResource'> | |
9.a(ii) | opticalservice: AsyncNotificationHandling.java | org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource | 4.c | Update request_status in Config DB | <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r | |
9.a(iii) | opticalservice: AsyncNotificationHandling.java | 4.b | call SO API to post notification | { "configuration-response-common":{ "request-id":"3e35dcad-8e2d-420a-b434-822daa38b2ff", "response-code":"200", "response-message":"SUCCESS", "ack-final-indicator":"Y" } } |
Async failure response |
Step no. | Subcomponent/Class | plugin/adaptor | method | Requirement Reference | Description | Actions(Logic) |
---|---|---|---|---|---|---|
9.b(i) | opticalservice: AsyncNotificationHandling.java | org.onap.ccsdk.sli.adaptors.aai.AAIService | Delete service-instance from AAI Capacity: Append the available_capacity with rate value | <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource='service-instance' | ||
9.b(ii) | opticalservice: AsyncNotificationHandling.java | org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource | 5.b | Delete DB entry | <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r | |
9.b(iii) | opticalservice: AsyncNotificationHandling.java | 5.a | Post notification to SO | Call SO notification API to post notification. { "configuration-response-common":{ "request-id":"3e35dcad-8e2d-420a-b434-822daa38b2ff", "response-code":"500", "response-message":"Failed due to service time-out", "ack-final-indicator":"Y" } } |