1, I onboard 3 new cloud regions into AAI (in addition to the default one (CloudOwner/RegionOne) populated by robot init script) with the ESR registration portal: http://portal.api.simpledemo.onap.org:30280/iui/aai-esr-gui/extsys/vim/vimView.html
CloudOwner2/RegionOne
CloudOwner2/CloudRegion2
CloudOwner3/CloudRegion3
2, I hacked into SO to add them into catalogDB:
3, Instantiate a Service Instance of vLB service model: vLB2
This is can only be done with Test API of “VNF_API”, while fails always with Test AP of GR_API
4, Add vnf to vLB2 and select the CloudRegion2(CloudOwner2)
vLB2-VNF1
5, Prepare preload json for VID uploading (refer to https://wiki.onap.org/display/DW/VID+Preload+Upload+Option+Steps )
preload_vid_vlbbase.json
6, create VF Module: vLB2-VNF1-VFM1
Select CloudRegion2(CloudOwner2)
Upload the “preload_vid_vlbbase.json”, de-select SDNC preload
Then I got the dialog showing the progress and told me the result is failure:
"requestId": "eb45ded2-37dd-44a5-8708-45e2f1cc6aba",
"requestType": "createInstance",
"timestamp": "Wed, 29 May 2019 10:51:14",
"requestState": "FAILED",
"requestStatus": "STATUS: Received error from SDN-C: aic-cloud-region,CloudRegion2 not found in AAI",
"percent-progress": "100"
"requestId": "eb45ded2-37dd-44a5-8708-45e2f1cc6aba",
"requestType": "createInstance",
"timestamp": "Wed, 29 May 2019 10:51:13",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "eb45ded2-37dd-44a5-8708-45e2f1cc6aba",
"requestType": "createInstance",
"timestamp": "Wed, 29 May 2019 10:51:12",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "eb45ded2-37dd-44a5-8708-45e2f1cc6aba",
"requestType": "createInstance",
"timestamp": "Wed, 29 May 2019 10:51:10",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
I think the critical issue is:
"requestStatus": "STATUS: Received error from SDN-C: aic-cloud-region,CloudRegion2 not found in AAI",
I am wondering why SDN-C is requesting (aic-cloud-region/CloudRegion2) other than (CloudOwner2/CloudRegion2) which specified via VID portal
Still investigating what's wrong or what the gap is
The following jira/patch might be relevant:
https://jira.onap.org/browse/SO-1904
https://jira.onap.org/browse/SO-1869
https://gerrit.onap.org/r/#/c/oom/+/88269
------------------------------------------------------------------------------------------------------------
Retest with latest OOM revision in master:
1, Failed to create service instance while selecting GR-API:
MSO failure - see log below for details
"requestId": "cdf05701-b3a2-44b7-9f2b-00540107e693",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 09:46:36",
"requestState": "FAILED",
"requestStatus": "STATUS: Exception in create execution list null",
"percent-progress": "100"
"requestId": "cdf05701-b3a2-44b7-9f2b-00540107e693",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 09:46:35",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
06/04/19 09:46:33 HTTP Status: Accepted (202)
{
"requestReferences":
{ "requestId": "cdf05701-b3a2-44b7-9f2b-00540107e693", "instanceId": "65958cbd-7070-4348-9b8a-c06e975d5733", "requestSelfLink": "http://so.onap:8080/orchestrationRequests/v7/cdf05701-b3a2-44b7-9f2b-00540107e693" }
}
2, Failed to create VF Module by selecting LCP: CloudRegion3(CloudOwner3) after selecting VNF-API:
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:57:03",
"requestState": "FAILED",
"requestStatus": "STATUS: Received error from SDN-C: SQL query failed",
"percent-progress": "100"
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:57:02",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:57:01",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:57:00",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:59",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:58",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:57",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:56",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:54",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:53",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:52",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:51",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:50",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:48",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:48",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:47",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:46",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:45",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:44",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:42",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:42",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:41",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:40",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"requestType": "createInstance",
"timestamp": "Tue, 04 Jun 2019 13:56:38",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
06/04/19 13:56:37 HTTP Status: Accepted (202)
{
"requestReferences": {
"requestId": "a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0",
"instanceId": "76fa99ac-34e0-4df2-84df-57e6a51b2d63",
"requestSelfLink": "http://so.onap:8080/orchestrationRequests/v6/a09dc03e-7b9e-44c0-8e2f-afa8b0ff5ec0"
}
}
Progress on June 5th:
With patch https://gerrit.onap.org/r/#/c/so/+/89283/ I am able to create the service instance by GR-API now.
I met another issue while I am trying to “add node instance” by selecting non-default cloud-region: CloudRegion3(CloudOwner3) which differ the default one by both cloud-region-id and the cloud owner.
The vid dialog generate following error message:
"requestId": "55f679a6-c513-4b59-b8e4-e1ba8aba29d3",
"requestType": "createInstance",
"timestamp": "Wed, 05 Jun 2019 13:54:00",
"requestState": "FAILED",
"requestStatus": "STATUS: Exception in create execution list null",
"percent-progress": "100"
"requestId": "55f679a6-c513-4b59-b8e4-e1ba8aba29d3",
"requestType": "createInstance",
"timestamp": "Wed, 05 Jun 2019 13:53:59",
"requestState": "IN_PROGRESS",
"requestStatus": undefined,
"percent-progress": undefined
06/05/19 13:53:58 HTTP Status: Accepted (202)
{
"requestReferences": {
"requestId": "55f679a6-c513-4b59-b8e4-e1ba8aba29d3",
"instanceId": "0caeb205-6fe5-417a-a028-c1f444951c3d",
"requestSelfLink": "http://so.onap:8080/orchestrationRequests/v6/55f679a6-c513-4b59-b8e4-e1ba8aba29d3"
}
}
So I tried to add another node instance by selecting “CloudRegion(CloudOwner)”, then it succeeded .
"requestId": "376c0dd2-3652-4bb6-a4d2-93442f20632a",
"requestType": "createInstance",
"timestamp": "Wed, 05 Jun 2019 13:55:27",
"requestState": "COMPLETE",
"requestStatus": "STATUS: ALaCarte-Vnf-createInstance request was executed correctly. FLOW STATUS: Successfully completed all Building Blocks",
"percent-progress": "100"
"requestId": "376c0dd2-3652-4bb6-a4d2-93442f20632a",
"requestType": "createInstance",
"timestamp": "Wed, 05 Jun 2019 13:55:25",
"requestState": "IN_PROGRESS",
"requestStatus": "FLOW STATUS: Execution of AssignVnfBB has completed successfully, next invoking ActivateVnfBB (Execution Path progress: BBs completed = 1; BBs remaining = 1).",
"percent-progress": "52"
AR: Not sure which project should take care of this issue, sent email to discuss email list, wait for response now
6 Comments
Ittay Stern
Bin, at what lab are you working?
I'm looking for VID's IP where you got the "requestStatus": "STATUS: Exception in create execution list null"
Bin Yang
Hi Ittay,
I tested it under VIM tenant. You can ssh to rancher VM with following ip. Appreciate you could help on this issue.
rancher IP: ubuntu@10.12.5.222
k8s node IP: 10.12.6.25
Andreas Geissler
Hi Bin,
as I see from the Test instructions (step 2) in Dublin SO is still not using the AAI Cloud entries, but need to have entries in its own Catalog DB, which is quite bad.
Do you have instruction how to add additional Cloud entries to the SO Catalog DB?
Unfortunately SO does not document an instruction for that.
Thanks a lot
Andreas
Bin Yang
Hi Andreas,
There are multiple way to do (hacking) that:
1, add your cloud sites to SO's override.yaml before you deploy your ONAP instance
2, update the catalogdb by hacking into the shared database pod
3, attach to robot pod (or any pod that have the internal access to ONAP's service) and issue the curl commands
4, other approaches I don't know yet
I didn't try the 1st approach, if you would like to try the approach 2, here are the instructions for your reference:
--------------
Prerequisite: if you would like to leverage the new adapter of SO to integrate SO with MultiCloud for your added cloudsites
Set the so-bpmn vnf to v2:
Option 1:
kubernetes/so/charts/so-bpmn-infra/resources/config/overrides/override.yaml
vnf:
endpoint:http://so-openstack-adapter.{{include"common.namespace".}}:8087/services/VnfAdapter
rest:
endpoint:http://so-openstack-adapter.{{include"common.namespace".}}:8087/services/rest/v1/vnfs
option 2:
--------------
hacking with DB commands:
kubectl into the mariadb:
e.g. the dev-mariadb-galera-mariadb-galera-0 pod
# mysql -u root --password=secretpassword
use catalogdb;
select * from cloud_sites;
insert into cloud_sites(ID, REGION_ID, IDENTITY_SERVICE_ID, CLOUD_VERSION, CLLI, ORCHESTRATOR) values("CloudRegion2", "CloudRegion2", "DEFAULT_KEYSTONE", "2.5", "clli1", "multicloud");
select * from identity_services;
UPDATE identity_services set admin_tenant="service",member_role="admin",identity_server_type="KEYSTONE",identity_authentication_type='USERNAME_PASSWORD',tenant_metadata=1 where ID="DEFAULT_KEYSTONE";
If you would like to try with approach 3, here are the instructions for you reference:
Hacking with rest api:
#kubectl exec -it -n onap dev-robot-robot-7b46f9fd7c-d2gwt – bash
root@dev-robot-robot-7b46f9fd7c-d2gwt:/# apt-get update
root@dev-robot-robot-7b46f9fd7c-d2gwt:/# apt-get install curl
curl -v \
-H 'Accept: application/json' \
-H 'Authorization: Basic YnBlbDpwYXNzd29yZDEk' \
-H 'Content-Type: application/json' \
-H 'Postman-Token: 48fe7844-839e-469e-a8b8-1fb493dfaba3' \
-H 'Real-Time: true' \
-H 'X-FromAppId: jimmy-postman' \
-H 'X-TransactionId: 9999' \
-H 'cache-control: no-cache' \
-X GET \
so-catalog-db-adapter.onap:8082/manage/health
curl -v \
-H 'Accept: application/json' \
-H 'Authorization: Basic YnBlbDpwYXNzd29yZDEk' \
-H 'Content-Type: application/json' \
-H 'Postman-Token: 48fe7844-839e-469e-a8b8-1fb493dfaba3' \
-H 'Real-Time: true' \
-H 'X-FromAppId: jimmy-postman' \
-H 'X-TransactionId: 9999' \
-H 'cache-control: no-cache' \
-X GET \
so-catalog-db-adapter.onap:8082/cloudSite
curl -v \
-H 'Accept: application/json' \
-H 'Authorization: Basic YnBlbDpwYXNzd29yZDEk' \
-H 'Content-Type: application/json' \
-H 'Postman-Token: 48fe7844-839e-469e-a8b8-1fb493dfaba3' \
-H 'Real-Time: true' \
-H 'X-FromAppId: jimmy-postman' \
-H 'X-TransactionId: 9999' \
-H 'cache-control: no-cache' \
-X GET \
so-catalog-db-adapter.onap:8082/cloudSite/CloudRegion2
curl -v \
-H 'Accept: application/json' \
-H 'Authorization: Basic YnBlbDpwYXNzd29yZDEk' \
-H 'Content-Type: application/json' \
-H 'Postman-Token: 48fe7844-839e-469e-a8b8-1fb493dfaba3' \
-H 'Real-Time: true' \
-H 'X-FromAppId: jimmy-postman' \
-H 'X-TransactionId: 9999' \
-H 'cache-control: no-cache' \
-X DELETE \
so-catalog-db-adapter.onap:8082/cloudSite/CloudRegion2
curl -v \
-H 'Accept: application/json' \
-H 'Authorization: Basic YnBlbDpwYXNzd29yZDEk' \
-H 'Content-Type: application/json' \
-H 'Postman-Token: 48fe7844-839e-469e-a8b8-1fb493dfaba3' \
-H 'Real-Time: true' \
-H 'X-FromAppId: jimmy-postman' \
-H 'X-TransactionId: 9999' \
-H 'cache-control: no-cache' \
-X POST \
so-catalog-db-adapter.onap:8082/cloudSite \
-d '{
"id": "CloudRegion3",
"region_id": "CloudRegion3",
"aic_version": "2.5",
"clli": "clli1",
"orchestrator" : "multicloud",
"identityService" : {
"id" : "DEFAULT_KEYSTONE2",
"identity_url": "http://10.12.25.2:5000/v2.0",
"mso_id": "demo",
"mso_pass": "",
"admin_tenant": "service",
"member_role": "admin",
"tenant_metadata": true,
"identity_server_type": "KEYSTONE",
"identity_authentication_type": "USERNAME_PASSWORD"
}
}'
Good luck
Marcus Williams
Andreas Geissler SO gets cloudConfig info form AAI it just doesn't add this to it's database as cloudConfig used as the basis for instantiation requests. The current assumption is that all of this will be present in SO overrides.yaml on deploy.
However, if you use homing, cloud config is automatically put into SO DB at the time the service etc is homed. I.E. If you have homing distance, homing latency or homing HPA policies and add the correct user params in instantiation requests, when the cloudConfig (ultimately from AAI & Multicloud) is passed back to SO it stores this in its database and uses that as the basis for instantiation requests.
Bin Yang
Marcus Williams This seems something new in Dublin? Is there any document to tell how to do or test it? Thanks