Versions Compared

Key

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

This page describes how to get the New-Delhi release version of A1-Policy functions up and running using Docker.

...

ComponentRelease image and version tagStaging images and version tagManual 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 imagenexus3.onap.org:10002/onap/sdnc-image:2.6.1nexus3.onap.org:10004/onap/sdnc-image:2.8.0-STAGING-latestonap/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 a volume into the container, so absolute path and name of the file must be substituted in the following command:

    Code Block
    languagebash
    titleDocker: 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.:
      Port 8081 in a1policymanagmentservice 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
    languagebash
    titleOptional: Enable TRACE level logging in A1 Policy Management Service
    collapsetrue
    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 at TRACE 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
    languagejs
    titleInstance#1: policy_data payload: Type: "STD_QOS2_0.1.0"
    collapsetrue
    {
        "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 below

      Code Block
      languagejs
      titleInstance#1: instance_1.json (policy_id:aa8feaa88d)
      collapsetrue
      {
          "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
      languagebash
      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
    languagejs
    titleInstance#2: policy_data payload: Type: 1
    collapsetrue
    {
        "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 below

      Code Block
      languagejs
      titleInstance#2: instance_2.json (policy_id:"172a5100")
      collapsetrue
      {
          "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
      languagebash
      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}


...