[
https://issues.apache.org/jira/browse/GOBBLIN-2153?focusedWorklogId=934303&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-934303
]
ASF GitHub Bot logged work on GOBBLIN-2153:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 11/Sep/24 16:42
Start Date: 11/Sep/24 16:42
Worklog Time Spent: 10m
Work Description: khandelwal-prateek commented on code in PR #4052:
URL: https://github.com/apache/gobblin/pull/4052#discussion_r1755153831
##########
gobblin-temporal/src/main/java/org/apache/gobblin/temporal/ddm/util/TemporalWorkFlowUtils.java:
##########
@@ -0,0 +1,52 @@
+package org.apache.gobblin.temporal.ddm.util;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import lombok.NonNull;
+import lombok.experimental.UtilityClass;
+import org.apache.gobblin.configuration.ConfigurationKeys;
+import org.apache.gobblin.temporal.ddm.work.assistance.Help;
+
+
+/**
+ * Utility class for handling Temporal workflow-related operations.
+ */
+@UtilityClass
+public class TemporalWorkFlowUtils {
+
+ /**
+ * Generates search attributes for a WorkFlow based on the provided GAAS
job properties.
+ *
+ * @param jobProps the properties of the job, must not be null.
+ * @return a map containing the generated search attributes.
+ */
+ public static Map<String, Object> generateGaasSearchAttributes(@NonNull
Properties jobProps) {
+ Map<String, Object> attributes = new HashMap<>();
+ attributes.put(Help.GAAS_FLOW_KEY, String.format("%s.%s",
jobProps.getProperty(ConfigurationKeys.FLOW_GROUP_KEY),
+ jobProps.getProperty(ConfigurationKeys.FLOW_NAME_KEY)));
+ attributes.put(Help.USER_TO_PROXY_SEARCH_KEY,
jobProps.getProperty(Help.USER_TO_PROXY_KEY));
+ return attributes;
+ }
+
+ /**
+ * Converts search attribute values from a map of lists to a map of objects.
+ *
+ * @param searchAttributes a map where the keys are attribute names and the
values are lists of attribute values.
+ * Can be null.
+ * @return a map where the keys are attribute names and the values are the
corresponding attribute values.
+ * If the input map is null, an empty map is returned.
+ */
+ public static Map<String, Object>
convertSearchAttributesValuesFromListToObject(
+ Map<String, List<?>> searchAttributes) {
+ if (searchAttributes == null) {
+ return null;
+ }
+ Map<String, Object> convertedAttributes = new HashMap<>();
+
+ convertedAttributes.putAll(searchAttributes);
Review Comment:
It seems like the intention of this method is to convert the input map
`Map<String, List<?>>` into a `Map<String, Object>` without transforming the
list values into single objects. This method seems to be written for
setSearchAttributes on ChildWorkflowOptions in
AbstractNestingExecWorkflowImpl(which expects Map<String, Object>), we can
simplify the implementation by directly using `new
HashMap<>(searchAttributes)`. This would achieve the same result more
efficiently.
Issue Time Tracking
-------------------
Worklog Id: (was: 934303)
Time Spent: 0.5h (was: 20m)
> Add SearchAttributes to filter Temporal Flows in the UI
> -------------------------------------------------------
>
> Key: GOBBLIN-2153
> URL: https://issues.apache.org/jira/browse/GOBBLIN-2153
> Project: Apache Gobblin
> Issue Type: Improvement
> Reporter: Aditya Pratap Singh
> Priority: Major
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> Add SearchAttributes to filter Temporal Flows in the UI
--
This message was sent by Atlassian Jira
(v8.20.10#820010)