2
2
3
3
# To set .accuknox.cfg check https://github.com/accuknox/tools/tree/main/api-samples
4
4
. ${ACCUKNOX_CFG:- ~/ .accuknox.cfg}
5
+ . util.sh
5
6
6
7
# Other params
7
8
clusterspec=" .*" # regex for cluster name for whom to dump the policies
8
- TMP=/tmp /$( basename $0 ) .$$
9
+ TMP=$DIR /$( basename $0 ) .$$
9
10
OUT=" POLDUMP" # output directory where the policies will be dumped
10
11
11
12
dump_policy_file ()
12
13
{
13
- policy_id=$1
14
- curl $CURLOPTS " $CWPP_URL /policymanagement/v2/policy/$policy_id " \
15
- -H " Authorization: Bearer $TOKEN " \
16
- -H ' Content-Type: application/json' \
17
- -H " X-Tenant-Id: $TENANT_ID " | jq -r .yaml > $polpath
18
- [[ $? -ne 0 ]] && echo " could not get policy with ID=[$policy_id ]" && return
14
+ ak_api " $CWPP_URL /policymanagement/v2/policy/$1 "
15
+ echo $json_string | jq -r .yaml > $polpath
16
+ [[ $? -ne 0 ]] && echo " could not get policy with ID=[$1 ]" && return
19
17
}
20
18
21
19
get_policy_list ()
@@ -25,6 +23,8 @@ get_policy_list()
25
23
pgnext=$(( $pgprev + $polperpage ))
26
24
echo " fetching policies $pgprev to $pgnext ..."
27
25
cnt=0
26
+ data_raw=" {\" workspace_id\" :$TENANT_ID ,\" workload\" :\" k8s\" ,\" page_previous\" :$pgprev ,\" page_next\" :$pgnext ,\" filter\" :{\" cluster_id\" :[$1 ],\" namespace_id\" :[],\" workload_id\" :[],\" kind\" :[],\" node_id\" :[],\" pod_id\" :[],\" type\" :[],\" status\" :[],\" tags\" :[],\" name\" :{\" regex\" :[]},\" tldr\" :{\" regex\" :[]}}}"
27
+ ak_api " $CWPP_URL /policymanagement/v2/list-policy"
28
28
while read pline; do
29
29
(( cnt++ ))
30
30
arr=($pline )
@@ -33,17 +33,14 @@ get_policy_list()
33
33
polpath=$poldir /${arr[1]} .yaml
34
34
echo $polpath
35
35
dump_policy_file ${arr[0]}
36
- done < <( curl $CURLOPTS " $CWPP_URL /policymanagement/v2/list-policy" \
37
- -H " Authorization: Bearer $TOKEN " \
38
- -H ' Content-Type: application/json' \
39
- -H " X-Tenant-Id: $TENANT_ID " \
40
- --data-raw " {\" workspace_id\" :$TENANT_ID ,\" workload\" :\" k8s\" ,\" page_previous\" :$pgprev ,\" page_next\" :$pgnext ,\" filter\" :{\" cluster_id\" :[$1 ],\" namespace_id\" :[],\" workload_id\" :[],\" kind\" :[],\" node_id\" :[],\" pod_id\" :[],\" type\" :[],\" status\" :[],\" tags\" :[],\" name\" :{\" regex\" :[]},\" tldr\" :{\" regex\" :[]}}}" | jq -r ' .list_of_policies[] | "\(.policy_id) \(.name) \(.namespace_name)"' )
36
+ done < <( echo $json_string | jq -r ' .list_of_policies[] | "\(.policy_id) \(.name) \(.namespace_name)"' )
41
37
[[ $cnt -lt $polperpage ]] && break
42
38
done
43
39
}
44
40
45
41
get_cluster_id ()
46
42
{
43
+ ak_api " $CWPP_URL /cluster-onboarding/api/v1/get-onboarded-clusters?wsid=$TENANT_ID "
47
44
while read cline; do
48
45
cid=${cline/ */ }
49
46
cname=${cline/* / }
@@ -52,27 +49,12 @@ get_cluster_id()
52
49
mkdir $cpath 2> /dev/null
53
50
echo " fetching policies for cluster [$cname ] ..."
54
51
get_policy_list $cid
55
- done < <( curl $CURLOPTS " $CWPP_URL /cluster-onboarding/api/v1/get-onboarded-clusters?wsid=$TENANT_ID " \
56
- -H ' accept: */*' \
57
- -H " authorization: Bearer $TOKEN " \
58
- -H ' content-type: application/json' \
59
- -H " x-tenant-id: $TENANT_ID " | jq -r ' .[] | "\(.ID) \(.ClusterName)"' )
60
- }
61
-
62
- function cleanup {
63
- rm -rf $TMP 2> /dev/null
64
- }
65
- trap cleanup EXIT
66
-
67
- init ()
68
- {
69
- mkdir -p $TMP 2> /dev/null
70
- mkdir -p $OUT 2> /dev/null
52
+ done < <( echo $json_string | jq -r ' .[] | "\(.ID) \(.ClusterName)"' )
71
53
}
72
54
73
55
main ()
74
56
{
75
- init
57
+ mkdir -p $OUT 2> /dev/null
76
58
get_cluster_id
77
59
}
78
60
0 commit comments