Goal:Before running the 5G case, some manual configuration is required, part of which is a temporary way for this version.

Content:

UUI Configuration

Configure CST template UUID and Invariant UUID in slicing.properties file of uui-server microservice

In uui-server microservice, modify the following configuration file, /home/UUI/config/slicing.properties

Add or update the parameters slicing.serviceInvariantUuid and parameter slicing.serviceUuid.

The values of these two parameters come from CST template which can be find on SDC page.

     

MSB Configuration

Register so-orchestrationTasks and so-serviceInstances interface to MSB.

Interface registration can be done through postman or portal.

Registration information:

{
  "serviceName": "so-orchestrationTasks",
  "version": "v4",
  "url": "/onap/so/infra/orchestrationTasks/v4",
  "protocol": "REST",
  "port": "{{.Values.service.internalPort}}",
  "visualRange": "1",
  "enable_ssl": false
}, 
{
  "serviceName": "so-serviceInstances",
  "version": "v3",
  "url": "/onap/so/infra/e2eServiceInstances/v3",
  "protocol": "REST",
  "port": "{{.Values.service.internalPort}}",
  "visualRange": "1",
  "enable_ssl": false
}

Steps(Portal):

Link: https://{{master server ip}}:30284/iui/microservices/default.html

 1.Select ‘’ in the left pane

 2. Click 'Service Register' button.

 3. Input the basic info as the picture shows(also refer to the registration info provided above)

4. Click Add Host button.

    Input IP Address and Port then click the 'SAVE' button. (Use cmd ’kubectl get svc -n onap so‘ to confirm IP and port.)

SO Database Update

Insert ORCHESTRATION_URI into service_recipe,  SERVICE_MODEL_UUID replaced by CST.ModelId.

INSERT INTO `catalogdb`.`service_recipe`(`ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `SERVICE_MODEL_UUID`) VALUES ('createInstance', '1', 'Custom recipe to create communication service-instance if no custom BPMN flow is found', '/mso/async/services/CreateCommunicationService', NULL, 180, NULL, 'c9252b26-f9cd-4e6c-988c-4d6ff39c6dda');

INSERT INTO `catalogdb`.`service_recipe`(`ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `SERVICE_MODEL_UUID`) VALUES ('deleteInstance', '1', 'Custom recipe to delete communication service if no custom BPMN flow is found', '/mso/async/services/DeleteCommunicationService', NULL, 180, NULL, 'c9252b26-f9cd-4e6c-988c-4d6ff39c6dda');

INSERT INTO `catalogdb`.`service_recipe`(`ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `SERVICE_MODEL_UUID`) VALUES ('activateInstance', '1.0', 'activate communication service', '/mso/async/services/ActivateCommunicationService', NULL, 180, NULL, 'c9252b26-f9cd-4e6c-988c-4d6ff39c6dda');

Insert ORCHESTRATION_URI into service_recipe,  SERVICE_MODEL_UUID is ServiceProfile.ModelId

INSERT INTO `catalogdb`.`service_recipe`(`ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, 
`SERVICE_TIMEOUT_INTERIM`, `SERVICE_MODEL_UUID`) VALUES ('createInstance', '1', 'Custom recipe to create slice\r\nservice-instance if no custom BPMN flow is found', '/mso/async/services/CreateSliceService', NULL, 180, NULL,'bfca8b32-3404-4e5c-a441-dc42b6823e88');

INSERT INTO `catalogdb`.`service_recipe`(`ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `SERVICE_MODEL_UUID`) VALUES ('deleteInstance', '1', 'Custom recipe to create slice\r\nservice-instance if no custom BPMN flow is found', '/mso/async/services/DeleteSliceService', NULL, 180, NULL, 'bfca8b32-3404-4e5c-a441-dc42b6823e88');

INSERT INTO `catalogdb`.`service_recipe`(`ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `SERVICE_MODEL_UUID`) VALUES ('activateInstance', '1.0', 'Gr api recipe to activate service-instance', '/mso/async/services/ActivateSliceService', NULL, 180, NULL, 'bfca8b32-3404-4e5c-a441-dc42b6823e88');

A&AI Configuration

If the service distribution to A&AI failed, like the picture shows bellow:

Add 'ServiceProfile' and 'NSTAR' model to A&AI through postman.(ServiceProfile/NSTAR Model Id and Invariant Id can be find on SDC page.)

Postman set as follows :

'ServiceProfile' request· body :

'NSTAR' request· body :

Create Customer and service-subscription

Create customer(5GCustomer) and service-subscription(5G) in AAI.

OOF Configuration

OSDF CHANGES(FOR NST SELECTION)

New NST templates can be added in. There is a json file present in the osdf folder, where the nst templates can be added with the corresponding ModelId and ModelInvariantUUID.

The json file is found in the osdf folder in the corresponding path

apps/nst/optimizers/conf/configIinputs.json

OSDF CHANGES(FOR NSI SELECTION)

1) In OOF charts- oom/kubernetes/oof/resources/config/common-config.yaml, the following changes has to be made before deploying oof.

  •  oof/resources/config/common-config.yml has to be updated to use local policies instead of remote policies. change "global_disabled" from True to False


osdf_temp:  # special configuration required for "workarounds" or testing
    local_policies:
        global_disabled: False


  •  In  oof/resources/config/common-config.yml change the model name -  whenever the model name changes, it has to be updated here 

            EG. when the model name is "Embb_NST". Replace the keys with "slice_selection_policy_dir_embb_nst" &  "slice_selection_policy_dir_embb_nst" 

            This block is an illustration when the model name is- "URLLC_1"


slice_selection_policy_dir_urllc_1: "./test/policy-local-files/"
slice_selection_policy_files_urllc_1:


2) AAI preload script should be executed (when we need shared nsi solution to be returned in the response)

This preload AAI  script can be run by passing the model invariant id and model version id of NST and NSST in the respective order

( ./pre_v1.sh  <model-inv-id of NST>  <model-vers-id of NST>  <model-inv-id of NSST>  <model-vers-id of NSST> )

#./pre_v1.sh  2d5b9bc2-0ece-4b5c-b5f7-dcdc19f53ad1 9507fc4a-37d3-4024-a991-9a56c16c4dc0 c0eeaa3b-625c-4518-bd1f-f01cc784813c 836eb219-346d-4b8b-8376-b0c4d17954a9
AAI preload script
#!/bin/bash
echo "preloading AAI data";
result=
resourceversion=
result=$(curl --user AAI:AAI -X PUT -H "X-FromAppId:AAI" -H  "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k https://10.0.0.9:30233/aai/v14/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/4115d3c8-dd59-45d6-b09d-e756dee9b518 -d '{
    "service-instance-id": "4115d3c8-dd59-45d6-b09d-e756dee9b518",
    "service-instance-name": "nsi_test_0211",
    "service-type": "embb",
    "service-role": "nsi",
    "model-invariant-id": "'"$1"'",
    "model-version-id": "'"$2"'",
    "orchestration-status": "active"}')
echo $result
result=$(curl --user AAI:AAI -X PUT -H "X-FromAppId:AAI" -H  "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k https://10.0.0.9:30233/aai/v14/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/1a636c4d-5e76-427e-bfd6-241a947224b0 -d '{
    "service-instance-id": "1a636c4d-5e76-427e-bfd6-241a947224b0",
    "service-instance-name": "nssi_test_0211",
    "service-type": "embb",
    "service-role": "nssi",
    "environment-context": "cn",
    "model-invariant-id": "'"$3"'",
    "model-version-id": "'"$4"'",
    "orchestration-status": "active"}')
echo $result
resourceversion=$(curl --user AAI:AAI -X GET -H "X-FromAppId:AAI" -H  "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k https://10.0.0.9:30233/aai/v14/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/4115d3c8-dd59-45d6-b09d-e756dee9b518 | jq --raw-output '."resource-version"')
result=$(curl --user AAI:AAI -X PUT -H "X-FromAppId:AAI" -H  "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k https://10.0.0.9:30233/aai/v14/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/4115d3c8-dd59-45d6-b09d-e756dee9b518 -d '{
    "service-instance-id": "4115d3c8-dd59-45d6-b09d-e756dee9b518",
    "service-instance-name": "nsi_test_0211",
    "service-type": "embb",
    "service-role": "nsi",
    "orchestration-status": "active",
    "model-invariant-id": "'"$1"'",
    "model-version-id": "'"$2"'",
    "resource-version":"'"$resourceversion"'",
    "relationship-list": {
        "relationship": [
            {
                "related-to": "service-instance",
                "relationship-label": "org.onap.relationships.inventory.ComposedOf",
                "related-link": "/aai/v16/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/1a636c4d-5e76-427e-bfd6-241a947224b0",
                "relationship-data": [
                    {
                        "relationship-key": "customer.global-customer-id",
                        "relationship-value": "5GCustomer"
                    },
                    {
                        "relationship-key": "service-subscription.service-type",
                        "relationship-value": "5G"
                    },
                    {
                        "relationship-key": "service-instance.service-instance-id",
                        "relationship-value": "1a636c4d-5e76-427e-bfd6-241a947224b0"
                    }
                ],
                "related-to-property": [
                    {
                        "property-key": "service-instance.service-instance-name",
                        "property-value": "nssi_test_0211"
                    }
                ]
            }
        ]
    }
}')
echo $result
resourceversion=$(curl --user AAI:AAI -X GET -H "X-FromAppId:AAI" -H  "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k https://10.0.0.9:30233/aai/v19/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/1a636c4d-5e76-427e-bfd6-241a947224b0/slice-profiles/slice-profile/cdad9f49-4201-4e3a-aac1-b0f27902c299 | jq --raw-output '."resource-version"')
echo $resourceversion
result=$(curl --user AAI:AAI -X PUT -H "X-FromAppId:AAI" -H  "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k https://10.0.0.9:30233/aai/v19/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/1a636c4d-5e76-427e-bfd6-241a947224b0/slice-profiles/slice-profile/cdad9f49-4201-4e3a-aac1-b0f27902c299 -d '{
                "profile-id": "cdad9f49-4201-4e3a-aac1-b0f27902c299",
                "latency": 5,
                "max-number-of-UEs": 0,
                "coverage-area-TA-list": "[{\"province\":\"??\",\"city\":\"???\",\"county\":\"???\",\"street\":\"?????\"}]",
                "ue-mobility-level": "stationary",
                "resource-sharing-level": "shared",
                "exp-data-rate-UL": 100,
                "exp-data-rate-DL": 100,
                "activity-factor": 0,
                "e2e-latency": 0,
                "jitter": 0,
                "survival-time": 0,
                "exp-data-rate": 0,
                "payload-size": 0,
                "traffic-density": 0,
                "conn-density": 0,
                "reliability":99.999,
                "resource-version":"'"$resourceversion"'"
            }')
echo $result
exit


3) Local policies (vnf, subscriber & threshold policy) should be copied to the osdf pod 

(i) Execute the below script in the test environment by passing nst name, nsst name, model invariant id of NSST & model version id (aka) model uuid of NSST (in the same order as mentioned here)

./policy.sh  <NST name>  <NSST name>  <model-invariant-id of NSST>  <model-version-id of NSST>

#./policy.sh  EmbbNst EmbbCn 5t636c4d-5e76-427e-bfd6-241a947224b0 1a636c4d-5e76-427e-bfd6-241a947224b0
policy.sh
mkdir test
cd test
mkdir policy-local-files
cd policy-local-files
cat <<EOF >vnfPolicy_URLLC_Core_1.json
{
  "OSDF_FRANKFURT.vnfPolicy_URLLC_Core_1": {
    "type": "onap.policies.optimization.resource.VnfPolicy",
    "version": "1.0.0",
    "type_version": "1.0.0",
    "metadata": {
      "policy-id": "OSDF_FRANKFURT.vnfPolicy_URLLC_Core_1",
      "policy-version": 1
    },
    "properties": {
      "scope": [
        "OSDF_FRANKFURT",
        "$1",
        "$2"
      ],
      "resources": [
        "$2"
      ],
      "services": [
        "$1"
      ],
      "identity": "vnf_URLLC_Core_1",
      "applicableResources": "any",
      "vnfProperties": [
        {
          "inventoryProvider": "aai",
          "inventoryType": "nssi",
          "region": "RegionOne",
          "attributes": {
            "orchestrationStatus": "active",
            "service-role": "nssi",
            "modelInvariantId":"$3",
            "modelVersionId":"$4"
          }
        }
      ]
    }
  }
}
EOF
cat <<EOF >thresholdPolicy_URLLC_Core_1.json
{
                   "OSDF_FRANKFURT.Threshold_URLLC_Core_1":{
                      "type":"onap.policies.optimization.resource.ThresholdPolicy",
                      "version":"1.0.0",
                      "type_version":"1.0.0",
                      "metadata":{
                         "policy-id":"OSDF_FRANKFURT.Threshold_URLLC_Core_1",
                         "policy-version":1
                      },
                      "properties":{
                         "scope":[
                            "OSDF_FRANKFURT",
                            "$1",
                            "$2"
                         ],
                         "resources":[
                            "$2"
                         ],
                         "services":[
                            "$1"
                         ],
                         "geography": [],
                         "identity":"Threshold_URLLC_Core_1",
                         "thresholdProperties":[
                               {
                                  "attribute":"latency",
                                  "operator":"lte",
                                  "threshold":5,
                                  "unit":"ms"
                               }
                         ]
                      }
                   }
}
EOF
cat <<EOF >subscriber_policy_URLLC_1.json
{
  "OSDF_FRANKFURT.SubscriberPolicy_URLLC_1": {
    "type": "onap.policies.optimization.service.SubscriberPolicy",
    "version": "1.0.0",
    "type_version": "1.0.0",
    "metadata": {
      "policy-id": "OSDF_FRANKFURT.SubscriberPolicy_URLLC_1",
      "policy-version": 1
    },
    "properties": {
      "scope": [
        "OSDF_FRANKFURT",
        "$1"
      ],
      "services": [
        "$1"
      ],
      "identity": "subscriber_URLLC_1",
      "properties": {
        "subscriberName": [
          "$2"
        ]
    }
  }
}
}
EOF

(ii) after the script gets executed, directory named "test" gets created. Copy the test directory inside the Pod

# kubectl cp -n onap <path to the test folder>  <osdf-pod name>:/opt/osdf/

Example of these three policies can be found in this link  https://wiki.onap.org/display/DW/Policy+Models+and+Sample+policies+-+NSI+selection

ESR Configuration

Configure Simulator by Esr

PUT /external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/{thirdparty-sdnc-id}

application/json
{
    "thirdparty-sdnc-id":"",
    "location": "",
    "product-name": "nssmf"
}


Configure Simulator Info
PUT /external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/{thirdparty-sdnc-id}/esr-system-info-list/esr-system-info/{esr-system-info-id}

application/xml
<esr-system-info xmlns="http://org.onap.aai.inventory/v16">
    <esr-system-info-id></esr-system-info-id>
    <system-name></system-name>
    <version></version>
    <user-name></user-name>
    <password></password>
    <system-type></system-type>   
    <ip-address>simulator IP</ip-address>
    <port>simulator Port</port>   
</esr-system-info>
  • No labels

4 Comments

  1. I think that issuing put rest for slice-profile should not involve the resource version for AAI preload script.
    The resource version is numbered automatically.

  2. Hi Min Zhang  & Dhebeha,

    Need your help and guidance with respect to the below issue I'm facing for SharedSliceService and NonSharedSliceService cases. It looks like OOF is not able to fetch the local policies located under /opt/osdf/test

    After I have done all the manual configurations your provided above. My Service communication order was created successfully but I'm facing two issues with respect to NSI creation and activation which are failing.

    When I processTask under Slice Management tab in UUI I can see errors from OOF and NSSF Adaptor as well as uui-server logs

    1) My first issue is from OOF, please see the oof log below. I have copied the test directory generated from the policy.sh script execution under /opt/osdf directory. Is this the correct path where we should copy the folder? Although the NST selection and NSI selection is happening as OOF returns response code 200. But the OOF log is showing the below error.

    onap@onap-oof-558dc6c879-b6bbs:/opt/osdf/test/policy-local-files$ ls -ltr
    total 12
    -rw-r--r-- 1 onap onap 977 Jun 23 18:35 vnfPolicy_URLLC_Core_1.json
    -rw-r--r-- 1 onap onap 1343 Jun 23 18:35 thresholdPolicy_URLLC_Core_1.json
    -rw-r--r-- 1 onap onap 552 Jun 23 18:35 subscriber_policy_URLLC_1.json

    onap@onap-oof-558dc6c879-b6bbs:/opt/osdf/logs$ more error.log

    2020-07-16 21:25:09|||||error||140462449612544||process_nsi_selection_opt||ERROR||Error for df686313-5357-4524-a270-29896287edfb Traceback (most recent call last):
    File "/opt/osdf/apps/slice_selection/optimizers/conductor/remote_opt_processor.py", line 62, in process_nsi_selection_opt
    policies = get_policies(policy_request_json, "slice_selection")
    File "/opt/osdf/osdf/adapters/policy/interface.py", line 192, in get_policies
    raise ValueError("Error fetching local policy info")
    ValueError: Error fetching local policy info
    ||||requestID=df686313-5357-4524-a270-29896287edfb threadID=Thread-32 serviceName=OOF_OSDF partnerName=so targetEntity= targetServiceName= errorCode= errorDescription= detailMessage=

    2) SO Bpmn Infra log for NonSharedSliceService

    ....

    2020-07-16T20:50:35.217Z||org.onap.so.bpmn.core.json.JsonUtils - getJsonValue(): the raw value is a String Object=NonSharedServiceSlice-Demo2
    2020-07-16T20:50:35.218Z||org.onap.so.bpmn.core.json.JsonUtils - getJsonValue(): the raw value is a String Object=NSST-C-003-HDBBJ-NSSMF-01-A-HW
    2020-07-16T20:50:35.219Z||org.onap.so.bpmn.core.json.JsonUtils - getJsonValue(): the raw value is a String Object=HW
    2020-07-16T20:50:35.220Z||org.onap.so.bpmn.core.json.JsonUtils - getJsonValue(): the raw value is a String Object=cn
    2020-07-16T20:50:35.220Z||org.onap.so.bpmn.core.json.JsonUtils - getJsonValue(): the raw value is a String Object=embb
    2020-07-16T20:50:35.221Z||o.o.so.bpmn.infrastructure.scripts.DoAllocateNSSI - Enter sendCreateRequestNSSMF in DoAllocateNSSI()
    2020-07-16T20:50:35.224Z||org.onap.so.bpmn.common.scripts.NssmfAdapterUtils - DEBUG
    2020-07-16T20:50:35.225Z||org.onap.so.bpmn.common.scripts.NssmfAdapterUtils - sending POST to NSSMF endpoint: /api/rest/provMns/v1/NSS/SliceProfiles
    2020-07-16T20:50:35.235Z|ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad|o.o.logging.filter.base.PayloadLoggingClientFilter - Sending HTTP POST to:http://so-nssmf-adapter.onap:8088/api/rest/provMns/v1/NSS/SliceProfiles with request headers:{Authorization=[***REDACTED***], X-RequestID=[ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad], X-ONAP-PartnerName=[UNKNOWN], Accept=[application/json], X-InvocationID=[c6193b07-9862-4475-a22f-df77951f3f93], X-ECOMP-RequestID=[ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad], X-TransactionID=[ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad], X-ONAP-RequestID=[ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad], Content-Type=[application/json]}
    2020-07-16T20:50:35.235Z|ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad|o.o.logging.filter.base.PayloadLoggingClientFilter - {"esrInfo":{"vendor":"HW","networkType":"cn"},"allocateCnNssi":{"sliceProfile":{"snssaiList":["01-4CC94E2A"],"sliceProfileId":"0c7b5b2f-ba6c-47f8-bb33-dcbef15f375c","plmnIdList":["39-00"],"perfReq":{"perfReqEmbbList":[{"expDataRateDL":1000,"expDataRateUL":1000}],"perfReqUrllcList":[{"payloadSize":"0","serviceAreaDimension":""}]},"maxNumberofUEs":1000,"coverageAreaTAList":["Beijing;Beijing;HaidianDistrict;WanshouluStreet"],"latency":20,"ueMobilityLevel":"stationary"},"nsiInfo":{"nsiName":"nsi_NonSharedServiceSlice-Demo2","nsiId":"5d912f76-1584-4f98-ac41-c4c6f47aae55"}}}

    2020-07-16T20:50:35.389Z|ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad|o.o.logging.filter.base.PayloadLoggingClientFilter - Response from method:POST performed on uri:http://so-nssmf-adapter.onap:8088/api/rest/provMns/v1/NSS/SliceProfiles has http status code:500 and response headers:{Cache-Control=[no-cache, no-store, max-age=0, must-revalidate], connection=[close], content-type=[application/json;charset=UTF-8], Date=[Thu, 16 Jul 2020 20:50:24 GMT], Expires=[0], Pragma=[no-cache], Set-Cookie=[JSESSIONID=A51B2435D65DAD4AB1D164FA2589C5C4; Path=/; HttpOnly], transfer-encoding=[chunked], X-Content-Type-Options=[nosniff], X-Frame-Options=[DENY], X-XSS-Protection=[1; mode=block]}
    2020-07-16T20:50:35.391Z|ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad|o.o.logging.filter.base.PayloadLoggingClientFilter - {"timestamp":"2020-07-16T20:50:24.408+0000","status":500,"error":"Internal Server Error","message":"No message available","path":"/api/rest/provMns/v1/NSS/SliceProfiles"}

    2020-07-16T20:50:35.394Z|ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad|org.onap.so.bpmn.common.scripts.NssmfAdapterUtils - Received data from NSSMF: {"timestamp":"2020-07-16T20:50:24.408+0000","status":500,"error":"Internal Server Error","message":"No message available","path":"/api/rest/provMns/v1/NSS/SliceProfiles"}
    2020-07-16T20:50:35.394Z|ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad|org.onap.so.bpmn.common.scripts.NssmfAdapterUtils - Response code:500
    2020-07-16T20:50:35.395Z|ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad|org.onap.so.bpmn.common.scripts.NssmfAdapterUtils - Response:
    {"timestamp":"2020-07-16T20:50:24.408+0000","status":500,"error":"Internal Server Error","message":"No message available","path":"/api/rest/provMns/v1/NSS/SliceProfiles"}
    2020-07-16T20:50:35.396Z|ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad|o.o.so.bpmn.infrastructure.scripts.DoAllocateNSSI - received error message from NSSMF : null
    2020-07-16T20:50:35.397Z|ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad|org.onap.so.bpmn.common.scripts.ExceptionUtil - Building a WorkflowException for Subflow DoAllocateNSSI
    2020-07-16T20:50:35.398Z|ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad|org.onap.so.bpmn.common.scripts.ExceptionUtil - Outgoing WorkflowException is WorkflowException[processKey=DoAllocateNSSI,errorCode=7000,errorMessage=Received a Bad Sync Response from NSSMF.,workStep=*,extSystemErrorSource=null]
    2020-07-16T20:50:35.399Z|ace19877-12ea-4c9c-ac30-8a9ccb1cf7ad|org.onap.so.bpmn.common.scripts.ExceptionUtil - Throwing MSOWorkflowException
    2020-07-16T20:50:35.407Z|bf72de12-637a-4548-892b-470a390dc436|org.onap.so.bpmn.common.scripts.ExceptionUtil - Caught a Java Exception in CreateSliceService
    2020-07-16T20:50:35.408Z|bf72de12-637a-4548-892b-470a390dc436|org.onap.so.bpmn.common.scripts.ExceptionUtil - Started processJavaException Method
    2020-07-16T20:50:35.409Z|bf72de12-637a-4548-892b-470a390dc436|org.onap.so.bpmn.common.scripts.ExceptionUtil - Java Error: Catch a Java Lang Exception in CreateSliceService
    2020-07-16T20:50:35.410Z|bf72de12-637a-4548-892b-470a390dc436|org.onap.so.bpmn.common.scripts.ExceptionUtil - Building a WorkflowException for CreateSliceService
    2020-07-16T20:50:35.411Z|bf72de12-637a-4548-892b-470a390dc436|org.onap.so.bpmn.common.scripts.ExceptionUtil - Outgoing WorkflowException is WorkflowException[processKey=CreateSliceService,errorCode=2500,errorMessage=Catch a Java Lang Exception in CreateSliceService,workStep=*,extSystemErrorSource=null]
    2020-07-16T20:50:35.412Z|bf72de12-637a-4548-892b-470a390dc436|org.onap.so.bpmn.common.scripts.ExceptionUtil - Completed processJavaException Method
    2020-07-16T20:50:36.426Z||org.onap.so.bpmn.core.json.JsonUtils - getJsonValue(): the raw value is a String Object=processing
    2020-07-16T20:50:36.427Z||org.onap.so.bpmn.core.json.JsonUtils - getJsonValue(): the raw value is NOT a String Object=0
    2020-07-16T20:50:43.365Z||org.onap.so.bpmn.core.json.JsonUtils - getJsonValue(): the raw value is a String Object=processing
    2020-07-16T20:50:43.365Z||org.onap.so.bpmn.core.json.JsonUtils - getJsonValue(): the raw value is NOT a String Object=0
    2020-07-16T20:50:46.438Z||org.onap.so.bpmn.core.json.JsonUtils - getJsonValue(): the raw value is a String Object=processing
    2020-07-16T20:50:46.439Z||org.onap.so.bpmn.core.json.JsonUtils - getJsonValue(): the raw value is NOT a String Object=0

    3) SO NSSMF Adaptor and NSSF-Similator communication not happening, as you can see it from the nssmf adapter logs.

    /app/logs/nssmf $ more debug.log

    2020-07-16T20:50:24.337Z||org.onap.so.adapters.nssmf.rest.NssmfAdapterRest - Nssmi allocate request is invoked
    2020-07-16T20:50:24.338Z||org.onap.so.adapters.nssmf.rest.NssmfManager - Allocate Nssi for CORE Network has begun
    2020-07-16T20:50:24.339Z||org.onap.so.client.RestClient - RestClientSSL using default SSL context!
    2020-07-16T20:50:24.351Z|bf0ba8d0-a57c-4ca2-989c-eb14179024a2|o.o.logging.filter.base.PayloadLoggingClientFilter - Sending HTTP GET to:https://aai.onap:8443/aai/v19/external-system/esr-thirdparty-sdnc-list with request headers:{Authorization=[***REDACTED***], X-RequestID=[bf0ba8d0-a57c-4ca2-989c-eb14179024a2], X-FromAppId=[MSO], X-ONAP-PartnerName=[UNKNOWN], Accept=[application/json], X-InvocationID=[e665c0d8-c3c9-4bad-83a8-e7096e2d9c1c], X-ECOMP-RequestID=[bf0ba8d0-a57c-4ca2-989c-eb14179024a2], X-TransactionId=[], X-ONAP-RequestID=[bf0ba8d0-a57c-4ca2-989c-eb14179024a2]}
    2020-07-16T20:50:24.371Z|bf0ba8d0-a57c-4ca2-989c-eb14179024a2|o.o.logging.filter.base.PayloadLoggingClientFilter - Response from method:GET performed on uri:https://aai.onap:8443/aai/v19/external-system/esr-thirdparty-sdnc-list has http status code:200 and response headers:{Content-Length=[163], content-type=[application/json], Date=[Thu, 16 Jul 2020 20:50:24 GMT], Strict-Transport-Security=[max-age=16000000; includeSubDomains; preload;], vertex-id=[299168], X-AAI-TXID=[0-aai-resources-200716-20:50:24:362-7387]}
    2020-07-16T20:50:24.372Z|bf0ba8d0-a57c-4ca2-989c-eb14179024a2|o.o.logging.filter.base.PayloadLoggingClientFilter - {"esr-thirdparty-sdnc":[{"thirdparty-sdnc-id":"2f8f854f-1198-4930-b4a2-27d4f31ee7c7","location":"edge","product-name":"nssmf","resource-version":"1592940535809"}]}

    2020-07-16T20:50:24.375Z|bf0ba8d0-a57c-4ca2-989c-eb14179024a2|org.onap.so.client.RestClient - RestClientSSL using default SSL context!
    2020-07-16T20:50:24.386Z|bf0ba8d0-a57c-4ca2-989c-eb14179024a2|o.o.logging.filter.base.PayloadLoggingClientFilter - Sending HTTP GET to:https://aai.onap:8443/aai/v19/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/2f8f854f-1198-4930-b4a2-27d4f31ee7c7/esr-system-info-list with request headers:{Authorization=[***REDACTED***], X-RequestID=[bf0ba8d0-a57c-4ca2-989c-eb14179024a2], X-FromAppId=[MSO], X-ONAP-PartnerName=[UNKNOWN], Accept=[application/json], X-InvocationID=[45aa2403-9851-4336-8200-1294c2c0b75d], X-ECOMP-RequestID=[bf0ba8d0-a57c-4ca2-989c-eb14179024a2], X-TransactionId=[], X-ONAP-RequestID=[bf0ba8d0-a57c-4ca2-989c-eb14179024a2]}
    2020-07-16T20:50:24.403Z|bf0ba8d0-a57c-4ca2-989c-eb14179024a2|o.o.logging.filter.base.PayloadLoggingClientFilter - Response from method:GET performed on uri:https://aai.onap:8443/aai/v19/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/2f8f854f-1198-4930-b4a2-27d4f31ee7c7/esr-system-info-list has http status code:200 and response headers:{Content-Length=[323], content-type=[application/json], Date=[Thu, 16 Jul 2020 20:50:24 GMT], Strict-Transport-Security=[max-age=16000000; includeSubDomains; preload;], vertex-id=[307256], X-AAI-TXID=[0-aai-resources-200716-20:50:24:393-71883]}
    2020-07-16T20:50:24.404Z|bf0ba8d0-a57c-4ca2-989c-eb14179024a2|o.o.logging.filter.base.PayloadLoggingClientFilter - {"esr-system-info":[{"esr-system-info-id":"bf35fe80-a1a1-47ca-af41-3a0722f5820e","system-name":"NSSMF-Simulator","version":"v1.0","service-url":"http://10.111.87.25:11111","user-name":"admin","password":"admin","system-type":"thirdparty_SDNC","ip-address":"10.111.87.25","port":"11111","resource-version":"1592943525369"}]}

    2020-07-16T20:50:24.407Z|bf0ba8d0-a57c-4ca2-989c-eb14179024a2|o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
    java.lang.NullPointerException: null
    at org.onap.so.adapters.nssmf.rest.RestUtil.getNssmfHost(RestUtil.java:91)
    at org.onap.so.adapters.nssmf.rest.RestUtil.sendRequest(RestUtil.java:118)
    at org.onap.so.adapters.nssmf.rest.NssmfManager.allocateNssi(NssmfManager.java:140)
    at org.onap.so.adapters.nssmf.rest.NssmfAdapterRest.allocateNssi(NssmfAdapterRest.java:60)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)


    Appreciate your help and support and guidance.

    Thanks,

    Kamel

  3. Hi Zhang Min 

    I've followed the steps and I have successfully ran this scenario on Frankfurt. Now, provided I would like to run this on Guilin: which of the manual configuration steps that are described above, are still necessary - and which I can omit?


    Thanks!

    Marcin

  4. Same question as Marcin. I would like to run this on Guilin: which of the manual configuration steps that are described above, are still necessary - and which I can omit?

    In addition, do any of the steps require modification?