From 180f17c61979a7a3527fbfb73c0b118f7e7e788e Mon Sep 17 00:00:00 2001 From: Sydonian <794346190@qq.com> Date: Thu, 7 Sep 2023 11:36:59 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=8A=E4=BC=A0Package?= =?UTF-8?q?=E6=97=B6=E8=AE=BE=E7=BD=AE=E8=8A=82=E7=82=B9=E4=BA=B2=E5=92=8C?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/storage/package.go | 11 ++++++----- api/storage/storage_test.go | 14 ++++++++------ 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/api/storage/package.go b/api/storage/package.go index c07f32d..952949e 100644 --- a/api/storage/package.go +++ b/api/storage/package.go @@ -14,11 +14,12 @@ import ( ) type PackageUploadReq struct { - UserID int64 `json:"userID"` - BucketID int64 `json:"bucketID"` - Name string `json:"name"` - Redundancy models.TypedRedundancyInfo `json:"redundancy"` - Files PackageUploadFileIterator `json:"-"` + UserID int64 `json:"userID"` + BucketID int64 `json:"bucketID"` + Name string `json:"name"` + Redundancy models.TypedRedundancyInfo `json:"redundancy"` + NodeAffinity *int64 `json:"nodeAffinity"` + Files PackageUploadFileIterator `json:"-"` } type IterPackageUploadFile struct { diff --git a/api/storage/storage_test.go b/api/storage/storage_test.go index 53c352f..910a0d8 100644 --- a/api/storage/storage_test.go +++ b/api/storage/storage_test.go @@ -23,7 +23,8 @@ func Test_Object(t *testing.T) { fileData[i] = byte(i) } - _, err := cli.PackageUpload(PackageUploadReq{ + nodeAff := int64(2) + upResp, err := cli.PackageUpload(PackageUploadReq{ UserID: 0, BucketID: 1, Name: uuid.NewString(), @@ -31,6 +32,7 @@ func Test_Object(t *testing.T) { Type: models.RedundancyRep, Info: models.NewRepRedundancyInfo(1), }, + NodeAffinity: &nodeAff, Files: iterator.Array( &IterPackageUploadFile{ Path: "test", @@ -55,11 +57,11 @@ func Test_Object(t *testing.T) { // So(downFileData, ShouldResemble, fileData) // downFs.Close() - //err = cli.PackageDelete(PackageDeleteReq{ - // UserID: 0, - // PackageID: upResp.PackageID, - //}) - //So(err, ShouldBeNil) + err = cli.PackageDelete(PackageDeleteReq{ + UserID: 0, + PackageID: upResp.PackageID, + }) + So(err, ShouldBeNil) }) } From 468e1886ecacfe108677b9c06e20d74c34ad9b55 Mon Sep 17 00:00:00 2001 From: Sydonian <794346190@qq.com> Date: Thu, 7 Sep 2023 16:02:23 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E9=9B=86=EF=BC=8C=E4=B8=8A=E4=BC=A0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E9=9B=86=E6=96=87=E4=BB=B6=E7=9A=84=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/scheduler/jobset.go | 10 +++++---- api/scheduler/scheduler_test.go | 2 +- models/{job.go => scheduler.go} | 40 +++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 5 deletions(-) rename models/{job.go => scheduler.go} (73%) diff --git a/api/scheduler/jobset.go b/api/scheduler/jobset.go index 50d5a0a..b7190d9 100644 --- a/api/scheduler/jobset.go +++ b/api/scheduler/jobset.go @@ -16,7 +16,8 @@ type JobSetSumbitReq struct { } type JobSetSumbitResp struct { - JobSetID string `json:"jobSetID"` + JobSetID string `json:"jobSetID"` + FilesUploadScheme models.JobSetFilesUploadScheme `json:"filesUploadScheme"` } func (c *Client) JobSetSumbit(req JobSetSumbitReq) (*JobSetSumbitResp, error) { @@ -49,14 +50,15 @@ func (c *Client) JobSetSumbit(req JobSetSumbitReq) (*JobSetSumbitResp, error) { return nil, fmt.Errorf("unknow response content type: %s", contType) } -type JobSetSetLocalFileReq struct { +type JobSetLocalFileUploadedReq struct { JobSetID string `json:"jobSetID"` LocalPath string `json:"localPath"` + Error string `json:"error"` PackageID int64 `json:"packageID"` } -func (c *Client) JobSetSetLocalFile(req JobSetSetLocalFileReq) error { - url, err := url.JoinPath(c.baseURL, "/jobSet/setLocalFile") +func (c *Client) JobSetLocalFileUploaded(req JobSetLocalFileUploadedReq) error { + url, err := url.JoinPath(c.baseURL, "/jobSet/localFileUploaded") if err != nil { return err } diff --git a/api/scheduler/scheduler_test.go b/api/scheduler/scheduler_test.go index b3ddb5d..e7a4502 100644 --- a/api/scheduler/scheduler_test.go +++ b/api/scheduler/scheduler_test.go @@ -40,7 +40,7 @@ func Test_JobSet(t *testing.T) { So(err, ShouldBeNil) So(id.JobSetID, ShouldNotBeEmpty) - err = cli.JobSetSetLocalFile(JobSetSetLocalFileReq{ + err = cli.JobSetLocalFileUploaded(JobSetLocalFileUploadedReq{ JobSetID: id.JobSetID, LocalPath: "code", PackageID: 1, diff --git a/models/job.go b/models/scheduler.go similarity index 73% rename from models/job.go rename to models/scheduler.go index 94c0ca2..e9ae1da 100644 --- a/models/job.go +++ b/models/scheduler.go @@ -116,3 +116,43 @@ func JobSetInfoFromJSON(data []byte) (*JobSetInfo, error) { return &ret, nil } + +const ( + FileScheduleActionNo = "No" + FileScheduleActionMove = "Move" + FileScheduleActionLoad = "Load" +) + +type FileScheduleScheme struct { + Action string `json:"action"` + TargetStorageID int64 `json:"targetStorageID"` +} + +const ( + ImageScheduleActionNo = "No" + ImageScheduleActionImport = "Import" +) + +type ImageScheduleScheme struct { + Action string `json:"action"` +} + +type JobScheduleScheme struct { + TargetSlwNodeID int64 `json:"targetSlwNodeID"` + Dataset FileScheduleScheme `json:"dataset"` + Code FileScheduleScheme `json:"code"` + Image ImageScheduleScheme `json:"image"` +} + +type JobSetPreScheduleScheme struct { + JobSchemes map[string]JobScheduleScheme `json:"jobSchemes"` // 任务的预调度方案。Key为LocalJobIDs +} + +type JobSetFilesUploadScheme struct { + LocalFileSchemes []LocalFileUploadScheme `json:"localFileUploadSchemes"` +} + +type LocalFileUploadScheme struct { + LocalPath string `json:"localPath"` + UploadToStgNodeID *int64 `json:"uploadToStgNodeID"` +}