From e76dddf2c9ff24ad69b95b789326b7644a1edae0 Mon Sep 17 00:00:00 2001 From: Michal Jagiello Date: Mon, 3 Aug 2020 10:04:35 +0000 Subject: Run in Python 3.8 Use Docker image prepared by integration team Issue-ID: DCAEGEN2-2292 Signed-off-by: Michal Jagiello Change-Id: Iaed8eda8390287942249857458e756c1dc221f7f --- Dockerfile | 60 ++++++++++++++--------------- mvn-phase-script.sh | 102 ------------------------------------------------- policyhandler/utils.py | 3 +- pom.xml | 3 +- setup.py | 3 +- tox-local.ini | 2 +- tox.ini | 2 +- version.properties | 2 +- 8 files changed, 39 insertions(+), 138 deletions(-) delete mode 100755 mvn-phase-script.sh 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 @@