################################################################################
# Copyright 2019 highstreet technologies and others
#
# 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.
#

NEXUS_DOCKER_REPO=nexus3.onap.org:10001
CCSDK_DOCKER_IMAGE_VERSION=latest
HT_DOCKER_REPO=
HT_DOCKER_IMAGE_NAME=hightec/ccsdk-odlwt-alpine-standalone-image
HT_DOCKER_IMAGE_TAG=0.6.1
PORTPREFIX=
ENABLE_ODL_CLUSTER=false
REPLICAS=0
ODL_HOME=/opt/opendaylight
LOCAL_SDNR_MOUNT=/var/tmp/

VES_DOCKER_REPO=
VES_TEST_COLLECTOR_IMAGE_NAME=hightec/ves-testcollector
VES_TEST_COLLECTOR_IMAGE_TAG=latest
LOCAL_VES_MOUNT=/var/tmp/
EXT_VES_PORT=3000
VES_API=5
VES_FORMAT_FILE=CommonEventFormat_28.4.1.json

NETCONF_SERVER_SIMULATOR_IMAGE_NAME=hightec/netconfserversimulator
NETCONF_SERVER_SIMULATOR_IMAGE_TAG=4.2.2
SIM_MODEL=DVM_MWCore12_BasicAir
INT_SIM_PORT=2230
EXT_SIM_PORT=2230
EXT_SIM_SSH_PORT=8000

NTS_DOCKER_REPO=
NTS_IMAGE_NAME=hightec/ntsimdevice
NTS_IMAGE_TAG=latest
NTS_SIM_PORT=2240
