Skip to content

Commit 5e782c0

Browse files
committed
Implementing updaterun
1 parent 92e2bb0 commit 5e782c0

File tree

4 files changed

+64
-225
lines changed

4 files changed

+64
-225
lines changed

src/MLFlowClient.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ export getexperiment, createexperiment, deleteexperiment, setexperimenttag,
4545
updateexperiment, restoreexperiment, searchexperiments, getexperimentbyname
4646

4747
include("services/run.jl")
48-
export getrun, createrun, deleterun, setruntag, restorerun, searchruns, deleteruntag
48+
export getrun, createrun, deleterun, setruntag, updaterun, restorerun, searchruns,
49+
deleteruntag
4950

5051
include("services/loggers.jl")
5152
export logbatch, loginputs, logmetric, logparam

src/services/run.jl

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,3 +184,33 @@ function searchruns(instance::MLFlow; experiment_ids::Array{String}=String[],
184184

185185
return runs, next_page_token
186186
end
187+
188+
"""
189+
updaterun(instance::MLFlow, run_id::String; status::Union{RunStatus, Missing}=missing,
190+
end_time::Union{Int64, Missing}=missing, run_name::Union{String, Missing}=missing)
191+
updaterun(instance::MLFlow, run::Run; status::Union{RunStatus, Missing}=missing,
192+
end_time::Union{Int64, Missing}=missing, run_name::Union{String, Missing}=missing)
193+
194+
Update run metadata.
195+
196+
# Arguments
197+
- `instance`: [`MLFlow`](@ref) configuration.
198+
- `run_id`: ID of the run to update.
199+
- `status`: Updated status of the run.
200+
- `end_time`: Unix timestamp in milliseconds of when the run ended.
201+
- `run_name`: Updated name of the run.
202+
203+
# Returns
204+
- An instance of type [`RunInfo`](@ref) with the updated metadata.
205+
"""
206+
function updaterun(instance::MLFlow, run_id::String;
207+
status::Union{RunStatus, Missing}=missing, end_time::Union{Int64, Missing}=missing,
208+
run_name::Union{String, Missing})::RunInfo
209+
result = mlfpost(instance, "runs/update"; run_id=run_id, status=(status |> Integer),
210+
end_time=end_time, run_name=run_name)
211+
return result["run_info"] |> RunInfo
212+
end
213+
updaterun(instance::MLFlow, run::Run; status::Union{RunStatus, Missing}=missing,
214+
end_time::Union{Int64, Missing}=missing, run_name::Union{String, Missing})::RunInfo =
215+
updaterun(instance, run.info.run_id; status=status, end_time=end_time,
216+
run_name=run_name)

test/services/run.jl

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,3 +185,35 @@ end
185185

186186
experiment_ids .|> (id -> deleteexperiment(mlf, id))
187187
end
188+
189+
@testset verbose = true "update run" begin
190+
@ensuremlf
191+
experiment_id = createexperiment(mlf, UUIDs.uuid4() |> string)
192+
run = createrun(mlf, experiment_id)
193+
194+
@testset "update with string id" begin
195+
status = MLFlowClient.FINISHED
196+
end_time = 123
197+
run_name = "missy"
198+
199+
run_info = updaterun(mlf, run.info.run_id; status=status, end_time=end_time, run_name=run_name)
200+
201+
@test run_info.status == status
202+
@test run_info.end_time == end_time
203+
@test run_info.run_name == run_name
204+
end
205+
206+
@testset "update with Run" begin
207+
status = MLFlowClient.FAILED
208+
end_time = 456
209+
run_name = "gala"
210+
211+
run_info = updaterun(mlf, run.info.run_id; status=status, end_time=end_time, run_name=run_name)
212+
213+
@test run_info.status == status
214+
@test run_info.end_time == end_time
215+
@test run_info.run_name == run_name
216+
end
217+
218+
deleteexperiment(mlf, experiment_id)
219+
end

test/test_loggers.jl

Lines changed: 0 additions & 224 deletions
This file was deleted.

0 commit comments

Comments
 (0)