diff --git a/pkgs/db/db.go b/pkgs/db/db.go new file mode 100644 index 0000000..d73f001 --- /dev/null +++ b/pkgs/db/db.go @@ -0,0 +1,39 @@ +package db + +import ( + "database/sql/driver" + "encoding/binary" + "fmt" + "reflect" + "strconv" +) + +type IntString string + +func (j IntString) Value() (driver.Value, error) { + return strconv.ParseInt(string(j), 10, 64) +} + +func (j *IntString) Scan(src interface{}) error { + if src == nil { + return fmt.Errorf("cannot convert nil to string") + } + + bs, ok := src.([]byte) + if !ok { + return fmt.Errorf("cannot convert %s to string", reflect.TypeOf(src).String()) + } + + var v int64 + if len(bs) == 8 { + v = int64(binary.LittleEndian.Uint64(bs)) + } else if len(bs) == 4 { + v = int64(binary.LittleEndian.Uint32(bs)) + } else { + return fmt.Errorf("invalid bytes array length %d", len(bs)) + } + + *j = IntString(fmt.Sprintf("%d", v)) + + return nil +} diff --git a/sdks/pcm/models.go b/sdks/pcm/models.go index 885de9f..0b6acb3 100644 --- a/sdks/pcm/models.go +++ b/sdks/pcm/models.go @@ -33,6 +33,6 @@ type TaskStatus string const ( TaskStatusPending TaskStatus = "Pending" TaskStatusRunning TaskStatus = "Running" - TaskStatusSuccess TaskStatus = "Success" - TaskStatuFailed TaskStatus = "Failed" + TaskStatusSuccess TaskStatus = "succeeded" + TaskStatuFailed TaskStatus = "failed" ) diff --git a/sdks/scheduler/models.go b/sdks/scheduler/models.go index f5bcbb4..65259ba 100644 --- a/sdks/scheduler/models.go +++ b/sdks/scheduler/models.go @@ -21,10 +21,10 @@ type JobID string type JobSetID string -type ImageID string +type ImageID int64 // 计算中心ID -type CCID string +type CCID int64 type JobSetInfo struct { Jobs []JobInfo `json:"jobs"`