python-harborclient
python-harborclient copied to clipboard
set-admin: harborclient.exceptions.BadRequest: {"code":400,"message":"Invalid json request"} (HTTP 400)
Hi,
A small issue with set-admin command.
-
Harbor version: 1.9.0
-
harbor-client commit: 09c936279323cbea276299d2a8188c264d9bbe2e
-
error:
/usr/local/bin/harbor set-admin <my user>
Traceback (most recent call last):
File "/usr/local/bin/harbor", line 10, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/dist-packages/harborclient/shell.py", line 404, in main
HarborShell().main(argv)
File "/usr/local/lib/python2.7/dist-packages/harborclient/shell.py", line 336, in main
args.func(self.cs, args)
File "/usr/local/lib/python2.7/dist-packages/harborclient/v2/shell.py", line 57, in do_set_admin
cs.users.set_admin(user['user_id'], True)
File "/usr/local/lib/python2.7/dist-packages/harborclient/v2/users.py", line 72, in set_admin
return self._update("/users/%s/sysadmin" % id, profile)
File "/usr/local/lib/python2.7/dist-packages/harborclient/base.py", line 45, in _update
return self.api.client.put(url, body=body)
File "/usr/local/lib/python2.7/dist-packages/harborclient/client.py", line 252, in put
return self._cs_request(url, 'PUT', **kwargs)
File "/usr/local/lib/python2.7/dist-packages/harborclient/client.py", line 229, in _cs_request
**kwargs)
File "/usr/local/lib/python2.7/dist-packages/harborclient/client.py", line 215, in _time_request
body = self.request(url, method, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/harborclient/client.py", line 205, in request
raise exceptions.from_response(resp, resp.text, url, method)
harborclient.exceptions.BadRequest: {"code":400,"message":"Invalid json request"} (HTTP 400)
- root cause: Expected json value is a boolean instead of a int
- proposed fix in v2/users.py:
if is_admin:
profile = {"has_admin_role": True}
else:
profile = {"has_admin_role": False}
Don't know if such a fix may cause issues with other versions of Harbor. Would worth a try.
Thanks for your nice work. Kind regards,
Damien