mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-21 06:09:39 +08:00
gpu add export keys
This commit is contained in:
@@ -2432,7 +2432,14 @@ func (self *SGuest) DoCancelPendingDelete(ctx context.Context, userCred mcclient
|
||||
disk := guestdisk.GetDisk()
|
||||
disk.DoCancelPendingDelete(ctx, userCred)
|
||||
}
|
||||
return self.SVirtualResourceBase.DoCancelPendingDelete(ctx, userCred)
|
||||
err := self.SVirtualResourceBase.DoCancelPendingDelete(ctx, userCred)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if self.BillingType == billing_api.BILLING_TYPE_POSTPAID && !self.ExpiredAt.IsZero() {
|
||||
return self.CancelExpireTime(ctx, userCred)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *SGuest) StartUndeployGuestTask(ctx context.Context, userCred mcclient.TokenCredential, parentTaskId string, targetHostId string) error {
|
||||
|
||||
@@ -189,6 +189,38 @@ func (self *SIsolatedDevice) AllowDeleteItem(ctx context.Context, userCred mccli
|
||||
return userCred.IsSystemAdmin()
|
||||
} */
|
||||
|
||||
func (manager *SIsolatedDeviceManager) ListItemExportKeys(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query jsonutils.JSONObject) (*sqlchemy.SQuery, error) {
|
||||
var err error
|
||||
q, err = manager.SModelBaseManager.ListItemExportKeys(ctx, q, userCred, query)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
exportKeys, _ := query.GetString("export_keys")
|
||||
keys := strings.Split(exportKeys, ",")
|
||||
if utils.IsInStringArray("guest", keys) {
|
||||
guestNameQuery := GuestManager.Query("name", "id").SubQuery()
|
||||
q.LeftJoin(guestNameQuery, sqlchemy.Equals(q.Field("guest_id"), guestNameQuery.Field("id")))
|
||||
q.AppendField(guestNameQuery.Field("name", "guest"))
|
||||
}
|
||||
if utils.IsInStringArray("host", keys) {
|
||||
hostNameQuery := HostManager.Query("name", "id").SubQuery()
|
||||
q.LeftJoin(hostNameQuery, sqlchemy.Equals(q.Field("host_id"), hostNameQuery.Field("id")))
|
||||
q.AppendField(hostNameQuery.Field("name", "host"))
|
||||
}
|
||||
return q, nil
|
||||
}
|
||||
|
||||
func (manager *SIsolatedDeviceManager) GetExportExtraKeys(ctx context.Context, query jsonutils.JSONObject, rowMap map[string]string) *jsonutils.JSONDict {
|
||||
res := manager.SStandaloneResourceBaseManager.GetExportExtraKeys(ctx, query, rowMap)
|
||||
if guest, ok := rowMap["guest"]; ok && len(guest) > 0 {
|
||||
res.Set("guest", jsonutils.NewString(guest))
|
||||
}
|
||||
if host, ok := rowMap["host"]; ok {
|
||||
res.Set("host", jsonutils.NewString(host))
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func (self *SIsolatedDevice) ValidateDeleteCondition(ctx context.Context) error {
|
||||
if len(self.GuestId) > 0 {
|
||||
return httperrors.NewNotEmptyError("Isolated device used by server")
|
||||
|
||||
Reference in New Issue
Block a user