...
JSON Viewer |
---|
hideMenu | true |
---|
width | 700 |
---|
hideBorder | true |
---|
height | 260 |
---|
|
{
"model-invariant-id": "73e7212d-a340-4626-a050-a9d07b96e146",
"model-type": "resource",
"model-vers": {
"model-ver": [
{
"model-version-id": "7d33bac2-7372-45d6-89a3-d8b2ecf16f87",
"model-name": "NSTAR",
"model-version": "1.0"
}
]
}
} |
Create Customer and service-subscription
Create customer(5GCustomer) and service-subscription(5G) in AAI.
Image Added
Image Added
OOF Configuration
OSDF CHANGES(FOR NST 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
Code Block |
---|
language | yml |
---|
theme | RDark |
---|
collapse | true |
---|
|
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
...
This block is an illustration is when the model name is- "URLLC_1"
Code Block |
---|
language | yml |
---|
theme | RDark |
---|
collapse | true |
---|
|
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 ) Populating aai with an NSSI and an NSI (For now the script has to be updated manually every time the model changes ) 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> )
Code Block |
---|
language | textyml |
---|
title | AAI preload script |
---|
theme | RDark | linenumbers | true |
---|
collapse | true |
---|
|
#./pre_v1.sh 2d5b9bc2-0ece-4b5c-b5f7-dcdc19f53ad1 9507fc4a-37d3-4024-a991-9a56c16c4dc0 c0eeaa3b-625c-4518-bd1f-f01cc784813c 836eb219-346d-4b8b-8376-b0c4d17954a9 |
Code Block |
---|
language | text |
---|
title | AAI preload script |
---|
linenumbers | true |
---|
collapse | true |
---|
|
#!/bin/bash
echo !/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": "2d5b9bc2-0ece-4b5c-b5f7-dcdc19f53ad1",'"$1"'",
"model-version-id": "9507fc4a-37d3-4024-a991-9a56c16c4dc0"'"$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": "c0eeaa3b-625c-4518-bd1f-f01cc784813c"'"$3"'",
"model-version-id": "836eb219-346d-4b8b-8376-b0c4d17954a9"'"$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": "2d5b9bc2-0ece-4b5c-b5f7-dcdc19f53ad1"'"$1"'",
"model-version-id": "9507fc4a-37d3-4024-a991-9a56c16c4dc0'"$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 (/opt/osdf/test/policy-local-policies/ )
(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>
Code Block |
---|
language | yml |
---|
theme | RDark |
---|
collapse | true |
---|
|
#./policy.sh EmbbNst kubectlEmbbCn cp -n onap <path to the test folder> <osdf-pod name>:/opt/osdf/ |
(For now, all the three policies has to be updated manually every time the model changes). For convenience test folder is kept in the test environment.
...
5t636c4d-5e76-427e-bfd6-241a947224b0 1a636c4d-5e76-427e-bfd6-241a947224b0 |
Code Block |
---|
language | powershell |
---|
theme | RDark |
---|
title | policy.sh |
---|
collapse | true |
---|
|
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
Code Block |
---|
language | yml |
---|
theme | RDark |
---|
collapse | true |
---|
|
# 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
Code Block |
---|
|
PUT /external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/{thirdparty-sdnc-id}
application/json
{
"thirdparty-sdnc-id":"",
"location": "",
"product-name": "nssmf"
} |
Code Block |
---|
theme | Eclipse |
---|
title | 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> |