aboutsummaryrefslogtreecommitdiffstats
path: root/tutorials
diff options
context:
space:
mode:
Diffstat (limited to 'tutorials')
-rw-r--r--tutorials/tutorial-enforcement/README.md60
-rw-r--r--tutorials/tutorial-enforcement/src/main/docker/README.txt36
-rw-r--r--tutorials/tutorial-enforcement/src/main/docker/config/db/db-pg.sh25
-rw-r--r--tutorials/tutorial-enforcement/src/main/docker/config/db/db.conf20
-rw-r--r--tutorials/tutorial-enforcement/src/main/docker/config/db/db.sh26
-rw-r--r--tutorials/tutorial-enforcement/src/main/docker/config/sim/simParameters.json15
-rw-r--r--tutorials/tutorial-enforcement/src/main/docker/docker-compose.yml105
-rw-r--r--tutorials/tutorial-xacml-application/pom.xml191
-rw-r--r--tutorials/tutorial-xacml-application/src/main/docker/docker-compose.yml11
-rwxr-xr-xtutorials/tutorial-xacml-application/src/main/docker/run-tutorial.sh60
10 files changed, 224 insertions, 325 deletions
diff --git a/tutorials/tutorial-enforcement/README.md b/tutorials/tutorial-enforcement/README.md
index 23321fd2..07b55984 100644
--- a/tutorials/tutorial-enforcement/README.md
+++ b/tutorials/tutorial-enforcement/README.md
@@ -1,20 +1,68 @@
Copyright 2020 AT&T Intellectual Property. All rights reserved.
+
This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+# Build the Tutorial
+
The Policy Enforcement Tutorial can be built:
-mvn clean install
+ mvn clean install
+
+# Start the Policy Framework components
+
+Be sure to start the Policy Framework application components in *docker* if you are not testing this in a lab.
+- Ensure you have docker and docker-compose installed
+- Check out the *policy/docker* repo from the ONAP gerrit or from github: https://github.com/onap/policy-docker
+- In a console, change directory into the *csit* directory of the *policy/docker* repo
+- Start *xacml-pdp* by running the *start-containter.sh* script
+
+ start-container.sh xacml-pdp
+
+- Ensure that DMaaP is up
+
+ > curl -X POST http://0.0.0.0:30227/events/POLICY-PDP-PAP
+ Should return JSON similar to this:
+ {"serverTimeMs":0,"count":0}
+
+- Run the xacml-pdp health check
+
+ curl -u 'policyadmin:zb!XztG34' 'http://0.0.0.0:30441/policy/pdpx/v1/healthcheck'
+ Should return JSON similar to this:
+ {"name":"Policy Xacml PDP","url":"self","healthy":true,"code":200,"message":"alive"}
+
+- Run the api health check
+
+ curl -u 'policyadmin:zb!XztG34' 'http://0.0.0.0:30440/policy/api/v1/healthcheck'
+ Should return JSON similar to this:
+ {
+ "name": "Policy API",
+ "url": "policy-api",
+ "healthy": true,
+ "code": 200,
+ "message": "alive"
+ }
+
+- Run the pap health check
+
+ curl -u 'policyadmin:zb!XztG34' 'http://0.0.0.0:30442/policy/pap/v1/healthcheck'
+ Should return JSON similar to this:
+ {
+ "name": "Policy PAP",
+ "url": "policy-pap",
+ "healthy": true,
+ "code": 200,
+ "message": "alive"
+ }
-Be sure to start the Policy Framework application components if you are not testing this in a lab. See
-src/main/docker/README.txt for details to run local instances of the components.
+# Run the Tutorial
-You can run the application via code by running the App.main method with command line argument with IP then Port
+You can run the application via code by running the *App.main* method with command line argument with IP then Port
of the XACML PDP, followed by the IP then Port of Dmaap.
-App.main(new String[] {"0.0.0.0", "6969", "0.0.0.0", "3904"});
+ App.main(new String[] {"0.0.0.0", "6969", "0.0.0.0", "3904"});
-or from Eclipse by right-clicking App.java and selecting "Run As" and select "Java Application". Edit the
+or from Eclipse by right-clicking App.java and selecting *Run As* and select *Java Application*. Edit the
configuration by adding these command line arguments: "0.0.0.0" "6969" "0.0.0.0" "3904"
Quit the application by typing 'q' into stdin.
diff --git a/tutorials/tutorial-enforcement/src/main/docker/README.txt b/tutorials/tutorial-enforcement/src/main/docker/README.txt
deleted file mode 100644
index eed0a74a..00000000
--- a/tutorials/tutorial-enforcement/src/main/docker/README.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-docker-compose -f docker-compose.yml run --rm start_dependencies
-
-docker-compose -f docker-compose.yml run --rm start_all
-
-
-curl -X POST http://0.0.0.0:3904/events/POLICY-PDP-PAP
-
-Should return JSON similar to this:
-{"serverTimeMs":0,"count":0}
-
-
-curl -k -u 'healthcheck:zb!XztG34' 'https://0.0.0.0:6969/policy/pdpx/v1/healthcheck'
-
-Should return JSON similar to this:
-{"name":"Policy Xacml PDP","url":"self","healthy":true,"code":200,"message":"alive"}
-
-
-curl -k -u 'healthcheck:zb!XztG34' 'https://0.0.0.0:6767/policy/api/v1/healthcheck'
-Should return JSON similar to this:
-{
- "name": "Policy API",
- "url": "policy-api",
- "healthy": true,
- "code": 200,
- "message": "alive"
-}
-
-curl -k -u 'healthcheck:zb!XztG34' 'https://0.0.0.0:6868/policy/pap/v1/healthcheck'
-{
- "name": "Policy PAP",
- "url": "policy-pap",
- "healthy": true,
- "code": 200,
- "message": "alive"
-}
-
diff --git a/tutorials/tutorial-enforcement/src/main/docker/config/db/db-pg.sh b/tutorials/tutorial-enforcement/src/main/docker/config/db/db-pg.sh
deleted file mode 100644
index 41326c61..00000000
--- a/tutorials/tutorial-enforcement/src/main/docker/config/db/db-pg.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-#
-# ============LICENSE_START=======================================================
-# Copyright (C) 2022 Nordix Foundation.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-#
-
-export PGPASSWORD=${PG_ADMIN_PASSWORD};
-
-for db in policyadmin operationshistory
-do
- psql -h ${PG_HOST} -p ${PG_PORT} -U postgres --command "CREATE DATABASE ${db};"
- psql -h ${PG_HOST} -p ${PG_PORT} -U postgres --command "GRANT ALL PRIVILEGES ON DATABASE ${db} TO ${PG_USER};"
-done \ No newline at end of file
diff --git a/tutorials/tutorial-enforcement/src/main/docker/config/db/db.conf b/tutorials/tutorial-enforcement/src/main/docker/config/db/db.conf
deleted file mode 100644
index 42f35844..00000000
--- a/tutorials/tutorial-enforcement/src/main/docker/config/db/db.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-# ============LICENSE_START=======================================================
-# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-MYSQL_ROOT_PASSWORD=secret
-MYSQL_USER=policy_user
-MYSQL_PASSWORD=policy_user \ No newline at end of file
diff --git a/tutorials/tutorial-enforcement/src/main/docker/config/db/db.sh b/tutorials/tutorial-enforcement/src/main/docker/config/db/db.sh
deleted file mode 100644
index 499764df..00000000
--- a/tutorials/tutorial-enforcement/src/main/docker/config/db/db.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash -xv
-# ============LICENSE_START=======================================================
-# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-
-for db in policyadmin operationshistory
-do
- mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "CREATE DATABASE IF NOT EXISTS ${db};"
- mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "GRANT ALL PRIVILEGES ON \`${db}\`.* TO '${MYSQL_USER}'@'%' ;"
-done
-
-mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "FLUSH PRIVILEGES;"
diff --git a/tutorials/tutorial-enforcement/src/main/docker/config/sim/simParameters.json b/tutorials/tutorial-enforcement/src/main/docker/config/sim/simParameters.json
deleted file mode 100644
index bd435201..00000000
--- a/tutorials/tutorial-enforcement/src/main/docker/config/sim/simParameters.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "dmaapProvider": {
- "name": "DMaaP simulator",
- "topicSweepSec": 300
- },
- "restServers": [
- {
- "name": "DMaaP simulator",
- "providerClass": "org.onap.policy.models.sim.dmaap.rest.DmaapSimRestControllerV1",
- "host": "0.0.0.0",
- "port": 3904,
- "https": false
- }
- ]
-} \ No newline at end of file
diff --git a/tutorials/tutorial-enforcement/src/main/docker/docker-compose.yml b/tutorials/tutorial-enforcement/src/main/docker/docker-compose.yml
deleted file mode 100644
index fada017f..00000000
--- a/tutorials/tutorial-enforcement/src/main/docker/docker-compose.yml
+++ /dev/null
@@ -1,105 +0,0 @@
-# ============LICENSE_START=======================================================
-# Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-version: '2'
-services:
- mariadb:
- image: mariadb:10.2.14
- container_name: mariadb
- hostname: mariadb
- command: ['--lower-case-table-names=1', '--wait_timeout=28800']
- env_file: config/db/db.conf
- volumes:
- - ./config/db:/docker-entrypoint-initdb.d
- expose:
- - 3306
- message-router:
- image: nexus3.onap.org:10001/onap/policy-models-simulator:latest
- container_name: dmaap-simulator
- hostname: dmaap-simulator
- volumes:
- - ./config/sim:/opt/app/policy/simulators/etc/mounted:ro
- ports:
- - "3904:3904"
- expose:
- - 3904
- pap:
- # Istanbul To Be released images
- image: nexus3.onap.org:10001/onap/policy-pap:2.5.0-SNAPSHOT
- container_name: policy-pap
- depends_on:
- - mariadb
- - message-router
- hostname: policy-pap
- ports:
- - "6868:6969"
- expose:
- - 6868
- api:
- # Istanbul To Be released images
- image: nexus3.onap.org:10001/onap/policy-api:2.5.0-SNAPSHOT
- container_name: policy-api
- depends_on:
- - mariadb
- hostname: policy-api
- ports:
- - "6767:6969"
- expose:
- - 6767
- xacml-pdp:
- # Released Honolulu image
- image: nexus3.onap.org:10001/onap/policy-xacml-pdp:2.4.2
- container_name: policy-xacml-pdp
- depends_on:
- - mariadb
- - message-router
- - pap
- hostname: policy-xacml-pdp
- ports:
- - "6969:6969"
- expose:
- - 6969
- start_dependencies:
- image: dadarek/wait-for-dependencies
- environment:
- TIMEOUT_LENGTH: 60
- container_name: policy-wait
- depends_on:
- - mariadb
- - message-router
- hostname: policy-wait
- command:
- mariadb:3306
- message-router:3904
- start_all:
- image: dadarek/wait-for-dependencies
- environment:
- TIMEOUT_LENGTH: 60
- container_name: policy-wait-all
- depends_on:
- - mariadb
- - message-router
- - api
- - pap
- - xacml-pdp
- hostname: policy-wait-all
- command:
- mariadb:3306
- message-router:3904
- api:6969
- pap:6969
- xacml-pdp:6969
diff --git a/tutorials/tutorial-xacml-application/pom.xml b/tutorials/tutorial-xacml-application/pom.xml
index b1febd7a..cf89e8a4 100644
--- a/tutorials/tutorial-xacml-application/pom.xml
+++ b/tutorials/tutorial-xacml-application/pom.xml
@@ -3,6 +3,7 @@
ONAP Policy Engine - XACML Application Tutorial
================================================================================
Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ Modifications Copyright (C) 2022 Nordix Foundation.
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -18,96 +19,112 @@
============LICENSE_END=========================================================
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.onap.policy.xacml-pdp</groupId>
- <artifactId>xacml-tutorials</artifactId>
- <version>2.7.1-SNAPSHOT</version>
- </parent>
+ <parent>
+ <groupId>org.onap.policy.xacml-pdp</groupId>
+ <artifactId>xacml-tutorials</artifactId>
+ <version>2.7.1-SNAPSHOT</version>
+ </parent>
- <groupId>org.onap.policy.tutorial.xacml-application</groupId>
- <artifactId>tutorial-xacml-application</artifactId>
- <packaging>jar</packaging>
+ <packaging>jar</packaging>
+ <groupId>org.onap.policy.tutorial.xacml-application</groupId>
+ <artifactId>tutorial-xacml-application</artifactId>
+ <name>tutorial-xacml-application</name>
+ <description>Policy XACML-PDP tutorial</description>
- <name>tutorial-xacml-application</name>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+ <dist.project.version>${project.version}</dist.project.version>
+ <docker.skip>false</docker.skip>
+ <docker.skip.build>false</docker.skip.build>
+ <docker.skip.push>false</docker.skip.push>
+ <docker.contextDir>${project.basedir}/src/main/docker</docker.contextDir>
+ <maven.build.timestamp.format>yyyyMMdd'T'HHmm</maven.build.timestamp.format>
+ </properties>
- <properties>
- <!-- There is code to support JUnit testing in this sub-module. -->
- <sonar.skip>true</sonar.skip>
- </properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.policy.xacml-pdp.applications</groupId>
+ <artifactId>common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.policy.xacml-pdp</groupId>
+ <artifactId>xacml-test</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
- <dependencies>
- <dependency>
- <groupId>org.onap.policy.xacml-pdp.applications</groupId>
- <artifactId>common</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.onap.policy.xacml-pdp</groupId>
- <artifactId>xacml-test</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <profiles>
- <profile>
- <id>docker</id>
- <build>
- <plugins>
- <plugin>
- <groupId>io.fabric8</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <configuration>
- <verbose>true</verbose>
- <imagePullPolicy>Always</imagePullPolicy>
- <images>
- <image>
- <name>onap/policy-xacml-tutorial:${project.version}</name>
- <alias>xacml-pdp</alias>
- <build>
- <contextDir>${project.basedir}/src/main/docker</contextDir>
- <assembly>
- <descriptorRef>artifact-with-dependencies</descriptorRef>
- </assembly>
- <args>
- <BUILD_NAME>${project.name}</BUILD_NAME>
- <BUILD_VERSION>${project.version}</BUILD_VERSION>
- </args>
- </build>
- </image>
- </images>
- </configuration>
- <executions>
- <execution>
- <id>clean-images</id>
- <phase>pre-clean</phase>
- <goals>
- <goal>remove</goal>
- </goals>
- </execution>
- <execution>
- <id>generate-images</id>
- <phase>package</phase>
- <goals>
- <goal>build</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-deploy-plugin</artifactId>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
+ <profiles>
+ <profile>
+ <id>docker</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>io.fabric8</groupId>
+ <artifactId>docker-maven-plugin</artifactId>
+ <configuration>
+ <verbose>true</verbose>
+ <apiVersion>1.23</apiVersion>
+ <pullRegistry>${docker.pull.registry}</pullRegistry>
+ <pushRegistry>${docker.push.registry}</pushRegistry>
+ <images>
+ <image>
+ <name>onap/policy-xacml-tutorial</name>
+ <build>
+ <cleanup>try</cleanup>
+ <dockerFile>Dockerfile</dockerFile>
+ <contextDir>${docker.contextDir}</contextDir>
+ <tags>
+ <tag>${project.version}</tag>
+ <tag>${project.version}-${maven.build.timestamp}</tag>
+ <tag>${project.docker.latest.minmax.tag.version}</tag>
+ </tags>
+ <contextDir>${project.basedir}/src/main/docker</contextDir>
+ <assembly>
+ <descriptorRef>artifact-with-dependencies</descriptorRef>
+ </assembly>
+ <args>
+ <BUILD_NAME>${project.name}</BUILD_NAME>
+ <BUILD_VERSION>${project.version}</BUILD_VERSION>
+ </args>
+ </build>
+ </image>
+ </images>
+ </configuration>
+ <executions>
+ <execution>
+ <id>clean-images</id>
+ <phase>pre-clean</phase>
+ <goals>
+ <goal>remove</goal>
+ </goals>
+ <configuration>
+ <removeAll>true</removeAll>
+ </configuration>
+ </execution>
+ <execution>
+ <id>generate-images</id>
+ <phase>package</phase>
+ <goals>
+ <goal>build</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
</project>
diff --git a/tutorials/tutorial-xacml-application/src/main/docker/docker-compose.yml b/tutorials/tutorial-xacml-application/src/main/docker/docker-compose.yml
index 22a9b97f..f0b153f9 100644
--- a/tutorials/tutorial-xacml-application/src/main/docker/docker-compose.yml
+++ b/tutorials/tutorial-xacml-application/src/main/docker/docker-compose.yml
@@ -1,5 +1,6 @@
# ============LICENSE_START=======================================================
# Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright (C) 2022 Nordix Foundation.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -18,7 +19,7 @@
version: '2'
services:
mariadb:
- image: mariadb:10.2.14
+ image: ${CONTAINER_LOCATION}mariadb:${POLICY_MARIADB_VER}
container_name: mariadb
hostname: mariadb
command: ['--lower-case-table-names=1', '--wait_timeout=28800']
@@ -28,7 +29,7 @@ services:
expose:
- 3306
message-router:
- image: nexus3.onap.org:10001/onap/policy-models-simulator:2.7.0-SNAPSHOT
+ image: ${CONTAINER_LOCATION}onap/policy-models-simulator:${POLICY_MODELS_VERSION}
container_name: dmaap-simulator
hostname: dmaap-simulator
volumes:
@@ -38,7 +39,7 @@ services:
expose:
- 3904
api:
- image: nexus3.onap.org:10001/onap/policy-api:2.7.0-SNAPSHOT
+ image: ${CONTAINER_LOCATION}onap/policy-api:${POLICY_API_VERSION}
container_name: policy-api
depends_on:
- mariadb
@@ -48,7 +49,7 @@ services:
expose:
- 6767
pap:
- image: nexus3.onap.org:10001/onap/policy-pap:2.7.0-SNAPSHOT
+ image: ${CONTAINER_LOCATION}onap/policy-pap:${POLICY_PAP_VERSION}
container_name: policy-pap
depends_on:
- mariadb
@@ -60,7 +61,7 @@ services:
expose:
- 6868
xacml-pdp:
- image: onap/policy-xacml-tutorial:2.7.0-SNAPSHOT
+ image: onap/policy-xacml-tutorial:${POLICY_XACML_TUTORIAL_VERSION}
container_name: policy-xacml-pdp
depends_on:
- mariadb
diff --git a/tutorials/tutorial-xacml-application/src/main/docker/run-tutorial.sh b/tutorials/tutorial-xacml-application/src/main/docker/run-tutorial.sh
new file mode 100755
index 00000000..1576ad0e
--- /dev/null
+++ b/tutorials/tutorial-xacml-application/src/main/docker/run-tutorial.sh
@@ -0,0 +1,60 @@
+#! /bin/bash
+
+# ============LICENSE_START====================================================
+# Copyright 2022 Nordix Foundation.
+# =============================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END======================================================
+
+if [ -z "$CONTAINER_LOCATION" ]
+then
+ export CONTAINER_LOCATION="nexus3.onap.org:10001/"
+fi
+
+echo "Looking up the XACML tutorial version . . ."
+
+POLICY_XACML_TUTORIAL_VERSION=$(
+ docker images --filter "reference=onap/policy-xacml-tutorial" |
+ grep -v "REPOSITORY" |
+ sort |
+ head -1 |
+ awk '{print $2}'
+)
+
+if [ -z "$POLICY_XACML_TUTORIAL_VERSION" ]
+then
+ echo "Look up of the XACML tutorial version failed, have you built the tutorial docker iamge?"
+ exit 1
+else
+ export POLICY_XACML_TUTORIAL_VERSION
+ echo "Look up of the XACML tutorial version completed, version is ${POLICY_XACML_TUTORIAL_VERSION}"
+fi
+
+echo "Looking up latest versions of Policy Framework images . . ."
+GETVERS_SCRIPT=$(mktemp)
+curl -qL --silent "https://raw.githubusercontent.com/onap/policy-docker/master/csit/get-versions.sh" > "$GETVERS_SCRIPT"
+export GERRIT_BRANCH="master"
+chmod +x "$GETVERS_SCRIPT"
+source "$GETVERS_SCRIPT"
+echo "Look up of latest versions of Policy Framework images completed"
+
+
+echo "Running tutorial . . ."
+docker-compose -f docker-compose.yml up
+echo "Tutorial run completed"
+
+echo "Cleaning up . . ."
+rm "$GETVERS_SCRIPT"
+echo "Cleanup competed"