-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsendPost
More file actions
executable file
·133 lines (115 loc) · 4.26 KB
/
Copy pathsendPost
File metadata and controls
executable file
·133 lines (115 loc) · 4.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/bin/bash
# Установить пакет perl-JSON-PP
# debug
_urlPrefix="http://localhost:28080"
# serbia
#_urlPrefix="http://192.168.56.204:28080/odb-admin"
_user="m.mahonin"
_password="12345678"
_token=""
getDate(){
echo -e "$(date +%Y/%m/%d\ %H:%M:%S)"
}
run(){
# url контроллера ОБД
rm -rf ./_auth.txt
# Просим curl сохранять куки после первой успешной авторизации чтобы не сбрасывалась сессия
url="$_urlPrefix/api/user/login?username=$_user&password=$_password&remember-me=true"
echo url="$url" | /usr/bin/curl --cookie-jar ./cookies.txt -f -s -X POST -v -K - --trace-ascii ./_auth.txt 2>&1
parserAuth ./_auth.txt ${url}
_statusParserAuth=$?
if [[ $_statusParserAuth == "0" ]]
then
rm -rf ./_auth.txt
echo -e "[ $(getDate) ] Авторизация [ok]. Токен сессии получен $_token"
runAfterSuccessAuth
else
echo -e "[ $(getDate) ] Авторизация [fail]"
exit 1
fi
# Подчищаем все за собой
#rm -rf /tmp/$_rltProName
rm -rf ./_convertation.txt
rm -rf ./_response.txt
rm -rf ./cookies.txt
#exit 0
}
runAfterSuccessAuth(){
# Для каждого запроса нужно указывать файл с куками т.к. в нем токен
#curl --cookie ./cookies.txt --cookie-jar ./cookies.txt -X GET -s "$_urlPrefix/api/user/current-user" 2>&1 >> ./response.txt
#curl --cookie ./cookies.txt --cookie-jar ./cookies.txt -X GET -s "$_urlPrefix/api/user/current-user"
################################################################### Конвертация проекта Сириус-Ис ###################################################################################
url="$_urlPrefix/api/admin-sirius-gen-service/gen"
curl -o ./_response.txt -H "Content-Type: application/json" \
-X POST \
-d '{ "name":"project",
"optionApplyScaling":"false",
"optionApplyShortName":"true",
"optionCreateFileRltStudio": "true",
"optionCutHier":"false",
"optionIncludePGUIDS":"false",
"optionReplaceName":"true",
"optionUpdateVTI":"false",
"optionUploadProject":"false",
"optionUseAnalytics":"false"
}' \
--cookie ./cookies.txt --cookie-jar ./cookies.txt -f -s "$_urlPrefix/api/admin-sirius-gen-service/gen" --trace-ascii ./_convertation.txt
_rltProName=`cat ./_response.txt | awk -F "result" '{print $2}' | sed 's/>\|<\///g'`
( echo -e "[ $(getDate) ] Конвертация проекта $_rltProName завершена [ok]" && cp -r /tmp/${_rltProName} /mnt/tmp && echo -e "[ $(getDate) ] Проект скопирован в /mnt/tmp")
########################################################################################################################################################################################
}
parserAuth(){
#echo -e "call parserAuth"
_status=`cat $1`
_url=$2
if [[ -z "$_status" ]]
then
_status="FAIL"
else
_statusAnswer=`echo -e $_status |awk -F "Recv" '{print $2}'`
_httpVersion=`echo ${_statusAnswer#*"HTTP/"} | awk '{print $1}'`
_httpAnswerCode=`echo ${_statusAnswer#*"HTTP/"} | awk '{print $2}'`
if [[ $_httpAnswerCode == "200" ]]
then
echo -e "[ $(getDate) ] ${_url} : HTTP/v$_httpVersion -> $_httpAnswerCode"
_token=`echo ${_status#*"ODB_ADMIN_JSESSIONID"} | awk '{print $1}' | awk -F "=" '{print $2}'`
return 0
fi
fi
return 1
}
parser(){
_testData="$1"
local _status=""
if [[ -z "$_testData" ]]
then
_status="FAIL"
else
_answer=`cat $_testData | awk -F "title" '{print $2}' | tail -1 | sed 's/>\|<\///g'`
_answerCode=`echo $_answer | awk -F " " '{print $3}'`
fi
_descriptionMsg=""
case $_answerCode in
405)
_descriptionMsg="Нельзя вызвать этот url"
;;
404)
_descriptionMsg="Страница не найдена"
;;
403)
_descriptionMsg="Проверь авторизацию. см. куку ODB_ADMIN_JSESSIONID"
;;
200)
_descriptionMsg="Ответ получен"
;;
*)
_descriptionMsg="Код возврата не найден"
;;
esac
echo -e "Код ответа от Web сервера = $_answerCode. Описание: $_descriptionMsg"
}
#while true
#do
run
# sleep 0.1s
#done