-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathap_trigger_analysis.sh
122 lines (104 loc) · 3.36 KB
/
ap_trigger_analysis.sh
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
#!/bin/bash
GATE_SERVER='http://demovas-gate.engineering.opsmx.net'
UI_SERVER='http://demovas.engineering.opsmx.net'
application='juniperapp'
beginCanaryAnalysisAfterMins='0'
canaryAnalysisIntervalMins='120'
lifetimeHours='2'
minimumCanaryResultScore='70'
canaryResultScore='90'
username='admin'
serviceName='juniper-build-svc'
BASELINE_STARTTIME=1604647800000
BASELINE_LOGID='390116_67569'
GATE_URL="$GATE_SERVER/autopilot/registerCanary"
usage="$(basename "$0") [-help]
-- Example to show how to pass relevant arguments.
USAGE:
$(basename "$0") -baselinestarttime=1605101128000 -newreleasestarttime=1605101326000 -baselinelogid=87655_66480 -newreleaselogid=390116_67569
args:
-baselinestarttime=<Baseline log start time for analysis>
-newreleasestarttime=<Newrelease log start time for analysis>
-baselinelogid=<Value of request_process_id for Baseline log>
-newreleaselogid=<Value of request_process_id for Newrelease log>"
for i in "$@"
do
case $i in
-baselinestarttime=*|--baselinestarttime=*)
baselinestarttime="${i#*=}"
shift # past argument=value
;;
-newreleasestarttime=*|--newreleasestarttime=*)
newreleasestarttime="${i#*=}"
shift # past argument=value
;;
-baselinelogid=*|--baselinelogid=*)
baselinelogid="${i#*=}"
shift # past argument=value
;;
-newreleaselogid=*|--newreleaselogid=*)
newreleaselogid="${i#*=}"
shift # past argument=value
;;
*)
echo "$usage";
exit 1
;;
esac
done
if [[ -z "$newreleasestarttime" ]]; then
echo "Provide newrelease start time";
echo "$usage";
exit 1;
fi
if [[ -z "$newreleaselogid" ]]; then
echo "Provide newrelease log id value";
echo "$usage";
exit 1;
fi
baselinestarttime=${baselinestarttime:-$BASELINE_STARTTIME}
baselinelogid=${baselinelogid:-$BASELINE_LOGID}
jsondata="{
\"application\": \"$application\",
\"isJsonResponse\": true,
\"canaryConfig\": {
\"canaryAnalysisConfig\": {
\"beginCanaryAnalysisAfterMins\": \"$beginCanaryAnalysisAfterMins\",
\"canaryAnalysisIntervalMins\": \"$canaryAnalysisIntervalMins\",
\"notificationHours\": []
},
\"canaryHealthCheckHandler\": {
\"minimumCanaryResultScore\": \"$minimumCanaryResultScore\"
},
\"canarySuccessCriteria\": {
\"canaryResultScore\": \"$canaryResultScore\"
},
\"combinedCanaryResultStrategy\": \"AGGREGATE\",
\"lifetimeHours\": \"$lifetimeHours\",
\"name\": \"$username\"
},
\"canaryDeployments\": [
{
\"baseline\": {
\"log\": {
\"$serviceName\": {
\"request_process_id\": \"$baselinelogid\"
}
}
},
\"baselineStartTimeMs\": $baselinestarttime,
\"canaryStartTimeMs\": $newreleasestarttime,
\"canary\": {
\"log\": {
\"$serviceName\": {
\"request_process_id\": \"$newreleaselogid\"
}
}
}
}
]
}"
response=$(curl -k -H "Content-Type:application/json" -X POST -d "$jsondata" "$GATE_URL" | jq -r '.canaryId')
# Adding Canary ID to report url
reportUrl="$UI_SERVER/application/deploymentverification/$application/$response"
echo "$reportUrl"