From e3766653f61cd27a15eae1b26ba1a491e8e4b25f Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Wed, 9 Jan 2019 10:27:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=EF=BC=9A1.=20allowattach=20r?= =?UTF-8?q?bac=20compatible=202.=20server=20insert=20iso=20fail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/cloudcommon/db/db_joint_dispatcher.go | 8 +++++++- pkg/compute/guestdrivers/kvm.go | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pkg/cloudcommon/db/db_joint_dispatcher.go b/pkg/cloudcommon/db/db_joint_dispatcher.go index af7ccc1b4b..99db307868 100644 --- a/pkg/cloudcommon/db/db_joint_dispatcher.go +++ b/pkg/cloudcommon/db/db_joint_dispatcher.go @@ -154,7 +154,13 @@ func (dispatcher *DBJointModelDispatcher) Get(ctx context.Context, id1 string, i } func attachItems(dispatcher *DBJointModelDispatcher, master IStandaloneModel, slave IStandaloneModel, ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) (jsonutils.JSONObject, error) { - if !dispatcher.JointModelManager().AllowAttach(ctx, userCred, master, slave) { + var isAllow bool + if consts.IsRbacEnabled() { + isAllow = isObjectRbacAllowed(master.GetModelManager(), master, userCred, policy.PolicyActionPerform, "attach") + } else { + isAllow = dispatcher.JointModelManager().AllowAttach(ctx, userCred, master, slave) + } + if !isAllow { return nil, httperrors.NewForbiddenError("Not allow to attach") } ownerProjId, err := fetchOwnerProjectId(ctx, dispatcher.JointModelManager(), userCred, data) diff --git a/pkg/compute/guestdrivers/kvm.go b/pkg/compute/guestdrivers/kvm.go index c4b440b43f..1624d37548 100644 --- a/pkg/compute/guestdrivers/kvm.go +++ b/pkg/compute/guestdrivers/kvm.go @@ -313,7 +313,7 @@ func (self *SKVMGuestDriver) RequestGuestCreateAllDisks(ctx context.Context, gue } func (self *SKVMGuestDriver) RequestGuestHotAddIso(ctx context.Context, guest *models.SGuest, path string, task taskman.ITask) error { - return guest.StartSyncstatus(ctx, task.GetUserCred(), task.GetTaskId()) + return guest.StartSyncTask(ctx, task.GetUserCred(), false, task.GetTaskId()) } func (self *SKVMGuestDriver) RequestRebuildRootDisk(ctx context.Context, guest *models.SGuest, task taskman.ITask) error {