]> git.proxmox.com Git - ceph.git/blob - ceph/src/test/rgw/test-rgw-common.sh
import 15.2.0 Octopus source
[ceph.git] / ceph / src / test / rgw / test-rgw-common.sh
1 #!/usr/bin/env bash
2
3 rgw_flags="--debug-rgw=20 --debug-ms=1"
4
5 function _assert {
6 src=$1; shift
7 lineno=$1; shift
8 [ "$@" ] || echo "$src: $lineno: assert failed: $@" || exit 1
9 }
10
11 assert="eval _assert \$BASH_SOURCE \$LINENO"
12
13 function var_to_python_json_index {
14 echo "['$1']" | sed "s/\./'\]\['/g"
15 }
16
17 function json_extract {
18 var=""
19 [ "$1" != "" ] && var=$(var_to_python_json_index $1)
20 shift
21 python3 - <<END
22 import json
23 s='$@'
24 data = json.loads(s)
25 print(data$var)
26 END
27 }
28
29 function python_array_len {
30 python3 - <<END
31 arr=$@
32 print(len(arr))
33 END
34 }
35
36 function project_python_array_field {
37 var=$(var_to_python_json_index $1)
38 shift
39 python3 - <<END
40 arr=$@
41 s='( '
42 for x in arr:
43 s += '"' + str(x$var) + '" '
44 s += ')'
45 print(s)
46 END
47 }
48
49
50 x() {
51 # echo "x " "$@" >&2
52 eval "$@"
53 }
54
55
56 script_dir=`dirname $0`
57 root_path=`(cd $script_dir/../..; pwd)`
58
59 mstart=$root_path/mstart.sh
60 mstop=$root_path/mstop.sh
61 mrun=$root_path/mrun
62 mrgw=$root_path/mrgw.sh
63
64 url=http://localhost
65
66 function start_ceph_cluster {
67 [ $# -ne 1 ] && echo "start_ceph_cluster() needs 1 param" && exit 1
68
69 echo "$mstart $1"
70 }
71
72 function rgw_admin {
73 [ $# -lt 1 ] && echo "rgw_admin() needs 1 param" && exit 1
74
75 echo "$mrun $1 radosgw-admin"
76 }
77
78 function rgw {
79 [ $# -ne 2 ] && echo "rgw() needs 2 params" && exit 1
80
81 echo "$mrgw $1 $2 $rgw_flags"
82 }
83
84 function init_first_zone {
85 [ $# -ne 7 ] && echo "init_first_zone() needs 7 params" && exit 1
86
87 cid=$1
88 realm=$2
89 zg=$3
90 zone=$4
91 endpoints=$url:$5
92
93 access_key=$6
94 secret=$7
95
96 # initialize realm
97 x $(rgw_admin $cid) realm create --rgw-realm=$realm
98
99 # create zonegroup, zone
100 x $(rgw_admin $cid) zonegroup create --rgw-zonegroup=$zg --master --default
101 x $(rgw_admin $cid) zone create --rgw-zonegroup=$zg --rgw-zone=$zone --access-key=${access_key} --secret=${secret} --endpoints=$endpoints --default
102 x $(rgw_admin $cid) user create --uid=zone.user --display-name=ZoneUser --access-key=${access_key} --secret=${secret} --system
103
104 x $(rgw_admin $cid) period update --commit
105 }
106
107 function init_zone_in_existing_zg {
108 [ $# -ne 8 ] && echo "init_zone_in_existing_zg() needs 8 params" && exit 1
109
110 cid=$1
111 realm=$2
112 zg=$3
113 zone=$4
114 master_zg_zone1_port=$5
115 endpoints=$url:$6
116
117 access_key=$7
118 secret=$8
119
120 x $(rgw_admin $cid) realm pull --url=$url:$master_zg_zone1_port --access-key=${access_key} --secret=${secret} --default
121 x $(rgw_admin $cid) zonegroup default --rgw-zonegroup=$zg
122 x $(rgw_admin $cid) zone create --rgw-zonegroup=$zg --rgw-zone=$zone --access-key=${access_key} --secret=${secret} --endpoints=$endpoints
123 x $(rgw_admin $cid) period update --commit
124 }
125
126 function init_first_zone_in_slave_zg {
127 [ $# -ne 8 ] && echo "init_first_zone_in_slave_zg() needs 8 params" && exit 1
128
129 cid=$1
130 realm=$2
131 zg=$3
132 zone=$4
133 master_zg_zone1_port=$5
134 endpoints=$url:$6
135
136 access_key=$7
137 secret=$8
138
139 # create zonegroup, zone
140 x $(rgw_admin $cid) realm pull --url=$url:$master_zg_zone1_port --access-key=${access_key} --secret=${secret}
141 x $(rgw_admin $cid) realm default --rgw-realm=$realm
142 x $(rgw_admin $cid) zonegroup create --rgw-realm=$realm --rgw-zonegroup=$zg --endpoints=$endpoints --default
143 x $(rgw_admin $cid) zonegroup default --rgw-zonegroup=$zg
144
145 x $(rgw_admin $cid) zone create --rgw-zonegroup=$zg --rgw-zone=$zone --access-key=${access_key} --secret=${secret} --endpoints=$endpoints
146 x $(rgw_admin $cid) zone default --rgw-zone=$zone
147 x $(rgw_admin $cid) zonegroup add --rgw-zonegroup=$zg --rgw-zone=$zone
148
149 x $(rgw_admin $cid) period update --commit
150
151 }
152
153 function call_rgw_admin {
154 cid=$1
155 shift 1
156 x $(rgw_admin $cid) "$@"
157 }