From 4043cd83427d399f02b6044c0056e52eceda2cfa Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Sun, 20 Dec 2020 00:43:34 +0800 Subject: [PATCH] fix(taskman): use admin token if task userCred token expired Use admin credential token if task cached userCred token expired --- pkg/cloudcommon/db/taskman/tasks.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/cloudcommon/db/taskman/tasks.go b/pkg/cloudcommon/db/taskman/tasks.go index 18e2043369..d29a44857b 100644 --- a/pkg/cloudcommon/db/taskman/tasks.go +++ b/pkg/cloudcommon/db/taskman/tasks.go @@ -41,6 +41,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db/quotas" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" + "yunion.io/x/onecloud/pkg/mcclient/auth" "yunion.io/x/onecloud/pkg/util/httputils" "yunion.io/x/onecloud/pkg/util/rbacutils" ) @@ -816,7 +817,11 @@ func (self *STask) GetObjects() []db.IStandaloneModel { } func (task *STask) GetTaskRequestHeader() http.Header { - header := mcclient.GetTokenHeaders(task.GetUserCred()) + userCred := task.GetUserCred() + if !userCred.IsValid() { + userCred = auth.AdminCredential() + } + header := mcclient.GetTokenHeaders(userCred) header.Set(mcclient.TASK_ID, task.GetTaskId()) return header }