Skip to content

Commit a90fc62

Browse files
authored
Merge pull request #64 from HuseinA/master
Add: debug mode & ACL info in list bucket
2 parents f77c9ad + c2cac97 commit a90fc62

File tree

2 files changed

+80
-117
lines changed

2 files changed

+80
-117
lines changed

obs/api/app/controllers/api/admin.py

+33-45
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,21 @@ def get_client():
1313
return client.admin_client()
1414

1515

16+
def init_parser():
17+
parser = reqparse.RequestParser()
18+
parser.add_argument("userId", type=str, required=True)
19+
parser.add_argument("groupId", type=str, required=True)
20+
parser.add_argument("debug", type=inputs.boolean, default=False)
21+
return parser
22+
23+
1624
class user_api(Resource):
1725
def get(self):
18-
parser = reqparse.RequestParser()
26+
parser = init_parser().copy()
1927
parser.add_argument("user_type", type=str, default="all")
2028
parser.add_argument("user_status", type=str, default="active")
2129
parser.add_argument("limit", type=str, default="")
22-
parser.add_argument("userId", type=str)
23-
parser.add_argument("groupId", type=str, required=True)
30+
parser.replace_argument("userId", type=str, required=False)
2431
args = parser.parse_args()
2532

2633
try:
@@ -49,7 +56,7 @@ def get(self):
4956

5057
return response(200, data=user_list)
5158
except Exception as e:
52-
current_app.logger.error(f"{e}")
59+
current_app.logger.error(f"{e}", exc_info=args["debug"])
5360
return response(500, f"{e}")
5461

5562
def post(self):
@@ -79,6 +86,7 @@ def post(self):
7986
else:
8087
parser.add_argument(index, type=str)
8188
parser.add_argument("quotaLimit", type=int)
89+
parser.add_argument("debug", type=inputs.boolean, default=False)
8290
args = parser.parse_args()
8391

8492
try:
@@ -97,13 +105,11 @@ def post(self):
97105
else:
98106
return response(201, f"User {options['userId']} created successfully.")
99107
except Exception as e:
100-
current_app.logger.error(f"{e}")
108+
current_app.logger.error(f"{e}", exc_info=args["debug"])
101109
return response(500, f"{e}")
102110

103111
def put(self):
104-
parser = reqparse.RequestParser()
105-
parser.add_argument("userId", type=str, required=True)
106-
parser.add_argument("groupId", type=str, required=True)
112+
parser = init_parser().copy()
107113
parser.add_argument("suspend", type=inputs.boolean, required=True)
108114
args = parser.parse_args()
109115

@@ -129,14 +135,11 @@ def put(self):
129135
message = f"User has been {msg}"
130136
return response(200, message)
131137
except Exception as e:
132-
current_app.logger.error(f"{e}")
138+
current_app.logger.error(f"{e}", exc_info=args["debug"])
133139
response(500, f"{e}")
134140

135141
def delete(self):
136-
parser = reqparse.RequestParser()
137-
parser.add_argument("userId", type=str, required=True)
138-
parser.add_argument("groupId", type=str, required=True)
139-
args = parser.parse_args()
142+
args = init_parser().parse_args()
140143

141144
try:
142145
status = user.remove(get_client(), args["userId"], args["groupId"])
@@ -146,16 +149,13 @@ def delete(self):
146149

147150
return response(200, f"User {args['userId']} deleted successfully.")
148151
except Exception as e:
149-
current_app.logger.error(f"{e}")
152+
current_app.logger.error(f"{e}", exc_info=args["debug"])
150153
return response(500, f"{e}")
151154

152155

153156
class qos_api(Resource):
154157
def get(self):
155-
parser = reqparse.RequestParser()
156-
parser.add_argument("userId", type=str, required=True)
157-
parser.add_argument("groupId", type=str, required=True)
158-
args = parser.parse_args()
158+
args = init_parser().parse_args()
159159

160160
try:
161161
infos = qos.info(get_client(), args["userId"], args["groupId"])
@@ -171,13 +171,11 @@ def get(self):
171171

172172
return response(200, data=infos)
173173
except Exception as e:
174-
current_app.logger.error(f"{e}")
174+
current_app.logger.error(f"{e}", exc_info=args["debug"])
175175
return response(500, f"{e}")
176176

177177
def post(self):
178-
parser = reqparse.RequestParser()
179-
parser.add_argument("userId", type=str, required=True)
180-
parser.add_argument("groupId", type=str, required=True)
178+
parser = init_parser().copy()
181179
parser.add_argument("limit", type=int, required=True)
182180
args = parser.parse_args()
183181

@@ -193,14 +191,11 @@ def post(self):
193191
201, f"User {args['userId']} quota changed successfully.", status
194192
)
195193
except Exception as e:
196-
current_app.logger.error(f"{e}")
194+
current_app.logger.error(f"{e}", exc_info=args["debug"])
197195
return response(500, f"{e}")
198196

199197
def delete(self):
200-
parser = reqparse.RequestParser()
201-
parser.add_argument("userId", type=str, required=True)
202-
parser.add_argument("groupId", type=str, required=True)
203-
args = parser.parse_args()
198+
args = init_parser().parse_args()
204199

205200
try:
206201
status = qos.rm(get_client(), args["userId"], args["groupId"])
@@ -212,16 +207,13 @@ def delete(self):
212207
200, f"User {args['userId']} quota changed to unlimited.", status
213208
)
214209
except Exception as e:
215-
current_app.logger.error(f"{e}")
210+
current_app.logger.error(f"{e}", exc_info=args["debug"])
216211
return response(500, f"{e}")
217212

218213

219214
class cred_api(Resource):
220215
def get(self):
221-
parser = reqparse.RequestParser()
222-
parser.add_argument("userId", type=str, required=True)
223-
parser.add_argument("groupId", type=str, required=True)
224-
args = parser.parse_args()
216+
args = init_parser().parse_args()
225217

226218
try:
227219
cred_list = credential.list(get_client(), args["userId"], args["groupId"])
@@ -231,14 +223,11 @@ def get(self):
231223

232224
return response(200, data=cred_list)
233225
except Exception as e:
234-
current_app.logger.error(f"{e}")
226+
current_app.logger.error(f"{e}", exc_info=args["debug"])
235227
return response(500, f"{e}")
236228

237229
def post(self):
238-
parser = reqparse.RequestParser()
239-
parser.add_argument("userId", type=str, required=True)
240-
parser.add_argument("groupId", type=str, required=True)
241-
args = parser.parse_args()
230+
args = init_parser().parse_args()
242231

243232
try:
244233
status = credential.create(get_client(), args["userId"], args["groupId"])
@@ -250,13 +239,14 @@ def post(self):
250239
201, f"User {args['userId']} new credential created successfully."
251240
)
252241
except Exception as e:
253-
current_app.logger.error(f"{e}")
242+
current_app.logger.error(f"{e}", exc_info=args["debug"])
254243
return response(500, f"{e}")
255244

256245
def put(self):
257246
parser = reqparse.RequestParser()
258247
parser.add_argument("access_key", type=str, required=True)
259248
parser.add_argument("status", type=str, required=True, default="true")
249+
parser.add_argument("debug", type=inputs.boolean, default=False)
260250
args = parser.parse_args()
261251

262252
try:
@@ -268,12 +258,13 @@ def put(self):
268258

269259
return response(200, f"Credential status has been {stats}.")
270260
except Exception as e:
271-
current_app.logger.error(f"{e}")
261+
current_app.logger.error(f"{e}", exc_info=args["debug"])
272262
return response(500, f"{e}")
273263

274264
def delete(self):
275265
parser = reqparse.RequestParser()
276266
parser.add_argument("access_key", type=str, required=True)
267+
parser.add_argument("debug", type=inputs.boolean, default=False)
277268
args = parser.parse_args()
278269

279270
try:
@@ -286,16 +277,13 @@ def delete(self):
286277
200, f"Access key {args['access_key']} deleted successfully."
287278
)
288279
except Exception as e:
289-
current_app.logger.error(f"{e}")
280+
current_app.logger.error(f"{e}", exc_info=args["debug"])
290281
return response(500, f"{e}")
291282

292283

293284
class user_usage(Resource):
294285
def get(self):
295-
parser = reqparse.RequestParser()
296-
parser.add_argument("userId", type=str, required=True)
297-
parser.add_argument("groupId", type=str, required=True)
298-
args = parser.parse_args()
286+
args = init_parser().parse_args()
299287

300288
try:
301289
status = admin_usage.usage(get_client(), args["userId"], args["groupId"])
@@ -305,5 +293,5 @@ def get(self):
305293

306294
return response(200, data=status[0])
307295
except Exception as e:
308-
current_app.logger.error(f"{e}")
296+
current_app.logger.error(f"{e}", exc_info=args["debug"])
309297
return response(500, f"{e}")

0 commit comments

Comments
 (0)