This is an automated email from the ASF dual-hosted git repository.

jshao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new 31b4e9d42 [#5210] fix(core): Fix the audit info of metalake (#5211)
31b4e9d42 is described below

commit 31b4e9d42716ee864c0f264d7057d566e9335724
Author: roryqi <[email protected]>
AuthorDate: Tue Oct 22 13:48:39 2024 +0800

    [#5210] fix(core): Fix the audit info of metalake (#5211)
    
    ### What changes were proposed in this pull request?
    
     Fix the audit info of metalake.
    
    ### Why are the changes needed?
    
    Fix: #5210
    
    ### Does this PR introduce _any_ user-facing change?
    Audit info changed.
    
    ### How was this patch tested?
    
    Add a UT.
---
 .../java/org/apache/gravitino/metalake/MetalakeManager.java |  3 +--
 .../org/apache/gravitino/metalake/TestMetalakeManager.java  | 13 ++++++++++++-
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git 
a/core/src/main/java/org/apache/gravitino/metalake/MetalakeManager.java 
b/core/src/main/java/org/apache/gravitino/metalake/MetalakeManager.java
index 33498665a..b8c9f77f1 100644
--- a/core/src/main/java/org/apache/gravitino/metalake/MetalakeManager.java
+++ b/core/src/main/java/org/apache/gravitino/metalake/MetalakeManager.java
@@ -217,7 +217,6 @@ public class MetalakeManager implements MetalakeDispatcher {
           EntityType.METALAKE,
           metalake -> {
             BaseMetalake.Builder builder = newMetalakeBuilder(metalake);
-
             Map<String, String> newProps =
                 metalake.properties() == null
                     ? Maps.newHashMap()
@@ -335,7 +334,7 @@ public class MetalakeManager implements MetalakeDispatcher {
         AuditInfo.builder()
             .withCreator(metalake.auditInfo().creator())
             .withCreateTime(metalake.auditInfo().createTime())
-            .withLastModifier(metalake.auditInfo().creator()) /*TODO: Use real 
user later on.  */
+            .withLastModifier(PrincipalUtils.getCurrentUserName())
             .withLastModifiedTime(Instant.now())
             .build();
     return builder.withAuditInfo(newInfo);
diff --git 
a/core/src/test/java/org/apache/gravitino/metalake/TestMetalakeManager.java 
b/core/src/test/java/org/apache/gravitino/metalake/TestMetalakeManager.java
index 3b0f796e9..d21db2ce5 100644
--- a/core/src/test/java/org/apache/gravitino/metalake/TestMetalakeManager.java
+++ b/core/src/test/java/org/apache/gravitino/metalake/TestMetalakeManager.java
@@ -28,11 +28,14 @@ import org.apache.gravitino.EntityStore;
 import org.apache.gravitino.MetalakeChange;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.StringIdentifier;
+import org.apache.gravitino.UserPrincipal;
+import org.apache.gravitino.auth.AuthConstants;
 import org.apache.gravitino.exceptions.MetalakeAlreadyExistsException;
 import org.apache.gravitino.exceptions.NoSuchMetalakeException;
 import org.apache.gravitino.meta.BaseMetalake;
 import org.apache.gravitino.storage.RandomIdGenerator;
 import org.apache.gravitino.storage.memory.TestMemoryEntityStore;
+import org.apache.gravitino.utils.PrincipalUtils;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
@@ -119,7 +122,7 @@ public class TestMetalakeManager {
   }
 
   @Test
-  public void testAlterMetalake() {
+  public void testAlterMetalake() throws Exception {
     NameIdentifier ident = NameIdentifier.of("test31");
     Map<String, String> props = ImmutableMap.of("key1", "value1");
 
@@ -161,6 +164,14 @@ public class TestMetalakeManager {
         Assertions.assertThrows(
             NoSuchMetalakeException.class, () -> 
metalakeManager.alterMetalake(id, change));
     Assertions.assertTrue(exception.getMessage().contains("Metalake test3 does 
not exist"));
+
+    // Test the audit info
+    UserPrincipal userPrincipal = new UserPrincipal("test");
+    MetalakeChange change5 = MetalakeChange.setProperty("key5", "value5");
+    alteredMetalake =
+        PrincipalUtils.doAs(userPrincipal, () -> 
metalakeManager.alterMetalake(ident1, change5));
+    Assertions.assertEquals(userPrincipal.getName(), 
alteredMetalake.auditInfo().lastModifier());
+    Assertions.assertEquals(AuthConstants.ANONYMOUS_USER, 
alteredMetalake.auditInfo().creator());
   }
 
   @Test

Reply via email to