summaryrefslogtreecommitdiffstats
path: root/tutorials/tutorial-xacml-application
diff options
context:
space:
mode:
authorliamfallon <liam.fallon@est.tech>2022-10-17 16:55:51 +0100
committerliamfallon <liam.fallon@est.tech>2022-10-18 14:15:56 +0100
commitc3e8a4a2ed66e73c6b39d68924ae8e310e7541db (patch)
tree83076413d38f24564020ca157bf6a2dd330f3747 /tutorials/tutorial-xacml-application
parent9831c28c678f70640f6f84e73c9c3d15d3f5a4a6 (diff)
Fix hard coded versions in XACML-PDP tutorials
This commit adds variables to the docker-compse file for the xacml-applicaiton tutorial and adds a startup script that downloads files fromt he docker/csit repo to run the tutorial This commit also removes the separate docker-compose file that was used for xacml-enforcement tutorial and replaces it with instructions on how to use the csit docker-compose to run the enforcement. Issue-ID: POLICY-4186 Change-Id: Id1476e6c0949d3d57bdea9a696b985b60220ec78 Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'tutorials/tutorial-xacml-application')
-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
3 files changed, 170 insertions, 92 deletions
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"