From efe272d7d674773aee9db572a40556e3fc1abf2f Mon Sep 17 00:00:00 2001 From: FANNG Date: Thu, 21 Nov 2024 20:17:22 +0800 Subject: [PATCH] [#5556] feat(iceberg) support audit framework for Iceberg REST server (#5580) ### What changes were proposed in this pull request? 1. expand `BaseEvent` to represent general event information, like `OperationType` `OperationStatus`, etc. 2. add `SimpleFormatterV2` to convert all `Event` (include GravitinoServerEvent and Iceberg REST Event) to an audit object ### Why are the changes needed? Fix: #5556 ### Does this PR introduce _any_ user-facing change? For Gravitino server: 1. If user use default audit configuration, will add `remoteAddr` and `eventSource` to the audit log 2. If user use custom audit writer or formatter, there is no affect. For Gravitino Iceberg REST server: new feature, add configuration. ### How was this patch tested? add `gravitino.audit.enabled = true`, check audit log content in Gravitino server and Gravitino IcebergRESTServer. --- .../java/org/apache/gravitino/Configs.java | 4 +- .../org/apache/gravitino/audit/AuditLog.java | 62 +++++++++- .../gravitino/audit/SimpleAuditLog.java | 8 +- .../gravitino/audit/SimpleFormatter.java | 8 +- .../audit/v2/CompatibilityUtils.java | 100 ++++++++++++++++ .../gravitino/audit/v2/SimpleAuditLogV2.java | 108 ++++++++++++++++++ .../gravitino/audit/v2/SimpleFormatterV2.java | 32 ++++++ .../listener/api/event/AddPartitionEvent.java | 10 ++ .../api/event/AddPartitionFailureEvent.java | 10 ++ .../listener/api/event/AlterCatalogEvent.java | 10 ++ .../api/event/AlterCatalogFailureEvent.java | 10 ++ .../api/event/AlterCatalogPreEvent.java | 10 ++ .../listener/api/event/AlterFilesetEvent.java | 10 ++ .../api/event/AlterFilesetFailureEvent.java | 10 ++ .../api/event/AlterMetalakeEvent.java | 10 ++ .../api/event/AlterMetalakeFailureEvent.java | 10 ++ .../api/event/AlterMetalakePreEvent.java | 12 +- .../listener/api/event/AlterSchemaEvent.java | 10 ++ .../api/event/AlterSchemaFailureEvent.java | 10 ++ .../api/event/AlterSchemaPreEvent.java | 10 ++ .../listener/api/event/AlterTableEvent.java | 10 ++ .../api/event/AlterTableFailureEvent.java | 10 ++ .../api/event/AlterTablePreEvent.java | 10 ++ .../listener/api/event/AlterTopicEvent.java | 10 ++ .../api/event/AlterTopicFailureEvent.java | 10 ++ .../api/event/AlterTopicPreEvent.java | 10 ++ .../listener/api/event/BaseEvent.java | 52 +++++++++ .../listener/api/event/CatalogEvent.java | 5 + .../api/event/CreateCatalogEvent.java | 10 ++ .../api/event/CreateCatalogFailureEvent.java | 10 ++ .../api/event/CreateCatalogPreEvent.java | 10 ++ .../api/event/CreateFilesetEvent.java | 10 ++ .../api/event/CreateFilesetFailureEvent.java | 10 ++ .../api/event/CreateMetalakeEvent.java | 10 ++ .../api/event/CreateMetalakeFailureEvent.java | 10 ++ .../api/event/CreateMetalakePreEvent.java | 10 ++ .../listener/api/event/CreateSchemaEvent.java | 10 ++ .../api/event/CreateSchemaFailureEvent.java | 10 ++ .../api/event/CreateSchemaPreEvent.java | 10 ++ .../listener/api/event/CreateTableEvent.java | 10 ++ .../api/event/CreateTableFailureEvent.java | 10 ++ .../api/event/CreateTablePreEvent.java | 4 + .../listener/api/event/CreateTopicEvent.java | 10 ++ .../api/event/CreateTopicFailureEvent.java | 10 ++ .../api/event/CreateTopicPreEvent.java | 10 ++ .../listener/api/event/DropCatalogEvent.java | 10 ++ .../api/event/DropCatalogFailureEvent.java | 10 ++ .../api/event/DropCatalogPreEvent.java | 10 ++ .../listener/api/event/DropFilesetEvent.java | 10 ++ .../api/event/DropFilesetFailureEvent.java | 10 ++ .../listener/api/event/DropMetalakeEvent.java | 10 ++ .../api/event/DropMetalakeFailureEvent.java | 10 ++ .../api/event/DropMetalakePreEvent.java | 10 ++ .../api/event/DropPartitionEvent.java | 10 ++ .../api/event/DropPartitionFailureEvent.java | 10 ++ .../listener/api/event/DropSchemaEvent.java | 10 ++ .../api/event/DropSchemaFailureEvent.java | 10 ++ .../api/event/DropSchemaPreEvent.java | 10 ++ .../listener/api/event/DropTableEvent.java | 10 ++ .../api/event/DropTableFailureEvent.java | 10 ++ .../listener/api/event/DropTablePreEvent.java | 10 ++ .../listener/api/event/DropTopicEvent.java | 10 ++ .../api/event/DropTopicFailureEvent.java | 10 ++ .../listener/api/event/DropTopicPreEvent.java | 10 ++ .../listener/api/event/EventSource.java | 25 ++++ .../listener/api/event/FailureEvent.java | 5 + .../listener/api/event/FilesetEvent.java | 5 + .../api/event/GetFileLocationEvent.java | 10 ++ .../event/GetFileLocationFailureEvent.java | 10 ++ .../listener/api/event/GetPartitionEvent.java | 10 ++ .../api/event/GetPartitionFailureEvent.java | 10 ++ .../listener/api/event/ListCatalogEvent.java | 10 ++ .../api/event/ListCatalogFailureEvent.java | 10 ++ .../api/event/ListCatalogPreEvent.java | 10 ++ .../listener/api/event/ListFilesetEvent.java | 10 ++ .../api/event/ListFilesetFailureEvent.java | 10 ++ .../listener/api/event/ListMetalakeEvent.java | 10 ++ .../api/event/ListMetalakeFailureEvent.java | 10 ++ .../api/event/ListMetalakePreEvent.java | 10 ++ .../api/event/ListPartitionEvent.java | 10 ++ .../api/event/ListPartitionFailureEvent.java | 10 ++ .../api/event/ListPartitionNamesEvent.java | 10 ++ .../event/ListPartitionNamesFailureEvent.java | 10 ++ .../listener/api/event/ListSchemaEvent.java | 10 ++ .../api/event/ListSchemaFailureEvent.java | 10 ++ .../api/event/ListSchemaPreEvent.java | 10 ++ .../listener/api/event/ListTableEvent.java | 10 ++ .../api/event/ListTableFailureEvent.java | 10 ++ .../listener/api/event/ListTablePreEvent.java | 10 ++ .../listener/api/event/ListTopicEvent.java | 10 ++ .../api/event/ListTopicFailureEvent.java | 10 ++ .../listener/api/event/ListTopicPreEvent.java | 10 ++ .../listener/api/event/LoadCatalogEvent.java | 10 ++ .../api/event/LoadCatalogFailureEvent.java | 10 ++ .../api/event/LoadCatalogPreEvent.java | 10 ++ .../listener/api/event/LoadFilesetEvent.java | 10 ++ .../api/event/LoadFilesetFailureEvent.java | 10 ++ .../listener/api/event/LoadMetalakeEvent.java | 10 ++ .../api/event/LoadMetalakeFailureEvent.java | 10 ++ .../api/event/LoadMetalakePreEvent.java | 10 ++ .../listener/api/event/LoadSchemaEvent.java | 10 ++ .../api/event/LoadSchemaFailureEvent.java | 10 ++ .../api/event/LoadSchemaPreEvent.java | 10 ++ .../listener/api/event/LoadTableEvent.java | 10 ++ .../api/event/LoadTableFailureEvent.java | 10 ++ .../listener/api/event/LoadTablePreEvent.java | 10 ++ .../listener/api/event/LoadTopicEvent.java | 10 ++ .../api/event/LoadTopicFailureEvent.java | 10 ++ .../listener/api/event/LoadTopicPreEvent.java | 10 ++ .../listener/api/event/MetalakeEvent.java | 5 + .../listener/api/event/OperationStatus.java | 28 +++++ .../listener/api/event/OperationType.java | 88 ++++++++++++++ .../listener/api/event/PartitionEvent.java | 5 + .../api/event/PartitionExistsEvent.java | 10 ++ .../event/PartitionExistsFailureEvent.java | 10 ++ .../listener/api/event/PreEvent.java | 5 + .../api/event/PurgePartitionEvent.java | 10 ++ .../api/event/PurgePartitionFailureEvent.java | 10 ++ .../listener/api/event/PurgeTableEvent.java | 10 ++ .../api/event/PurgeTableFailureEvent.java | 10 ++ .../api/event/PurgeTablePreEvent.java | 10 ++ .../listener/api/event/SchemaEvent.java | 5 + .../listener/api/event/TableEvent.java | 5 + .../listener/api/event/TopicEvent.java | 5 + .../apache/gravitino/audit/DummyAuditLog.java | 2 + .../gravitino/audit/TestAuditManager.java | 7 +- .../audit/v2/TestCompatibilityUtils.java | 98 ++++++++++++++++ .../listener/TestEventListenerManager.java | 6 + .../listener/api/event/TestCatalogEvent.java | 36 ++++++ .../listener/api/event/TestFilesetEvent.java | 26 ++++- .../listener/api/event/TestMetalakeEvent.java | 34 ++++++ .../api/event/TestPartitionEvent.java | 24 ++++ .../listener/api/event/TestSchemaEvent.java | 30 +++++ .../listener/api/event/TestTableEvent.java | 36 ++++++ .../listener/api/event/TestTopicEvent.java | 55 ++++++--- docs/iceberg-rest-service.md | 5 + .../api/event/IcebergCreateTableEvent.java | 5 + .../event/IcebergCreateTableFailureEvent.java | 5 + .../api/event/IcebergCreateTablePreEvent.java | 5 + .../api/event/IcebergCreateViewEvent.java | 5 + .../event/IcebergCreateViewFailureEvent.java | 5 + .../api/event/IcebergCreateViewPreEvent.java | 5 + .../api/event/IcebergDropTableEvent.java | 5 + .../event/IcebergDropTableFailureEvent.java | 5 + .../api/event/IcebergDropTablePreEvent.java | 5 + .../api/event/IcebergDropViewEvent.java | 5 + .../event/IcebergDropViewFailureEvent.java | 5 + .../api/event/IcebergDropViewPreEvent.java | 5 + .../listener/api/event/IcebergEvent.java | 21 ++++ .../api/event/IcebergFailureEvent.java | 21 ++++ .../api/event/IcebergListTableEvent.java | 5 + .../event/IcebergListTableFailureEvent.java | 5 + .../api/event/IcebergListTablePreEvent.java | 5 + .../api/event/IcebergListViewEvent.java | 5 + .../event/IcebergListViewFailureEvent.java | 5 + .../api/event/IcebergListViewPreEvent.java | 5 + .../api/event/IcebergLoadTableEvent.java | 5 + .../event/IcebergLoadTableFailureEvent.java | 5 + .../api/event/IcebergLoadTablePreEvent.java | 5 + .../api/event/IcebergLoadViewEvent.java | 5 + .../event/IcebergLoadViewFailureEvent.java | 5 + .../api/event/IcebergLoadViewPreEvent.java | 5 + .../listener/api/event/IcebergPreEvent.java | 21 ++++ .../api/event/IcebergRenameTableEvent.java | 5 + .../event/IcebergRenameTableFailureEvent.java | 5 + .../api/event/IcebergRenameTablePreEvent.java | 5 + .../api/event/IcebergRenameViewEvent.java | 5 + .../event/IcebergRenameViewFailureEvent.java | 5 + .../api/event/IcebergRenameViewPreEvent.java | 5 + .../api/event/IcebergReplaceViewEvent.java | 5 + .../event/IcebergReplaceViewFailureEvent.java | 5 + .../api/event/IcebergReplaceViewPreEvent.java | 10 ++ .../api/event/IcebergTableExistsEvent.java | 5 + .../event/IcebergTableExistsFailureEvent.java | 5 + .../api/event/IcebergTableExistsPreEvent.java | 5 + .../api/event/IcebergUpdateTableEvent.java | 5 + .../event/IcebergUpdateTableFailureEvent.java | 5 + .../api/event/IcebergUpdateTablePreEvent.java | 5 + .../api/event/IcebergViewExistsEvent.java | 5 + .../event/IcebergViewExistsFailureEvent.java | 5 + .../api/event/IcebergViewExistsPreEvent.java | 5 + 181 files changed, 2210 insertions(+), 23 deletions(-) create mode 100644 core/src/main/java/org/apache/gravitino/audit/v2/CompatibilityUtils.java create mode 100644 core/src/main/java/org/apache/gravitino/audit/v2/SimpleAuditLogV2.java create mode 100644 core/src/main/java/org/apache/gravitino/audit/v2/SimpleFormatterV2.java create mode 100644 core/src/main/java/org/apache/gravitino/listener/api/event/EventSource.java create mode 100644 core/src/main/java/org/apache/gravitino/listener/api/event/OperationStatus.java create mode 100644 core/src/main/java/org/apache/gravitino/listener/api/event/OperationType.java create mode 100644 core/src/test/java/org/apache/gravitino/audit/v2/TestCompatibilityUtils.java diff --git a/core/src/main/java/org/apache/gravitino/Configs.java b/core/src/main/java/org/apache/gravitino/Configs.java index fb30f57ab3a..3ff4c7c4d86 100644 --- a/core/src/main/java/org/apache/gravitino/Configs.java +++ b/core/src/main/java/org/apache/gravitino/Configs.java @@ -24,7 +24,7 @@ import java.util.List; import org.apache.commons.lang3.StringUtils; import org.apache.gravitino.audit.FileAuditWriter; -import org.apache.gravitino.audit.SimpleFormatter; +import org.apache.gravitino.audit.v2.SimpleFormatterV2; import org.apache.gravitino.config.ConfigBuilder; import org.apache.gravitino.config.ConfigConstants; import org.apache.gravitino.config.ConfigEntry; @@ -366,5 +366,5 @@ private Configs() {} .doc("Gravitino event log formatter class name") .version(ConfigConstants.VERSION_0_7_0) .stringConf() - .createWithDefault(SimpleFormatter.class.getName()); + .createWithDefault(SimpleFormatterV2.class.getName()); } diff --git a/core/src/main/java/org/apache/gravitino/audit/AuditLog.java b/core/src/main/java/org/apache/gravitino/audit/AuditLog.java index 86286c0f691..3ff613c37b5 100644 --- a/core/src/main/java/org/apache/gravitino/audit/AuditLog.java +++ b/core/src/main/java/org/apache/gravitino/audit/AuditLog.java @@ -19,6 +19,8 @@ package org.apache.gravitino.audit; +import com.google.common.collect.ImmutableMap; +import java.util.Map; import org.apache.gravitino.listener.api.event.AlterCatalogEvent; import org.apache.gravitino.listener.api.event.AlterCatalogFailureEvent; import org.apache.gravitino.listener.api.event.AlterFilesetEvent; @@ -56,6 +58,7 @@ import org.apache.gravitino.listener.api.event.DropTopicEvent; import org.apache.gravitino.listener.api.event.DropTopicFailureEvent; import org.apache.gravitino.listener.api.event.Event; +import org.apache.gravitino.listener.api.event.EventSource; import org.apache.gravitino.listener.api.event.GetFileLocationEvent; import org.apache.gravitino.listener.api.event.GetFileLocationFailureEvent; import org.apache.gravitino.listener.api.event.GetPartitionEvent; @@ -86,6 +89,8 @@ import org.apache.gravitino.listener.api.event.LoadTableFailureEvent; import org.apache.gravitino.listener.api.event.LoadTopicEvent; import org.apache.gravitino.listener.api.event.LoadTopicFailureEvent; +import org.apache.gravitino.listener.api.event.OperationStatus; +import org.apache.gravitino.listener.api.event.OperationType; import org.apache.gravitino.listener.api.event.PartitionExistsEvent; import org.apache.gravitino.listener.api.event.PartitionExistsFailureEvent; import org.apache.gravitino.listener.api.event.PurgePartitionEvent; @@ -106,7 +111,9 @@ public interface AuditLog { * The operation name. * * @return operation name. + * @deprecated use {@code #operationType()} instead. */ + @Deprecated Operation operation(); /** @@ -127,9 +134,61 @@ public interface AuditLog { * The status of the operation. * * @return operation status. + * @deprecated use {@link #operationStatus()} instead. */ + @Deprecated Status status(); + /** + * The remote address of the operation. + * + * @return The remote address string. + * @since 0.8.0 + */ + default String remoteAddress() { + return "unknown"; + } + + /** + * The status of the operation. + * + * @return The operation status. + * @since 0.8.0 + */ + default OperationStatus operationStatus() { + return OperationStatus.UNKNOWN; + } + + /** + * The type of the operation. + * + * @return The operation status. + * @since 0.8.0 + */ + default OperationType operationType() { + return OperationType.UNKNOWN; + } + + /** + * The custom information. + * + * @return the custom information. + * @since 0.8.0 + */ + default Map customInfo() { + return ImmutableMap.of(); + } + + /** + * The event source. + * + * @return the event source. + * @since 0.8.0 + */ + default EventSource eventSource() { + return EventSource.GRAVITINO_SERVER; + } + /** Define user metadata operation. */ enum Operation { CREATE_METALAKE, @@ -294,6 +353,7 @@ public static Operation fromEvent(Event event) { enum Status { SUCCESS, - FAILURE + FAILURE, + UNKNOWN } } diff --git a/core/src/main/java/org/apache/gravitino/audit/SimpleAuditLog.java b/core/src/main/java/org/apache/gravitino/audit/SimpleAuditLog.java index 75ee08aad63..e8781c56a5d 100644 --- a/core/src/main/java/org/apache/gravitino/audit/SimpleAuditLog.java +++ b/core/src/main/java/org/apache/gravitino/audit/SimpleAuditLog.java @@ -23,8 +23,14 @@ import javax.annotation.Nullable; import lombok.Builder; -/** The default implementation of the audit log. */ +/** + * The first version of implementation of the audit log. + * + * @deprecated since 0.8.0 + */ @Builder +@Deprecated +@SuppressWarnings("deprecation") public class SimpleAuditLog implements AuditLog { private String user; diff --git a/core/src/main/java/org/apache/gravitino/audit/SimpleFormatter.java b/core/src/main/java/org/apache/gravitino/audit/SimpleFormatter.java index 7b54d460e2f..e01976ee7e0 100644 --- a/core/src/main/java/org/apache/gravitino/audit/SimpleFormatter.java +++ b/core/src/main/java/org/apache/gravitino/audit/SimpleFormatter.java @@ -23,10 +23,16 @@ import org.apache.gravitino.listener.api.event.Event; import org.apache.gravitino.listener.api.event.FailureEvent; -/** The default formatter implementation of the audit log. */ +/** + * The first version of formatter implementation of the audit log. + * + * @deprecated since 0.8.0, please use {@link org.apache.gravitino.audit.v2.SimpleFormatterV2} + */ +@Deprecated public class SimpleFormatter implements Formatter { @Override + @SuppressWarnings("deprecation") public SimpleAuditLog format(Event event) { Status status = event instanceof FailureEvent ? Status.FAILURE : Status.SUCCESS; return SimpleAuditLog.builder() diff --git a/core/src/main/java/org/apache/gravitino/audit/v2/CompatibilityUtils.java b/core/src/main/java/org/apache/gravitino/audit/v2/CompatibilityUtils.java new file mode 100644 index 00000000000..ee5d901f4f4 --- /dev/null +++ b/core/src/main/java/org/apache/gravitino/audit/v2/CompatibilityUtils.java @@ -0,0 +1,100 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.gravitino.audit.v2; + +import com.google.common.collect.ImmutableMap; +import org.apache.gravitino.audit.AuditLog.Operation; +import org.apache.gravitino.audit.AuditLog.Status; +import org.apache.gravitino.listener.api.event.OperationStatus; +import org.apache.gravitino.listener.api.event.OperationType; + +public class CompatibilityUtils { + + private static ImmutableMap operationTypeMap = + ImmutableMap.builder() + // Metalake operation + .put(OperationType.CREATE_METALAKE, Operation.CREATE_METALAKE) + .put(OperationType.ALTER_METALAKE, Operation.ALTER_METALAKE) + .put(OperationType.DROP_METALAKE, Operation.DROP_METALAKE) + .put(OperationType.LOAD_METALAKE, Operation.LOAD_METALAKE) + .put(OperationType.LIST_METALAKE, Operation.LIST_METALAKE) + + // Catalog operation + .put(OperationType.CREATE_CATALOG, Operation.CREATE_CATALOG) + .put(OperationType.ALTER_CATALOG, Operation.ALTER_CATALOG) + .put(OperationType.DROP_CATALOG, Operation.DROP_CATALOG) + .put(OperationType.LOAD_CATALOG, Operation.LOAD_CATALOG) + .put(OperationType.LIST_CATALOG, Operation.LIST_CATALOG) + + // Schema operation + .put(OperationType.CREATE_SCHEMA, Operation.CREATE_SCHEMA) + .put(OperationType.ALTER_SCHEMA, Operation.ALTER_SCHEMA) + .put(OperationType.DROP_SCHEMA, Operation.DROP_SCHEMA) + .put(OperationType.LOAD_SCHEMA, Operation.LOAD_SCHEMA) + .put(OperationType.LIST_SCHEMA, Operation.LIST_SCHEMA) + + // Table operation + .put(OperationType.CREATE_TABLE, Operation.CREATE_TABLE) + .put(OperationType.ALTER_TABLE, Operation.ALTER_TABLE) + .put(OperationType.DROP_TABLE, Operation.DROP_TABLE) + .put(OperationType.PURGE_TABLE, Operation.PURGE_TABLE) + .put(OperationType.LOAD_TABLE, Operation.LOAD_TABLE) + .put(OperationType.TABLE_EXISTS, Operation.UNKNOWN_OPERATION) + .put(OperationType.LIST_TABLE, Operation.LIST_TABLE) + + // Partition operation + .put(OperationType.ADD_PARTITION, Operation.UNKNOWN_OPERATION) + .put(OperationType.DROP_PARTITION, Operation.UNKNOWN_OPERATION) + .put(OperationType.PURGE_PARTITION, Operation.PURGE_PARTITION) + .put(OperationType.LOAD_PARTITION, Operation.GET_PARTITION) + .put(OperationType.PARTITION_EXISTS, Operation.PARTITION_EXIST) + .put(OperationType.LIST_PARTITION, Operation.LIST_PARTITION) + .put(OperationType.LIST_PARTITION_NAMES, Operation.LIST_PARTITION) + + // Fileset operation + .put(OperationType.CREATE_FILESET, Operation.CREATE_FILESET) + .put(OperationType.ALTER_FILESET, Operation.ALTER_FILESET) + .put(OperationType.DROP_FILESET, Operation.DROP_FILESET) + .put(OperationType.LOAD_FILESET, Operation.LOAD_FILESET) + .put(OperationType.LIST_FILESET, Operation.LIST_FILESET) + .put(OperationType.GET_FILESET_LOCATION, Operation.GET_FILE_LOCATION) + + // Topic operation + .put(OperationType.CREATE_TOPIC, Operation.CREATE_TOPIC) + .put(OperationType.ALTER_TOPIC, Operation.ALTER_TOPIC) + .put(OperationType.DROP_TOPIC, Operation.DROP_TOPIC) + .put(OperationType.LOAD_TOPIC, Operation.LOAD_TOPIC) + .put(OperationType.LIST_TOPIC, Operation.LIST_TOPIC) + .build(); + + static Operation toAuditLogOperation(OperationType operationType) { + return operationTypeMap.getOrDefault(operationType, Operation.UNKNOWN_OPERATION); + } + + static Status toAuditLogStatus(OperationStatus operationStatus) { + if (operationStatus.equals(OperationStatus.SUCCESS)) { + return Status.SUCCESS; + } else if (operationStatus.equals(OperationStatus.FAILURE)) { + return Status.FAILURE; + } else { + return Status.UNKNOWN; + } + } +} diff --git a/core/src/main/java/org/apache/gravitino/audit/v2/SimpleAuditLogV2.java b/core/src/main/java/org/apache/gravitino/audit/v2/SimpleAuditLogV2.java new file mode 100644 index 00000000000..177b0341543 --- /dev/null +++ b/core/src/main/java/org/apache/gravitino/audit/v2/SimpleAuditLogV2.java @@ -0,0 +1,108 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.gravitino.audit.v2; + +import java.text.SimpleDateFormat; +import java.util.Map; +import java.util.Optional; +import org.apache.gravitino.NameIdentifier; +import org.apache.gravitino.audit.AuditLog; +import org.apache.gravitino.listener.api.event.BaseEvent; +import org.apache.gravitino.listener.api.event.EventSource; +import org.apache.gravitino.listener.api.event.OperationStatus; +import org.apache.gravitino.listener.api.event.OperationType; + +/** + * Compared to {@link org.apache.gravitino.audit.SimpleAuditLog}, adds audit log for Iceberg REST + * server, add eventSource and remoteAddress to audit log. + */ +public class SimpleAuditLogV2 implements AuditLog { + + private final BaseEvent event; + + public SimpleAuditLogV2(BaseEvent event) { + this.event = event; + } + + @Override + public String user() { + return event.user(); + } + + @Override + @SuppressWarnings("deprecation") + public Operation operation() { + return CompatibilityUtils.toAuditLogOperation(event.operationType()); + } + + @Override + public String identifier() { + return Optional.ofNullable(event.identifier()).map(NameIdentifier::toString).orElse(null); + } + + @Override + public long timestamp() { + return event.eventTime(); + } + + @Override + @SuppressWarnings("deprecation") + public Status status() { + return CompatibilityUtils.toAuditLogStatus(event.operationStatus()); + } + + @Override + public String remoteAddress() { + return event.remoteAddress(); + } + + @Override + public OperationStatus operationStatus() { + return event.operationStatus(); + } + + @Override + public OperationType operationType() { + return event.operationType(); + } + + @Override + public EventSource eventSource() { + return event.eventSource(); + } + + @Override + public Map customInfo() { + return event.customInfo(); + } + + @Override + public String toString() { + return String.format( + "[%s]\t%s\t%s\t%s\t%s\t%s\t%s", + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timestamp()), + user(), + operationType(), + identifier(), + operationStatus(), + eventSource(), + remoteAddress()); + } +} diff --git a/core/src/main/java/org/apache/gravitino/audit/v2/SimpleFormatterV2.java b/core/src/main/java/org/apache/gravitino/audit/v2/SimpleFormatterV2.java new file mode 100644 index 00000000000..df7054c3f46 --- /dev/null +++ b/core/src/main/java/org/apache/gravitino/audit/v2/SimpleFormatterV2.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.gravitino.audit.v2; + +import org.apache.gravitino.audit.Formatter; +import org.apache.gravitino.listener.api.event.Event; + +/** The default formatter implementation of the audit log. */ +public class SimpleFormatterV2 implements Formatter { + + @Override + public SimpleAuditLogV2 format(Event event) { + return new SimpleAuditLogV2(event); + } +} diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AddPartitionEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AddPartitionEvent.java index e5ea44e36bd..81ad2e3e01b 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AddPartitionEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AddPartitionEvent.java @@ -52,4 +52,14 @@ public AddPartitionEvent( public PartitionInfo createdPartitionInfo() { return createdPartitionInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ADD_PARTITION; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AddPartitionFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AddPartitionFailureEvent.java index 60930c17753..bb8b8ef1332 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AddPartitionFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AddPartitionFailureEvent.java @@ -61,4 +61,14 @@ public AddPartitionFailureEvent( public PartitionInfo createdPartitionInfo() { return createdPartitionInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ADD_PARTITION; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterCatalogEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterCatalogEvent.java index 2bb138c46dc..445a8212700 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterCatalogEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterCatalogEvent.java @@ -71,4 +71,14 @@ public CatalogInfo updatedCatalogInfo() { public CatalogChange[] catalogChanges() { return catalogChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterCatalogFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterCatalogFailureEvent.java index 0b465e32987..165368c7ee6 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterCatalogFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterCatalogFailureEvent.java @@ -55,4 +55,14 @@ public AlterCatalogFailureEvent( public CatalogChange[] catalogChanges() { return catalogChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterCatalogPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterCatalogPreEvent.java index a8786adf48f..dfc0a705cab 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterCatalogPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterCatalogPreEvent.java @@ -43,4 +43,14 @@ public AlterCatalogPreEvent( public CatalogChange[] catalogChanges() { return catalogChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterFilesetEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterFilesetEvent.java index ac8411d22b6..71f7ea97bbb 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterFilesetEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterFilesetEvent.java @@ -69,4 +69,14 @@ public FilesetChange[] filesetChanges() { public FilesetInfo updatedFilesetInfo() { return updatedFilesetInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_FILESET; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterFilesetFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterFilesetFailureEvent.java index 26e2946ad13..f4376126682 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterFilesetFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterFilesetFailureEvent.java @@ -57,4 +57,14 @@ public AlterFilesetFailureEvent( public FilesetChange[] filesetChanges() { return filesetChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_FILESET; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterMetalakeEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterMetalakeEvent.java index dade14f767c..1fed4c6a19c 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterMetalakeEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterMetalakeEvent.java @@ -69,4 +69,14 @@ public MetalakeInfo updatedMetalakeInfo() { public MetalakeChange[] metalakeChanges() { return metalakeChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterMetalakeFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterMetalakeFailureEvent.java index 9bb557dff75..39440e49520 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterMetalakeFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterMetalakeFailureEvent.java @@ -58,4 +58,14 @@ public AlterMetalakeFailureEvent( public MetalakeChange[] metalakeChanges() { return metalakeChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterMetalakePreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterMetalakePreEvent.java index 68fede7baed..3ab4ffc74c0 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterMetalakePreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterMetalakePreEvent.java @@ -25,7 +25,7 @@ /** Represents an event triggered before altering a metalake. */ @DeveloperApi -public class AlterMetalakePreEvent extends PreEvent { +public class AlterMetalakePreEvent extends MetalakePreEvent { private final MetalakeChange[] metalakeChanges; public AlterMetalakePreEvent( @@ -43,4 +43,14 @@ public AlterMetalakePreEvent( public MetalakeChange[] metalakeChanges() { return metalakeChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterSchemaEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterSchemaEvent.java index 0d8363e6788..1c4e75f0900 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterSchemaEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterSchemaEvent.java @@ -58,4 +58,14 @@ public SchemaInfo updatedSchemaInfo() { public SchemaChange[] schemaChanges() { return schemaChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterSchemaFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterSchemaFailureEvent.java index 8e87dc99c83..c76eccba102 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterSchemaFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterSchemaFailureEvent.java @@ -46,4 +46,14 @@ public AlterSchemaFailureEvent( public SchemaChange[] schemaChanges() { return schemaChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterSchemaPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterSchemaPreEvent.java index ac2a03f000e..f57cc06c18a 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterSchemaPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterSchemaPreEvent.java @@ -42,4 +42,14 @@ public AlterSchemaPreEvent(String user, NameIdentifier identifier, SchemaChange[ public SchemaChange[] schemaChanges() { return schemaChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTableEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTableEvent.java index 33feb69844e..fd6365a71c1 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTableEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTableEvent.java @@ -69,4 +69,14 @@ public TableInfo updatedTableInfo() { public TableChange[] tableChanges() { return tableChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTableFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTableFailureEvent.java index 25b9f515059..84a998adb80 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTableFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTableFailureEvent.java @@ -54,4 +54,14 @@ public AlterTableFailureEvent( public TableChange[] tableChanges() { return tableChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTablePreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTablePreEvent.java index 4207b5447a1..3502d0ac9c4 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTablePreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTablePreEvent.java @@ -42,4 +42,14 @@ public AlterTablePreEvent(String user, NameIdentifier identifier, TableChange[] public TableChange[] tableChanges() { return tableChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTopicEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTopicEvent.java index 8aedef5d245..95756d3948e 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTopicEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTopicEvent.java @@ -69,4 +69,14 @@ public TopicInfo updatedTopicInfo() { public TopicChange[] topicChanges() { return topicChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTopicFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTopicFailureEvent.java index 08caf3f652a..81c0b615f2b 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTopicFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTopicFailureEvent.java @@ -54,4 +54,14 @@ public AlterTopicFailureEvent( public TopicChange[] topicChanges() { return topicChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTopicPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTopicPreEvent.java index 65f4d7034d2..b255d8de81a 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTopicPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/AlterTopicPreEvent.java @@ -42,4 +42,14 @@ public AlterTopicPreEvent(String user, NameIdentifier identifier, TopicChange[] public TopicChange[] topicChanges() { return topicChanges; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/BaseEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/BaseEvent.java index 973323a0591..69364556466 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/BaseEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/BaseEvent.java @@ -19,6 +19,8 @@ package org.apache.gravitino.listener.api.event; +import com.google.common.collect.ImmutableMap; +import java.util.Map; import javax.annotation.Nullable; import org.apache.gravitino.NameIdentifier; import org.apache.gravitino.annotation.DeveloperApi; @@ -79,4 +81,54 @@ public NameIdentifier identifier() { public long eventTime() { return eventTime; } + + /** + * The type of the operation. + * + * @return The operation status. + * @since 0.8.0 + */ + public OperationType operationType() { + return OperationType.UNKNOWN; + } + + /** + * The remote address of the operation. + * + * @return The remote address string. + * @since 0.8.0 + */ + public String remoteAddress() { + return "unknown"; + } + + /** + * The event source. + * + * @return the event source. + * @since 0.8.0 + */ + public EventSource eventSource() { + return EventSource.GRAVITINO_SERVER; + } + + /** + * The status of the operation. + * + * @return The operation status. + * @since 0.8.0 + */ + public OperationStatus operationStatus() { + return OperationStatus.UNKNOWN; + } + + /** + * The custom information. + * + * @return the custom information. + * @since 0.8.0 + */ + public Map customInfo() { + return ImmutableMap.of(); + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CatalogEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CatalogEvent.java index 094a19cda58..55e9f26c700 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CatalogEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CatalogEvent.java @@ -38,4 +38,9 @@ public abstract class CatalogEvent extends Event { protected CatalogEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + @Override + public OperationStatus operationStatus() { + return OperationStatus.SUCCESS; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateCatalogEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateCatalogEvent.java index 34841cb37bd..30d84d9888c 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateCatalogEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateCatalogEvent.java @@ -52,4 +52,14 @@ public CreateCatalogEvent( public CatalogInfo createdCatalogInfo() { return createdCatalogInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateCatalogFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateCatalogFailureEvent.java index cef739a7967..5680353eae4 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateCatalogFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateCatalogFailureEvent.java @@ -61,4 +61,14 @@ public CreateCatalogFailureEvent( public CatalogInfo createCatalogRequest() { return createCatalogRequest; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateCatalogPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateCatalogPreEvent.java index 9abc1cbbfee..ab86ee28adb 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateCatalogPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateCatalogPreEvent.java @@ -43,4 +43,14 @@ public CreateCatalogPreEvent( public CatalogInfo createCatalogRequest() { return createCatalogRequest; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateFilesetEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateFilesetEvent.java index 2e154779a30..0cb1d6ce5e4 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateFilesetEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateFilesetEvent.java @@ -52,4 +52,14 @@ public CreateFilesetEvent( public FilesetInfo createdFilesetInfo() { return createdFilesetInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_FILESET; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateFilesetFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateFilesetFailureEvent.java index bdb24878fe4..c8238d0853c 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateFilesetFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateFilesetFailureEvent.java @@ -58,4 +58,14 @@ public CreateFilesetFailureEvent( public FilesetInfo createFilesetRequest() { return createFilesetRequest; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_FILESET; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateMetalakeEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateMetalakeEvent.java index 6af68ea312e..00ceb1e3ed6 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateMetalakeEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateMetalakeEvent.java @@ -51,4 +51,14 @@ public CreateMetalakeEvent( public MetalakeInfo createdMetalakeInfo() { return createdMetalakeInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateMetalakeFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateMetalakeFailureEvent.java index 46b5fa37793..99e38c6dc8e 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateMetalakeFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateMetalakeFailureEvent.java @@ -49,4 +49,14 @@ public CreateMetalakeFailureEvent( public MetalakeInfo createMetalakeRequest() { return createMetalakeRequest; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateMetalakePreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateMetalakePreEvent.java index 951c03670f4..3a0a80fe059 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateMetalakePreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateMetalakePreEvent.java @@ -42,4 +42,14 @@ public CreateMetalakePreEvent( public MetalakeInfo createMetalakeRequest() { return createMetalakeRequest; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateSchemaEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateSchemaEvent.java index 366a399f12d..89b7cb122e5 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateSchemaEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateSchemaEvent.java @@ -43,4 +43,14 @@ public CreateSchemaEvent(String user, NameIdentifier identifier, SchemaInfo sche public SchemaInfo createdSchemaInfo() { return createdSchemaInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateSchemaFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateSchemaFailureEvent.java index f07cb136062..18371a7c283 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateSchemaFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateSchemaFailureEvent.java @@ -46,4 +46,14 @@ public CreateSchemaFailureEvent( public SchemaInfo createSchemaRequest() { return createSchemaRequest; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateSchemaPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateSchemaPreEvent.java index 1bf69154a59..f9e26452a7c 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateSchemaPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateSchemaPreEvent.java @@ -43,4 +43,14 @@ public CreateSchemaPreEvent( public SchemaInfo createSchemaRequest() { return createSchemaRequest; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTableEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTableEvent.java index 372ae63805d..482162c49d8 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTableEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTableEvent.java @@ -51,4 +51,14 @@ public CreateTableEvent(String user, NameIdentifier identifier, TableInfo create public TableInfo createdTableInfo() { return createdTableInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTableFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTableFailureEvent.java index a0231a49f36..6bb27ce9221 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTableFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTableFailureEvent.java @@ -58,4 +58,14 @@ public CreateTableFailureEvent( public TableInfo createTableRequest() { return createTableRequest; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTablePreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTablePreEvent.java index 40e8ce421ac..6c01d614f3c 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTablePreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTablePreEvent.java @@ -42,4 +42,8 @@ public CreateTablePreEvent(String user, NameIdentifier identifier, TableInfo cre public TableInfo createTableRequest() { return createTableRequest; } + + public OperationType operationType() { + return OperationType.CREATE_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTopicEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTopicEvent.java index 00cd561018a..605c0b99cff 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTopicEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTopicEvent.java @@ -51,4 +51,14 @@ public CreateTopicEvent(String user, NameIdentifier identifier, TopicInfo create public TopicInfo createdTopicInfo() { return createdTopicInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTopicFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTopicFailureEvent.java index 15751128fbb..4e66428ca25 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTopicFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTopicFailureEvent.java @@ -58,4 +58,14 @@ public CreateTopicFailureEvent( public TopicInfo createTopicRequest() { return createTopicRequest; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTopicPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTopicPreEvent.java index f07148d897b..9849f7136ba 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTopicPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/CreateTopicPreEvent.java @@ -42,4 +42,14 @@ public CreateTopicPreEvent(String user, NameIdentifier identifier, TopicInfo cre public TopicInfo createTopicRequest() { return createTopicRequest; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.CREATE_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropCatalogEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropCatalogEvent.java index a917a97d4de..d0ff864f628 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropCatalogEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropCatalogEvent.java @@ -50,4 +50,14 @@ public DropCatalogEvent(String user, NameIdentifier identifier, boolean isExists public boolean isExists() { return isExists; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropCatalogFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropCatalogFailureEvent.java index e0ce4cb6363..e2969c00482 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropCatalogFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropCatalogFailureEvent.java @@ -40,4 +40,14 @@ public final class DropCatalogFailureEvent extends CatalogFailureEvent { public DropCatalogFailureEvent(String user, NameIdentifier identifier, Exception exception) { super(user, identifier, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropCatalogPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropCatalogPreEvent.java index f359c99e712..d5ce5a1b4ba 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropCatalogPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropCatalogPreEvent.java @@ -28,4 +28,14 @@ public final class DropCatalogPreEvent extends CatalogPreEvent { public DropCatalogPreEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropFilesetEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropFilesetEvent.java index 7893a4f917b..c6a6275eef9 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropFilesetEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropFilesetEvent.java @@ -49,4 +49,14 @@ public DropFilesetEvent(String user, NameIdentifier identifier, boolean isExists public boolean isExists() { return isExists; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_FILESET; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropFilesetFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropFilesetFailureEvent.java index f0392c8aec2..87b11bdf329 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropFilesetFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropFilesetFailureEvent.java @@ -38,4 +38,14 @@ public final class DropFilesetFailureEvent extends FilesetFailureEvent { public DropFilesetFailureEvent(String user, NameIdentifier identifier, Exception exception) { super(user, identifier, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_FILESET; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropMetalakeEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropMetalakeEvent.java index b9d1a62fe84..7dae9c150e1 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropMetalakeEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropMetalakeEvent.java @@ -52,4 +52,14 @@ public DropMetalakeEvent(String user, NameIdentifier identifier, boolean isExist public boolean isExists() { return isExists; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropMetalakeFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropMetalakeFailureEvent.java index a5f65af8b51..ee1ceeee9f6 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropMetalakeFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropMetalakeFailureEvent.java @@ -40,4 +40,14 @@ public final class DropMetalakeFailureEvent extends MetalakeFailureEvent { public DropMetalakeFailureEvent(String user, NameIdentifier identifier, Exception exception) { super(user, identifier, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropMetalakePreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropMetalakePreEvent.java index 91ee886ff3e..31d039d184d 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropMetalakePreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropMetalakePreEvent.java @@ -28,4 +28,14 @@ public class DropMetalakePreEvent extends MetalakePreEvent { public DropMetalakePreEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropPartitionEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropPartitionEvent.java index b0711cbb42e..b23ff26e3ca 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropPartitionEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropPartitionEvent.java @@ -63,4 +63,14 @@ public boolean isExists() { public String partitionName() { return partitionName; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_PARTITION; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropPartitionFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropPartitionFailureEvent.java index 94668d6e5f8..a56ef6b4995 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropPartitionFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropPartitionFailureEvent.java @@ -54,4 +54,14 @@ public DropPartitionFailureEvent( public String partitionName() { return partitionName; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_PARTITION; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropSchemaEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropSchemaEvent.java index 54f9d936696..3da663142ea 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropSchemaEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropSchemaEvent.java @@ -55,4 +55,14 @@ public boolean isExists() { public boolean cascade() { return cascade; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropSchemaFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropSchemaFailureEvent.java index 61082a62f53..2efb626ad94 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropSchemaFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropSchemaFailureEvent.java @@ -45,4 +45,14 @@ public DropSchemaFailureEvent( public boolean cascade() { return cascade; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropSchemaPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropSchemaPreEvent.java index 88e74a02602..1daf1cb0836 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropSchemaPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropSchemaPreEvent.java @@ -28,4 +28,14 @@ public final class DropSchemaPreEvent extends SchemaPreEvent { public DropSchemaPreEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropTableEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropTableEvent.java index 6da3ba6dd76..fd4786f50ab 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropTableEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropTableEvent.java @@ -52,4 +52,14 @@ public DropTableEvent(String user, NameIdentifier identifier, boolean isExists) public boolean isExists() { return isExists; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropTableFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropTableFailureEvent.java index ccd65bd5f67..4472a2c69bc 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropTableFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropTableFailureEvent.java @@ -40,4 +40,14 @@ public final class DropTableFailureEvent extends TableFailureEvent { public DropTableFailureEvent(String user, NameIdentifier identifier, Exception exception) { super(user, identifier, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropTablePreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropTablePreEvent.java index 3b1954090f6..238ce0cb907 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropTablePreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropTablePreEvent.java @@ -28,4 +28,14 @@ public class DropTablePreEvent extends TablePreEvent { public DropTablePreEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropTopicEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropTopicEvent.java index 4de0e27eb39..4d7b2ecff4a 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropTopicEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropTopicEvent.java @@ -52,4 +52,14 @@ public DropTopicEvent(String user, NameIdentifier identifier, boolean isExists) public boolean isExists() { return isExists; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropTopicFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropTopicFailureEvent.java index ec51c6de786..643cb3c6893 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropTopicFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropTopicFailureEvent.java @@ -40,4 +40,14 @@ public final class DropTopicFailureEvent extends TopicFailureEvent { public DropTopicFailureEvent(String user, NameIdentifier identifier, Exception exception) { super(user, identifier, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/DropTopicPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/DropTopicPreEvent.java index 1de057e81a4..f39ac4d59ee 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/DropTopicPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/DropTopicPreEvent.java @@ -28,4 +28,14 @@ public class DropTopicPreEvent extends TopicPreEvent { public DropTopicPreEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.DROP_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/EventSource.java b/core/src/main/java/org/apache/gravitino/listener/api/event/EventSource.java new file mode 100644 index 00000000000..619c03f27a5 --- /dev/null +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/EventSource.java @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.gravitino.listener.api.event; + +public enum EventSource { + GRAVITINO_SERVER, + GRAVITINO_ICEBERG_REST_SERVER +} diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/FailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/FailureEvent.java index b4b131d88a2..e9041dbec1e 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/FailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/FailureEvent.java @@ -57,4 +57,9 @@ protected FailureEvent(String user, NameIdentifier identifier, Exception excepti public Exception exception() { return exception; } + + @Override + public OperationStatus operationStatus() { + return OperationStatus.FAILURE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/FilesetEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/FilesetEvent.java index 1f1e77e75e8..c5a3202b772 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/FilesetEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/FilesetEvent.java @@ -45,4 +45,9 @@ public abstract class FilesetEvent extends Event { protected FilesetEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + @Override + public OperationStatus operationStatus() { + return OperationStatus.SUCCESS; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/GetFileLocationEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/GetFileLocationEvent.java index 8995f7db746..54d34aa6ecb 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/GetFileLocationEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/GetFileLocationEvent.java @@ -77,4 +77,14 @@ public String subPath() { public Map context() { return context; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.GET_FILESET_LOCATION; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/GetFileLocationFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/GetFileLocationFailureEvent.java index 0826f08156a..7fd2b48666f 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/GetFileLocationFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/GetFileLocationFailureEvent.java @@ -54,4 +54,14 @@ public GetFileLocationFailureEvent( public String subPath() { return subPath; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.GET_FILESET_LOCATION; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/GetPartitionEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/GetPartitionEvent.java index 675483c1559..8c380c53f89 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/GetPartitionEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/GetPartitionEvent.java @@ -51,4 +51,14 @@ public GetPartitionEvent(String user, NameIdentifier identifier, PartitionInfo p public PartitionInfo partitionInfo() { return partitionInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_PARTITION; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/GetPartitionFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/GetPartitionFailureEvent.java index a437ef8f150..b0921015b64 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/GetPartitionFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/GetPartitionFailureEvent.java @@ -53,4 +53,14 @@ public GetPartitionFailureEvent( public String partitionName() { return partitionName; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_PARTITION; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListCatalogEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListCatalogEvent.java index 0d309b3ebfe..5e2834054c9 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListCatalogEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListCatalogEvent.java @@ -47,4 +47,14 @@ public ListCatalogEvent(String user, Namespace namespace) { public Namespace namespace() { return namespace; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListCatalogFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListCatalogFailureEvent.java index bd8e2ef3c4a..2e009149d8b 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListCatalogFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListCatalogFailureEvent.java @@ -51,4 +51,14 @@ public ListCatalogFailureEvent(String user, Exception exception, Namespace names public Namespace namespace() { return namespace; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListCatalogPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListCatalogPreEvent.java index d430b80ac08..3906bd38c89 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListCatalogPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListCatalogPreEvent.java @@ -41,4 +41,14 @@ public ListCatalogPreEvent(String user, Namespace namespace) { public Namespace namespace() { return namespace; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListFilesetEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListFilesetEvent.java index 3a591cef16e..4b4b957b445 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListFilesetEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListFilesetEvent.java @@ -49,4 +49,14 @@ public ListFilesetEvent(String user, Namespace namespace) { public Namespace namespace() { return namespace; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_FILESET; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListFilesetFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListFilesetFailureEvent.java index ce68af6e7c9..355ed7888a6 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListFilesetFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListFilesetFailureEvent.java @@ -52,4 +52,14 @@ public ListFilesetFailureEvent(String user, Namespace namespace, Exception excep public Namespace namespace() { return namespace; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_FILESET; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListMetalakeEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListMetalakeEvent.java index c5885f7fd17..6e0a3b1a226 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListMetalakeEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListMetalakeEvent.java @@ -32,4 +32,14 @@ public final class ListMetalakeEvent extends MetalakeEvent { public ListMetalakeEvent(String user) { super(user, null); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListMetalakeFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListMetalakeFailureEvent.java index 3e646d6b4b8..a8eed9cbc19 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListMetalakeFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListMetalakeFailureEvent.java @@ -37,4 +37,14 @@ public final class ListMetalakeFailureEvent extends MetalakeFailureEvent { public ListMetalakeFailureEvent(String user, Exception exception) { super(user, null, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListMetalakePreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListMetalakePreEvent.java index f97198e349a..4fc89e1de97 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListMetalakePreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListMetalakePreEvent.java @@ -27,4 +27,14 @@ public class ListMetalakePreEvent extends MetalakePreEvent { public ListMetalakePreEvent(String user) { super(user, null); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionEvent.java index 68d3295ed86..47442b59f07 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionEvent.java @@ -34,4 +34,14 @@ public final class ListPartitionEvent extends PartitionEvent { public ListPartitionEvent(String user, NameIdentifier ident) { super(user, ident); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_PARTITION; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionFailureEvent.java index ffd4eb54e97..080187f5dce 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionFailureEvent.java @@ -38,4 +38,14 @@ public final class ListPartitionFailureEvent extends PartitionFailureEvent { public ListPartitionFailureEvent(String user, NameIdentifier ident, Exception exception) { super(user, ident, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_PARTITION; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionNamesEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionNamesEvent.java index 34c5be5f58a..d1ae76ee217 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionNamesEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionNamesEvent.java @@ -34,4 +34,14 @@ public final class ListPartitionNamesEvent extends PartitionEvent { public ListPartitionNamesEvent(String user, NameIdentifier ident) { super(user, ident); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_PARTITION_NAMES; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionNamesFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionNamesFailureEvent.java index a1ac6c6209d..a542de84e48 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionNamesFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListPartitionNamesFailureEvent.java @@ -38,4 +38,14 @@ public final class ListPartitionNamesFailureEvent extends PartitionFailureEvent public ListPartitionNamesFailureEvent(String user, NameIdentifier ident, Exception exception) { super(user, ident, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_PARTITION_NAMES; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListSchemaEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListSchemaEvent.java index 6762fe1eac0..25123c9c3f2 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListSchemaEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListSchemaEvent.java @@ -41,4 +41,14 @@ public ListSchemaEvent(String user, Namespace namespace) { public Namespace namespace() { return namespace; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListSchemaFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListSchemaFailureEvent.java index a57c97c3715..642a4977edc 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListSchemaFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListSchemaFailureEvent.java @@ -44,4 +44,14 @@ public ListSchemaFailureEvent(String user, Namespace namespace, Exception except public Namespace namespace() { return namespace; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListSchemaPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListSchemaPreEvent.java index ff884821483..0dc1e881caa 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListSchemaPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListSchemaPreEvent.java @@ -41,4 +41,14 @@ public ListSchemaPreEvent(String user, Namespace namespace) { public Namespace namespace() { return namespace; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListTableEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListTableEvent.java index d3ad261fa86..45c5a8d8926 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListTableEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListTableEvent.java @@ -54,4 +54,14 @@ public ListTableEvent(String user, Namespace namespace) { public Namespace namespace() { return namespace; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListTableFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListTableFailureEvent.java index fb1c390ff8d..29c26a2341d 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListTableFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListTableFailureEvent.java @@ -51,4 +51,14 @@ public ListTableFailureEvent(String user, Namespace namespace, Exception excepti public Namespace namespace() { return namespace; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListTablePreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListTablePreEvent.java index f26d88f843d..ee7b2585fb1 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListTablePreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListTablePreEvent.java @@ -41,4 +41,14 @@ public ListTablePreEvent(String user, Namespace namespace) { public Namespace namespace() { return namespace; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListTopicEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListTopicEvent.java index 42df417971d..db032cf48e4 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListTopicEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListTopicEvent.java @@ -47,4 +47,14 @@ public ListTopicEvent(String user, Namespace namespace) { public Namespace namespace() { return namespace; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListTopicFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListTopicFailureEvent.java index b02ca8888b4..beb574c8b8a 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListTopicFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListTopicFailureEvent.java @@ -51,4 +51,14 @@ public ListTopicFailureEvent(String user, Namespace namespace, Exception excepti public Namespace namespace() { return namespace; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/ListTopicPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/ListTopicPreEvent.java index e0d844ada27..3c7bdcca12f 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/ListTopicPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/ListTopicPreEvent.java @@ -41,4 +41,14 @@ public ListTopicPreEvent(String user, Namespace namespace) { public Namespace namespace() { return namespace; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LIST_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadCatalogEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadCatalogEvent.java index f11822b2ad7..4ef2e95d0ee 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadCatalogEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadCatalogEvent.java @@ -49,4 +49,14 @@ public LoadCatalogEvent(String user, NameIdentifier identifier, CatalogInfo load public CatalogInfo loadedCatalogInfo() { return loadedCatalogInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadCatalogFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadCatalogFailureEvent.java index b5ea730eeef..9434d1ab95a 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadCatalogFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadCatalogFailureEvent.java @@ -36,4 +36,14 @@ public final class LoadCatalogFailureEvent extends CatalogFailureEvent { public LoadCatalogFailureEvent(String user, NameIdentifier identifier, Exception exception) { super(user, identifier, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadCatalogPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadCatalogPreEvent.java index b73552be933..c109fae43b4 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadCatalogPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadCatalogPreEvent.java @@ -29,4 +29,14 @@ public final class LoadCatalogPreEvent extends CatalogPreEvent { public LoadCatalogPreEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_CATALOG; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadFilesetEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadFilesetEvent.java index ef572a6ddbc..26941599206 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadFilesetEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadFilesetEvent.java @@ -48,4 +48,14 @@ public LoadFilesetEvent(String user, NameIdentifier identifier, FilesetInfo load public FilesetInfo loadedFilesetInfo() { return loadedFilesetInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_FILESET; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadFilesetFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadFilesetFailureEvent.java index bdb7dfa87df..3b3ac871b80 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadFilesetFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadFilesetFailureEvent.java @@ -36,4 +36,14 @@ public final class LoadFilesetFailureEvent extends FilesetFailureEvent { public LoadFilesetFailureEvent(String user, NameIdentifier identifier, Exception exception) { super(user, identifier, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_FILESET; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadMetalakeEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadMetalakeEvent.java index 4e7999c82cc..4bf0a96b4af 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadMetalakeEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadMetalakeEvent.java @@ -49,4 +49,14 @@ public LoadMetalakeEvent(String user, NameIdentifier identifier, MetalakeInfo me public MetalakeInfo loadedMetalakeInfo() { return loadedMetalakeInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadMetalakeFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadMetalakeFailureEvent.java index 7e0cf1baffd..5435a42b77b 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadMetalakeFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadMetalakeFailureEvent.java @@ -39,4 +39,14 @@ public final class LoadMetalakeFailureEvent extends MetalakeFailureEvent { public LoadMetalakeFailureEvent(String user, NameIdentifier identifier, Exception exception) { super(user, identifier, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadMetalakePreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadMetalakePreEvent.java index 58a805e938c..061a508d1e7 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadMetalakePreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadMetalakePreEvent.java @@ -28,4 +28,14 @@ public class LoadMetalakePreEvent extends MetalakePreEvent { public LoadMetalakePreEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_METALAKE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadSchemaEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadSchemaEvent.java index 1d30db4a275..073e0dad28a 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadSchemaEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadSchemaEvent.java @@ -42,4 +42,14 @@ public LoadSchemaEvent(String user, NameIdentifier identifier, SchemaInfo loaded public SchemaInfo loadedSchemaInfo() { return loadedSchemaInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadSchemaFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadSchemaFailureEvent.java index 67f1aec1579..a7f1c16e334 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadSchemaFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadSchemaFailureEvent.java @@ -28,4 +28,14 @@ public final class LoadSchemaFailureEvent extends SchemaFailureEvent { public LoadSchemaFailureEvent(String user, NameIdentifier identifier, Exception exception) { super(user, identifier, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadSchemaPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadSchemaPreEvent.java index d9348a45110..6de0e05a797 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadSchemaPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadSchemaPreEvent.java @@ -28,4 +28,14 @@ public final class LoadSchemaPreEvent extends SchemaPreEvent { public LoadSchemaPreEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_SCHEMA; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTableEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTableEvent.java index d3884ab3291..5ca5ab35fd4 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTableEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTableEvent.java @@ -48,4 +48,14 @@ public LoadTableEvent(String user, NameIdentifier identifier, TableInfo tableInf public TableInfo loadedTableInfo() { return loadedTableInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTableFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTableFailureEvent.java index e94c0ece616..1c6e6e3eff9 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTableFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTableFailureEvent.java @@ -36,4 +36,14 @@ public final class LoadTableFailureEvent extends TableFailureEvent { public LoadTableFailureEvent(String user, NameIdentifier identifier, Exception exception) { super(user, identifier, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTablePreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTablePreEvent.java index c60830ea4f5..fb512880606 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTablePreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTablePreEvent.java @@ -28,4 +28,14 @@ public class LoadTablePreEvent extends TablePreEvent { public LoadTablePreEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTopicEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTopicEvent.java index 01334d935a9..34d71c0c3e2 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTopicEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTopicEvent.java @@ -48,4 +48,14 @@ public LoadTopicEvent(String user, NameIdentifier identifier, TopicInfo topicInf public TopicInfo loadedTopicInfo() { return loadedTopicInfo; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTopicFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTopicFailureEvent.java index 67377cb5a7b..29c6499b78e 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTopicFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTopicFailureEvent.java @@ -36,4 +36,14 @@ public final class LoadTopicFailureEvent extends TopicFailureEvent { public LoadTopicFailureEvent(String user, NameIdentifier identifier, Exception exception) { super(user, identifier, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTopicPreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTopicPreEvent.java index 7c83e025e9b..4dbb618c4e4 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTopicPreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/LoadTopicPreEvent.java @@ -28,4 +28,14 @@ public class LoadTopicPreEvent extends TopicPreEvent { public LoadTopicPreEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.LOAD_TOPIC; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/MetalakeEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/MetalakeEvent.java index a8e1f1ddc85..fe525568150 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/MetalakeEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/MetalakeEvent.java @@ -39,4 +39,9 @@ public abstract class MetalakeEvent extends Event { protected MetalakeEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + @Override + public OperationStatus operationStatus() { + return OperationStatus.SUCCESS; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/OperationStatus.java b/core/src/main/java/org/apache/gravitino/listener/api/event/OperationStatus.java new file mode 100644 index 00000000000..576cda16eec --- /dev/null +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/OperationStatus.java @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.gravitino.listener.api.event; + +public enum OperationStatus { + UNPROCESSED, + SUCCESS, + FAILURE, + + UNKNOWN, +} diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/OperationType.java b/core/src/main/java/org/apache/gravitino/listener/api/event/OperationType.java new file mode 100644 index 00000000000..10e4759105d --- /dev/null +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/OperationType.java @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.gravitino.listener.api.event; + +public enum OperationType { + // Table operations + CREATE_TABLE, + DROP_TABLE, + PURGE_TABLE, + LOAD_TABLE, + LIST_TABLE, + ALTER_TABLE, + RENAME_TABLE, + TABLE_EXISTS, + + // Schema operations + CREATE_SCHEMA, + DROP_SCHEMA, + ALTER_SCHEMA, + LOAD_SCHEMA, + LIST_SCHEMA, + + // Fileset operations + DROP_FILESET, + ALTER_FILESET, + CREATE_FILESET, + LIST_FILESET, + LOAD_FILESET, + GET_FILESET_LOCATION, + + // Catalog operations + CREATE_CATALOG, + DROP_CATALOG, + ALTER_CATALOG, + LOAD_CATALOG, + LIST_CATALOG, + + // Partition event + ADD_PARTITION, + DROP_PARTITION, + PURGE_PARTITION, + PARTITION_EXISTS, + LOAD_PARTITION, + LIST_PARTITION, + LIST_PARTITION_NAMES, + + // Topic event + CREATE_TOPIC, + ALTER_TOPIC, + DROP_TOPIC, + LIST_TOPIC, + LOAD_TOPIC, + + // Metalake event + CREATE_METALAKE, + ALTER_METALAKE, + LIST_METALAKE, + DROP_METALAKE, + LOAD_METALAKE, + + // View event + CREATE_VIEW, + ALTER_VIEW, + DROP_VIEW, + LOAD_VIEW, + VIEW_EXISTS, + RENAME_VIEW, + LIST_VIEW, + + UNKNOWN, +} diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/PartitionEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/PartitionEvent.java index ab6d1d404d8..619679bcf76 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/PartitionEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/PartitionEvent.java @@ -39,4 +39,9 @@ public abstract class PartitionEvent extends Event { protected PartitionEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + @Override + public OperationStatus operationStatus() { + return OperationStatus.SUCCESS; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/PartitionExistsEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/PartitionExistsEvent.java index 325c9e67c99..d60edb1b6f1 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/PartitionExistsEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/PartitionExistsEvent.java @@ -67,4 +67,14 @@ public boolean isExists() { public String partitionName() { return partitionName; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.PARTITION_EXISTS; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/PartitionExistsFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/PartitionExistsFailureEvent.java index c2c422648de..de937a7f219 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/PartitionExistsFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/PartitionExistsFailureEvent.java @@ -53,4 +53,14 @@ public PartitionExistsFailureEvent( public String partitionName() { return partitionName; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.PARTITION_EXISTS; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/PreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/PreEvent.java index 52e26aec346..2d520bab4e8 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/PreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/PreEvent.java @@ -28,4 +28,9 @@ public abstract class PreEvent extends BaseEvent { protected PreEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + @Override + public OperationStatus operationStatus() { + return OperationStatus.UNPROCESSED; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/PurgePartitionEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/PurgePartitionEvent.java index 1170619eff7..441c6ade568 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/PurgePartitionEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/PurgePartitionEvent.java @@ -62,4 +62,14 @@ public boolean isExists() { public String partitionName() { return partitionName; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.PURGE_PARTITION; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/PurgePartitionFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/PurgePartitionFailureEvent.java index 964eb96da2a..0729eb56158 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/PurgePartitionFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/PurgePartitionFailureEvent.java @@ -53,4 +53,14 @@ public PurgePartitionFailureEvent( public String partitionName() { return partitionName; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.PURGE_PARTITION; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/PurgeTableEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/PurgeTableEvent.java index ebb9290947a..fd77c0dd6b1 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/PurgeTableEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/PurgeTableEvent.java @@ -49,4 +49,14 @@ public PurgeTableEvent(String user, NameIdentifier identifier, boolean isExists) public boolean isExists() { return isExists; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.PURGE_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/PurgeTableFailureEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/PurgeTableFailureEvent.java index 0dbf1894ac5..f30898eeca5 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/PurgeTableFailureEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/PurgeTableFailureEvent.java @@ -39,4 +39,14 @@ public final class PurgeTableFailureEvent extends TableFailureEvent { public PurgeTableFailureEvent(String user, NameIdentifier identifier, Exception exception) { super(user, identifier, exception); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.PURGE_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/PurgeTablePreEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/PurgeTablePreEvent.java index 908ea9c7007..408b9fe64c1 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/PurgeTablePreEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/PurgeTablePreEvent.java @@ -28,4 +28,14 @@ public class PurgeTablePreEvent extends TablePreEvent { public PurgeTablePreEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.PURGE_TABLE; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/SchemaEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/SchemaEvent.java index 369dcf250e1..010a05ede41 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/SchemaEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/SchemaEvent.java @@ -28,4 +28,9 @@ public abstract class SchemaEvent extends Event { protected SchemaEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + @Override + public OperationStatus operationStatus() { + return OperationStatus.SUCCESS; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/TableEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/TableEvent.java index b665afba4b0..32407ed62cd 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/TableEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/TableEvent.java @@ -43,4 +43,9 @@ public abstract class TableEvent extends Event { protected TableEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + @Override + public OperationStatus operationStatus() { + return OperationStatus.SUCCESS; + } } diff --git a/core/src/main/java/org/apache/gravitino/listener/api/event/TopicEvent.java b/core/src/main/java/org/apache/gravitino/listener/api/event/TopicEvent.java index 4218484cd10..aa17358b6ca 100644 --- a/core/src/main/java/org/apache/gravitino/listener/api/event/TopicEvent.java +++ b/core/src/main/java/org/apache/gravitino/listener/api/event/TopicEvent.java @@ -43,4 +43,9 @@ public abstract class TopicEvent extends Event { protected TopicEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + @Override + public OperationStatus operationStatus() { + return OperationStatus.SUCCESS; + } } diff --git a/core/src/test/java/org/apache/gravitino/audit/DummyAuditLog.java b/core/src/test/java/org/apache/gravitino/audit/DummyAuditLog.java index d75565b221d..ed2d64a157d 100644 --- a/core/src/test/java/org/apache/gravitino/audit/DummyAuditLog.java +++ b/core/src/test/java/org/apache/gravitino/audit/DummyAuditLog.java @@ -45,6 +45,7 @@ public String user() { return user; } + @SuppressWarnings("deprecation") @Override public Operation operation() { return operation; @@ -60,6 +61,7 @@ public long timestamp() { return timestamp; } + @SuppressWarnings("deprecation") @Override public Status status() { return status; diff --git a/core/src/test/java/org/apache/gravitino/audit/TestAuditManager.java b/core/src/test/java/org/apache/gravitino/audit/TestAuditManager.java index 2db57b48e7f..d4055ce35de 100644 --- a/core/src/test/java/org/apache/gravitino/audit/TestAuditManager.java +++ b/core/src/test/java/org/apache/gravitino/audit/TestAuditManager.java @@ -33,6 +33,8 @@ import org.apache.gravitino.Config; import org.apache.gravitino.Configs; import org.apache.gravitino.NameIdentifier; +import org.apache.gravitino.audit.v2.SimpleAuditLogV2; +import org.apache.gravitino.audit.v2.SimpleFormatterV2; import org.apache.gravitino.config.ConfigBuilder; import org.apache.gravitino.listener.EventBus; import org.apache.gravitino.listener.EventListenerManager; @@ -125,6 +127,7 @@ public void testAuditLog() { } /** Test audit log with default audit writer and formatter. */ + @SuppressWarnings("deprecation") @Test public void testFileAuditLog() { Config config = new Config(false) {}; @@ -136,7 +139,7 @@ public void testFileAuditLog() { eventBus.dispatchEvent(dummyEvent); Assertions.assertInstanceOf(FileAuditWriter.class, auditLogManager.getAuditLogWriter()); Assertions.assertInstanceOf( - SimpleFormatter.class, (auditLogManager.getAuditLogWriter()).getFormatter()); + SimpleFormatterV2.class, (auditLogManager.getAuditLogWriter()).getFormatter()); FileAuditWriter fileAuditWriter = (FileAuditWriter) auditLogManager.getAuditLogWriter(); String fileName = fileAuditWriter.fileName; @@ -148,7 +151,7 @@ public void testFileAuditLog() { String auditLog = readAuditLog(fileName); Formatter formatter = fileAuditWriter.getFormatter(); - SimpleAuditLog formattedAuditLog = (SimpleAuditLog) formatter.format(dummyEvent); + SimpleAuditLogV2 formattedAuditLog = (SimpleAuditLogV2) formatter.format(dummyEvent); Assertions.assertNotNull(formattedAuditLog); Assertions.assertEquals(formattedAuditLog.toString(), auditLog); diff --git a/core/src/test/java/org/apache/gravitino/audit/v2/TestCompatibilityUtils.java b/core/src/test/java/org/apache/gravitino/audit/v2/TestCompatibilityUtils.java new file mode 100644 index 00000000000..aa98ee08faf --- /dev/null +++ b/core/src/test/java/org/apache/gravitino/audit/v2/TestCompatibilityUtils.java @@ -0,0 +1,98 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.gravitino.audit.v2; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.apache.gravitino.audit.AuditLog.Operation; +import org.apache.gravitino.audit.AuditLog.Status; +import org.apache.gravitino.listener.api.event.OperationStatus; +import org.apache.gravitino.listener.api.event.OperationType; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class TestCompatibilityUtils { + + @Test + public void testToAuditLogOperation() { + Object[][] testCases = { + {OperationType.CREATE_METALAKE, Operation.CREATE_METALAKE}, + {OperationType.ALTER_METALAKE, Operation.ALTER_METALAKE}, + {OperationType.DROP_METALAKE, Operation.DROP_METALAKE}, + {OperationType.LOAD_METALAKE, Operation.LOAD_METALAKE}, + {OperationType.LIST_METALAKE, Operation.LIST_METALAKE}, + {OperationType.CREATE_CATALOG, Operation.CREATE_CATALOG}, + {OperationType.ALTER_CATALOG, Operation.ALTER_CATALOG}, + {OperationType.DROP_CATALOG, Operation.DROP_CATALOG}, + {OperationType.LOAD_CATALOG, Operation.LOAD_CATALOG}, + {OperationType.LIST_CATALOG, Operation.LIST_CATALOG}, + {OperationType.CREATE_SCHEMA, Operation.CREATE_SCHEMA}, + {OperationType.ALTER_SCHEMA, Operation.ALTER_SCHEMA}, + {OperationType.DROP_SCHEMA, Operation.DROP_SCHEMA}, + {OperationType.LOAD_SCHEMA, Operation.LOAD_SCHEMA}, + {OperationType.LIST_SCHEMA, Operation.LIST_SCHEMA}, + {OperationType.CREATE_TABLE, Operation.CREATE_TABLE}, + {OperationType.ALTER_TABLE, Operation.ALTER_TABLE}, + {OperationType.DROP_TABLE, Operation.DROP_TABLE}, + {OperationType.PURGE_TABLE, Operation.PURGE_TABLE}, + {OperationType.LOAD_TABLE, Operation.LOAD_TABLE}, + {OperationType.TABLE_EXISTS, Operation.UNKNOWN_OPERATION}, + {OperationType.LIST_TABLE, Operation.LIST_TABLE}, + {OperationType.ADD_PARTITION, Operation.UNKNOWN_OPERATION}, + {OperationType.DROP_PARTITION, Operation.UNKNOWN_OPERATION}, + {OperationType.PURGE_PARTITION, Operation.PURGE_PARTITION}, + {OperationType.LOAD_PARTITION, Operation.GET_PARTITION}, + {OperationType.PARTITION_EXISTS, Operation.PARTITION_EXIST}, + {OperationType.LIST_PARTITION, Operation.LIST_PARTITION}, + {OperationType.LIST_PARTITION_NAMES, Operation.LIST_PARTITION}, + {OperationType.CREATE_FILESET, Operation.CREATE_FILESET}, + {OperationType.ALTER_FILESET, Operation.ALTER_FILESET}, + {OperationType.DROP_FILESET, Operation.DROP_FILESET}, + {OperationType.LOAD_FILESET, Operation.LOAD_FILESET}, + {OperationType.LIST_FILESET, Operation.LIST_FILESET}, + {OperationType.GET_FILESET_LOCATION, Operation.GET_FILE_LOCATION}, + {OperationType.CREATE_TOPIC, Operation.CREATE_TOPIC}, + {OperationType.ALTER_TOPIC, Operation.ALTER_TOPIC}, + {OperationType.DROP_TOPIC, Operation.DROP_TOPIC}, + {OperationType.LOAD_TOPIC, Operation.LOAD_TOPIC}, + {OperationType.LIST_TOPIC, Operation.LIST_TOPIC}, + {null, Operation.UNKNOWN_OPERATION} + }; + + for (Object[] testCase : testCases) { + OperationType input = (OperationType) testCase[0]; + Operation expected = (Operation) testCase[1]; + Operation actual = CompatibilityUtils.toAuditLogOperation(input); + assertEquals(expected, actual); + } + } + + @Test + void testOperationStatus() { + Assertions.assertEquals( + Status.FAILURE, CompatibilityUtils.toAuditLogStatus(OperationStatus.FAILURE)); + Assertions.assertEquals( + Status.SUCCESS, CompatibilityUtils.toAuditLogStatus(OperationStatus.SUCCESS)); + Assertions.assertEquals( + Status.UNKNOWN, CompatibilityUtils.toAuditLogStatus(OperationStatus.UNPROCESSED)); + Assertions.assertEquals( + Status.UNKNOWN, CompatibilityUtils.toAuditLogStatus(OperationStatus.UNKNOWN)); + } +} diff --git a/core/src/test/java/org/apache/gravitino/listener/TestEventListenerManager.java b/core/src/test/java/org/apache/gravitino/listener/TestEventListenerManager.java index fd7a612726f..5f1905dd2bc 100644 --- a/core/src/test/java/org/apache/gravitino/listener/TestEventListenerManager.java +++ b/core/src/test/java/org/apache/gravitino/listener/TestEventListenerManager.java @@ -31,6 +31,7 @@ import org.apache.gravitino.listener.DummyEventListener.DummyAsyncIsolatedEventListener; import org.apache.gravitino.listener.api.EventListenerPlugin; import org.apache.gravitino.listener.api.event.Event; +import org.apache.gravitino.listener.api.event.OperationStatus; import org.apache.gravitino.listener.api.event.PreEvent; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -42,6 +43,11 @@ static class DummyPostEvent extends Event { protected DummyPostEvent(String user, NameIdentifier identifier) { super(user, identifier); } + + @Override + public OperationStatus operationStatus() { + return OperationStatus.SUCCESS; + } } static class DummyPreEvent extends PreEvent { diff --git a/core/src/test/java/org/apache/gravitino/listener/api/event/TestCatalogEvent.java b/core/src/test/java/org/apache/gravitino/listener/api/event/TestCatalogEvent.java index b1ac4eba659..f334f8c166e 100644 --- a/core/src/test/java/org/apache/gravitino/listener/api/event/TestCatalogEvent.java +++ b/core/src/test/java/org/apache/gravitino/listener/api/event/TestCatalogEvent.java @@ -71,12 +71,16 @@ void testCreateCatalogEvent() { Assertions.assertEquals(CreateCatalogEvent.class, event.getClass()); CatalogInfo catalogInfo = ((CreateCatalogEvent) event).createdCatalogInfo(); checkCatalogInfo(catalogInfo, catalog); + Assertions.assertEquals(OperationType.CREATE_CATALOG, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(CreateCatalogPreEvent.class, preEvent.getClass()); CatalogInfo preCatalogInfo = ((CreateCatalogPreEvent) preEvent).createCatalogRequest(); checkCatalogInfo(preCatalogInfo, catalog); + Assertions.assertEquals(OperationType.CREATE_CATALOG, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -88,10 +92,14 @@ void testLoadCatalogEvent() { Assertions.assertEquals(LoadCatalogEvent.class, event.getClass()); CatalogInfo catalogInfo = ((LoadCatalogEvent) event).loadedCatalogInfo(); checkCatalogInfo(catalogInfo, catalog); + Assertions.assertEquals(OperationType.LOAD_CATALOG, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(LoadCatalogPreEvent.class, preEvent.getClass()); + Assertions.assertEquals(OperationType.LOAD_CATALOG, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -107,6 +115,8 @@ void testAlterCatalogEvent() { CatalogChange[] catalogChanges = ((AlterCatalogEvent) event).catalogChanges(); Assertions.assertEquals(1, catalogChanges.length); Assertions.assertEquals(catalogChange, catalogChanges[0]); + Assertions.assertEquals(OperationType.ALTER_CATALOG, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); @@ -114,6 +124,8 @@ void testAlterCatalogEvent() { CatalogChange[] preCatalogChanges = ((AlterCatalogPreEvent) preEvent).catalogChanges(); Assertions.assertEquals(1, preCatalogChanges.length); Assertions.assertEquals(catalogChange, preCatalogChanges[0]); + Assertions.assertEquals(OperationType.ALTER_CATALOG, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -124,10 +136,14 @@ void testDropCatalogEvent() { Assertions.assertEquals(identifier, event.identifier()); Assertions.assertEquals(DropCatalogEvent.class, event.getClass()); Assertions.assertEquals(true, ((DropCatalogEvent) event).isExists()); + Assertions.assertEquals(OperationType.DROP_CATALOG, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(DropCatalogPreEvent.class, preEvent.getClass()); + Assertions.assertEquals(OperationType.DROP_CATALOG, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -138,11 +154,15 @@ void testListCatalogEvent() { Assertions.assertEquals(namespace.toString(), event.identifier().toString()); Assertions.assertEquals(ListCatalogEvent.class, event.getClass()); Assertions.assertEquals(namespace, ((ListCatalogEvent) event).namespace()); + Assertions.assertEquals(OperationType.LIST_CATALOG, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(namespace.toString(), preEvent.identifier().toString()); Assertions.assertEquals(ListCatalogPreEvent.class, preEvent.getClass()); Assertions.assertEquals(namespace, ((ListCatalogPreEvent) preEvent).namespace()); + Assertions.assertEquals(OperationType.LIST_CATALOG, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -153,11 +173,15 @@ void testListCatalogInfoEvent() { Assertions.assertEquals(namespace.toString(), event.identifier().toString()); Assertions.assertEquals(ListCatalogEvent.class, event.getClass()); Assertions.assertEquals(namespace, ((ListCatalogEvent) event).namespace()); + Assertions.assertEquals(OperationType.LIST_CATALOG, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(namespace.toString(), preEvent.identifier().toString()); Assertions.assertEquals(ListCatalogPreEvent.class, preEvent.getClass()); Assertions.assertEquals(namespace, ((ListCatalogPreEvent) preEvent).namespace()); + Assertions.assertEquals(OperationType.LIST_CATALOG, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -179,6 +203,8 @@ void testCreateCatalogFailureEvent() { GravitinoRuntimeException.class, ((CreateCatalogFailureEvent) event).exception().getClass()); checkCatalogInfo(((CreateCatalogFailureEvent) event).createCatalogRequest(), catalog); + Assertions.assertEquals(OperationType.CREATE_CATALOG, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -191,6 +217,8 @@ void testLoadCatalogFailureEvent() { Assertions.assertEquals(LoadCatalogFailureEvent.class, event.getClass()); Assertions.assertEquals( GravitinoRuntimeException.class, ((LoadCatalogFailureEvent) event).exception().getClass()); + Assertions.assertEquals(OperationType.LOAD_CATALOG, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -208,6 +236,8 @@ void testAlterCatalogFailureEvent() { CatalogChange[] catalogChanges = ((AlterCatalogFailureEvent) event).catalogChanges(); Assertions.assertEquals(1, catalogChanges.length); Assertions.assertEquals(catalogChange, catalogChanges[0]); + Assertions.assertEquals(OperationType.ALTER_CATALOG, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -220,6 +250,8 @@ void testDropCatalogFailureEvent() { Assertions.assertEquals(DropCatalogFailureEvent.class, event.getClass()); Assertions.assertEquals( GravitinoRuntimeException.class, ((DropCatalogFailureEvent) event).exception().getClass()); + Assertions.assertEquals(OperationType.DROP_CATALOG, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -232,6 +264,8 @@ void testListCatalogFailureEvent() { Assertions.assertEquals( GravitinoRuntimeException.class, ((ListCatalogFailureEvent) event).exception().getClass()); Assertions.assertEquals(namespace, ((ListCatalogFailureEvent) event).namespace()); + Assertions.assertEquals(OperationType.LIST_CATALOG, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -244,6 +278,8 @@ void testListCatalogInfoFailureEvent() { Assertions.assertEquals( GravitinoRuntimeException.class, ((ListCatalogFailureEvent) event).exception().getClass()); Assertions.assertEquals(namespace, ((ListCatalogFailureEvent) event).namespace()); + Assertions.assertEquals(OperationType.LIST_CATALOG, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } private void checkCatalogInfo(CatalogInfo catalogInfo, Catalog catalog) { diff --git a/core/src/test/java/org/apache/gravitino/listener/api/event/TestFilesetEvent.java b/core/src/test/java/org/apache/gravitino/listener/api/event/TestFilesetEvent.java index 3210887117b..5bc48016855 100644 --- a/core/src/test/java/org/apache/gravitino/listener/api/event/TestFilesetEvent.java +++ b/core/src/test/java/org/apache/gravitino/listener/api/event/TestFilesetEvent.java @@ -80,6 +80,8 @@ void testCreateFilesetEvent() { Assertions.assertEquals(CreateFilesetEvent.class, event.getClass()); FilesetInfo filesetInfo = ((CreateFilesetEvent) event).createdFilesetInfo(); checkFilesetInfo(filesetInfo, fileset); + Assertions.assertEquals(OperationType.CREATE_FILESET, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -91,6 +93,8 @@ void testLoadFilesetEvent() { Assertions.assertEquals(LoadFilesetEvent.class, event.getClass()); FilesetInfo filesetInfo = ((LoadFilesetEvent) event).loadedFilesetInfo(); checkFilesetInfo(filesetInfo, fileset); + Assertions.assertEquals(OperationType.LOAD_FILESET, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -105,6 +109,8 @@ void testAlterFilesetEvent() { checkFilesetInfo(filesetInfo, fileset); Assertions.assertEquals(1, ((AlterFilesetEvent) event).filesetChanges().length); Assertions.assertEquals(change, ((AlterFilesetEvent) event).filesetChanges()[0]); + Assertions.assertEquals(OperationType.ALTER_FILESET, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -115,6 +121,8 @@ void testDropFilesetEvent() { Assertions.assertEquals(identifier, event.identifier()); Assertions.assertEquals(DropFilesetEvent.class, event.getClass()); Assertions.assertTrue(((DropFilesetEvent) event).isExists()); + Assertions.assertEquals(OperationType.DROP_FILESET, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -125,6 +133,8 @@ void testListFilesetEvent() { Assertions.assertEquals(namespace.toString(), event.identifier().toString()); Assertions.assertEquals(ListFilesetEvent.class, event.getClass()); Assertions.assertEquals(namespace, ((ListFilesetEvent) event).namespace()); + Assertions.assertEquals(OperationType.LIST_FILESET, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -166,10 +176,12 @@ void testGetFileLocationEvent() { FilesetDataOperation.GET_FILE_STATUS.name(), actualContext.get(FilesetAuditConstants.HTTP_HEADER_FILESET_DATA_OPERATION)); Assertions.assertEquals("test", ((GetFileLocationEvent) event1).subPath()); + Assertions.assertEquals(OperationType.GET_FILESET_LOCATION, event1.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event1.operationStatus()); } @Test - void testCreateSchemaFailureEvent() { + void testCreateFilesetFailureEvent() { NameIdentifier identifier = NameIdentifier.of("metalake", "catalog", "fileset"); Assertions.assertThrowsExactly( GravitinoRuntimeException.class, @@ -187,6 +199,8 @@ void testCreateSchemaFailureEvent() { GravitinoRuntimeException.class, ((CreateFilesetFailureEvent) event).exception().getClass()); checkFilesetInfo(((CreateFilesetFailureEvent) event).createFilesetRequest(), fileset); + Assertions.assertEquals(OperationType.CREATE_FILESET, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -199,6 +213,8 @@ void testLoadFilesetFailureEvent() { Assertions.assertEquals(LoadFilesetFailureEvent.class, event.getClass()); Assertions.assertEquals( GravitinoRuntimeException.class, ((LoadFilesetFailureEvent) event).exception().getClass()); + Assertions.assertEquals(OperationType.LOAD_FILESET, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -214,6 +230,8 @@ void testAlterFilesetFailureEvent() { GravitinoRuntimeException.class, ((AlterFilesetFailureEvent) event).exception().getClass()); Assertions.assertEquals(1, ((AlterFilesetFailureEvent) event).filesetChanges().length); Assertions.assertEquals(change, ((AlterFilesetFailureEvent) event).filesetChanges()[0]); + Assertions.assertEquals(OperationType.ALTER_FILESET, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -226,6 +244,8 @@ void testDropFilesetFailureEvent() { Assertions.assertEquals(DropFilesetFailureEvent.class, event.getClass()); Assertions.assertEquals( GravitinoRuntimeException.class, ((DropFilesetFailureEvent) event).exception().getClass()); + Assertions.assertEquals(OperationType.DROP_FILESET, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -239,6 +259,8 @@ void testListFilesetFailureEvent() { Assertions.assertEquals( GravitinoRuntimeException.class, ((ListFilesetFailureEvent) event).exception().getClass()); Assertions.assertEquals(namespace, ((ListFilesetFailureEvent) event).namespace()); + Assertions.assertEquals(OperationType.LIST_FILESET, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -253,6 +275,8 @@ void testGetFileLocationFailureEvent() { Assertions.assertEquals( GravitinoRuntimeException.class, ((GetFileLocationFailureEvent) event).exception().getClass()); + Assertions.assertEquals(OperationType.GET_FILESET_LOCATION, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } private void checkFilesetInfo(FilesetInfo filesetInfo, Fileset fileset) { diff --git a/core/src/test/java/org/apache/gravitino/listener/api/event/TestMetalakeEvent.java b/core/src/test/java/org/apache/gravitino/listener/api/event/TestMetalakeEvent.java index 39f727dc592..0eafd111b99 100644 --- a/core/src/test/java/org/apache/gravitino/listener/api/event/TestMetalakeEvent.java +++ b/core/src/test/java/org/apache/gravitino/listener/api/event/TestMetalakeEvent.java @@ -69,12 +69,16 @@ void testCreateMetalakeEvent() { Assertions.assertEquals(CreateMetalakeEvent.class, event.getClass()); MetalakeInfo metalakeInfo = ((CreateMetalakeEvent) event).createdMetalakeInfo(); checkMetalakeInfo(metalakeInfo, metalake); + Assertions.assertEquals(OperationType.CREATE_METALAKE, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(CreateMetalakePreEvent.class, preEvent.getClass()); metalakeInfo = ((CreateMetalakePreEvent) preEvent).createMetalakeRequest(); checkMetalakeInfo(metalakeInfo, metalake); + Assertions.assertEquals(OperationType.CREATE_METALAKE, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -86,10 +90,14 @@ void testLoadMetalakeEvent() { Assertions.assertEquals(LoadMetalakeEvent.class, event.getClass()); MetalakeInfo metalakeInfo = ((LoadMetalakeEvent) event).loadedMetalakeInfo(); checkMetalakeInfo(metalakeInfo, metalake); + Assertions.assertEquals(OperationType.LOAD_METALAKE, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(LoadMetalakePreEvent.class, preEvent.getClass()); + Assertions.assertEquals(OperationType.LOAD_METALAKE, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -105,6 +113,8 @@ void testAlterMetalakeEvent() { MetalakeChange[] metalakeChanges = ((AlterMetalakeEvent) event).metalakeChanges(); Assertions.assertTrue(metalakeChanges.length == 1); Assertions.assertEquals(metalakeChange, metalakeChanges[0]); + Assertions.assertEquals(OperationType.ALTER_METALAKE, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); @@ -112,6 +122,8 @@ void testAlterMetalakeEvent() { Assertions.assertEquals(1, ((AlterMetalakePreEvent) preEvent).metalakeChanges().length); Assertions.assertEquals( metalakeChange, ((AlterMetalakePreEvent) preEvent).metalakeChanges()[0]); + Assertions.assertEquals(OperationType.ALTER_METALAKE, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -122,10 +134,14 @@ void testDropMetalakeEvent() { Assertions.assertEquals(identifier, event.identifier()); Assertions.assertEquals(DropMetalakeEvent.class, event.getClass()); Assertions.assertTrue(((DropMetalakeEvent) event).isExists()); + Assertions.assertEquals(OperationType.DROP_METALAKE, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(DropMetalakePreEvent.class, preEvent.getClass()); + Assertions.assertEquals(OperationType.DROP_METALAKE, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -134,6 +150,14 @@ void testListMetalakeEvent() { Event event = dummyEventListener.popPostEvent(); Assertions.assertNull(event.identifier()); Assertions.assertEquals(ListMetalakeEvent.class, event.getClass()); + Assertions.assertEquals(OperationType.LIST_METALAKE, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); + + PreEvent preEvent = dummyEventListener.popPreEvent(); + Assertions.assertEquals(null, preEvent.identifier()); + Assertions.assertEquals(ListMetalakePreEvent.class, preEvent.getClass()); + Assertions.assertEquals(OperationType.LIST_METALAKE, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -151,6 +175,8 @@ void testCreateMetalakeFailureEvent() { GravitinoRuntimeException.class, ((CreateMetalakeFailureEvent) event).exception().getClass()); checkMetalakeInfo(((CreateMetalakeFailureEvent) event).createMetalakeRequest(), metalake); + Assertions.assertEquals(OperationType.CREATE_METALAKE, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -163,6 +189,8 @@ void testLoadMetalakeFailureEvent() { Assertions.assertEquals(LoadMetalakeFailureEvent.class, event.getClass()); Assertions.assertEquals( GravitinoRuntimeException.class, ((LoadMetalakeFailureEvent) event).exception().getClass()); + Assertions.assertEquals(OperationType.LOAD_METALAKE, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -181,6 +209,8 @@ void testAlterMetalakeFailureEvent() { Assertions.assertEquals(1, ((AlterMetalakeFailureEvent) event).metalakeChanges().length); Assertions.assertEquals( metalakeChange, ((AlterMetalakeFailureEvent) event).metalakeChanges()[0]); + Assertions.assertEquals(OperationType.ALTER_METALAKE, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -193,6 +223,8 @@ void testDropMetalakeFailureEvent() { Assertions.assertEquals(DropMetalakeFailureEvent.class, event.getClass()); Assertions.assertEquals( GravitinoRuntimeException.class, ((DropMetalakeFailureEvent) event).exception().getClass()); + Assertions.assertEquals(OperationType.DROP_METALAKE, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -204,6 +236,8 @@ void testListMetalakeFailureEvent() { Assertions.assertEquals(ListMetalakeFailureEvent.class, event.getClass()); Assertions.assertEquals( GravitinoRuntimeException.class, ((ListMetalakeFailureEvent) event).exception().getClass()); + Assertions.assertEquals(OperationType.LIST_METALAKE, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } private void checkMetalakeInfo(MetalakeInfo metalakeInfo, Metalake metalake) { diff --git a/core/src/test/java/org/apache/gravitino/listener/api/event/TestPartitionEvent.java b/core/src/test/java/org/apache/gravitino/listener/api/event/TestPartitionEvent.java index a1aa8aab2d0..e8d616365d2 100644 --- a/core/src/test/java/org/apache/gravitino/listener/api/event/TestPartitionEvent.java +++ b/core/src/test/java/org/apache/gravitino/listener/api/event/TestPartitionEvent.java @@ -115,6 +115,8 @@ void testAddPartitionEvent() { Assertions.assertEquals(AddPartitionEvent.class, event.getClass()); PartitionInfo partitionInfo = ((AddPartitionEvent) event).createdPartitionInfo(); checkPartitionInfo(partitionInfo, partition); + Assertions.assertEquals(OperationType.ADD_PARTITION, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -125,6 +127,8 @@ void testDropPartitionEvent() { Assertions.assertEquals(identifier, event.identifier()); Assertions.assertEquals(DropPartitionEvent.class, event.getClass()); Assertions.assertEquals(false, ((DropPartitionEvent) event).isExists()); + Assertions.assertEquals(OperationType.DROP_PARTITION, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -135,6 +139,8 @@ void testPartitionExistsEvent() { Assertions.assertEquals(identifier, event.identifier()); Assertions.assertEquals(PartitionExistsEvent.class, event.getClass()); Assertions.assertEquals(false, ((PartitionExistsEvent) event).isExists()); + Assertions.assertEquals(OperationType.PARTITION_EXISTS, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -145,6 +151,8 @@ void testListPartitionEvent() { Assertions.assertEquals(identifier, event.identifier()); Assertions.assertEquals(ListPartitionEvent.class, event.getClass()); Assertions.assertEquals(identifier, ((ListPartitionEvent) event).identifier()); + Assertions.assertEquals(OperationType.LIST_PARTITION, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -155,6 +163,8 @@ void testListPartitionNamesEvent() { Assertions.assertEquals(identifier, event.identifier()); Assertions.assertEquals(ListPartitionNamesEvent.class, event.getClass()); Assertions.assertEquals(identifier, ((ListPartitionNamesEvent) event).identifier()); + Assertions.assertEquals(OperationType.LIST_PARTITION_NAMES, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -165,6 +175,8 @@ void testPurgePartitionEvent() { Assertions.assertEquals(identifier, event.identifier()); Assertions.assertEquals(PurgePartitionEvent.class, event.getClass()); Assertions.assertEquals(identifier, ((PurgePartitionEvent) event).identifier()); + Assertions.assertEquals(OperationType.PURGE_PARTITION, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -179,6 +191,8 @@ void testAddPartitionFailureEvent() { GravitinoRuntimeException.class, ((AddPartitionFailureEvent) event).exception().getClass()); checkPartitionInfo(((AddPartitionFailureEvent) event).createdPartitionInfo(), partition); Assertions.assertEquals(identifier, event.identifier()); + Assertions.assertEquals(OperationType.ADD_PARTITION, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -193,6 +207,8 @@ void testDropPartitionFailureEvent() { GravitinoRuntimeException.class, ((DropPartitionFailureEvent) event).exception().getClass()); Assertions.assertEquals(identifier, event.identifier()); + Assertions.assertEquals(OperationType.DROP_PARTITION, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -207,6 +223,8 @@ void testPartitionExistsFailureEvent() { GravitinoRuntimeException.class, ((PartitionExistsFailureEvent) event).exception().getClass()); Assertions.assertEquals(identifier, event.identifier()); + Assertions.assertEquals(OperationType.PARTITION_EXISTS, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -220,6 +238,8 @@ void testListPartitionFailureEvent() { GravitinoRuntimeException.class, ((ListPartitionFailureEvent) event).exception().getClass()); Assertions.assertEquals(identifier, ((ListPartitionFailureEvent) event).identifier()); + Assertions.assertEquals(OperationType.LIST_PARTITION, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -233,6 +253,8 @@ void testListPartitionNamesFailureEvent() { GravitinoRuntimeException.class, ((ListPartitionNamesFailureEvent) event).exception().getClass()); Assertions.assertEquals(identifier, ((ListPartitionNamesFailureEvent) event).identifier()); + Assertions.assertEquals(OperationType.LIST_PARTITION_NAMES, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -247,6 +269,8 @@ void testPurgePartitionFailureEvent() { GravitinoRuntimeException.class, ((PurgePartitionFailureEvent) event).exception().getClass()); Assertions.assertEquals(identifier, event.identifier()); + Assertions.assertEquals(OperationType.PURGE_PARTITION, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } private void checkPartitionInfo(PartitionInfo partitionInfo, Partition partition) { diff --git a/core/src/test/java/org/apache/gravitino/listener/api/event/TestSchemaEvent.java b/core/src/test/java/org/apache/gravitino/listener/api/event/TestSchemaEvent.java index 5b1b39d966d..1bd48e5f9cd 100644 --- a/core/src/test/java/org/apache/gravitino/listener/api/event/TestSchemaEvent.java +++ b/core/src/test/java/org/apache/gravitino/listener/api/event/TestSchemaEvent.java @@ -72,12 +72,16 @@ void testCreateSchemaEvent() { Assertions.assertEquals(CreateSchemaEvent.class, event.getClass()); SchemaInfo schemaInfo = ((CreateSchemaEvent) event).createdSchemaInfo(); checkSchemaInfo(schemaInfo, schema); + Assertions.assertEquals(OperationType.CREATE_SCHEMA, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(CreateSchemaPreEvent.class, preEvent.getClass()); SchemaInfo preSchemaInfo = ((CreateSchemaPreEvent) preEvent).createSchemaRequest(); checkSchemaInfo(preSchemaInfo, schema); + Assertions.assertEquals(OperationType.CREATE_SCHEMA, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -90,10 +94,14 @@ void testLoadSchemaEvent() { Assertions.assertEquals(LoadSchemaEvent.class, event.getClass()); SchemaInfo schemaInfo = ((LoadSchemaEvent) event).loadedSchemaInfo(); checkSchemaInfo(schemaInfo, schema); + Assertions.assertEquals(OperationType.LOAD_SCHEMA, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(LoadSchemaPreEvent.class, preEvent.getClass()); + Assertions.assertEquals(OperationType.LOAD_SCHEMA, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -105,11 +113,15 @@ void testListSchemaEvent() { Assertions.assertEquals(namespace.toString(), event.identifier().toString()); Assertions.assertEquals(ListSchemaEvent.class, event.getClass()); Assertions.assertEquals(namespace, ((ListSchemaEvent) event).namespace()); + Assertions.assertEquals(OperationType.LIST_SCHEMA, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(namespace.toString(), preEvent.identifier().toString()); Assertions.assertEquals(ListSchemaPreEvent.class, preEvent.getClass()); Assertions.assertEquals(namespace, ((ListSchemaPreEvent) preEvent).namespace()); + Assertions.assertEquals(OperationType.LIST_SCHEMA, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -125,12 +137,16 @@ void testAlterSchemaEvent() { checkSchemaInfo(schemaInfo, schema); Assertions.assertEquals(1, ((AlterSchemaEvent) event).schemaChanges().length); Assertions.assertEquals(schemaChange, ((AlterSchemaEvent) event).schemaChanges()[0]); + Assertions.assertEquals(OperationType.ALTER_SCHEMA, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(AlterSchemaPreEvent.class, preEvent.getClass()); Assertions.assertEquals(1, ((AlterSchemaPreEvent) preEvent).schemaChanges().length); Assertions.assertEquals(schemaChange, ((AlterSchemaPreEvent) preEvent).schemaChanges()[0]); + Assertions.assertEquals(OperationType.ALTER_SCHEMA, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -143,10 +159,14 @@ void testDropSchemaEvent() { Assertions.assertEquals(DropSchemaEvent.class, event.getClass()); Assertions.assertEquals(true, ((DropSchemaEvent) event).cascade()); Assertions.assertEquals(false, ((DropSchemaEvent) event).isExists()); + Assertions.assertEquals(OperationType.DROP_SCHEMA, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(DropSchemaPreEvent.class, preEvent.getClass()); + Assertions.assertEquals(OperationType.DROP_SCHEMA, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -161,6 +181,8 @@ void testCreateSchemaFailureEvent() { Assertions.assertEquals( GravitinoRuntimeException.class, ((CreateSchemaFailureEvent) event).exception().getClass()); checkSchemaInfo(((CreateSchemaFailureEvent) event).createSchemaRequest(), schema); + Assertions.assertEquals(OperationType.CREATE_SCHEMA, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -173,6 +195,8 @@ void testLoadSchemaFailureEvent() { Assertions.assertEquals(LoadSchemaFailureEvent.class, event.getClass()); Assertions.assertEquals( GravitinoRuntimeException.class, ((LoadSchemaFailureEvent) event).exception().getClass()); + Assertions.assertEquals(OperationType.LOAD_SCHEMA, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -190,6 +214,8 @@ void testAlterSchemaFailureEvent() { GravitinoRuntimeException.class, ((AlterSchemaFailureEvent) event).exception().getClass()); Assertions.assertEquals(1, ((AlterSchemaFailureEvent) event).schemaChanges().length); Assertions.assertEquals(schemaChange, ((AlterSchemaFailureEvent) event).schemaChanges()[0]); + Assertions.assertEquals(OperationType.ALTER_SCHEMA, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -203,6 +229,8 @@ void testDropSchemaFailureEvent() { Assertions.assertEquals( GravitinoRuntimeException.class, ((DropSchemaFailureEvent) event).exception().getClass()); Assertions.assertEquals(true, ((DropSchemaFailureEvent) event).cascade()); + Assertions.assertEquals(OperationType.DROP_SCHEMA, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -216,6 +244,8 @@ void testListSchemaFailureEvent() { Assertions.assertEquals( GravitinoRuntimeException.class, ((ListSchemaFailureEvent) event).exception().getClass()); Assertions.assertEquals(namespace, ((ListSchemaFailureEvent) event).namespace()); + Assertions.assertEquals(OperationType.LIST_SCHEMA, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } private void checkSchemaInfo(SchemaInfo schemaInfo, Schema schema) { diff --git a/core/src/test/java/org/apache/gravitino/listener/api/event/TestTableEvent.java b/core/src/test/java/org/apache/gravitino/listener/api/event/TestTableEvent.java index 48b2557c763..5d66da9fd32 100644 --- a/core/src/test/java/org/apache/gravitino/listener/api/event/TestTableEvent.java +++ b/core/src/test/java/org/apache/gravitino/listener/api/event/TestTableEvent.java @@ -90,12 +90,16 @@ void testCreateTableEvent() { Assertions.assertEquals(CreateTableEvent.class, event.getClass()); TableInfo tableInfo = ((CreateTableEvent) event).createdTableInfo(); checkTableInfo(tableInfo, table); + Assertions.assertEquals(OperationType.CREATE_TABLE, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(CreateTablePreEvent.class, preEvent.getClass()); tableInfo = ((CreateTablePreEvent) preEvent).createTableRequest(); checkTableInfo(tableInfo, table); + Assertions.assertEquals(OperationType.CREATE_TABLE, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -108,10 +112,14 @@ void testLoadTableEvent() { Assertions.assertEquals(LoadTableEvent.class, event.getClass()); TableInfo tableInfo = ((LoadTableEvent) event).loadedTableInfo(); checkTableInfo(tableInfo, table); + Assertions.assertEquals(OperationType.LOAD_TABLE, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(LoadTablePreEvent.class, preEvent.getClass()); + Assertions.assertEquals(OperationType.LOAD_TABLE, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -127,12 +135,16 @@ void testAlterTableEvent() { checkTableInfo(tableInfo, table); Assertions.assertEquals(1, ((AlterTableEvent) event).tableChanges().length); Assertions.assertEquals(change, ((AlterTableEvent) event).tableChanges()[0]); + Assertions.assertEquals(OperationType.ALTER_TABLE, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(AlterTablePreEvent.class, preEvent.getClass()); Assertions.assertEquals(1, ((AlterTablePreEvent) preEvent).tableChanges().length); Assertions.assertEquals(change, ((AlterTablePreEvent) preEvent).tableChanges()[0]); + Assertions.assertEquals(OperationType.ALTER_TABLE, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -144,10 +156,14 @@ void testDropTableEvent() { Assertions.assertEquals(identifier, event.identifier()); Assertions.assertEquals(DropTableEvent.class, event.getClass()); Assertions.assertEquals(true, ((DropTableEvent) event).isExists()); + Assertions.assertEquals(OperationType.DROP_TABLE, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(DropTablePreEvent.class, preEvent.getClass()); + Assertions.assertEquals(OperationType.DROP_TABLE, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -159,10 +175,14 @@ void testPurgeTableEvent() { Assertions.assertEquals(identifier, event.identifier()); Assertions.assertEquals(PurgeTableEvent.class, event.getClass()); Assertions.assertEquals(true, ((PurgeTableEvent) event).isExists()); + Assertions.assertEquals(OperationType.PURGE_TABLE, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(PurgeTablePreEvent.class, preEvent.getClass()); + Assertions.assertEquals(OperationType.PURGE_TABLE, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -174,11 +194,15 @@ void testListTableEvent() { Assertions.assertEquals(namespace.toString(), event.identifier().toString()); Assertions.assertEquals(ListTableEvent.class, event.getClass()); Assertions.assertEquals(namespace, ((ListTableEvent) event).namespace()); + Assertions.assertEquals(OperationType.LIST_TABLE, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(namespace.toString(), preEvent.identifier().toString()); Assertions.assertEquals(ListTablePreEvent.class, preEvent.getClass()); Assertions.assertEquals(namespace, ((ListTablePreEvent) preEvent).namespace()); + Assertions.assertEquals(OperationType.LIST_TABLE, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); } @Test @@ -202,6 +226,8 @@ void testCreateTableFailureEvent() { Assertions.assertEquals( GravitinoRuntimeException.class, ((CreateTableFailureEvent) event).exception().getClass()); checkTableInfo(((CreateTableFailureEvent) event).createTableRequest(), table); + Assertions.assertEquals(OperationType.CREATE_TABLE, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -214,6 +240,8 @@ void testLoadTableFailureEvent() { Assertions.assertEquals(LoadTableFailureEvent.class, event.getClass()); Assertions.assertEquals( GravitinoRuntimeException.class, ((LoadTableFailureEvent) event).exception().getClass()); + Assertions.assertEquals(OperationType.LOAD_TABLE, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -229,6 +257,8 @@ void testAlterTableFailureEvent() { GravitinoRuntimeException.class, ((AlterTableFailureEvent) event).exception().getClass()); Assertions.assertEquals(1, ((AlterTableFailureEvent) event).tableChanges().length); Assertions.assertEquals(change, ((AlterTableFailureEvent) event).tableChanges()[0]); + Assertions.assertEquals(OperationType.ALTER_TABLE, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -241,6 +271,8 @@ void testDropTableFailureEvent() { Assertions.assertEquals(DropTableFailureEvent.class, event.getClass()); Assertions.assertEquals( GravitinoRuntimeException.class, ((DropTableFailureEvent) event).exception().getClass()); + Assertions.assertEquals(OperationType.DROP_TABLE, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -253,6 +285,8 @@ void testPurgeTableFailureEvent() { Assertions.assertEquals(PurgeTableFailureEvent.class, event.getClass()); Assertions.assertEquals( GravitinoRuntimeException.class, ((PurgeTableFailureEvent) event).exception().getClass()); + Assertions.assertEquals(OperationType.PURGE_TABLE, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -266,6 +300,8 @@ void testListTableFailureEvent() { Assertions.assertEquals( GravitinoRuntimeException.class, ((ListTableFailureEvent) event).exception().getClass()); Assertions.assertEquals(namespace, ((ListTableFailureEvent) event).namespace()); + Assertions.assertEquals(OperationType.LIST_TABLE, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } private void checkTableInfo(TableInfo tableInfo, Table table) { diff --git a/core/src/test/java/org/apache/gravitino/listener/api/event/TestTopicEvent.java b/core/src/test/java/org/apache/gravitino/listener/api/event/TestTopicEvent.java index 35a158cdd88..032a7700186 100644 --- a/core/src/test/java/org/apache/gravitino/listener/api/event/TestTopicEvent.java +++ b/core/src/test/java/org/apache/gravitino/listener/api/event/TestTopicEvent.java @@ -45,6 +45,7 @@ @TestInstance(Lifecycle.PER_CLASS) public class TestTopicEvent { + private TopicEventDispatcher dispatcher; private TopicEventDispatcher failureDispatcher; private DummyEventListener dummyEventListener; @@ -65,21 +66,21 @@ void init() { void testCreateTopicEvent() { NameIdentifier identifier = NameIdentifier.of("metalake", "catalog", "topic"); dispatcher.createTopic(identifier, topic.comment(), null, topic.properties()); - { - PreEvent preEvent = dummyEventListener.popPreEvent(); - Assertions.assertEquals(identifier, preEvent.identifier()); - Assertions.assertEquals(CreateTopicPreEvent.class, preEvent.getClass()); - TopicInfo topicInfo = ((CreateTopicPreEvent) preEvent).createTopicRequest(); - checkTopicInfo(topicInfo, topic); - } + PreEvent preEvent = dummyEventListener.popPreEvent(); + Assertions.assertEquals(identifier, preEvent.identifier()); + Assertions.assertEquals(CreateTopicPreEvent.class, preEvent.getClass()); + TopicInfo topicInfo = ((CreateTopicPreEvent) preEvent).createTopicRequest(); + checkTopicInfo(topicInfo, topic); + Assertions.assertEquals(OperationType.CREATE_TOPIC, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); - { - Event event = dummyEventListener.popPostEvent(); - Assertions.assertEquals(identifier, event.identifier()); - Assertions.assertEquals(CreateTopicEvent.class, event.getClass()); - TopicInfo topicInfo = ((CreateTopicEvent) event).createdTopicInfo(); - checkTopicInfo(topicInfo, topic); - } + Event event = dummyEventListener.popPostEvent(); + Assertions.assertEquals(identifier, event.identifier()); + Assertions.assertEquals(CreateTopicEvent.class, event.getClass()); + topicInfo = ((CreateTopicEvent) event).createdTopicInfo(); + checkTopicInfo(topicInfo, topic); + Assertions.assertEquals(OperationType.CREATE_TOPIC, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -90,12 +91,16 @@ void testLoadTopicEvent() { PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(LoadTopicPreEvent.class, preEvent.getClass()); + Assertions.assertEquals(OperationType.LOAD_TOPIC, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); Event event = dummyEventListener.popPostEvent(); Assertions.assertEquals(identifier, event.identifier()); Assertions.assertEquals(LoadTopicEvent.class, event.getClass()); TopicInfo topicInfo = ((LoadTopicEvent) event).loadedTopicInfo(); checkTopicInfo(topicInfo, topic); + Assertions.assertEquals(OperationType.LOAD_TOPIC, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -109,6 +114,8 @@ void testAlterTopicEvent() { Assertions.assertEquals(AlterTopicPreEvent.class, preEvent.getClass()); Assertions.assertEquals(1, ((AlterTopicPreEvent) preEvent).topicChanges().length); Assertions.assertEquals(topicChange, ((AlterTopicPreEvent) preEvent).topicChanges()[0]); + Assertions.assertEquals(OperationType.ALTER_TOPIC, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); Event event = dummyEventListener.popPostEvent(); Assertions.assertEquals(identifier, event.identifier()); @@ -117,6 +124,8 @@ void testAlterTopicEvent() { checkTopicInfo(topicInfo, topic); Assertions.assertEquals(1, ((AlterTopicEvent) event).topicChanges().length); Assertions.assertEquals(topicChange, ((AlterTopicEvent) event).topicChanges()[0]); + Assertions.assertEquals(OperationType.ALTER_TOPIC, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -127,11 +136,15 @@ void testDropTopicEvent() { PreEvent preEvent = dummyEventListener.popPreEvent(); Assertions.assertEquals(identifier, preEvent.identifier()); Assertions.assertEquals(DropTopicPreEvent.class, preEvent.getClass()); + Assertions.assertEquals(OperationType.DROP_TOPIC, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); Event event = dummyEventListener.popPostEvent(); Assertions.assertEquals(identifier, event.identifier()); Assertions.assertEquals(DropTopicEvent.class, event.getClass()); Assertions.assertEquals(true, ((DropTopicEvent) event).isExists()); + Assertions.assertEquals(OperationType.DROP_TOPIC, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -143,11 +156,15 @@ void testListTopicEvent() { Assertions.assertEquals(namespace.toString(), preEvent.identifier().toString()); Assertions.assertEquals(ListTopicPreEvent.class, preEvent.getClass()); Assertions.assertEquals(namespace, ((ListTopicPreEvent) preEvent).namespace()); + Assertions.assertEquals(OperationType.LIST_TOPIC, preEvent.operationType()); + Assertions.assertEquals(OperationStatus.UNPROCESSED, preEvent.operationStatus()); Event event = dummyEventListener.popPostEvent(); Assertions.assertEquals(namespace.toString(), event.identifier().toString()); Assertions.assertEquals(ListTopicEvent.class, event.getClass()); Assertions.assertEquals(namespace, ((ListTopicEvent) event).namespace()); + Assertions.assertEquals(OperationType.LIST_TOPIC, event.operationType()); + Assertions.assertEquals(OperationStatus.SUCCESS, event.operationStatus()); } @Test @@ -162,6 +179,8 @@ void testCreateTopicFailureEvent() { Assertions.assertEquals( GravitinoRuntimeException.class, ((CreateTopicFailureEvent) event).exception().getClass()); checkTopicInfo(((CreateTopicFailureEvent) event).createTopicRequest(), topic); + Assertions.assertEquals(OperationType.CREATE_TOPIC, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -174,6 +193,8 @@ void testLoadTopicFailureEvent() { Assertions.assertEquals(LoadTopicFailureEvent.class, event.getClass()); Assertions.assertEquals( GravitinoRuntimeException.class, ((LoadTopicFailureEvent) event).exception().getClass()); + Assertions.assertEquals(OperationType.LOAD_TOPIC, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -190,6 +211,8 @@ void testAlterTopicFailureEvent() { GravitinoRuntimeException.class, ((AlterTopicFailureEvent) event).exception().getClass()); Assertions.assertEquals(1, ((AlterTopicFailureEvent) event).topicChanges().length); Assertions.assertEquals(topicChange, ((AlterTopicFailureEvent) event).topicChanges()[0]); + Assertions.assertEquals(OperationType.ALTER_TOPIC, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -202,6 +225,8 @@ void testDropTopicFailureEvent() { Assertions.assertEquals(DropTopicFailureEvent.class, event.getClass()); Assertions.assertEquals( GravitinoRuntimeException.class, ((DropTopicFailureEvent) event).exception().getClass()); + Assertions.assertEquals(OperationType.DROP_TOPIC, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } @Test @@ -215,6 +240,8 @@ void testListTopicFailureEvent() { Assertions.assertEquals( GravitinoRuntimeException.class, ((ListTopicFailureEvent) event).exception().getClass()); Assertions.assertEquals(namespace, ((ListTopicFailureEvent) event).namespace()); + Assertions.assertEquals(OperationType.LIST_TOPIC, event.operationType()); + Assertions.assertEquals(OperationStatus.FAILURE, event.operationStatus()); } private void checkTopicInfo(TopicInfo topicInfo, Topic topic) { diff --git a/docs/iceberg-rest-service.md b/docs/iceberg-rest-service.md index 2b4c900fe3b..20fc4221d14 100644 --- a/docs/iceberg-rest-service.md +++ b/docs/iceberg-rest-service.md @@ -20,6 +20,7 @@ The Apache Gravitino Iceberg REST Server follows the [Apache Iceberg REST API sp - Supports credential vending for `S3` and `GCS`. - Supports different storages like `S3`, `HDFS`, `OSS`, `GCS` and provides the capability to support other storages. - Supports event listener. +- Supports Audit log. - Supports OAuth2 and HTTPS. - Provides a pluggable metrics store interface to store and delete Iceberg metrics. @@ -317,6 +318,10 @@ The `clients` property for example: Gravitino generates pre-event and post-event for table operations and provide a pluggable event listener to allow you to inject custom logic. For more details, please refer to [Event listener configuration](gravitino-server-config.md#event-listener-configuration). +### Audit log + +Gravitino provides a pluggable audit log mechanism, please refer to [Audit log configuration](gravitino-server-config.md#audit-log-configuration). + ### Apache Iceberg metrics store configuration Gravitino provides a pluggable metrics store interface to store and delete Iceberg metrics. You can develop a class that implements `org.apache.gravitino.iceberg.service.metrics.IcebergMetricsStore` and add the corresponding jar file to the Iceberg REST service classpath directory. diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableEvent.java index b7ebf35b15f..8a6fcf2e857 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableEvent.java @@ -44,6 +44,11 @@ public IcebergCreateTableEvent( IcebergRestUtils.cloneIcebergRESTObject(loadTableResponse, LoadTableResponse.class); } + @Override + public OperationType operationType() { + return OperationType.CREATE_TABLE; + } + public CreateTableRequest createTableRequest() { return createTableRequest; } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableFailureEvent.java index 1d20a553ace..a9af05328ab 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableFailureEvent.java @@ -39,6 +39,11 @@ public IcebergCreateTableFailureEvent( IcebergRestUtils.cloneIcebergRESTObject(createTableRequest, CreateTableRequest.class); } + @Override + public OperationType operationType() { + return OperationType.CREATE_TABLE; + } + public CreateTableRequest createTableRequest() { return createTableRequest; } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTablePreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTablePreEvent.java index 927f11c5c79..7c34833298c 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTablePreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTablePreEvent.java @@ -36,6 +36,11 @@ public IcebergCreateTablePreEvent( this.createTableRequest = createTableRequest; } + @Override + public OperationType operationType() { + return OperationType.CREATE_TABLE; + } + public CreateTableRequest createTableRequest() { return createTableRequest; } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewEvent.java index ff9f306c209..2720eeb4cc1 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewEvent.java @@ -51,4 +51,9 @@ public CreateViewRequest createViewRequest() { public LoadViewResponse loadViewResponse() { return loadViewResponse; } + + @Override + public OperationType operationType() { + return OperationType.CREATE_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewFailureEvent.java index 4da73ed18ba..f571723d819 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewFailureEvent.java @@ -42,4 +42,9 @@ public IcebergCreateViewFailureEvent( public CreateViewRequest createViewRequest() { return createViewRequest; } + + @Override + public OperationType operationType() { + return OperationType.CREATE_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewPreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewPreEvent.java index 00eea5db73d..ce8f529ae1a 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewPreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewPreEvent.java @@ -39,4 +39,9 @@ public IcebergCreateViewPreEvent( public CreateViewRequest createViewRequest() { return createViewRequest; } + + @Override + public OperationType operationType() { + return OperationType.CREATE_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropTableEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropTableEvent.java index 23fe799c912..d49cb80919b 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropTableEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropTableEvent.java @@ -38,4 +38,9 @@ public IcebergDropTableEvent( public boolean purgeRequested() { return purgeRequested; } + + @Override + public OperationType operationType() { + return OperationType.DROP_TABLE; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropTableFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropTableFailureEvent.java index b93daf5cba0..bf1a305edea 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropTableFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropTableFailureEvent.java @@ -39,4 +39,9 @@ public IcebergDropTableFailureEvent( public boolean purgeRequested() { return purgeRequested; } + + @Override + public OperationType operationType() { + return OperationType.DROP_TABLE; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropTablePreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropTablePreEvent.java index 357a43a3902..d42b35dca34 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropTablePreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropTablePreEvent.java @@ -38,4 +38,9 @@ public IcebergDropTablePreEvent( public boolean purgeRequested() { return purgeRequested; } + + @Override + public OperationType operationType() { + return OperationType.DROP_TABLE; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropViewEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropViewEvent.java index 7a17ca1f472..ff9eceaf487 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropViewEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropViewEvent.java @@ -30,4 +30,9 @@ public IcebergDropViewEvent( IcebergRequestContext icebergRequestContext, NameIdentifier viewIdentifier) { super(icebergRequestContext, viewIdentifier); } + + @Override + public OperationType operationType() { + return OperationType.DROP_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropViewFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropViewFailureEvent.java index 99502160b44..dcd27b245f2 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropViewFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropViewFailureEvent.java @@ -30,4 +30,9 @@ public IcebergDropViewFailureEvent( IcebergRequestContext icebergRequestContext, NameIdentifier viewIdentifier, Exception e) { super(icebergRequestContext, viewIdentifier, e); } + + @Override + public OperationType operationType() { + return OperationType.DROP_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropViewPreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropViewPreEvent.java index 163a51e9b60..a82b13a2bae 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropViewPreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergDropViewPreEvent.java @@ -30,4 +30,9 @@ public IcebergDropViewPreEvent( IcebergRequestContext icebergRequestContext, NameIdentifier viewIdentifier) { super(icebergRequestContext, viewIdentifier); } + + @Override + public OperationType operationType() { + return OperationType.DROP_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergEvent.java index 51088faa8e3..08d7cb17435 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergEvent.java @@ -19,6 +19,7 @@ package org.apache.gravitino.listener.api.event; +import java.util.Map; import org.apache.gravitino.NameIdentifier; import org.apache.gravitino.annotation.DeveloperApi; @@ -33,7 +34,27 @@ protected IcebergEvent( this.icebergRequestContext = icebergRequestContext; } + @Override + public EventSource eventSource() { + return EventSource.GRAVITINO_ICEBERG_REST_SERVER; + } + + @Override + public OperationStatus operationStatus() { + return OperationStatus.SUCCESS; + } + public IcebergRequestContext icebergRequestContext() { return icebergRequestContext; } + + @Override + public String remoteAddress() { + return icebergRequestContext.remoteHostName(); + } + + @Override + public Map customInfo() { + return icebergRequestContext.httpHeaders(); + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergFailureEvent.java index b428e79bd1b..3ffc40ff994 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergFailureEvent.java @@ -19,6 +19,7 @@ package org.apache.gravitino.listener.api.event; +import java.util.Map; import org.apache.gravitino.NameIdentifier; import org.apache.gravitino.annotation.DeveloperApi; @@ -33,7 +34,27 @@ protected IcebergFailureEvent( this.icebergRequestContext = icebergRequestContext; } + @Override + public EventSource eventSource() { + return EventSource.GRAVITINO_ICEBERG_REST_SERVER; + } + + @Override + public OperationStatus operationStatus() { + return OperationStatus.FAILURE; + } + public IcebergRequestContext icebergRequestContext() { return icebergRequestContext; } + + @Override + public String remoteAddress() { + return icebergRequestContext.remoteHostName(); + } + + @Override + public Map customInfo() { + return icebergRequestContext.httpHeaders(); + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListTableEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListTableEvent.java index 1e03c5d4383..3a7d2690bbd 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListTableEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListTableEvent.java @@ -35,4 +35,9 @@ public IcebergListTableEvent( IcebergRequestContext icebergRequestContext, NameIdentifier resourceIdentifier) { super(icebergRequestContext, resourceIdentifier); } + + @Override + public OperationType operationType() { + return OperationType.LIST_TABLE; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListTableFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListTableFailureEvent.java index 0047886cb60..03ba9aaf783 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListTableFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListTableFailureEvent.java @@ -29,4 +29,9 @@ public IcebergListTableFailureEvent( IcebergRequestContext icebergRequestContext, NameIdentifier nameIdentifier, Exception e) { super(icebergRequestContext, nameIdentifier, e); } + + @Override + public OperationType operationType() { + return OperationType.LIST_TABLE; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListTablePreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListTablePreEvent.java index 8657c8b2cba..823d10b8c48 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListTablePreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListTablePreEvent.java @@ -29,4 +29,9 @@ public IcebergListTablePreEvent( IcebergRequestContext icebergRequestContext, NameIdentifier tableIdentifier) { super(icebergRequestContext, tableIdentifier); } + + @Override + public OperationType operationType() { + return OperationType.LIST_TABLE; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListViewEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListViewEvent.java index 6bc7d83ac64..6397edb1f8f 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListViewEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListViewEvent.java @@ -35,4 +35,9 @@ public IcebergListViewEvent( IcebergRequestContext icebergRequestContext, NameIdentifier viewIdentifier) { super(icebergRequestContext, viewIdentifier); } + + @Override + public OperationType operationType() { + return OperationType.LIST_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListViewFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListViewFailureEvent.java index 400e6b43039..42ce3999525 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListViewFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListViewFailureEvent.java @@ -29,4 +29,9 @@ public IcebergListViewFailureEvent( IcebergRequestContext icebergRequestContext, NameIdentifier viewIdentifier, Exception e) { super(icebergRequestContext, viewIdentifier, e); } + + @Override + public OperationType operationType() { + return OperationType.LIST_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListViewPreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListViewPreEvent.java index f0bebca38b0..7eabac090e8 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListViewPreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergListViewPreEvent.java @@ -29,4 +29,9 @@ public IcebergListViewPreEvent( IcebergRequestContext icebergRequestContext, NameIdentifier viewIdentifier) { super(icebergRequestContext, viewIdentifier); } + + @Override + public OperationType operationType() { + return OperationType.LIST_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTableEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTableEvent.java index 066250cb359..cf52152cf8a 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTableEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTableEvent.java @@ -38,6 +38,11 @@ public IcebergLoadTableEvent( IcebergRestUtils.cloneIcebergRESTObject(loadTableResponse, LoadTableResponse.class); } + @Override + public OperationType operationType() { + return OperationType.LOAD_TABLE; + } + public LoadTableResponse loadTableResponse() { return loadTableResponse; } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTableFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTableFailureEvent.java index f4c4c881f2b..f8ffd64e170 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTableFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTableFailureEvent.java @@ -29,4 +29,9 @@ public IcebergLoadTableFailureEvent( IcebergRequestContext icebergRequestContext, NameIdentifier nameIdentifier, Exception e) { super(icebergRequestContext, nameIdentifier, e); } + + @Override + public OperationType operationType() { + return OperationType.LOAD_TABLE; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTablePreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTablePreEvent.java index 5c22884a40d..d1421ec9219 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTablePreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTablePreEvent.java @@ -29,4 +29,9 @@ public IcebergLoadTablePreEvent( IcebergRequestContext icebergRequestContext, NameIdentifier tableIdentifier) { super(icebergRequestContext, tableIdentifier); } + + @Override + public OperationType operationType() { + return OperationType.LOAD_TABLE; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewEvent.java index 5f22fe1b62e..2ebf25767a6 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewEvent.java @@ -41,4 +41,9 @@ public IcebergLoadViewEvent( public LoadViewResponse loadViewResponse() { return loadViewResponse; } + + @Override + public OperationType operationType() { + return OperationType.LOAD_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewFailureEvent.java index 493c9a3c1e7..7fa908040a1 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewFailureEvent.java @@ -29,4 +29,9 @@ public IcebergLoadViewFailureEvent( IcebergRequestContext icebergRequestContext, NameIdentifier viewIdentifier, Exception e) { super(icebergRequestContext, viewIdentifier, e); } + + @Override + public OperationType operationType() { + return OperationType.LOAD_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewPreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewPreEvent.java index 5970edc69d6..6fa03b32454 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewPreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewPreEvent.java @@ -29,4 +29,9 @@ public IcebergLoadViewPreEvent( IcebergRequestContext icebergRequestContext, NameIdentifier viewIdentifier) { super(icebergRequestContext, viewIdentifier); } + + @Override + public OperationType operationType() { + return OperationType.LOAD_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergPreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergPreEvent.java index dffe1368563..82a8ac40140 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergPreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergPreEvent.java @@ -19,6 +19,7 @@ package org.apache.gravitino.listener.api.event; +import java.util.Map; import org.apache.gravitino.NameIdentifier; import org.apache.gravitino.annotation.DeveloperApi; @@ -36,4 +37,24 @@ protected IcebergPreEvent( public IcebergRequestContext icebergRequestContext() { return icebergRequestContext; } + + @Override + public EventSource eventSource() { + return EventSource.GRAVITINO_ICEBERG_REST_SERVER; + } + + @Override + public OperationStatus operationStatus() { + return OperationStatus.UNPROCESSED; + } + + @Override + public String remoteAddress() { + return icebergRequestContext.remoteHostName(); + } + + @Override + public Map customInfo() { + return icebergRequestContext.httpHeaders(); + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableEvent.java index 42eea5cb2c7..94d3ad2abbd 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableEvent.java @@ -41,4 +41,9 @@ public IcebergRenameTableEvent( public RenameTableRequest renameTableRequest() { return renameTableRequest; } + + @Override + public OperationType operationType() { + return OperationType.RENAME_TABLE; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableFailureEvent.java index 9525891b34a..19b7e8e2672 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableFailureEvent.java @@ -40,4 +40,9 @@ public IcebergRenameTableFailureEvent( public RenameTableRequest renameTableRequest() { return renameTableRequest; } + + @Override + public OperationType operationType() { + return OperationType.RENAME_TABLE; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTablePreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTablePreEvent.java index 1808a1d3c9b..b67dfaf03a4 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTablePreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTablePreEvent.java @@ -39,4 +39,9 @@ public IcebergRenameTablePreEvent( public RenameTableRequest renameTableRequest() { return renameTableRequest; } + + @Override + public OperationType operationType() { + return OperationType.RENAME_TABLE; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewEvent.java index 985a35592bb..00a32200a2f 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewEvent.java @@ -41,4 +41,9 @@ public IcebergRenameViewEvent( public RenameTableRequest renameViewRequest() { return renameViewRequest; } + + @Override + public OperationType operationType() { + return OperationType.RENAME_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewFailureEvent.java index f5b943fabc9..afdff2ff450 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewFailureEvent.java @@ -40,4 +40,9 @@ public IcebergRenameViewFailureEvent( public RenameTableRequest renameViewRequest() { return renameViewRequest; } + + @Override + public OperationType operationType() { + return OperationType.RENAME_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewPreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewPreEvent.java index 7802b853429..e572cc7137e 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewPreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewPreEvent.java @@ -39,4 +39,9 @@ public IcebergRenameViewPreEvent( public RenameTableRequest renameViewRequest() { return renameViewRequest; } + + @Override + public OperationType operationType() { + return OperationType.RENAME_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewEvent.java index 9f3f1677eee..7deba131e05 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewEvent.java @@ -51,4 +51,9 @@ public UpdateTableRequest renameViewRequest() { public LoadViewResponse loadViewResponse() { return loadViewResponse; } + + @Override + public OperationType operationType() { + return OperationType.ALTER_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewFailureEvent.java index b23e028aadd..02e69e0cb0f 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewFailureEvent.java @@ -42,4 +42,9 @@ public IcebergReplaceViewFailureEvent( public UpdateTableRequest replaceViewRequest() { return replaceViewRequest; } + + @Override + public OperationType operationType() { + return OperationType.ALTER_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewPreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewPreEvent.java index aa15593aba6..439a88c860c 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewPreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewPreEvent.java @@ -39,4 +39,14 @@ public IcebergReplaceViewPreEvent( public UpdateTableRequest replaceViewRequest() { return replaceViewRequest; } + + /** + * Returns the type of operation. + * + * @return the operation type. + */ + @Override + public OperationType operationType() { + return OperationType.ALTER_VIEW; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergTableExistsEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergTableExistsEvent.java index a8a8f3c1137..ee2de385d0f 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergTableExistsEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergTableExistsEvent.java @@ -38,4 +38,9 @@ public IcebergTableExistsEvent( public boolean isExists() { return isExists; } + + @Override + public OperationType operationType() { + return OperationType.TABLE_EXISTS; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergTableExistsFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergTableExistsFailureEvent.java index a482072c716..6a5f36e689c 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergTableExistsFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergTableExistsFailureEvent.java @@ -29,4 +29,9 @@ public IcebergTableExistsFailureEvent( IcebergRequestContext icebergRequestContext, NameIdentifier nameIdentifier, Exception e) { super(icebergRequestContext, nameIdentifier, e); } + + @Override + public OperationType operationType() { + return OperationType.TABLE_EXISTS; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergTableExistsPreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergTableExistsPreEvent.java index 87317c46453..b45add79f19 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergTableExistsPreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergTableExistsPreEvent.java @@ -29,4 +29,9 @@ public IcebergTableExistsPreEvent( IcebergRequestContext icebergRequestContext, NameIdentifier tableIdentifier) { super(icebergRequestContext, tableIdentifier); } + + @Override + public OperationType operationType() { + return OperationType.TABLE_EXISTS; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableEvent.java index aebd27d6348..7eae3e19bc1 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableEvent.java @@ -51,4 +51,9 @@ public UpdateTableRequest createTableRequest() { public LoadTableResponse loadTableResponse() { return loadTableResponse; } + + @Override + public OperationType operationType() { + return OperationType.ALTER_TABLE; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableFailureEvent.java index 0e288db04af..94f69298144 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableFailureEvent.java @@ -42,4 +42,9 @@ public IcebergUpdateTableFailureEvent( public UpdateTableRequest updateTableRequest() { return updateTableRequest; } + + @Override + public OperationType operationType() { + return OperationType.ALTER_TABLE; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTablePreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTablePreEvent.java index 8c6ec378694..83f5b878950 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTablePreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTablePreEvent.java @@ -39,4 +39,9 @@ public IcebergUpdateTablePreEvent( public UpdateTableRequest updateTableRequest() { return updateTableRequest; } + + @Override + public OperationType operationType() { + return OperationType.ALTER_TABLE; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergViewExistsEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergViewExistsEvent.java index ece8523208c..11583ce6610 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergViewExistsEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergViewExistsEvent.java @@ -38,4 +38,9 @@ public IcebergViewExistsEvent( public boolean isExists() { return isExists; } + + @Override + public OperationType operationType() { + return OperationType.VIEW_EXISTS; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergViewExistsFailureEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergViewExistsFailureEvent.java index 93aa839d400..66e3e21c465 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergViewExistsFailureEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergViewExistsFailureEvent.java @@ -29,4 +29,9 @@ public IcebergViewExistsFailureEvent( IcebergRequestContext icebergRequestContext, NameIdentifier viewIdentifier, Exception e) { super(icebergRequestContext, viewIdentifier, e); } + + @Override + public OperationType operationType() { + return OperationType.VIEW_EXISTS; + } } diff --git a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergViewExistsPreEvent.java b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergViewExistsPreEvent.java index 938a7587ecb..6074680d702 100644 --- a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergViewExistsPreEvent.java +++ b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergViewExistsPreEvent.java @@ -29,4 +29,9 @@ public IcebergViewExistsPreEvent( IcebergRequestContext icebergRequestContext, NameIdentifier viewIdentifier) { super(icebergRequestContext, viewIdentifier); } + + @Override + public OperationType operationType() { + return OperationType.VIEW_EXISTS; + } }