Versions Compared

Key

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

Here's the list of requirements that need to be met at each of the components for the homing call from SO to succeed for the vCPE use case. 

...

  1. Send vCPE homing template to HAS, E.g.

    1. $ curl -X POST --user admin1:plan.15 -H 'Content-Type: application/json' \
      -d @homing.json localhost:8091/v1/plans

    2. Hint: homing.json may be created by conjoining 

      Code Block
      {
      "name": "vCPE homing Beijing 2.0.0-ONAP",
      "template": <<HAS Homing Specification (R')>>
      }

      where HAS Homing Specification (R') = https://wiki.onap.org/display/DW/vCPE+Homing+Use+Case

    3. Hint: for username:password (--user above) see ~/conductor.conf, conductor_api section

  2. RESOLVED: ISSUE_1: At this point a request fails with an error and the following message is returned for the homing request:

    1. After a 5 mins long timeout, the HAS api component replies back with error:

    2. Code Block
      languagejs
      {
      	"error_message": {
      		"explanation": "Unable to create Plan.",
      		"code": 500,
      		"error": {
      			"message": "The server has either erred or is incapable of performing the requested operation.",
      			"type": "HTTPInternalServerError"
      		},
      		"title": "Internal Server Error"
      	}
      }
    3. The underlying communication can be observed by capturing network traffic on the docker bridges by Wireshark. The communication is stuck (which causes the timeout at the api component) after a faulty MUSIC reply:

      1. Request to MUSIC sent by the controller: PUT /MUSIC/rest/v2/keyspaces/conductor_rpc/tables/controller/rows?id=<<Some UUID>>

        1. This request is a database primitive of the MUSIC API which modifies a row identified by <<Some UUID>> in table *controller*  of keyspace *conductor_rpc*. The data of the new database entry is delivered in the HTTP request body (not included here), which can be captured by Wireshark observing the communication between the controller HAS component and MUSIC.
      2. MUSIC's reply: "Exception thrown while doing the critical put, check sanctity of the row/conditions:\nnull"

      3. The produced HTTP stream between `controller` and MUSIC captured with Wireshark:
        View file
        nameHAS-MUSIC consitency-atomic.txt
        height250
  3. ISSUE_2Controller - MUSIC interaction fails with "Customer ID not specified for demand vGMuxInfra". This error message can be accessed by capturing HTTP traffic on the docker bridge created for the HAS components. Even though a HTTP 200 OK message is sent back to the homing template vCPE request initiator's side (either the Insomnia REST client or the curl command), the placement does not finish successfully.

Contact

Please if you have anything to add to or ask about this tutorial, contact me: balazs.nemeth__AT__tmit.bme.hu

...