This page describes how to get the New-Delhi release version of A1-Policy functions up and running using Docker.
...
Info | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
There is no functional gain in accessing the near-RT-RIC through an A1-Controller. To bypass the A1-Controller (SDNC + A1 Adapter), where the A1-Policy Management Service connects directly to the A1 Interface:
|
...
Component | Release image and version tag | Staging images and version tag | Manual snapshot (only available if manually built) and version tag |
---|---|---|---|
A1 Policy Management Service | nexus3.onap.org:10002/onap/ccsdk-oran-a1policymanagementservice:1.7.12 | nexus3.onap.org:10004/onap/ccsdk-oran-a1policymanagementservice:1.7.23-STAGING-latest | onap/ccsdk-oran-a1policymanagementservice:1.7.23-SNAPSHOT |
SDNC image | nexus3.onap.org:10002/onap/sdnc-image:2.6.1 | nexus3.onap.org:10004/onap/sdnc-image:2.8.0-STAGING-latest | onap/sdnc-image:2.8.0-SNAPSHOT |
...
Run A1 Policy Management Service docker container using the command below, after the A1-Controller and simulators have been fully started.
The configuration file (application_configuration.json described above) must be mounted as avolume
into the container, so absolute path and name of the file must be substituted in the following command:Code Block language bash title Docker: Run the A1 Policy Management Service docker run -p 8081:8081 --network=nonrtric-docker-net --name=a1policymanagmentservice --volume **<Absolute path to application_configuration.json created above>**:/opt/app/policy-agent/data/application_configuration.json nexus3.onap.org:10002/onap/ccsdk-oran-a1policymanagementservice:1.7.12
Note: Version numbers used in this page may not be the most recent ... you should verify the latest version numbers for released pre-built components in the docker image repository (https://nexus3.onap.org)
Note: Make sure to give the full/absolute path to the configuration file. Docker will need this full path to find the file to mount it as a volume. Otherwise Docker will instead create an empty directory as the volume inside the container.This command starts the A1 Policy Management Service, using the configuration specified above, with its REST endpoint available at ports
8081
Other docker containers using the same docker network ("nonrtric-docker-net
") can address this container by name, and directly access its REST endpoints. i.e.:a1policymanagmentservice
:8081
- Ports
8081
is also exposed outside the network , mapped to a local port on the host. i.e.:
Port8081
ina1policymanagmentservice
container →localhost:8081
- It may be useful to set the logging level to
TRACE
level, where you can verify the A1-Controller, A1-Simualtors and A1 Policy Management Service is fully up and running.Code Block language bash title Optional: Enable TRACE level logging in A1 Policy Management Service collapse true curl -i -X POST "http://localhost:8081/actuator/loggers/org.onap.ccsdk.oran.a1policymanagementservice" -H "Content-Type:application/json" -d {\"configuredLevel\":\"trace\"} curl -i -X GET "http://localhost:8081/actuator/loggers/org.onap.ccsdk.oran.a1policymanagementservice"
Once the Policy Management Service is up and running, it establishes connections to all configured near-RT-RICs (
ric1
,ric2
,ric3
,ric4
) via the A1 Controller.If the
a1policymanagmentservice
container is configured to log atTRACE
level, the following logs entries should appear indicating that connection to the configured near-RT-RICs has been established successfully (via A1 Controller if enabled).
...
Sample A1-Policy Instance data that corresponds to A1-Policy Type “
STD_QOS2_0.1.0
” is shown below. This can be used to create a new A1-Policy instance on "ric3
" or "ric4
".Code Block language js title Instance#1: policy_data payload: Type: "STD_QOS2_0.1.0" collapse true { "scope": { "ueId": "ue5000", "qosId": "qos5000" }, "qosObjectives": { "priorityLevel": 5000 } }
The payload to create a new A1-Policy Instance (
policy_id:"aa8feaa88d"
) of type “STD_QOS2_0.1.0
” on "ric3
" is shown belowCode Block language js title Instance#1: instance_1.json (policy_id:aa8feaa88d) collapse true { "ric_id": "ric3", "policy_id": "aa8feaa88d", "service_id": "myapp", "policytype_id": "STD_QOS2_0.1.0", "policy_data": { "scope": { "ueId": "ue5000", "qosId": "qos5000" }, "qosObjectives": { "priorityLevel": 5000 } } }
docs.onap.org: (newdelhi): API: operation/putPolicy
Code Block language bash curl -X PUT -v "http://localhost:8081/a1-p/policies" -H "accept: application/json" -H "Content-Type: application/json" --data-binary @instance_1.json curl "http://localhost:8081/a1-p/policies" Result: {"policy_ids":["aa8feaa88d"]} curl "localhost:8081/a1-policy/v2/policies/aa8feaa88d944d919ef0e83f2172a5000" Result: {"ric_id":"ric3","policy_id":"aa8feaa88d","service_id":"controlpanel","policy_data":{"scope":{"ueId":"ue5000","qosId":"qos5000"},"qosObjectives":"priorityLevel":5000}},"status_notification_uri":null, "policytype_id":"STD_QOS2_0.1.0","transient":false}
Sample A1-Policy Instance data that corresponds to A1-Policy Type
1
is shown below. This can be used to create a new A1-Policy instance on "ric1
" or "ric2
".Code Block language js title Instance#2: policy_data payload: Type: 1 collapse true { "scope": { "ueId": "ue6000", "qosId": "qos6000" }, "qosObjectives": { "priorityLevel": 6000 } }
The payload to create a new A1-Policy Instance (
policy_id:"172a5100"
) of type “STD_QOS2_0.1.0
” on "ric2
" is shown belowCode Block language js title Instance#2: instance_2.json (policy_id:"172a5100") collapse true { "ric_id": "ric2", "policy_id": "172a5100", "service_id": "myapp", "policytype_id": "1", "policy_data": { "scope": { "ueId": "ue6000", "qosId": "qos6000" }, "qosObjectives": { "priorityLevel": 6000 } } }
docs.onap.org: (newdelhi): API: operation/putPolicy
Code Block language bash curl -X PUT -v "http://localhost:8081/a1-p/policies" -H "accept: application/json" -H "Content-Type: application/json" --data-binary @instance_2.json curl "http://localhost:8081/a1-p/policies" Result: {"policy_ids":["172a5000", "aa8feaa88d"]} curl "localhost:8081/a1-policy/v2/policies/172a5000" Result: {"ric_id":"ric2","policy_id":"172a5000","service_id":"myapp","policy_data":{"scope":{"ueId":"ue6000","qosId":"qos6000"},"qosObjectives":"priorityLevel":6000}},"status_notification_uri":null,"policytype_id":"1","transient":false}
...