Skip to content

Commit 516fc1a

Browse files
committed
list workflows
1 parent 3acc9af commit 516fc1a

2 files changed

Lines changed: 44 additions & 27 deletions

File tree

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ swo -j JOBNUMBER
7070
| `-j <string> --job <string>` | search a job |
7171
| `-h --help` | display help dialog |
7272
| `-i --install` | create config folders |
73+
| `-f --flows` | list flows and status |
7374

7475
### How do I contribute to Switch Orchestrator?
7576

@@ -92,7 +93,7 @@ I'm far from expert and suspect there are many ways to improve. If you have idea
9293
- [X] Search by Jobs
9394
- [ ] Search with different parameters
9495
- [ ] Refresh Search
95-
- [ ] List Workflow
96+
- [X] List Workflow
9697
- [ ] Start/Stop workflow
9798
- [ ] Multiple Switch
9899
- [ ] Environment ?

swo.sh

Lines changed: 42 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -52,39 +52,39 @@ createConf() {
5252
truncate -s 0 $SWITCH_CF_FILE
5353
fi
5454

55-
echo 'USER="XYZ"' >> $SWITCH_CF_FILE
56-
echo 'HASH_PASS="XXXXXXXXXXXXXXXX"' >> $SWITCH_CF_FILE
57-
echo 'SWITCH_IP="0.0.0.0"' >> $SWITCH_CF_FILE
55+
echo 'USER="XYZ"' >>$SWITCH_CF_FILE
56+
echo 'HASH_PASS="XXXXXXXXXXXXXXXX"' >>$SWITCH_CF_FILE
57+
echo 'SWITCH_IP="0.0.0.0"' >>$SWITCH_CF_FILE
5858
exit 0
5959
}
6060

6161
auth() {
6262
echo $SWITCH_ADR
6363
JSON=$(curl -s POST $SWITCH_ADR/login -H 'Content-Type: application/json' -d '{"username": "'$USER'", "password": "'$HASH_PASS'"}')
6464

65-
result=$(jq -r '.success' <<< $JSON)
65+
result=$(jq -r '.success' <<<$JSON)
6666
if [ "$result" == "false" ]; then
6767
echo "Login failed"
6868
exit 1
6969
fi
70-
TOKEN=$(jq -r '.token' <<< $JSON)
70+
TOKEN=$(jq -r '.token' <<<$JSON)
7171
SAVED_TOKEN=$SWITCH_CF_FOLDER/swo_$SWITCH_IP
7272
touch $SAVED_TOKEN
7373
truncate -s 0 $SAVED_TOKEN
74-
echo "$TOKEN" >> $SAVED_TOKEN
74+
echo "$TOKEN" >>$SAVED_TOKEN
7575
echo "Login Sucessful | SWITCH: $SWITCH_IP"
7676
checkRequirements
7777
exit 0
7878
}
7979

8080
searchJob() {
8181
JSON=$(curl -s --location --request GET "$SWITCH_ADR/api/v1/messages?type=info&type=error&type=warning&type=debug&message=$JOB_NUMBER&limit=100" -H 'Authorization: Bearer '$TOKEN)
82-
status=$(jq '.status' <<< $JSON)
82+
status=$(jq '.status' <<<$JSON)
8383
if [ "$status" == "success" ]; then
8484
echo "Search failed OR you're not logged, try to auth again"
8585
exit 1
8686
fi
87-
messages=$(jq '.messages' <<< $JSON)
87+
messages=$(jq '.messages' <<<$JSON)
8888
echo $messages | jq '[.[] | {type,flow,job,element,message,timestamp}] | sort_by(.timestamp)' | jtbl
8989
exit 0
9090
}
@@ -103,11 +103,24 @@ validateSearchJob() {
103103
searchJob $JOB_NUMBER
104104
}
105105

106+
listFlows() {
107+
JSON=$(curl -s --location --request GET "$SWITCH_ADR/api/v1/flows?fields=status,name,groups" -H 'Authorization: Bearer '$TOKEN)
108+
messages=$(jq <<<$JSON)
109+
echo $messages | jq 'map(
110+
.status |= if . == "stopped" then "\u001b[31m" + . + "\u001b[0m"
111+
elif . == "running" then "\u001b[32m" + . + "\u001b[0m"
112+
else . end
113+
| select(.groups | length == 1)
114+
| .groups |= .[0].name
115+
) | sort_by(.groups, .name)' | jtbl
116+
exit 0
117+
}
118+
106119
checkRequirements() {
107-
if ! command -v jq &> /dev/null; then
108-
echo "jq is not installed. Please install it before running this script."
109-
exit 1
110-
fi
120+
if ! command -v jq &>/dev/null; then
121+
echo "jq is not installed. Please install it before running this script."
122+
exit 1
123+
fi
111124
}
112125

113126
############################################################
@@ -120,23 +133,26 @@ if (($# > 0)); then
120133
while [[ $# -gt 0 ]]; do
121134
key="$1"
122135
case $key in
123-
-j | --job)
124-
validateSearchJob "$@"
136+
-j | --job)
137+
validateSearchJob "$@"
125138
;;
126-
-a | --auth)
127-
auth
128-
shift
139+
-a | --auth)
140+
auth
141+
shift
129142
;;
130-
-c | --config)
131-
createConf
143+
-c | --config)
144+
createConf
132145
;;
133-
-h | --help)
134-
Help
146+
-f | --flows)
147+
listFlows
135148
;;
136-
*)
137-
printf "Unknown Argument \"%s\"\n" "$1"
138-
printf "Use \"swo --help\" to see usage information.\n"
139-
exit 1
149+
-h | --help)
150+
Help
151+
;;
152+
*)
153+
printf "Unknown Argument \"%s\"\n" "$1"
154+
printf "Use \"swo --help\" to see usage information.\n"
155+
exit 1
140156
;;
141157
esac
142158
done
@@ -147,4 +163,4 @@ else
147163
Config: $SWITCH_CF_FILE
148164
Use \"swo --help\" to see usage information.\n"
149165

150-
fi
166+
fi

0 commit comments

Comments
 (0)