|
|
@@ -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") |
|
|
|