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 33498665a2d..b8c9f77f18c 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 BaseMetalake alterMetalake(NameIdentifier ident, MetalakeChange... change EntityType.METALAKE, metalake -> { BaseMetalake.Builder builder = newMetalakeBuilder(metalake); - Map newProps = metalake.properties() == null ? Maps.newHashMap() @@ -335,7 +334,7 @@ private BaseMetalake.Builder newMetalakeBuilder(BaseMetalake metalake) { 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 3b0f796e979..d21db2ce5ca 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.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 void testLoadMetalake() { } @Test - public void testAlterMetalake() { + public void testAlterMetalake() throws Exception { NameIdentifier ident = NameIdentifier.of("test31"); Map props = ImmutableMap.of("key1", "value1"); @@ -161,6 +164,14 @@ public void testAlterMetalake() { 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