nandorKollar commented on code in PR #4064:
URL: https://github.com/apache/polaris/pull/4064#discussion_r3071745145
##########
runtime/service/src/main/java/org/apache/polaris/service/events/PolarisEventType.java:
##########
@@ -19,189 +19,223 @@
package org.apache.polaris.service.events;
+import java.util.Arrays;
+import java.util.Set;
+import java.util.stream.Collectors;
+
public enum PolarisEventType {
// Catalog Events
- BEFORE_CREATE_CATALOG(100),
- AFTER_CREATE_CATALOG(101),
- BEFORE_DELETE_CATALOG(102),
- AFTER_DELETE_CATALOG(103),
- BEFORE_GET_CATALOG(104),
- AFTER_GET_CATALOG(105),
- BEFORE_UPDATE_CATALOG(106),
- AFTER_UPDATE_CATALOG(107),
- BEFORE_LIST_CATALOGS(108),
- AFTER_LIST_CATALOGS(109),
+ BEFORE_CREATE_CATALOG(100, Category.CATALOG),
+ AFTER_CREATE_CATALOG(101, Category.CATALOG),
+ BEFORE_DELETE_CATALOG(102, Category.CATALOG),
+ AFTER_DELETE_CATALOG(103, Category.CATALOG),
+ BEFORE_GET_CATALOG(104, Category.CATALOG),
+ AFTER_GET_CATALOG(105, Category.CATALOG),
+ BEFORE_UPDATE_CATALOG(106, Category.CATALOG),
+ AFTER_UPDATE_CATALOG(107, Category.CATALOG),
+ BEFORE_LIST_CATALOGS(108, Category.CATALOG),
+ AFTER_LIST_CATALOGS(109, Category.CATALOG),
// Catalog Role Events
- BEFORE_CREATE_CATALOG_ROLE(200),
- AFTER_CREATE_CATALOG_ROLE(201),
- BEFORE_DELETE_CATALOG_ROLE(202),
- AFTER_DELETE_CATALOG_ROLE(203),
- BEFORE_GET_CATALOG_ROLE(204),
- AFTER_GET_CATALOG_ROLE(205),
- BEFORE_UPDATE_CATALOG_ROLE(206),
- AFTER_UPDATE_CATALOG_ROLE(207),
- BEFORE_LIST_CATALOG_ROLES(208),
- AFTER_LIST_CATALOG_ROLES(209),
- BEFORE_ADD_GRANT_TO_CATALOG_ROLE(210),
- AFTER_ADD_GRANT_TO_CATALOG_ROLE(211),
- BEFORE_REVOKE_GRANT_FROM_CATALOG_ROLE(212),
- AFTER_REVOKE_GRANT_FROM_CATALOG_ROLE(213),
- BEFORE_LIST_ASSIGNEE_PRINCIPAL_ROLES_FOR_CATALOG_ROLE(214),
- AFTER_LIST_ASSIGNEE_PRINCIPAL_ROLES_FOR_CATALOG_ROLE(215),
- BEFORE_LIST_GRANTS_FOR_CATALOG_ROLE(216),
- AFTER_LIST_GRANTS_FOR_CATALOG_ROLE(217),
+ BEFORE_CREATE_CATALOG_ROLE(200, Category.CATALOG_ROLE),
+ AFTER_CREATE_CATALOG_ROLE(201, Category.CATALOG_ROLE),
+ BEFORE_DELETE_CATALOG_ROLE(202, Category.CATALOG_ROLE),
+ AFTER_DELETE_CATALOG_ROLE(203, Category.CATALOG_ROLE),
+ BEFORE_GET_CATALOG_ROLE(204, Category.CATALOG_ROLE),
+ AFTER_GET_CATALOG_ROLE(205, Category.CATALOG_ROLE),
+ BEFORE_UPDATE_CATALOG_ROLE(206, Category.CATALOG_ROLE),
+ AFTER_UPDATE_CATALOG_ROLE(207, Category.CATALOG_ROLE),
+ BEFORE_LIST_CATALOG_ROLES(208, Category.CATALOG_ROLE),
+ AFTER_LIST_CATALOG_ROLES(209, Category.CATALOG_ROLE),
+ BEFORE_ADD_GRANT_TO_CATALOG_ROLE(210, Category.CATALOG_ROLE),
+ AFTER_ADD_GRANT_TO_CATALOG_ROLE(211, Category.CATALOG_ROLE),
+ BEFORE_REVOKE_GRANT_FROM_CATALOG_ROLE(212, Category.CATALOG_ROLE),
+ AFTER_REVOKE_GRANT_FROM_CATALOG_ROLE(213, Category.CATALOG_ROLE),
+ BEFORE_LIST_ASSIGNEE_PRINCIPAL_ROLES_FOR_CATALOG_ROLE(214,
Category.CATALOG_ROLE),
+ AFTER_LIST_ASSIGNEE_PRINCIPAL_ROLES_FOR_CATALOG_ROLE(215,
Category.CATALOG_ROLE),
+ BEFORE_LIST_GRANTS_FOR_CATALOG_ROLE(216, Category.CATALOG_ROLE),
+ AFTER_LIST_GRANTS_FOR_CATALOG_ROLE(217, Category.CATALOG_ROLE),
// Principal Events
- BEFORE_CREATE_PRINCIPAL(300),
- AFTER_CREATE_PRINCIPAL(301),
- BEFORE_DELETE_PRINCIPAL(302),
- AFTER_DELETE_PRINCIPAL(303),
- BEFORE_GET_PRINCIPAL(304),
- AFTER_GET_PRINCIPAL(305),
- BEFORE_UPDATE_PRINCIPAL(306),
- AFTER_UPDATE_PRINCIPAL(307),
- BEFORE_ROTATE_CREDENTIALS(308),
- AFTER_ROTATE_CREDENTIALS(309),
- BEFORE_RESET_CREDENTIALS(310),
- AFTER_RESET_CREDENTIALS(311),
- BEFORE_LIST_PRINCIPALS(312),
- AFTER_LIST_PRINCIPALS(313),
- BEFORE_ASSIGN_PRINCIPAL_ROLE(314),
- AFTER_ASSIGN_PRINCIPAL_ROLE(315),
- BEFORE_REVOKE_PRINCIPAL_ROLE(316),
- AFTER_REVOKE_PRINCIPAL_ROLE(317),
- BEFORE_LIST_ASSIGNED_PRINCIPAL_ROLES(318),
- AFTER_LIST_ASSIGNED_PRINCIPAL_ROLES(319),
+ BEFORE_CREATE_PRINCIPAL(300, Category.PRINCIPAL),
+ AFTER_CREATE_PRINCIPAL(301, Category.PRINCIPAL),
+ BEFORE_DELETE_PRINCIPAL(302, Category.PRINCIPAL),
+ AFTER_DELETE_PRINCIPAL(303, Category.PRINCIPAL),
+ BEFORE_GET_PRINCIPAL(304, Category.PRINCIPAL),
+ AFTER_GET_PRINCIPAL(305, Category.PRINCIPAL),
+ BEFORE_UPDATE_PRINCIPAL(306, Category.PRINCIPAL),
+ AFTER_UPDATE_PRINCIPAL(307, Category.PRINCIPAL),
+ BEFORE_ROTATE_CREDENTIALS(308, Category.PRINCIPAL),
+ AFTER_ROTATE_CREDENTIALS(309, Category.PRINCIPAL),
+ BEFORE_RESET_CREDENTIALS(310, Category.PRINCIPAL),
+ AFTER_RESET_CREDENTIALS(311, Category.PRINCIPAL),
+ BEFORE_LIST_PRINCIPALS(312, Category.PRINCIPAL),
+ AFTER_LIST_PRINCIPALS(313, Category.PRINCIPAL),
+ BEFORE_ASSIGN_PRINCIPAL_ROLE(314, Category.PRINCIPAL),
+ AFTER_ASSIGN_PRINCIPAL_ROLE(315, Category.PRINCIPAL),
+ BEFORE_REVOKE_PRINCIPAL_ROLE(316, Category.PRINCIPAL),
+ AFTER_REVOKE_PRINCIPAL_ROLE(317, Category.PRINCIPAL),
+ BEFORE_LIST_ASSIGNED_PRINCIPAL_ROLES(318, Category.PRINCIPAL),
+ AFTER_LIST_ASSIGNED_PRINCIPAL_ROLES(319, Category.PRINCIPAL),
// Principal Role Events
- BEFORE_CREATE_PRINCIPAL_ROLE(400),
- AFTER_CREATE_PRINCIPAL_ROLE(401),
- BEFORE_DELETE_PRINCIPAL_ROLE(402),
- AFTER_DELETE_PRINCIPAL_ROLE(403),
- BEFORE_GET_PRINCIPAL_ROLE(404),
- AFTER_GET_PRINCIPAL_ROLE(405),
- BEFORE_UPDATE_PRINCIPAL_ROLE(406),
- AFTER_UPDATE_PRINCIPAL_ROLE(407),
- BEFORE_LIST_PRINCIPAL_ROLES(408),
- AFTER_LIST_PRINCIPAL_ROLES(409),
- BEFORE_ASSIGN_CATALOG_ROLE_TO_PRINCIPAL_ROLE(410),
- AFTER_ASSIGN_CATALOG_ROLE_TO_PRINCIPAL_ROLE(411),
- BEFORE_REVOKE_CATALOG_ROLE_FROM_PRINCIPAL_ROLE(412),
- AFTER_REVOKE_CATALOG_ROLE_FROM_PRINCIPAL_ROLE(413),
- BEFORE_LIST_ASSIGNEE_PRINCIPALS_FOR_PRINCIPAL_ROLE(414),
- AFTER_LIST_ASSIGNEE_PRINCIPALS_FOR_PRINCIPAL_ROLE(415),
- BEFORE_LIST_CATALOG_ROLES_FOR_PRINCIPAL_ROLE(416),
- AFTER_LIST_CATALOG_ROLES_FOR_PRINCIPAL_ROLE(417),
+ BEFORE_CREATE_PRINCIPAL_ROLE(400, Category.PRINCIPAL_ROLE),
+ AFTER_CREATE_PRINCIPAL_ROLE(401, Category.PRINCIPAL_ROLE),
+ BEFORE_DELETE_PRINCIPAL_ROLE(402, Category.PRINCIPAL_ROLE),
+ AFTER_DELETE_PRINCIPAL_ROLE(403, Category.PRINCIPAL_ROLE),
+ BEFORE_GET_PRINCIPAL_ROLE(404, Category.PRINCIPAL_ROLE),
+ AFTER_GET_PRINCIPAL_ROLE(405, Category.PRINCIPAL_ROLE),
+ BEFORE_UPDATE_PRINCIPAL_ROLE(406, Category.PRINCIPAL_ROLE),
+ AFTER_UPDATE_PRINCIPAL_ROLE(407, Category.PRINCIPAL_ROLE),
+ BEFORE_LIST_PRINCIPAL_ROLES(408, Category.PRINCIPAL_ROLE),
+ AFTER_LIST_PRINCIPAL_ROLES(409, Category.PRINCIPAL_ROLE),
+ BEFORE_ASSIGN_CATALOG_ROLE_TO_PRINCIPAL_ROLE(410, Category.PRINCIPAL_ROLE),
+ AFTER_ASSIGN_CATALOG_ROLE_TO_PRINCIPAL_ROLE(411, Category.PRINCIPAL_ROLE),
+ BEFORE_REVOKE_CATALOG_ROLE_FROM_PRINCIPAL_ROLE(412, Category.PRINCIPAL_ROLE),
+ AFTER_REVOKE_CATALOG_ROLE_FROM_PRINCIPAL_ROLE(413, Category.PRINCIPAL_ROLE),
+ BEFORE_LIST_ASSIGNEE_PRINCIPALS_FOR_PRINCIPAL_ROLE(414,
Category.PRINCIPAL_ROLE),
+ AFTER_LIST_ASSIGNEE_PRINCIPALS_FOR_PRINCIPAL_ROLE(415,
Category.PRINCIPAL_ROLE),
+ BEFORE_LIST_CATALOG_ROLES_FOR_PRINCIPAL_ROLE(416, Category.PRINCIPAL_ROLE),
+ AFTER_LIST_CATALOG_ROLES_FOR_PRINCIPAL_ROLE(417, Category.PRINCIPAL_ROLE),
// Namespace Events
- BEFORE_CREATE_NAMESPACE(500),
- AFTER_CREATE_NAMESPACE(501),
- BEFORE_LIST_NAMESPACES(502),
- AFTER_LIST_NAMESPACES(503),
- BEFORE_LOAD_NAMESPACE_METADATA(504),
- AFTER_LOAD_NAMESPACE_METADATA(505),
- BEFORE_CHECK_EXISTS_NAMESPACE(506),
- AFTER_CHECK_EXISTS_NAMESPACE(507),
- BEFORE_DROP_NAMESPACE(508),
- AFTER_DROP_NAMESPACE(509),
- BEFORE_UPDATE_NAMESPACE_PROPERTIES(510),
- AFTER_UPDATE_NAMESPACE_PROPERTIES(511),
+ BEFORE_CREATE_NAMESPACE(500, Category.NAMESPACE),
+ AFTER_CREATE_NAMESPACE(501, Category.NAMESPACE),
+ BEFORE_LIST_NAMESPACES(502, Category.NAMESPACE),
+ AFTER_LIST_NAMESPACES(503, Category.NAMESPACE),
+ BEFORE_LOAD_NAMESPACE_METADATA(504, Category.NAMESPACE),
+ AFTER_LOAD_NAMESPACE_METADATA(505, Category.NAMESPACE),
+ BEFORE_CHECK_EXISTS_NAMESPACE(506, Category.NAMESPACE),
+ AFTER_CHECK_EXISTS_NAMESPACE(507, Category.NAMESPACE),
+ BEFORE_DROP_NAMESPACE(508, Category.NAMESPACE),
+ AFTER_DROP_NAMESPACE(509, Category.NAMESPACE),
+ BEFORE_UPDATE_NAMESPACE_PROPERTIES(510, Category.NAMESPACE),
+ AFTER_UPDATE_NAMESPACE_PROPERTIES(511, Category.NAMESPACE),
// Table Events
- BEFORE_CREATE_TABLE(600),
- AFTER_CREATE_TABLE(601),
- BEFORE_LIST_TABLES(602),
- AFTER_LIST_TABLES(603),
- BEFORE_LOAD_TABLE(604),
- AFTER_LOAD_TABLE(605),
- BEFORE_CHECK_EXISTS_TABLE(606),
- AFTER_CHECK_EXISTS_TABLE(607),
- BEFORE_DROP_TABLE(608),
- AFTER_DROP_TABLE(609),
- BEFORE_REGISTER_TABLE(610),
- AFTER_REGISTER_TABLE(611),
- BEFORE_RENAME_TABLE(612),
- AFTER_RENAME_TABLE(613),
- BEFORE_UPDATE_TABLE(614),
- AFTER_UPDATE_TABLE(615),
- BEFORE_REFRESH_TABLE(616),
- AFTER_REFRESH_TABLE(617),
+ BEFORE_CREATE_TABLE(600, Category.TABLE),
+ AFTER_CREATE_TABLE(601, Category.TABLE),
+ BEFORE_LIST_TABLES(602, Category.TABLE),
+ AFTER_LIST_TABLES(603, Category.TABLE),
+ BEFORE_LOAD_TABLE(604, Category.TABLE),
+ AFTER_LOAD_TABLE(605, Category.TABLE),
+ BEFORE_CHECK_EXISTS_TABLE(606, Category.TABLE),
+ AFTER_CHECK_EXISTS_TABLE(607, Category.TABLE),
+ BEFORE_DROP_TABLE(608, Category.TABLE),
+ AFTER_DROP_TABLE(609, Category.TABLE),
+ BEFORE_REGISTER_TABLE(610, Category.TABLE),
+ AFTER_REGISTER_TABLE(611, Category.TABLE),
+ BEFORE_RENAME_TABLE(612, Category.TABLE),
+ AFTER_RENAME_TABLE(613, Category.TABLE),
+ BEFORE_UPDATE_TABLE(614, Category.TABLE),
+ AFTER_UPDATE_TABLE(615, Category.TABLE),
+ BEFORE_REFRESH_TABLE(616, Category.TABLE),
+ AFTER_REFRESH_TABLE(617, Category.TABLE),
// View Events
- BEFORE_CREATE_VIEW(700),
- AFTER_CREATE_VIEW(701),
- BEFORE_LIST_VIEWS(702),
- AFTER_LIST_VIEWS(703),
- BEFORE_LOAD_VIEW(704),
- AFTER_LOAD_VIEW(705),
- BEFORE_CHECK_EXISTS_VIEW(706),
- AFTER_CHECK_EXISTS_VIEW(707),
- BEFORE_DROP_VIEW(708),
- AFTER_DROP_VIEW(709),
- BEFORE_RENAME_VIEW(710),
- AFTER_RENAME_VIEW(711),
- BEFORE_REPLACE_VIEW(712),
- AFTER_REPLACE_VIEW(713),
- BEFORE_REFRESH_VIEW(714),
- AFTER_REFRESH_VIEW(715),
+ BEFORE_CREATE_VIEW(700, Category.VIEW),
+ AFTER_CREATE_VIEW(701, Category.VIEW),
+ BEFORE_LIST_VIEWS(702, Category.VIEW),
+ AFTER_LIST_VIEWS(703, Category.VIEW),
+ BEFORE_LOAD_VIEW(704, Category.VIEW),
+ AFTER_LOAD_VIEW(705, Category.VIEW),
+ BEFORE_CHECK_EXISTS_VIEW(706, Category.VIEW),
+ AFTER_CHECK_EXISTS_VIEW(707, Category.VIEW),
+ BEFORE_DROP_VIEW(708, Category.VIEW),
+ AFTER_DROP_VIEW(709, Category.VIEW),
+ BEFORE_RENAME_VIEW(710, Category.VIEW),
+ AFTER_RENAME_VIEW(711, Category.VIEW),
+ BEFORE_REPLACE_VIEW(712, Category.VIEW),
+ AFTER_REPLACE_VIEW(713, Category.VIEW),
+ BEFORE_REFRESH_VIEW(714, Category.VIEW),
+ AFTER_REFRESH_VIEW(715, Category.VIEW),
// Credential Events
- BEFORE_LOAD_CREDENTIALS(800),
- AFTER_LOAD_CREDENTIALS(801),
+ BEFORE_LOAD_CREDENTIALS(800, Category.CREDENTIAL),
+ AFTER_LOAD_CREDENTIALS(801, Category.CREDENTIAL),
// Transaction Events
- BEFORE_COMMIT_TRANSACTION(900),
- AFTER_COMMIT_TRANSACTION(901),
+ BEFORE_COMMIT_TRANSACTION(900, Category.TRANSACTION),
+ AFTER_COMMIT_TRANSACTION(901, Category.TRANSACTION),
// Notification Events
- BEFORE_SEND_NOTIFICATION(1000),
- AFTER_SEND_NOTIFICATION(1001),
+ BEFORE_SEND_NOTIFICATION(1000, Category.NOTIFICATION),
+ AFTER_SEND_NOTIFICATION(1001, Category.NOTIFICATION),
// Configuration Events
- BEFORE_GET_CONFIG(1100),
- AFTER_GET_CONFIG(1101),
+ BEFORE_GET_CONFIG(1100, Category.CONFIG),
+ AFTER_GET_CONFIG(1101, Category.CONFIG),
// Policy Events
- BEFORE_CREATE_POLICY(1200),
- AFTER_CREATE_POLICY(1201),
- BEFORE_LIST_POLICIES(1202),
- AFTER_LIST_POLICIES(1203),
- BEFORE_LOAD_POLICY(1204),
- AFTER_LOAD_POLICY(1205),
- BEFORE_UPDATE_POLICY(1206),
- AFTER_UPDATE_POLICY(1207),
- BEFORE_DROP_POLICY(1208),
- AFTER_DROP_POLICY(1209),
- BEFORE_ATTACH_POLICY(1210),
- AFTER_ATTACH_POLICY(1211),
- BEFORE_DETACH_POLICY(1212),
- AFTER_DETACH_POLICY(1213),
- BEFORE_GET_APPLICABLE_POLICIES(1214),
- AFTER_GET_APPLICABLE_POLICIES(1215),
+ BEFORE_CREATE_POLICY(1200, Category.POLICY),
+ AFTER_CREATE_POLICY(1201, Category.POLICY),
+ BEFORE_LIST_POLICIES(1202, Category.POLICY),
+ AFTER_LIST_POLICIES(1203, Category.POLICY),
+ BEFORE_LOAD_POLICY(1204, Category.POLICY),
+ AFTER_LOAD_POLICY(1205, Category.POLICY),
+ BEFORE_UPDATE_POLICY(1206, Category.POLICY),
+ AFTER_UPDATE_POLICY(1207, Category.POLICY),
+ BEFORE_DROP_POLICY(1208, Category.POLICY),
+ AFTER_DROP_POLICY(1209, Category.POLICY),
+ BEFORE_ATTACH_POLICY(1210, Category.POLICY),
+ AFTER_ATTACH_POLICY(1211, Category.POLICY),
+ BEFORE_DETACH_POLICY(1212, Category.POLICY),
+ AFTER_DETACH_POLICY(1213, Category.POLICY),
+ BEFORE_GET_APPLICABLE_POLICIES(1214, Category.POLICY),
+ AFTER_GET_APPLICABLE_POLICIES(1215, Category.POLICY),
// Generic Table Events
- BEFORE_CREATE_GENERIC_TABLE(1300),
- AFTER_CREATE_GENERIC_TABLE(1301),
- BEFORE_DROP_GENERIC_TABLE(1302),
- AFTER_DROP_GENERIC_TABLE(1303),
- BEFORE_LIST_GENERIC_TABLES(1304),
- AFTER_LIST_GENERIC_TABLES(1305),
- BEFORE_LOAD_GENERIC_TABLE(1306),
- AFTER_LOAD_GENERIC_TABLE(1307),
+ BEFORE_CREATE_GENERIC_TABLE(1300, Category.GENERIC_TABLE),
+ AFTER_CREATE_GENERIC_TABLE(1301, Category.GENERIC_TABLE),
+ BEFORE_DROP_GENERIC_TABLE(1302, Category.GENERIC_TABLE),
+ AFTER_DROP_GENERIC_TABLE(1303, Category.GENERIC_TABLE),
+ BEFORE_LIST_GENERIC_TABLES(1304, Category.GENERIC_TABLE),
+ AFTER_LIST_GENERIC_TABLES(1305, Category.GENERIC_TABLE),
+ BEFORE_LOAD_GENERIC_TABLE(1306, Category.GENERIC_TABLE),
+ AFTER_LOAD_GENERIC_TABLE(1307, Category.GENERIC_TABLE),
// Task Execution Events
- BEFORE_ATTEMPT_TASK(1400),
- AFTER_ATTEMPT_TASK(1401),
+ BEFORE_ATTEMPT_TASK(1400, Category.TASK_EXECUTION),
+ AFTER_ATTEMPT_TASK(1401, Category.TASK_EXECUTION),
// Rate Limiting Events
- BEFORE_LIMIT_REQUEST_RATE(1500);
+ BEFORE_LIMIT_REQUEST_RATE(1500, Category.RATE_LIMITING);
private final int code;
+ private final Category category;
- private PolarisEventType(int code) {
+ PolarisEventType(int code, Category category) {
this.code = code;
+ this.category = category;
}
public int code() {
return code;
}
+
+ public Category category() {
+ return category;
+ }
+
+ public static Set<PolarisEventType> typesOfCategory(Category category) {
Review Comment:
We can introduce a map to improve lookup speed, if that would help,
something like this:
```
private static final Map<Category, EnumSet<PolarisEventType>>
categoryToTypes = new HashMap<>();
static {
for (PolarisEventType type : values()) {
EnumSet<PolarisEventType> types =
categoryToTypes.getOrDefault(type.category,
EnumSet.noneOf(PolarisEventType.class));
types.add(type);
categoryToTypes.put(type.category, types);
}
}
```
and rewrite `typeOfCategory`:
```
public static Set<PolarisEventType> typesOfCategory(Category category) {
return categoryToTypes.get(category);
}
```
Did you think of something like this?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]