This is an automated email from the ASF dual-hosted git repository.
jerryshao pushed a commit to branch branch-1.3
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/branch-1.3 by this push:
new 36d654a72d [Cherry-pick to branch-1.3] [#13041] fix(server): Add
@ResponseMetered to JobOperations#cancelJob (#13046) (#13070)
36d654a72d is described below
commit 36d654a72d0cc37fece26b62fad6706286f3f693
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Sep 10 17:25:36 2026 +0800
[Cherry-pick to branch-1.3] [#13041] fix(server): Add @ResponseMetered to
JobOperations#cancelJob (#13046) (#13070)
**Cherry-pick Information:**
- Original commit: 2fc06930165a657dd8f5a49fa811cffdafed153e
- Target branch: `branch-1.3`
- Status: ✅ **Conflicts resolved**
Conflicts in `TestJobOperations.java` were resolved by keeping only
`testCancelJobIsResponseMetered` from the original commit. The other
tests in the conflict block depend on features that are not in
`branch-1.3`.
---------
Co-authored-by: Abdullah <[email protected]>
Co-authored-by: Jerry Shao <[email protected]>
Co-authored-by: Claude Opus 5 <[email protected]>
---
.../apache/gravitino/server/web/rest/JobOperations.java | 1 +
.../gravitino/server/web/rest/TestJobOperations.java | 17 +++++++++++++++++
2 files changed, 18 insertions(+)
diff --git
a/server/src/main/java/org/apache/gravitino/server/web/rest/JobOperations.java
b/server/src/main/java/org/apache/gravitino/server/web/rest/JobOperations.java
index 3f662b9ce3..6545a3c558 100644
---
a/server/src/main/java/org/apache/gravitino/server/web/rest/JobOperations.java
+++
b/server/src/main/java/org/apache/gravitino/server/web/rest/JobOperations.java
@@ -403,6 +403,7 @@ public class JobOperations {
@Path("runs/{jobId}")
@Produces("application/vnd.gravitino.v1+json")
@Timed(name = "cancel-job." + MetricNames.HTTP_PROCESS_DURATION, absolute =
true)
+ @ResponseMetered(name = "cancel-job", absolute = true)
@AuthorizationExpression(expression = "METALAKE::OWNER || JOB::OWNER")
public Response cancelJob(
@PathParam("metalake") @AuthorizationMetadata(type =
Entity.EntityType.METALAKE)
diff --git
a/server/src/test/java/org/apache/gravitino/server/web/rest/TestJobOperations.java
b/server/src/test/java/org/apache/gravitino/server/web/rest/TestJobOperations.java
index 70d7e7b404..da79ca5bb7 100644
---
a/server/src/test/java/org/apache/gravitino/server/web/rest/TestJobOperations.java
+++
b/server/src/test/java/org/apache/gravitino/server/web/rest/TestJobOperations.java
@@ -28,9 +28,12 @@ import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import com.codahale.metrics.annotation.ResponseMetered;
+import com.codahale.metrics.annotation.Timed;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import java.io.IOException;
+import java.lang.reflect.Method;
import java.time.Instant;
import java.util.Map;
import java.util.Optional;
@@ -858,6 +861,20 @@ public class TestJobOperations extends JerseyTest {
Assertions.assertEquals(NoSuchJobException.class.getSimpleName(),
errorResp.getType());
}
+ @Test
+ public void testCancelJobIsResponseMetered() throws Exception {
+ Method cancelJob = JobOperations.class.getMethod("cancelJob",
String.class, String.class);
+ ResponseMetered metered = cancelJob.getAnnotation(ResponseMetered.class);
+ Assertions.assertNotNull(metered);
+ Assertions.assertEquals("cancel-job", metered.name());
+ Assertions.assertTrue(metered.absolute());
+
+ Timed timed = cancelJob.getAnnotation(Timed.class);
+ Assertions.assertNotNull(timed);
+ Assertions.assertTrue(timed.name().startsWith("cancel-job."));
+ Assertions.assertTrue(timed.absolute());
+ }
+
private String jobTemplatePath() {
return "/metalakes/" + metalake + "/jobs/templates";
}