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

benjobs pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git


The following commit(s) were added to refs/heads/dev by this push:
     new 99fcf2931 [Feature] support for flink cluster configuration (#2905)
99fcf2931 is described below

commit 99fcf2931194af4750c9388812d0ae25458d8c3d
Author: xujiangfeng001 <[email protected]>
AuthorDate: Sat Jul 29 15:09:35 2023 +0800

    [Feature] support for flink cluster configuration (#2905)
---
 .../streampark/console/core/entity/FlinkCluster.java |  1 +
 .../core/service/impl/FlinkClusterServiceImpl.java   |  1 +
 .../src/views/setting/FlinkCluster/EditCluster.vue   | 13 ++++++++++++-
 .../views/setting/FlinkCluster/useClusterSetting.ts  | 20 ++++++++++++++++++++
 4 files changed, 34 insertions(+), 1 deletion(-)

diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/FlinkCluster.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/FlinkCluster.java
index 9684c8406..d48c17861 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/FlinkCluster.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/FlinkCluster.java
@@ -108,6 +108,7 @@ public class FlinkCluster implements Serializable {
 
   private Date endTime;
 
+  @TableField(updateStrategy = FieldStrategy.IGNORED)
   private Integer alertId;
 
   private transient Integer jobs = 0;
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java
index adb74ce41..7111e2758 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java
@@ -199,6 +199,7 @@ public class FlinkClusterServiceImpl extends 
ServiceImpl<FlinkClusterMapper, Fli
         success, String.format(ERROR_CLUSTER_QUEUE_HINT, 
paramOfCluster.getYarnQueue()));
 
     flinkCluster.setClusterName(paramOfCluster.getClusterName());
+    flinkCluster.setAlertId(paramOfCluster.getAlertId());
     flinkCluster.setDescription(paramOfCluster.getDescription());
     if (ExecutionMode.isRemoteMode(flinkCluster.getExecutionModeEnum())) {
       flinkCluster.setAddress(paramOfCluster.getAddress());
diff --git 
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/EditCluster.vue
 
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/EditCluster.vue
index c3da53cfe..9c2590226 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/EditCluster.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/EditCluster.vue
@@ -15,7 +15,7 @@
   limitations under the License.
 -->
 <script lang="ts">
-  import { defineComponent } from 'vue';
+  import { defineComponent, unref, ref } from 'vue';
   import { useGo } from '/@/hooks/web/usePage';
   export default defineComponent({
     name: 'EditCluster',
@@ -36,6 +36,8 @@
   import { useRoute } from 'vue-router';
   import { useEdit } from '../../flink/app/hooks/useEdit';
   import { useI18n } from '/@/hooks/web/useI18n';
+  import { fetchAlertSetting } from '/@/api/flink/setting/alert';
+  import { AlertSetting } from '/@/api/flink/setting/types/alert.type';
 
   const go = useGo();
   const route = useRoute();
@@ -43,6 +45,7 @@
   const { Swal } = useMessage();
   const { handleResetApplication, defaultOptions } = useEdit();
   const cluster = reactive<Recordable>({});
+  const alerts = ref<AlertSetting[]>([]);
   const { getLoading, changeLoading, getClusterSchema, handleSubmitParams } = 
useClusterSetting();
 
   const [registerForm, { submit, setFieldsValue }] = useForm({
@@ -97,6 +100,10 @@
   function handleReset() {
     const resetParams = handleResetApplication();
     nextTick(() => {
+      let selectAlertId: string | undefined;
+      if (cluster.alertId) {
+        selectAlertId = unref(alerts)?.filter((t) => t.id == 
cluster.alertId)[0]?.id;
+      }
       setFieldsValue({
         clusterName: cluster.clusterName,
         clusterId: cluster.clusterId,
@@ -106,6 +113,7 @@
         dynamicProperties: cluster.dynamicProperties,
         resolveOrder: cluster.resolveOrder,
         yarnQueue: cluster.yarnQueue,
+        alertId: selectAlertId,
         versionId: cluster.versionId || null,
         k8sRestExposedType: cluster.k8sRestExposedType,
         flinkImage: cluster.flinkImage,
@@ -117,6 +125,9 @@
     });
   }
   onMounted(() => {
+    fetchAlertSetting().then((res) => {
+      alerts.value = res;
+    });
     getClusterInfo();
   });
 </script>
diff --git 
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/useClusterSetting.ts
 
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/useClusterSetting.ts
index e88e1d04a..04563a701 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/useClusterSetting.ts
+++ 
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/useClusterSetting.ts
@@ -38,6 +38,8 @@ import {
 import { handleFormValue } from '../../flink/app/utils';
 import { useMessage } from '/@/hooks/web/useMessage';
 import { useI18n } from '/@/hooks/web/useI18n';
+import { AlertSetting } from '/@/api/flink/setting/types/alert.type';
+import { fetchAlertSetting } from '/@/api/flink/setting/alert';
 
 export const useClusterSetting = () => {
   const { createMessage } = useMessage();
@@ -45,6 +47,7 @@ export const useClusterSetting = () => {
 
   const submitLoading = ref(false);
   const flinkEnvs = ref<any[]>([]);
+  const alerts = ref<AlertSetting[]>([]);
   const historyRecord = reactive<{
     k8sNamespace: string[];
     k8sSessionClusterId: string[];
@@ -156,6 +159,19 @@ export const useClusterSetting = () => {
         ifShow: ({ values }) => values.executionMode == 
ExecModeEnum.YARN_SESSION,
         render: (renderCallbackParams) => 
renderYarnQueue(renderCallbackParams),
       },
+      {
+        field: 'alertId',
+        label: t('flink.app.faultAlertTemplate'),
+        component: 'Select',
+        componentProps: {
+          placeholder: t('flink.app.addAppTips.alertTemplatePlaceholder'),
+          options: unref(alerts),
+          fieldNames: { label: 'alertName', value: 'id', options: 'options' },
+        },
+        ifShow: ({ values }) =>
+            values.executionMode == ExecModeEnum.YARN_SESSION ||
+            values.executionMode == ExecModeEnum.REMOTE,
+      },
       {
         field: 'clusterId',
         label: t('setting.flinkCluster.form.k8sClusterId'),
@@ -332,6 +348,7 @@ export const useClusterSetting = () => {
       executionMode: values.executionMode,
       versionId: values.versionId,
       description: values.description,
+      alertId: values.alertId,
     };
 
     switch (values.executionMode) {
@@ -370,6 +387,9 @@ export const useClusterSetting = () => {
     fetchFlinkEnv().then((res) => {
       flinkEnvs.value = res;
     });
+    fetchAlertSetting().then((res) => {
+      alerts.value = res;
+    });
     fetchK8sNamespaces().then((res) => {
       historyRecord.k8sNamespace = res;
     });

Reply via email to