mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-21 14:19:49 +08:00
fix: region task notify not work
This commit is contained in:
@@ -160,10 +160,11 @@ func init() {
|
||||
})
|
||||
|
||||
type DiskCreateOptions struct {
|
||||
STORAGE string `help:"ID or name of storage where the disk is created"`
|
||||
NAME string `help:"Name of the disk"`
|
||||
DISKDESC string `help:"Image size or size of virtual disk"`
|
||||
Desc string `help:"Description" metavar:"Description"`
|
||||
STORAGE string `help:"ID or name of storage where the disk is created"`
|
||||
NAME string `help:"Name of the disk"`
|
||||
DISKDESC string `help:"Image size or size of virtual disk"`
|
||||
Desc string `help:"Description" metavar:"Description"`
|
||||
TaskNotify bool `help:"Setup task notify"`
|
||||
}
|
||||
R(&DiskCreateOptions{}, "disk-create", "Create a virtual disk", func(s *mcclient.ClientSession, args *DiskCreateOptions) error {
|
||||
params := jsonutils.NewDict()
|
||||
@@ -172,11 +173,17 @@ func init() {
|
||||
if len(args.Desc) > 0 {
|
||||
params.Add(jsonutils.NewString(args.Desc), "description")
|
||||
}
|
||||
if args.TaskNotify {
|
||||
s.PrepareTask()
|
||||
}
|
||||
disk, err := modules.Disks.CreateInContext(s, params, &modules.Storages, args.STORAGE)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printObject(disk)
|
||||
if args.TaskNotify {
|
||||
s.WaitTaskNotify()
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
||||
|
||||
@@ -156,7 +156,7 @@ func fetchTaskParams(ctx context.Context, taskName string, taskData *jsonutils.J
|
||||
}
|
||||
} else {
|
||||
if !reqContext.IsZero() {
|
||||
if len(reqContext.TaskId) > 0 {
|
||||
if len(reqContext.TaskId) > 0 && len(reqContext.TaskNotifyUrl) == 0 {
|
||||
data.Add(jsonutils.NewString(reqContext.TaskId), PARENT_TASK_ID_KEY)
|
||||
}
|
||||
if len(reqContext.TaskNotifyUrl) > 0 {
|
||||
|
||||
@@ -18,7 +18,7 @@ const (
|
||||
|
||||
func Authenticate(f appsrv.FilterHandler) appsrv.FilterHandler {
|
||||
return func(ctx context.Context, w http.ResponseWriter, r *http.Request) {
|
||||
tokenStr := r.Header.Get("X-Auth-Token")
|
||||
tokenStr := r.Header.Get(mcclient.AUTH_TOKEN)
|
||||
if len(tokenStr) == 0 {
|
||||
httperrors.UnauthorizedError(w, "Unauthorized")
|
||||
return
|
||||
@@ -30,6 +30,12 @@ func Authenticate(f appsrv.FilterHandler) appsrv.FilterHandler {
|
||||
return
|
||||
}
|
||||
ctx = context.WithValue(ctx, AUTH_TOKEN, token)
|
||||
if taskId := r.Header.Get(mcclient.TASK_ID); taskId != "" {
|
||||
ctx = context.WithValue(ctx, appctx.APP_CONTEXT_KEY_TASK_ID, taskId)
|
||||
}
|
||||
if taskNotifyUrl := r.Header.Get(mcclient.TASK_NOTIFY_URL); taskNotifyUrl != "" {
|
||||
ctx = context.WithValue(ctx, appctx.APP_CONTEXT_KEY_TASK_NOTIFY_URL, taskNotifyUrl)
|
||||
}
|
||||
f(ctx, w, r)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,9 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
TASK_ID = "X-Task-Id"
|
||||
TASK_NOTIFY_URL = "X-Task-Notify-Url"
|
||||
AUTH_TOKEN = "X-Auth-Token"
|
||||
|
||||
DEFAULT_API_VERSION = "v1"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user