RUN apk update && apk upgrade \
&& apk --no-cache --update add --virtual build-deps openssl wget \
&& apk --no-cache --update add less ca-certificates bash libxslt-dev unzip \
- freetype freetype-dev libstdc++ build-base libc6-compat \
- && ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
+ freetype freetype-dev libstdc++ build-base libc6-compat lapack-dev openblas-dev \
+ && ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2 \
+ && pip install --no-cache-dir --upgrade pip wheel setuptools \
+ && pip install --no-cache-dir Cython numpy==1.17.3 scipy==1.3.1
# Minizinc
RUN wget -q $MZN_DL_URL -O mz.tgz \
&& echo PATH=/mz-dist/bin:$PATH >> ~/.bashrc
ENV SHELL /bin/bash
-ENV PATH /mz-dist:$PATH
+ENV PATH /mz-dist/bin:$PATH
RUN addgroup -S onap && adduser -S -G onap onap
&& chown onap:onap /var/log/onap -R \
&& chown onap:onap /opt/osdf -R
-RUN pip install --no-cache-dir -r requirements.txt -r requirements-opteng.txt
+RUN pip install --no-cache-dir -r requirements.txt -r requirements-opteng.txt\
+ && apk del build-deps && rm -rf /var/cache/apk/*
USER onap
ENV MZN_DL_URL ${MZN_GH_BASE}/releases/download/${MZN}/${MZN_BASENAME}-x86_64.tgz
RUN apt-get update -y \
- && apt-get install -y vim unzip wget libmpfr-dev \
- && apt-get install -y git libqt5printsupport5 build-essential \
- && apt-get install -y python3 python3-setuptools python3-dev \
+ && apt-get install -y --no-install-recommends vim unzip wget libmpfr-dev ca-certificates\
+ && apt-get install -y --no-install-recommends git libqt5printsupport5 build-essential \
+ && apt-get install -y --no-install-recommends python3 python3-setuptools python3-dev \
&& easy_install3 pip \
- && pip install --upgrade virtualenv pip wheel setuptools
+ && pip install --no-cache-dir --upgrade virtualenv pip wheel setuptools && rm -rf /var/lib/apt/lists/*
RUN ln -s /usr/bin/python3.5 /usr/bin/python
&& echo PATH=/mz-dist/bin:$PATH >> ~/.bashrc
ENV SHELL /bin/bash
-ENV PATH /mz-dist:$PATH
+ENV PATH /mz-dist/bin:$PATH
# OSDF
WORKDIR /opt/osdf
import traceback
from optparse import OptionParser
-import osdf.adapters.aaf.sms as sms
-import osdf.operation.responses
import pydevd
from flask import Flask, request, Response, g
+from requests import RequestException
+from schematics.exceptions import DataError
+
+import osdf.adapters.aaf.sms as sms
+import osdf.operation.responses
from osdf.config.base import osdf_config
from osdf.logging.osdf_logging import error_log, debug_log
from osdf.operation.error_handling import request_exception_to_json_body, internal_error_message
from osdf.operation.exceptions import BusinessException
from osdf.utils.mdc_utils import clear_mdc, mdc_from_json, default_mdc, get_request_id
-from requests import RequestException
-from schematics.exceptions import DataError
ERROR_TEMPLATE = osdf.ERROR_TEMPLATE
"""
import json
-import ssl
-import sys
-import time
-import traceback
-from optparse import OptionParser
+
from threading import Thread # for scaling up, may need celery with RabbitMQ or redis
from flask import request, g
onappylog>=1.0.9
pathtools>=0.1.2
pycryptodome>=3.9.6
+numpy==1.17.3
+scipy==1.3.1
+scikit-learn>=0.22.0
# This script is in osdf/test/functest/scripts/
-SCRIPTDIR=$(dirname $(readlink -f $0))
+if [[ `uname` == "Darwin" ]]
+then
+ SCRIPTDIR=$(dirname $(greadlink -f $0))
+else
+ SCRIPTDIR=$(dirname $(readlink -f $0))
+fi
FUNC_TEST_DIR=$(dirname $SCRIPTDIR)
TEST_DIR=$(dirname $FUNC_TEST_DIR)
OSDF_DIR=$(dirname $TEST_DIR)
# We don't need all the directory names here and the "cd", but it may be needed later on
# Also, it will be a guard against some bad config where the directory doesn't exist
-SCRIPTDIR=$(dirname $(readlink -f $0))
+if [[ `uname` == "Darwin" ]]
+then
+ SCRIPTDIR=$(dirname $(greadlink -f $0))
+else
+ SCRIPTDIR=$(dirname $(readlink -f $0))
+fi
FUNC_TEST_DIR=$(dirname $SCRIPTDIR)
TEST_DIR=$(dirname $FUNC_TEST_DIR)
OSDF_DIR=$(dirname $TEST_DIR)
cp -r $SIMULATORS_DIR/has-api $DOCKER_DIR/sim
cp -r $SIMULATORS_DIR/policy $DOCKER_DIR/sim
cp $TEST_DIR/policy-local-files/*.json $DOCKER_DIR/sim/policy/response-payloads/pdp-has-vcpe-good
+cp $TEST_DIR/placement-tests/policy_response.json $DOCKER_DIR/sim/policy/response-payloads/
cp $SIMULATORS_DIR/oof_dependencies_simulators.py $DOCKER_DIR/sim/oof_dependencies_simulators.py
cp $OSDF_DIR/requirements.txt $DOCKER_DIR
cp -r $SIMULATORS_DIR/start_sim.sh $DOCKER_DIR/
import glob
import json
import os
-from flask import Flask, jsonify, request
+
+from flask import Flask, jsonify
from osdf.utils.interfaces import json_from_file
return jsonify(list_json)
+@app.route("/simulated/policy/pdpx/decision/v1", methods=["POST"])
+def get_pdx_policies():
+ """
+ get the pdpx policy
+ """
+ return jsonify(json_from_file("policy/response-payloads/policy_response.json"))
+
+
@app.route("/simulated/configdb/getCellList/<network_id>/<ts>", methods=["GET"])
def get_cell_list(network_id, ts):
data, status = get_payload_for_simulated_component('configdb',