From a4ebf8293da6e40c2d524da5a77316c4c6a88606 Mon Sep 17 00:00:00 2001 From: allegroai <> Date: Sun, 17 Mar 2024 19:00:59 +0200 Subject: [PATCH] Fix role support --- clearml_agent/commands/worker.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/clearml_agent/commands/worker.py b/clearml_agent/commands/worker.py index a852248..396ff1e 100644 --- a/clearml_agent/commands/worker.py +++ b/clearml_agent/commands/worker.py @@ -4505,10 +4505,15 @@ class Worker(ServiceCommandSection): if self._session.feature_set == "basic": raise ValueError("Server does not support --use-owner-token option") - role = self._session.get_decoded_token(self._session.token).get("identity", {}).get("role", None) - if role and role not in ["admin", "root", "system"]: + identity = self._session.get_decoded_token(self._session.token).get("identity", {}) + role = identity.get("role", None) + try: + service_account_type = int(identity.get("service_account_type", 0)) + except ValueError: + service_account_type = 0 + if role and (role not in ["admin", "root", "system"] and service_account_type < 2): raise ValueError( - "User role not suitable for --use-owner-token option (requires at least admin," + "User role not suitable for --use-owner-token option (requires at least admin or service account," " found {})".format(role) )