aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Jagiello <michal.jagiello@t-mobile.pl>2020-08-03 10:04:35 +0000
committerMichal Jagiello <michal.jagiello@t-mobile.pl>2020-08-26 14:03:34 +0000
commite76dddf2c9ff24ad69b95b789326b7644a1edae0 (patch)
tree1adbc8b96bc5607654ec793cfac1a10046212466
parente969b079e331cc32b1ca361c49ee7b56e43900a7 (diff)
Run in Python 3.8
Use Docker image prepared by integration team Issue-ID: DCAEGEN2-2292 Signed-off-by: Michal Jagiello <michal.jagiello@t-mobile.pl> Change-Id: Iaed8eda8390287942249857458e756c1dc221f7f
-rw-r--r--Dockerfile60
-rwxr-xr-xmvn-phase-script.sh102
-rw-r--r--policyhandler/utils.py3
-rw-r--r--pom.xml3
-rw-r--r--setup.py3
-rw-r--r--tox-local.ini2
-rw-r--r--tox.ini2
-rw-r--r--version.properties2
8 files changed, 39 insertions, 138 deletions
diff --git a/Dockerfile b/Dockerfile
index 56940a2..34dbb2c 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,6 @@
# ================================================================================
# Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved.
+# Copyright 2020 Deutsche Telekom. 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.
@@ -16,42 +17,41 @@
#
# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-# Use the official Python as the base image
-FROM python:3.6
+# Use the recommended by SECCOM Python as the base image
+FROM nexus3.onap.org:10001/onap/integration-python:7.0.1
-ENV INSROOT /opt/app
-ENV APPUSER policy_handler
-ENV APPDIR ${INSROOT}/${APPUSER}
+ARG user=onap
+ARG group=onap
-RUN useradd -d ${APPDIR} ${APPUSER}
-
-WORKDIR ${APPDIR}
+USER root
# Make port 25577 available to the world outside this container
EXPOSE 25577
-# Copy the current directory content into the container at ${APPDIR}
-COPY ./*.py ./
-COPY ./*.in ./
-COPY ./*.txt ./
-COPY ./run_policy.sh ./
-COPY ./policyhandler/ ./policyhandler/
-COPY ./etc/ ./etc/
-COPY ./etc_customize/ ./etc_customize/
-
-RUN mkdir -p ${APPDIR}/logs \
- && chown -R ${APPUSER}:${APPUSER} ${APPDIR} \
- && chmod a+w ${APPDIR}/logs \
- && chmod 500 ${APPDIR}/etc \
- && chmod 500 ${APPDIR}/run_policy.sh \
- && pip install -r requirements.txt \
- && (CUST_SH=./etc_customize/customize.sh && test -e ${CUST_SH} && chmod 500 ${CUST_SH} \
- && (${CUST_SH} | tee -a logs/"customize_${APPUSER}_$(date +%Y_%m%d-%H%M%S).log" 2>&1)) \
- && ls -laR ${APPDIR}/
-
-USER ${APPUSER}
-
-VOLUME ${APPDIR}/logs
+# Copy the current directory content into the container at WORKDIR
+COPY --chown=onap:onap ./*.py ./
+COPY --chown=onap:onap ./*.in ./
+COPY --chown=onap:onap ./*.txt ./
+COPY --chown=onap:onap ./run_policy.sh ./
+COPY --chown=onap:onap ./policyhandler/ ./policyhandler/
+COPY --chown=onap:onap ./etc/ ./etc/
+COPY --chown=onap:onap ./etc_customize/ ./etc_customize/
+
+RUN apk add build-base linux-headers openssl iproute2 bash && \
+ pip install -r requirements.txt
+
+RUN mkdir -p logs \
+ && chown -R $user:$group . \
+ && chmod a+w logs \
+ && chmod 500 etc \
+ && chmod 500 run_policy.sh \
+ && (CUST_SH=./etc_customize/customize.sh && test -e $CUST_SH && chmod 500 $CUST_SH \
+ && ($CUST_SH | tee -a logs/"customize_$user_$(date +%Y_%m%d-%H%M%S).log" 2>&1)) \
+ && ls -laR .
+
+USER $user
+
+VOLUME logs
# Run run_policy.sh when the container launches
CMD ["./run_policy.sh"]
diff --git a/mvn-phase-script.sh b/mvn-phase-script.sh
deleted file mode 100755
index 297eaf8..0000000
--- a/mvn-phase-script.sh
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/bin/bash
-
-# ================================================================================
-# Copyright (c) 2017 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.
-# ============LICENSE_END=========================================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-
-set -ex
-
-echo "running script: [$0] for module [$1] at stage [$2]"
-
-MVN_PROJECT_MODULEID="$1"
-MVN_PHASE="$2"
-PROJECT_ROOT=$(dirname $0)
-
-# expected environment variables
-if [ -z "${MVN_NEXUSPROXY}" ]; then
- echo "MVN_NEXUSPROXY environment variable not set. Cannot proceed"
- exit 1
-fi
-if [ -z "$SETTINGS_FILE" ]; then
- echo "SETTINGS_FILE environment variable not set. Cannot proceed"
- exit 2
-fi
-
-set +e
-RELEASE_TAG=${MVN_RELEASE_TAG:-R7}
-if [ "$RELEASE_TAG" != "R1" ]; then
- RELEASE_TAGGED_DIR="${RELEASE_TAG}/"
-else
- RELEASE_TAGGED_DIR="releases"
-fi
-if ! wget -O ${PROJECT_ROOT}/mvn-phase-lib.sh \
- "$MVN_RAWREPO_BASEURL_DOWNLOAD"/org.onap.dcaegen2.utils/${RELEASE_TAGGED_DIR}scripts/mvn-phase-lib.sh; then
- echo "Fail to download mvn-phase-lib.sh"
- exit 1
-fi
-
-source "${PROJECT_ROOT}"/mvn-phase-lib.sh
-
-
-# This is the base for where "deploy" will upload
-# MVN_NEXUSPROXY is set in the pom.xml
-REPO=$MVN_NEXUSPROXY/content/sites/raw/$MVN_PROJECT_GROUPID
-
-TIMESTAMP=$(date +%C%y%m%dT%H%M%S)
-export BUILD_NUMBER="${TIMESTAMP}"
-
-shift 2
-
-# Customize the section below for each project
-case $MVN_PHASE in
-clean)
- echo "==> clean phase script"
- clean_templated_files
- clean_tox_files
- rm -rf ./venv-* ./*.wgn ./site logs
- ;;
-generate-sources)
- echo "==> generate-sources phase script"
- expand_templates
- ;;
-compile)
- echo "==> compile phase script"
- ;;
-test)
- echo "==> test phase script"
- mkdir logs
- run_tox_test
- ;;
-package)
- echo "==> package phase script"
- ;;
-install)
- echo "==> install phase script"
- ;;
-deploy)
- echo "==> deploy phase script"
- # below segments are example of how to deploy various artifacts
- # copy the ones suitable for your repo, and remove the "if false" statement
-
- # build docker image from Docker file (under root of repo) and push to registry
- build_and_push_docker
- ;;
-*)
- echo "==> unprocessed phase"
- ;;
-esac
-
diff --git a/policyhandler/utils.py b/policyhandler/utils.py
index 685d7d8..99e9ed7 100644
--- a/policyhandler/utils.py
+++ b/policyhandler/utils.py
@@ -1,5 +1,6 @@
# ================================================================================
# Copyright (c) 2018-2020 AT&T Intellectual Property. All rights reserved.
+# Copyright 2020 Deutsche Telekom. 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.
@@ -242,7 +243,7 @@ class RegexCoarser(object):
@staticmethod
def _compress(trie):
"""compress trie into shortest leaves"""
- for key, subtrie in trie.items():
+ for key, subtrie in trie.copy().items():
RegexCoarser._compress(subtrie)
subkeys = list(subtrie.keys())
if len(subkeys) == 1:
diff --git a/pom.xml b/pom.xml
index 956e17d..ab50547 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,6 +2,7 @@
<!--
================================================================================
Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved.
+Copyright 2020 Deutsche Telekom. 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.
@@ -29,7 +30,7 @@ limitations under the License.
<groupId>org.onap.dcaegen2.platform</groupId>
<artifactId>policy-handler</artifactId>
<name>dcaegen2-platform-policy-handler</name>
- <version>5.1.0-SNAPSHOT</version>
+ <version>5.1.1-SNAPSHOT</version>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/setup.py b/setup.py
index ab0189a..f9e1706 100644
--- a/setup.py
+++ b/setup.py
@@ -1,5 +1,6 @@
# ================================================================================
# Copyright (c) 2017-2020 AT&T Intellectual Property. All rights reserved.
+# Copyright 2020 Deutsche Telekom. 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.
@@ -22,7 +23,7 @@ from setuptools import setup
setup(
name='policyhandler',
description='DCAE-Controller policy-handler to communicate with policy-engine',
- version="5.1.0",
+ version="5.1.1",
author='Alex Shatov',
packages=['policyhandler'],
zip_safe=False,
diff --git a/tox-local.ini b/tox-local.ini
index 57267c2..007b6de 100644
--- a/tox-local.ini
+++ b/tox-local.ini
@@ -1,6 +1,6 @@
# tox -c tox-local.ini
[tox]
-envlist = py36
+envlist = py36,py38
[testenv]
deps=
diff --git a/tox.ini b/tox.ini
index 7feb471..68817c6 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,6 +1,6 @@
# content of: tox.ini , put in same dir as setup.py
[tox]
-envlist = py36
+envlist = py36,py38
[testenv]
deps=
diff --git a/version.properties b/version.properties
index cf34660..0831763 100644
--- a/version.properties
+++ b/version.properties
@@ -1,6 +1,6 @@
major=5
minor=1
-patch=0
+patch=1
base_version=${major}.${minor}.${patch}
release_version=${base_version}
snapshot_version=${base_version}-SNAPSHOT