From fbba1532dd9290867abba48ee4907e467b976300 Mon Sep 17 00:00:00 2001 From: Anwar Hidayat <15167551+irainia@users.noreply.github.com> Date: Tue, 12 Sep 2023 14:41:07 +0700 Subject: [PATCH] feat: optimus window preset (#47) * feat(optimus): add preset under project * feat: add preset to job spec * feat: add get interval api to replace get window * fix: move get interval from job spec to job run * refactor: mark get window deprecated * fix: update get interval url to use resourceful url * feat: add downstream information when getting job run --------- Co-authored-by: Sandeep Bhardwaj --- .../optimus/core/v1beta1/job_run.proto | 20 +++++++++++++++++++ .../optimus/core/v1beta1/job_spec.proto | 4 ++++ .../optimus/core/v1beta1/project.proto | 15 +++++++++----- 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/gotocompany/optimus/core/v1beta1/job_run.proto b/gotocompany/optimus/core/v1beta1/job_run.proto index f1705493..fa27d54c 100644 --- a/gotocompany/optimus/core/v1beta1/job_run.proto +++ b/gotocompany/optimus/core/v1beta1/job_run.proto @@ -54,6 +54,24 @@ service JobRunService { body: "*" }; } + + // GetInterval gets interval on specific job given reference time. + rpc GetInterval(GetIntervalRequest) returns (GetIntervalResponse) { + option (google.api.http) = { + get: "/v1beta1/project/{project_name}/job/{job_name}/interval" + }; + } +} + +message GetIntervalRequest { + google.protobuf.Timestamp reference_time = 1; + string project_name = 2; + string job_name = 3; +} + +message GetIntervalResponse { + google.protobuf.Timestamp start_time = 1; + google.protobuf.Timestamp end_time = 2; } message UploadToSchedulerRequest { @@ -99,6 +117,8 @@ message JobRunRequest { google.protobuf.Timestamp start_date = 3; google.protobuf.Timestamp end_date = 4; repeated string filter = 5; + string downstream_project_name = 6; + string downstream_job_name = 7; } message JobRunResponse { diff --git a/gotocompany/optimus/core/v1beta1/job_spec.proto b/gotocompany/optimus/core/v1beta1/job_spec.proto index 2423502a..e4d3086f 100644 --- a/gotocompany/optimus/core/v1beta1/job_spec.proto +++ b/gotocompany/optimus/core/v1beta1/job_spec.proto @@ -132,6 +132,7 @@ service JobSpecificationService { // GetWindow provides the start and end dates provided a scheduled date // of the execution window rpc GetWindow(GetWindowRequest) returns (GetWindowResponse) { + option deprecated = true; option (google.api.http) = { get: "/v1beta1/window" }; @@ -331,6 +332,7 @@ message JobSpecification { string window_size = 11; string window_offset = 12; string window_truncate_to = 13; + string window_preset = 23; repeated JobDependency dependencies = 14; // static dependencies map assets = 15; @@ -523,6 +525,7 @@ message JobTask { } message GetWindowRequest { + option deprecated = true; google.protobuf.Timestamp scheduled_at = 1; string size = 2; string offset = 3; @@ -531,6 +534,7 @@ message GetWindowRequest { } message GetWindowResponse { + option deprecated = true; google.protobuf.Timestamp start = 1; google.protobuf.Timestamp end = 2; } diff --git a/gotocompany/optimus/core/v1beta1/project.proto b/gotocompany/optimus/core/v1beta1/project.proto index ef40f574..81975fd8 100644 --- a/gotocompany/optimus/core/v1beta1/project.proto +++ b/gotocompany/optimus/core/v1beta1/project.proto @@ -50,8 +50,7 @@ message RegisterProjectRequest { } message RegisterProjectResponse { - bool success = 1; - string message = 2; + reserved 1, 2; } message ListProjectsRequest {} @@ -69,12 +68,18 @@ message GetProjectResponse { } message ProjectSpecification { + reserved 3; + string name = 1; map config = 2; - message ProjectSecret { + message ProjectPreset { string name = 1; - string value = 2; + string description = 2; + + string truncate_to = 3; + string offset = 4; + string size = 5; } - repeated ProjectSecret secrets = 3; + map presets = 4; }