Commit 1d22b3fe authored by Muhammad Umair Khan's avatar Muhammad Umair Khan
Browse files

fix tinyiot entrypint.sh file

parent 8e0ba439
Loading
Loading
Loading
Loading
+111 −74
Original line number Diff line number Diff line
@@ -2,48 +2,45 @@
set -e

MQTT_ENABLE=${MQTT_ENABLE:-1}
#SERVER_IP="${SERVER_IP:-192.168.0.112}"
SERVER_IP="${MEEP_HOST_URL#http://}"; MEEP_HOST_URL="${MEEP_HOST_URL#https://}"

echo "Using Helm-injected and Kubernetes auto-injected environment variables instead of API queries"
# MEEP / MEC injected variables
echo "MEEP_HOST_URL: ${MEEP_HOST_URL}"
echo "MEEP_MEP_NAME: ${MEEP_MEP_NAME}"
echo "MEEP_SANDBOX_NAME: ${MEEP_SANDBOX_NAME}"
echo "MEEP_INSTANCE_ID: ${MEEP_INSTANCE_ID}"

if [[ ! -z "${MEEP_MEP_NAME}" ]]; then
    svcPath="${MEEP_SANDBOX_NAME}/${MEEP_MEP_NAME}"
else
    svcPath="${MEEP_SANDBOX_NAME}"
fi

if [ "${MEEP_HOST_URL}" == "" ]
then
    echo "$0: MEEP_HOST_URL parameter is not set"
    MEEP_HOST_URL=mec-platform.etsi.org
fi
# Normalize host without modifying original MEEP_HOST_URL
SERVER_IP="${MEEP_HOST_URL#http://}"
SERVER_IP="${SERVER_IP#https://}"

sleep 5 # Wait for ETSI MEC Platform up and stable
MQTT_ENABLE=${MQTT_ENABLE:-1}

# MQTT Configuration
MQTT_HOST=${MQTT_HOST:-${MEP1_MEEP_MOSQUITTO_SERVICE_HOST:-${MEEP_MOSQUITTO_SERVICE_HOST:-"meep-mosquitto"}}}
MQTT_PORT=${MQTT_PORT:-1883}
SERVER_IP=${SERVER_IP:-"0.0.0.0"}
[ -z "$SERVER_IP" ] && SERVER_IP="0.0.0.0"

SERVER_IP="${SERVER_IP:-0.0.0.0}"
SERVER_PORT=${SERVER_PORT:-3002}
[ -z "$SERVER_PORT" ] && SERVER_PORT="3002"
ENABLE_COAP=${ENABLE_COAP:-0}

CSE_BASE_NAME=${CSE_BASE_NAME:-"TinyIoT"}
CSE_BASE_RI=${CSE_BASE_RI:-"tinyiot"}

SERVER_TYPE=${SERVER_TYPE:-IN_CSE}
[ -z "$SERVER_TYPE" ] && SERVER_TYPE="IN_CSE"
# MQTT_USERNAME=${MQTT_USERNAME:-"tinyiot-in-cse"}
# MQTT_PASSWORD=${MQTT_PASSWORD:-"mqtt"}

echo "MQTT_USERNAME: ${MQTT_USERNAME}"
echo "MQTT_PASSWORD: ${MQTT_PASSWORD}"

# ------------------------------------------------------------------
# MEC Configuration
# ------------------------------------------------------------------

MEC_ENABLE=${MEC_ENABLE:-1}
# Strip http:// or https:// prefix from MEEP_HOST_URL for MEC_HOST_URL
MEC_HOST_URL=$(echo "${MEEP_HOST_URL:-meep-platform.etsi.org}" | sed 's|https\?://||')
[ -z "$MEC_HOST_URL" ] && MEC_HOST_URL="meep-platform.etsi.org"
MEC_PLATFORM=${MEC_PLATFORM:-"mep1"}

MEC_HOST_URL=${SERVER_IP}
MEC_PLATFORM=${MEEP_MEP_NAME:-${MEC_PLATFORM:-"mep1"}}
MEC_SANDBOX_ID=${MEEP_SANDBOX_NAME:-"meep-sandbox"}
MEC_APP_INSTANCE_ID=${MEEP_INSTANCE_ID:-"tinyiot-in-cse-instance"}
MEC_HTTP_HOST=${MEC_HTTP_HOST:-"meep-tinyiot-in-cse"}

echo "ENVIRONMENT VARIABLES SET:"
@@ -52,78 +49,118 @@ echo "SERVER_TYPE: ${SERVER_TYPE}"
echo "SERVER_PORT: ${SERVER_PORT}"
echo "CSE_BASE_NAME: ${CSE_BASE_NAME}"
echo "CSE_BASE_RI: ${CSE_BASE_RI}"

echo "MQTT_HOST: ${MQTT_HOST}"
echo "MQTT_ENABLE: ${MQTT_ENABLE}"
echo "MQTT_PORT: ${MQTT_PORT}"
echo "MQTT_USERNAME: ${MQTT_USERNAME}"
echo "MQTT_PASSWORD: ${MQTT_PASSWORD}"

echo "MEC_ENABLE: ${MEC_ENABLE}"
echo "MEC_HOST_URL: ${MEC_HOST_URL}"
echo "MEC_PLATFORM: ${MEC_PLATFORM}"
echo "MEC_SANDBOX_ID: ${MEC_SANDBOX_ID}"
echo "MEC_APP_INSTANCE_ID: ${MEC_APP_INSTANCE_ID}"
echo "MEC_HTTP_HOST: ${MEC_HTTP_HOST}"

# ------------------------------------------------------------------
# Export Variables
# ------------------------------------------------------------------

export MQTT_ENABLE MQTT_HOST MQTT_PORT MQTT_USERNAME MQTT_PASSWORD
export SERVER_PORT SERVER_TYPE SERVER_IP
export ENABLE_COAP CSE_BASE_NAME CSE_BASE_RI
export MEC_ENABLE MEC_HOST_URL MEC_PLATFORM MEC_SANDBOX_ID MEC_APP_INSTANCE_ID MEC_HTTP_HOST

export MQTT_ENABLE
export MQTT_HOST
export MQTT_PORT
export MQTT_USERNAME
export MQTT_PASSWORD
export SERVER_PORT
export SERVER_TYPE
export SERVER_IP
export ENABLE_COAP
export CSE_BASE_NAME
export CSE_BASE_RI
export MEC_ENABLE
export MEC_HOST_URL
export MEC_PLATFORM
export MEC_SANDBOX_ID
export MEC_HTTP_HOST
# ------------------------------------------------------------------
# Build TinyIoT
# ------------------------------------------------------------------

workdir="/usr/src/app/tinyIoT/server"
cd "$workdir" || { echo "Directory $workdir not found"; exit 1; }

cd "$workdir" || {
    echo "Directory $workdir not found"
    exit 1
}

envsubst < config.h.in > config.h

make clean && make

# Start server in background
# ------------------------------------------------------------------
# Start TinyIoT Server
# ------------------------------------------------------------------

./server &
SERVER_PID=$!

# Register to MEC platform after server is ready
if [ "${MEC_ENABLE}" == "1" ]; then
# ------------------------------------------------------------------
# Register to MEC Platform
# ------------------------------------------------------------------

if [ "${MEC_ENABLE}" = "1" ]; then
    sleep 5
    echo "Registering to MEC platform..."
    curl -k -s -X POST "https://${MEC_HOST_URL}/${MEC_SANDBOX_ID}/${MEC_PLATFORM}/iots/v1/registered_iot_platforms" \

    curl -k -s -X POST \
        "https://${MEC_HOST_URL}/${MEC_SANDBOX_ID}/${MEC_PLATFORM}/iots/v1/registered_iot_platforms" \
        -H "Content-Type: application/json" \
        -d "{
            \"iotPlatformId\": \"${CSE_BASE_RI}\",
            \"userTransportInfo\": [{
                \"id\": \"${CSE_BASE_RI}-mqtt-01\",
                \"name\": \"${CSE_BASE_RI}\",
                \"description\": \"TinyIoT CSE MQTT\",
                \"type\": \"MB_TOPIC_BASED\",
                \"protocol\": \"MQTT\",
                \"version\": \"3.1.1\",
                \"endpoint\": {\"addresses\": [{\"host\": \"meep-cloud-mosquitto\", \"port\": 1883}]},
                \"security\": {\"username\": \"${MQTT_USERNAME}\", \"password\": \"${MQTT_PASSWORD}\", \"useTLS\": false},
                \"implSpecificInfo\": {
                    \"eventTopics\": [\"/oneM2M/req/+/${CSE_BASE_RI}/#\"],
                    \"uplinkTopics\": [\"/oneM2M/resp/${CSE_BASE_RI}/+/#\"],
                    \"downlinkTopics\": [\"/oneM2M/reg_req/+/${CSE_BASE_RI}/#\", \"/oneM2M/reg_resp/${CSE_BASE_RI}/+/#\"]
        -d '{
            "iotPlatformId": "'"${CSE_BASE_RI}"'",
            "userTransportInfo": [{
                "id": "'"${CSE_BASE_RI}"'-mqtt-01",
                "name": "'"${CSE_BASE_RI}"'",
                "description": "TinyIoT CSE MQTT",
                "type": "MB_TOPIC_BASED",
                "protocol": "MQTT",
                "version": "3.1.1",
                "endpoint": {
                    "addresses": [{
                        "host": "'"${MQTT_HOST}"'",
                        "port": '"${MQTT_PORT}"'
                    }]
                },
                "security": {
                    "username": "'"${MQTT_USERNAME}"'",
                    "password": "'"${MQTT_PASSWORD}"'",
                    "useTLS": false
                },
                "implSpecificInfo": {
                    "eventTopics": [
                        "/oneM2M/req/+/'"${CSE_BASE_RI}"'/#"
                    ],
                    "uplinkTopics": [
                        "/oneM2M/resp/'"${CSE_BASE_RI}"'/+/#"
                    ],
                    "downlinkTopics": [
                        "/oneM2M/reg_req/+/'"${CSE_BASE_RI}"'/#",
                        "/oneM2M/reg_resp/'"${CSE_BASE_RI}"'/+/#"
                    ]
                }
            }],
            \"customServicesTransportInfo\": [{
                \"id\": \"${CSE_BASE_RI}-http-01\",
                \"name\": \"${CSE_BASE_RI}\",
                \"description\": \"TinyIoT CSE HTTP\",
                \"type\": \"REST_HTTP\",
                \"protocol\": \"REST_HTTP\",
                \"version\": \"1.1\",
                \"endpoint\": {\"addresses\": [{\"host\": \"${MEC_HTTP_HOST}\", \"port\": ${SERVER_PORT}}]},
                \"security\": {}
            "customServicesTransportInfo": [{
                "id": "'"${CSE_BASE_RI}"'-http-01",
                "name": "'"${CSE_BASE_RI}"'",
                "description": "TinyIoT CSE HTTP",
                "type": "REST_HTTP",
                "protocol": "REST_HTTP",
                "version": "1.1",
                "endpoint": {
                    "addresses": [{
                        "host": "'"${MEC_HTTP_HOST}"'",
                        "port": '"${SERVER_PORT}"'
                    }]
                },
                "security": {}
            }],
            \"enabled\": true
        }" && echo "MEC registration successful" || echo "MEC registration failed (non-fatal)"
            "enabled": true
        }' \
        && echo "MEC registration successful" \
        || echo "MEC registration failed (non-fatal)"
fi

# Wait for server process
# ------------------------------------------------------------------
# Wait for Server Process
# ------------------------------------------------------------------

wait $SERVER_PID
 No newline at end of file