From 55ecca7fd9926b044d99fdc617cacf46a81b41d8 Mon Sep 17 00:00:00 2001 From: stephb9959 Date: Mon, 29 Nov 2021 15:43:33 -0800 Subject: [PATCH] Initial commit --- microservice_sample/test_scripts/curl/cli | 167 ++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100755 microservice_sample/test_scripts/curl/cli diff --git a/microservice_sample/test_scripts/curl/cli b/microservice_sample/test_scripts/curl/cli new file mode 100755 index 0000000..d9bbdc6 --- /dev/null +++ b/microservice_sample/test_scripts/curl/cli @@ -0,0 +1,167 @@ +#!/bin/bash + +# +# License type: BSD 3-Clause License +# License copy: https://github.com/Telecominfraproject/wlan-cloud-ucentralgw/blob/master/LICENSE +# +# Created by Stephane Bourque on 2021-03-04. +# Arilia Wireless Inc. +# + +if [[ "$(which jq)" == "" ]] +then + echo "You need the package jq installed to use this script." + exit 1 +fi + +if [[ "$(which curl)" == "" ]] +then + echo "You need the package curl installed to use this script." + exit 1 +fi + +if [[ "${OWSEC}" == "" ]] +then + echo "You must set the variable OWSEC in order to use this script. Something like" + echo "OWSEC=security.isp.com:16001" + exit 1 +fi + +if [[ "${FLAGS}" == "" ]] +then + FLAGS="-s" +fi + +target_microservice=ow_helloworld +token="" +result_file=result.json +#username="script.runner@arilia.com" +#password="RunningScript100#" +browser_list=(firefox sensible-browser xdg-open w3m links links2 lynx youtube-dl) +browser="" + +login() { + payload="{ \"userId\" : \"$username\" , \"password\" : \"$password\" }" + token=$(curl ${FLAGS} -X POST -H "Content-Type: application/json" -d "$payload" "https://${OWSEC}/api/v1/oauth2" | jq -r '.access_token') + + if [[ "${token}" == "" ]] + then + echo "Could not login. Please verify the host and username/password." + exit 13 + fi + echo "${token}" > token.json + setservicevar +} + +findbrowser() { + if [[ "${browser}" != "" ]] + then + echo + elif [[ "$(uname)" == "Darwin" ]] + then + browser=open + else + BROWSER_LIST=(firefox sensible-browser xdg-open w3m links links2 lynx youtube-dl) + for br_name in "${browser_list[@]}" + do + if [[ $(which ${br_name}) != "" ]] + then + browser=${br_name} + break + fi + done + fi +} + +setservicevar() { + curl ${FLAGS} -X GET "https://${OWSEC}/api/v1/systemEndpoints" \ + -H "accept: application/json" \ + -H "Authorization: Bearer ${token}" > ${result_file} +# jq < ${result_file} + + for index in {0..10} + do + endpointlocation=".endpoints[${index}].uri" + endpointlocationtype=".endpoints[${index}].type" + rawurl="$(cat ${result_file} | jq -r ${endpointlocation})" + svctype="$(cat ${result_file} | jq -r ${endpointlocationtype})" + proto="$(echo $rawurl | grep :// | sed -e's,^\(.*://\).*,\1,g')" + url="$(echo ${rawurl/$proto/})" + user="$(echo $url | grep @ | cut -d@ -f1)" + hostport="$(echo ${url/$user@/} | cut -d/ -f1)" + host="$(echo $hostport | sed -e 's,:.*,,g')" + port="$(echo $hostport | sed -e 's,^.*:,:,g' -e 's,.*:\([0-9]*\).*,\1,g' -e 's,[^0-9],,g')" + path="$(echo $url | grep / | cut -d/ -f2-)" + if [[ ${url} != "null" ]] + then + if [[ ${svctype} == "${target_microservice}" ]] + then +# echo "url: $url" +# echo " proto: $proto" +# echo " user: $user" +# echo " host: $host" +# echo " port: $port" +# echo " path: $path" + OWMS="${url}" + break + fi + fi + done +# echo "Using ${OWMS}..." +} + +logout() { + curl ${FLAGS} -X DELETE -H "Content-Type: application/json" \ + -H "Authorization: Bearer ${token}" \ + "https://${OWSEC}/api/v1/oauth2/${token}" + rm -rf token.json +} + +hello() { + curl ${FLAGS} -X GET --url "https://${OWMS}/api/v1/hello" \ + -H "accept: application/json" \ + -H "Authorization: Bearer ${token}" > ${result_file} + jq < ${result_file} +} + +systeminfo() { + curl ${FLAGS} -X GET "https://${OWMS}/api/v1/system?command=info" \ + -H "accept: application/json" \ + -H "Authorization: Bearer ${token}" > ${result_file} + jq < ${result_file} +} + +reloadsubsystem() { + payload="{ \"command\" : \"reload\", \"subsystems\" : [ \"$1\" ] }" + curl ${FLAGS} -X POST "https://${OWMS}/api/v1/system" \ + -H "accept: application/json" \ + -H "Authorization: Bearer ${token}" \ + -d "$payload" +} + +help() { + echo + echo "hello Get the device JSON document." + echo "setloglevel Set the logging system level for individual subsystems." + echo " sys:ufileuploader/websocket/storage/restapi/commandmanager/auth/deviceregistry/all" + echo " level:none/fatal/critical/error/warning/notice/information/debug/trace" + echo "getloglevels Get the log levels of all the subsystems" + echo "getloglevelnames Get the list of log level names possible" + echo "getsubsystemnames Get the subsystems that can be used when setting log levels." + echo + echo +} + +shopt -s nocasematch +case "$1" in + "findbrowser") findbrowser; echo "Browser: ${browser}" ;; + "setloglevel") login; setloglevel "$2" "$3" ; logout ;; + "getloglevels") login; getloglevels; logout ;; + "getloglevelnames") login; getloglevelnames; logout ;; + "getsubsystemnames") login; getsubsystemnames; logout ;; + "reloadsubsystem") login; reloadsubsystem; logout ;; + "systeminfo") login; systeminfo ; logout;; + "hello") login; hello ; logout;; + *) help ;; +esac +