From 306cf75a8e40941c597e58f428ba4592eebb02c1 Mon Sep 17 00:00:00 2001 From: chenyifan01 Date: Thu, 3 Nov 2022 15:15:46 +0800 Subject: [PATCH 1/8] #3045 update --- models/resource_queue.go | 3 --- models/resource_specification.go | 11 ++++------- services/cloudbrain/resource/resource_specification.go | 1 + 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/models/resource_queue.go b/models/resource_queue.go index fc0dd8cb5..87809bba7 100644 --- a/models/resource_queue.go +++ b/models/resource_queue.go @@ -313,9 +313,6 @@ func SyncGrampusQueues(updateList []ResourceQueue, insertList []ResourceQueue, e if _, err = sess.In("id", deleteSpcIds).Update(&ResourceSpecification{Status: SpecOffShelf}); err != nil { return err } - if _, err = sess.In("spec_id", deleteSpcIds).Delete(&ResourceSceneSpec{}); err != nil { - return err - } } } diff --git a/models/resource_specification.go b/models/resource_specification.go index 2da8d015d..a6f5f1f82 100644 --- a/models/resource_specification.go +++ b/models/resource_specification.go @@ -168,6 +168,7 @@ type FindSpecsOptions struct { UseShareMemGiB bool //if true,find specs no matter used or not used in scene. if false,only find specs used in scene RequestAll bool + SpecStatus int } type Specification struct { @@ -269,10 +270,6 @@ func ResourceSpecOffShelf(id int64) (int64, error) { } sess.Close() }() - //delete scene spec relation - if _, err = sess.Where("spec_id = ?", id).Delete(&ResourceSceneSpec{}); err != nil { - return 0, err - } param := ResourceSpecification{ Status: SpecOffShelf, @@ -317,9 +314,6 @@ func SyncGrampusSpecs(updateList []ResourceSpecification, insertList []ResourceS if _, err = sess.Cols("status", "is_available").In("id", deleteIds).Update(&ResourceSpecification{Status: SpecOffShelf, IsAvailable: false}); err != nil { return err } - if _, err = sess.In("spec_id", deleteIds).Delete(&ResourceSceneSpec{}); err != nil { - return err - } } //update exists specs @@ -384,6 +378,9 @@ func FindSpecs(opts FindSpecsOptions) ([]*Specification, error) { if opts.UseShareMemGiB { cond = cond.And(builder.Eq{"resource_specification.share_mem_gi_b": opts.ShareMemGiB}) } + if opts.SpecStatus > 0 { + cond = cond.And(builder.Eq{"resource_specification.status": opts.SpecStatus}) + } r := make([]*Specification, 0) s := x.Where(cond). Join("INNER", "resource_queue", "resource_queue.id = resource_specification.queue_id") diff --git a/services/cloudbrain/resource/resource_specification.go b/services/cloudbrain/resource/resource_specification.go index b68abbb88..9388a1efb 100644 --- a/services/cloudbrain/resource/resource_specification.go +++ b/services/cloudbrain/resource/resource_specification.go @@ -197,6 +197,7 @@ func AddSpecOperateLog(doerId int64, operateType string, newValue, oldValue *mod } func FindAvailableSpecs(userId int64, opts models.FindSpecsOptions) ([]*models.Specification, error) { + opts.SpecStatus = models.SpecOnShelf r, err := models.FindSpecs(opts) if err != nil { log.Error("FindAvailableSpecs error.%v", err) From 44e19cd8ef7b0ab0b3ae144abdb0fbf64e224e35 Mon Sep 17 00:00:00 2001 From: chenshihai Date: Fri, 4 Nov 2022 09:41:14 +0800 Subject: [PATCH 2/8] =?UTF-8?q?#3045=20=E7=AE=97=E5=8A=9B=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E7=AE=A1=E7=90=86=E6=94=AF=E6=8C=81=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E7=9F=AD=E6=9C=9F=E5=9B=9E=E6=94=B6=E7=9A=84=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web_src/vuepages/pages/resources/components/SceneDialog.vue | 10 ++++++---- web_src/vuepages/pages/resources/scene/index.vue | 9 +++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/web_src/vuepages/pages/resources/components/SceneDialog.vue b/web_src/vuepages/pages/resources/components/SceneDialog.vue index 3b77be6e2..cadfb1db1 100644 --- a/web_src/vuepages/pages/resources/components/SceneDialog.vue +++ b/web_src/vuepages/pages/resources/components/SceneDialog.vue @@ -69,7 +69,9 @@
- + + +
@@ -167,7 +169,7 @@ export default { const params = { cluster: this.dataInfo.Cluster, queue: this.dataInfo.QueueId === '-1' ? '' : this.dataInfo.QueueId, - status: 2, + // status: 2, page: 1, }; return getResSpecificationList(params).then(res => { @@ -177,11 +179,11 @@ export default { const data = list.map((item) => { const Queue = item.Queue; const Spec = item.Spec; - // const NGPU = `${Queue.ComputeResource}:${Spec.AccCardsNum === 0 ? '0' : Spec.AccCardsNum + '*' + getListValueWithKey(this.accCardTypeList, Queue.AccCardType)}`; const NGPU = `${Queue.ComputeResource}:${Spec.AccCardsNum + '*' + getListValueWithKey(this.accCardTypeList, Queue.AccCardType)}`; + const statusStr = Spec.Status != '2' ? `(${getListValueWithKey(this.statusList, Spec.Status.toString())})` : ''; return { k: Spec.ID, - v: `${NGPU}, CPU:${Spec.CpuCores}, ${this.$t('resourcesManagement.gpuMem')}:${Spec.GPUMemGiB}GB, ${this.$t('resourcesManagement.mem')}:${Spec.MemGiB}GB, ${this.$t('resourcesManagement.shareMem')}:${Spec.ShareMemGiB}GB, ${this.$t('resourcesManagement.unitPrice')}:${Spec.UnitPrice}${this.$t('resourcesManagement.point_hr')}`, + v: `${NGPU}, CPU:${Spec.CpuCores}, ${this.$t('resourcesManagement.gpuMem')}:${Spec.GPUMemGiB}GB, ${this.$t('resourcesManagement.mem')}:${Spec.MemGiB}GB, ${this.$t('resourcesManagement.shareMem')}:${Spec.ShareMemGiB}GB, ${this.$t('resourcesManagement.unitPrice')}:${Spec.UnitPrice}${this.$t('resourcesManagement.point_hr')}${statusStr}`, } }); this.specsList.splice(0, Infinity, ...data); diff --git a/web_src/vuepages/pages/resources/scene/index.vue b/web_src/vuepages/pages/resources/scene/index.vue index 30c53b742..a706b358b 100644 --- a/web_src/vuepages/pages/resources/scene/index.vue +++ b/web_src/vuepages/pages/resources/scene/index.vue @@ -64,7 +64,7 @@ header-align="center" min-width="180"> @@ -100,7 +100,7 @@