Service Creation Diagram

Service Creation Diagram-SDNC


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 DescriptionSubcomponent/ClassmethodRequirement ReferenceActions(Logic)
1SO invokes Service Create API of SDNC

/restconf/operations/opticalservice:optical-service-create


1
  • optical-service-create RPC will be invoked by SO to create service
2Validate Request parameters received from SOOperation in DG - > call optical-service_optical-validate-input-params for validation
2.c
  • Validate Request based on mandatory parameters
  • if(jsonObject is not null) ->validation pass
  • else->validation fails
3.On Validation success, Domain controller RPC gets invoked based on "domain-type" attribute

2.a
  • if domain-type is MSA call MSA controller for service creation or if domain-type is TaPI call TAPI controller for service creation

Actions to be performed in DG[opticalservice:optical-service-create]:


Step no.Subcomponent/ClassImpact Descriptionplugin/adaptormethodRequirement ReferenceActions(Logic)
7.b

opticalservice:optical-service-create

Send Service Create request to Domain controllerorg.onap.ccsdk.sli.plugins.restapicall.RestapiCallNodesendRequest2.d<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
<parameter name="templateFileName" value="/opt/onap/sdnc/restapi/templates/optical-service-create-msa.json" />
<parameter name="restapiUrl" value="https://167.254.204.115:8443/cxf/openroadm/openroadm-services"/>
<parameter name='restapiUser' value='admin' />
<parameter name='restapiPassword' value='admin' />
<parameter name="httpMethod" value="POST"/>
<parameter name="responsePrefix" value="service-create-response"/>
<parameter name='contentType' value='application/json' />
<parameter name='format' value='json' />
<parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.msa.jks"/>
<parameter name="trustStorePassword" value="adminadmin"/>
<parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
<parameter name="keyStorePassword" value="adminadmin"/>

Synchronous Response from Domain Controller:

Sync success response
Step no.Subcomponent/Classplugin/adaptormethodRequirement ReferenceDescriptionActions(Logic)
8.a(i)opticalservice:optical-service-createorg.onap.ccsdk.sli.adaptors.aai.AAIService
3.bCreate Domain Service instance in AAI

<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='service-instance'
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' >
<parameter name='service-instance-id' value='`$optical-service-create-input.service-id`' />
<parameter name='service-instance-name' value='`$optical-service-create-input.payload.service-name`' />
<parameter name='service-type' value='Domain-Service' />
<parameter name='orchestration-status' value='CREATING' />
<parameter name='service-rate' value='`$optical-service-create-input.payload.service-rate`' />
<parameter name='service-layer' value='`$optical-service-create-input.payload.service-layer`' />


8.a(ii)opticalservice:optical-service-createorg.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-createorg.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

{
 "output": {
    "response-code": "200",
    "response-message": "Service-creation in Progress"
  }
}

Sync failure response
Step no.Subcomponent/Classplugin/adaptormethodRequirement ReferenceDescriptionActions(Logic)
8.b(i) opticalservice:optical-service-create



Return RPC response to SO

{
  "output": {
    "response-code": "500",
    "response-message": "{Virtuora-response}"
  }
}

Asynchronous Response from Domain Controller:

Async success response
Step no.Subcomponent/Classplugin/adaptormethodRequirement ReferenceDescriptionActions(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'>
<parameter name="Orchestration status " value="Created ">
9.a(ii)

opticalservice:

AsyncNotificationHandling.java

org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource
4.cUpdate request_status in Config DB<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
key = 'UPDATE sdnc_mdons SET request_status=$sdnc_mdons.request_status where request_id=$sdnc_mdons.request_id'
force='true' pfx='save-result'>
Status: CREATED
9.a(iii)

opticalservice:

AsyncNotificationHandling.java



4.bcall 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/Classplugin/adaptormethodRequirement ReferenceDescriptionActions(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'
key='customer.global-customer-id = $optical-service-delete-input.global-customer-id AND
service-subscription.service-type = $optical-service-delete-input.service-type AND
service-instance.service-instance-id = $instance'>


9.b(ii)

opticalservice:

AsyncNotificationHandling.java


org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource
5.bDelete DB entry<delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
key = 'delete from request_details where  request_id=$sdnc_mdons.request_id'
force='true' pfx='save-result'>
9.b(iii)

opticalservice:

AsyncNotificationHandling.java



5.aPost 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"

      }

}





  • No labels