mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
feat(cloudcommon): set TaskNotifyUrl in GetTaskRequestHeader
To support cross-service task callbacks, you must set TaskNotifyUrl, which is automatically added to TaskRequestHeader here
This commit is contained in:
@@ -19,6 +19,7 @@ import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"runtime/debug"
|
||||
"strconv"
|
||||
@@ -826,9 +827,19 @@ func (task *STask) GetTaskRequestHeader() http.Header {
|
||||
}
|
||||
header := mcclient.GetTokenHeaders(userCred)
|
||||
header.Set(mcclient.TASK_ID, task.GetTaskId())
|
||||
if len(serviceUrl) > 0 {
|
||||
notifyUrl := filepath.Join(serviceUrl, "tasks", task.GetTaskId())
|
||||
header.Set(mcclient.TASK_NOTIFY_URL, notifyUrl)
|
||||
}
|
||||
return header
|
||||
}
|
||||
|
||||
var serviceUrl string
|
||||
|
||||
func SetServiceUrl(url string) {
|
||||
serviceUrl = url
|
||||
}
|
||||
|
||||
func (task *STask) GetStartTime() time.Time {
|
||||
return task.CreatedAt
|
||||
}
|
||||
|
||||
@@ -27,10 +27,12 @@ import (
|
||||
"yunion.io/x/pkg/errors"
|
||||
|
||||
api "yunion.io/x/onecloud/pkg/apis/compute"
|
||||
"yunion.io/x/onecloud/pkg/apis/identity"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon"
|
||||
app_common "yunion.io/x/onecloud/pkg/cloudcommon/app"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/cronman"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/db"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/db/taskman"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/elect"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/etcd"
|
||||
common_options "yunion.io/x/onecloud/pkg/cloudcommon/options"
|
||||
@@ -44,6 +46,7 @@ import (
|
||||
_ "yunion.io/x/onecloud/pkg/compute/tasks"
|
||||
"yunion.io/x/onecloud/pkg/controller/autoscaling"
|
||||
"yunion.io/x/onecloud/pkg/httperrors"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/auth"
|
||||
"yunion.io/x/onecloud/pkg/multicloud/esxi"
|
||||
_ "yunion.io/x/onecloud/pkg/multicloud/loader"
|
||||
)
|
||||
@@ -64,8 +67,13 @@ func StartService() {
|
||||
log.Infof("Auth complete!!")
|
||||
})
|
||||
common_options.StartOptionManager(opts, opts.ConfigSyncPeriodSeconds, api.SERVICE_TYPE, api.SERVICE_VERSION, options.OnOptionsChange)
|
||||
serviceUrl, err := auth.GetServiceURL(api.SERVICE_TYPE, opts.Region, "", identity.EndpointInterfaceInternal)
|
||||
if err != nil {
|
||||
log.Fatalf("unable to get service url: %v", err)
|
||||
}
|
||||
taskman.SetServiceUrl(serviceUrl)
|
||||
|
||||
err := esxi.InitEsxiConfig(opts.EsxiOptions)
|
||||
err = esxi.InitEsxiConfig(opts.EsxiOptions)
|
||||
if err != nil {
|
||||
log.Fatalf("unable to init esxi configs: %v", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user