...
AR: Confirm if retrieving by name is still needed – Avteet Chayal
Examples of policy retrieval
Code Block |
---|
Occasion one: Normal way
#Available policies inside the policy db
-
OSDF_CASABLANCA.Affinity_Default_vCPE_US_0:
type: onap.policies.optimization.AffinityPolicy
version: 1.0.0
type_version: 1.0.0
metadata:
policy-id: OSDF_CASABLANCA.Affinity_Default_vCPE_US_0
policy-version: 1
properties:
scope: [OSDF_FRANKFURT]
services: [vCPE]
resources: [vG]
geography: [US]
identity: affinity_vCPE
applicableResources: any
affinityProperties:
qualifier: different
category: complex
-
OSDF_CASABLANCA.Affinity_Default_vCPE_US_1:
type: onap.policies.optimization.AffinityPolicy
version: 1.0.0
type_version: 1.0.0
metadata:
policy-id: OSDF_CASABLANCA.Affinity_Default_vCPE_US_0
policy-version: 1
properties:
scope: [OSDF_FRANKFURT]
services: [vCPE]
resources: [vGMux]
geography: [US]
identity: affinity_vCPE
applicableResources: any
affinityProperties:
qualifier: different
category: complex
# VFC Request
{
"requestInfo":{
"transactionId":"12348659-a547-4b81-954e-a244fc5f0f9e",
"requestId":"12348659-a547-4b81-954e-a244fc5f0f9e",
"callbackUrl":"http://10.42.57.133:8403/api/nslcm/v1/ns/placevnf",
"sourceId":"vfc",
"requestType":"create",
"numSolutions":1,
"optimizers":[
"placement"
],
"timeout":600
},
"placementInfo":{
"requestParameters":{
"customerLatitude":"32.897480",
"customerLongitude":"97.040443",
"customerName":"some_company"
},
"subscriberInfo":{
"globalSubscriberId":"",
"subscriberName":"",
"subscriberCommonSiteId":""
},
"placementDemands":[
{
"resourceModuleName":"vG",
"serviceResourceId":"f0a16496-2e0a-480b-8486-04ef762d1d2d",
"tenantId":"null",
"resourceModelInfo":{
"modelInvariantId":"c01e991e-b687-4875-8d75-d6888637f175",
"modelVersionId":"c00456ac-c9b5-4f72-87ae-3a4a0eec6fba",
"modelName":"7400fd06-c75f-4a44-a68f",
"modelType":"",
"modelVersion":"1.0",
"modelCustomizationName":""
}
},
{
"resourceModuleName":"vGMux",
"serviceResourceId":"f0a16496-2e0a-480b-8486-04ef762d1d2e",
"tenantId":"null",
"resourceModelInfo":{
"modelInvariantId":"c01e991e-b687-4875-8d75-d6888637f176",
"modelVersionId":"c00456ac-c9b5-4f72-87ae-3a4a0eec6fbb",
"modelName":"7400fd06-c75f-4a44-a68g",
"modelType":"",
"modelVersion":"1.0",
"modelCustomizationName":""
}
}
]
},
"serviceInfo":{
"serviceInstanceId":"83a23b7a-e68e-4496-a3b2-3bfd822ed63b",
"serviceName":"vcpe",
"modelInfo":{
"modelType":"",
"modelInvariantId":"0d9312af-96fa-425c-b732-01eeca3c3490",
"modelVersionId":"65f761a4-45db-4cde-8d7c-ef9512585098",
"modelName":"vCPE 2018-10-31 19:17:04",
"modelVersion":"1.0",
"modelCustomizationName":""
}
}
}
#Retrieval plans
Plan A: If we are going to send only one policy request per VFC request to get all policies, the config shall look like this:
Config: {"ONAPName": "OOF",
"ONAPComponent": "OOF_Component",
"ONAPInstance": "OOF_Component_Instance",
"action": "optimize",
"resources": "{
"services": ["vcpe"],
"geography": ["US"],
"resources": [],
"scope": ["OSDF_FRANKFURT"] }"
Both two policies inside the DB will be fetched. However, it also means that OSDF need to do the work to group the policies for vG and vGMux.
Plan B: If we are going to send multiple policy requests(one request per vnf), there would be two separate configs with different values inside the key 'resources':
Config A: {"ONAPName": "OOF",
"ONAPComponent": "OOF_Component",
"ONAPInstance": "OOF_Component_Instance",
"action": "optimize",
"resources": "{
"services": ["vcpe"],
"geography": ["US"],
"resources": ["vG"],
"scope": ["OSDF_FRANKFURT"] }"
Config B: {"ONAPName": "OOF",
"ONAPComponent": "OOF_Component",
"ONAPInstance": "OOF_Component_Instance",
"action": "optimize",
"resources": "{
"services": ["vcpe"],
"geography": ["US"],
"resources": ["vGMux],
"scope": ["OSDF_FRANKFURT"] }"
In this way, each policy will be respond to OSDF for certain request.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Occasion 2: Only one default policy available in policy db
#Available policies inside the policy db
-
OSDF_CASABLANCA.Affinity_Default_US:
type: onap.policies.optimization.AffinityPolicy
version: 1.0.0
type_version: 1.0.0
metadata:
policy-id: OSDF_CASABLANCA.Affinity_Default_US
policy-version: 1
properties:
scope: [OSDF_FRANKFURT]
services: [vCPE]
resources: []
geography: [US]
identity: affinity_vCPE
applicableResources: any
affinityProperties:
qualifier: same
category: complex
# A same homing request is then made to OOF
{
"requestInfo":{
"transactionId":"12348659-a547-4b81-954e-a244fc5f0f9e",
"requestId":"12348659-a547-4b81-954e-a244fc5f0f9e",
"callbackUrl":"http://10.42.57.133:8403/api/nslcm/v1/ns/placevnf",
"sourceId":"vfc",
"requestType":"create",
"numSolutions":1,
"optimizers":[
"placement"
],
"timeout":600
},
"placementInfo":{
"requestParameters":{
"customerLatitude":"32.897480",
"customerLongitude":"97.040443",
"customerName":"some_company"
},
"subscriberInfo":{
"globalSubscriberId":"",
"subscriberName":"",
"subscriberCommonSiteId":""
},
"placementDemands":[
{
"resourceModuleName":"vG",
"serviceResourceId":"f0a16496-2e0a-480b-8486-04ef762d1d2d",
"tenantId":"null",
"resourceModelInfo":{
"modelInvariantId":"c01e991e-b687-4875-8d75-d6888637f175",
"modelVersionId":"c00456ac-c9b5-4f72-87ae-3a4a0eec6fba",
"modelName":"7400fd06-c75f-4a44-a68f",
"modelType":"",
"modelVersion":"1.0",
"modelCustomizationName":""
}
},
{
"resourceModuleName":"vGMux",
"serviceResourceId":"f0a16496-2e0a-480b-8486-04ef762d1d2e",
"tenantId":"null",
"resourceModelInfo":{
"modelInvariantId":"c01e991e-b687-4875-8d75-d6888637f176",
"modelVersionId":"c00456ac-c9b5-4f72-87ae-3a4a0eec6fbb",
"modelName":"7400fd06-c75f-4a44-a68g",
"modelType":"",
"modelVersion":"1.0",
"modelCustomizationName":""
}
}
]
},
"serviceInfo":{
"serviceInstanceId":"83a23b7a-e68e-4496-a3b2-3bfd822ed63b",
"serviceName":"vcpe",
"modelInfo":{
"modelType":"",
"modelInvariantId":"0d9312af-96fa-425c-b732-01eeca3c3490",
"modelVersionId":"65f761a4-45db-4cde-8d7c-ef9512585098",
"modelName":"vCPE 2018-10-31 19:17:04",
"modelVersion":"1.0",
"modelCustomizationName":""
}
}
}
#Retrieval plans
Plan A: If we are going to send only one policy request per VFC request to get all policies, the config shall look like this:
Config: {"ONAPName": "OOF",
"ONAPComponent": "OOF_Component",
"ONAPInstance": "OOF_Component_Instance",
"action": "optimize",
"resources": "{
"services": ["vCPE"],
"geography": ["US"],
"resources": [],
"scope": ["OSDF_FRANKFURT"] }"
ONLY ONE policies will be fetched. However, how can OSDF judge it is a policy for vG or vGMux?
Plan B: If we are going to send multiple policy requests(one request per vnf), there would be two separate configs with different values inside the key 'resources':
Config A: {"ONAPName": "OOF",
"ONAPComponent": "OOF_Component",
"ONAPInstance": "OOF_Component_Instance",
"action": "optimize",
"resources": "{
"services": ["vcpe"],
"geography": ["US"],
"resources": ["vG"],
"scope": ["OSDF_FRANKFURT"] }"
Config B: {"ONAPName": "OOF",
"ONAPComponent": "OOF_Component",
"ONAPInstance": "OOF_Component_Instance",
"action": "optimize",
"resources": "{
"services": ["vcpe"],
"geography": ["US"],
"resources": ["vGMux],
"scope": ["OSDF_FRANKFURT"] }"
In this way, the default policy will be respond to OSDF for certain request. |