From f2c5615c967a37c3d778bb9cf0a5a6706c17fa63 Mon Sep 17 00:00:00 2001 From: Bin Yang Date: Mon, 11 Sep 2017 11:25:12 +0800 Subject: Fix bugs in restcall fix bug and update dockerfile Change-Id: I5e6e2eeae85d9bfaabd190d8f9baaca8cca7aeb5 Issue-Id: MULTICLOUD-58 Signed-off-by: Bin Yang --- newton/assembly.xml | 8 ++++++++ newton/docker/Dockerfile | 8 +++++++- newton/docker/build-image.sh | 32 +++++++++++++++++++++++++++++--- newton/newton/pub/utils/restcall.py | 20 +++++++++++++------- 4 files changed, 57 insertions(+), 11 deletions(-) mode change 100644 => 100755 newton/docker/build-image.sh diff --git a/newton/assembly.xml b/newton/assembly.xml index 89f1a954..c478ea25 100644 --- a/newton/assembly.xml +++ b/newton/assembly.xml @@ -37,6 +37,14 @@ *.txt + + docker + /docker + + *.sh + Dockerfile + + . / diff --git a/newton/docker/Dockerfile b/newton/docker/Dockerfile index e8440e1c..51379089 100644 --- a/newton/docker/Dockerfile +++ b/newton/docker/Dockerfile @@ -1,5 +1,11 @@ FROM python:2 +ARG HTTP_PROXY=${HTTP_PROXY} +ARG HTTPS_PROXY=${HTTPS_PROXY} + +ENV http_proxy $HTTP_PROXY +ENV https_proxy $HTTPS_PROXY + ENV MSB_ADDR "127.0.0.1" ENV MSB_PORT "80" ENV AAI_ADDR "aai.api.simpledemo.openecomp.org" @@ -21,4 +27,4 @@ RUN apt-get update && \ pip install -r /opt/newton/requirements.txt WORKDIR /opt/newton -CMD /bin/sh -c /opt/newton/run.sh \ No newline at end of file +CMD /bin/sh -c /opt/newton/run.sh diff --git a/newton/docker/build-image.sh b/newton/docker/build-image.sh old mode 100644 new mode 100755 index 8d5fe479..fd8fb8cd --- a/newton/docker/build-image.sh +++ b/newton/docker/build-image.sh @@ -1,6 +1,32 @@ #!/bin/bash +DIRNAME=`dirname $0` +DOCKER_BUILD_DIR=`cd $DIRNAME/; pwd` +echo "DOCKER_BUILD_DIR=${DOCKER_BUILD_DIR}" +cd ${DOCKER_BUILD_DIR} -IMAGE="multicloud-openstack-newton" -VERSION="latest" +BUILD_ARGS="--no-cache" +ORG="onap" +VERSION="1.0.0-SNAPSHOT" +PROJECT="multicloud" +IMAGE="openstack-newton" +DOCKER_REPOSITORY="nexus3.onap.org:10003" +IMAGE_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/${IMAGE}" -docker build -t ${IMAGE}:${VERSION} . +if [ $HTTP_PROXY ]; then + BUILD_ARGS+=" --build-arg HTTP_PROXY=${HTTP_PROXY}" +fi +if [ $HTTPS_PROXY ]; then + BUILD_ARGS+=" --build-arg HTTPS_PROXY=${HTTPS_PROXY}" +fi + +function build_image { + docker build ${BUILD_ARGS} -t ${IMAGE_NAME}:${VERSION} -t ${IMAGE_NAME}:latest . +} + +function push_image { + docker push ${IMAGE_NAME}:${VERSION} + docker push ${IMAGE_NAME}:latest +} + +build_image +push_image diff --git a/newton/newton/pub/utils/restcall.py b/newton/newton/pub/utils/restcall.py index 04b5a6f8..a2838680 100644 --- a/newton/newton/pub/utils/restcall.py +++ b/newton/newton/pub/utils/restcall.py @@ -71,18 +71,24 @@ def call_req(base_url, user, passwd, auth_type, else: ret = [1, resp_body, resp_status] break - except http.client.ResponseNotReady: -# logger.debug("retry_times=%d", retry_times) - ret = [1, "Unable to connect to %s" % full_url, resp_status] - continue + except Exception as ex: + if 'httplib.ResponseNotReady' in str(sys.exc_info()): + logger.debug("retry_times=%d", retry_times) + logger.error(traceback.format_exc()) + ret = [1, "Unable to connect to %s" % full_url, resp_status] + continue + raise ex except urllib.error.URLError as err: ret = [2, str(err), resp_status] - except Exception: + except Exception as ex: logger.error(traceback.format_exc()) logger.error("[%s]ret=%s" % (callid, str(sys.exc_info()))) if not resp_status: resp_status = status.HTTP_500_INTERNAL_SERVER_ERROR ret = [3, str(sys.exc_info()), resp_status] + except: + logger.error(traceback.format_exc()) + ret = [4, str(sys.exc_info()), resp_status] # logger.debug("[%s]ret=%s" % (callid, str(ret))) return ret @@ -100,7 +106,7 @@ def req_to_vim(base_url, resource, method, extra_headers='', content=''): resource, method, extra_headers, content) def req_to_aai(resource, method, content='', appid=config.MULTICLOUD_APP_ID): - tmp_trasaction_id = uuid.uuid1() + tmp_trasaction_id = str(uuid.uuid1()) headers = { 'X-FromAppId': appid, 'X-TransactionId': tmp_trasaction_id, @@ -110,7 +116,7 @@ def req_to_aai(resource, method, content='', appid=config.MULTICLOUD_APP_ID): logger.debug("req_to_aai--%s::> %s, %s" % (tmp_trasaction_id, method, resource)) return call_req(config.AAI_BASE_URL, config.AAI_USERNAME, config.AAI_PASSWORD, rest_no_auth, - resource, method, json.dumps(content), headers) + resource, method, content=json.dumps(content), extra_headers=headers) def combine_url(base_url, resource): -- cgit 1.2.3-korg