diff --git a/.github/workflows/cluster-test/mysql/dolphinscheduler_env.sh b/.github/workflows/cluster-test/mysql/dolphinscheduler_env.sh index b19bdbcafb..671c70a5bb 100755 --- a/.github/workflows/cluster-test/mysql/dolphinscheduler_env.sh +++ b/.github/workflows/cluster-test/mysql/dolphinscheduler_env.sh @@ -39,12 +39,12 @@ export REGISTRY_ZOOKEEPER_BLOCK_UNTIL_CONNECTED=30000ms export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop} export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop} export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark} -export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python} +export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python/bin/python3} export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive} export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink} -export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax} +export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/datax.py} -export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH +export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH export MASTER_RESERVED_MEMORY=0.01 export WORKER_RESERVED_MEMORY=0.01 diff --git a/.github/workflows/cluster-test/postgresql/dolphinscheduler_env.sh b/.github/workflows/cluster-test/postgresql/dolphinscheduler_env.sh index e7ab832fdd..1dbd63254e 100644 --- a/.github/workflows/cluster-test/postgresql/dolphinscheduler_env.sh +++ b/.github/workflows/cluster-test/postgresql/dolphinscheduler_env.sh @@ -39,12 +39,12 @@ export REGISTRY_ZOOKEEPER_BLOCK_UNTIL_CONNECTED=30000ms export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop} export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop} export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark} -export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python} +export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python/bin/python3} export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive} export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink} -export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax} +export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/datax.py} -export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH +export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH export MASTER_RESERVED_MEMORY=0.01 export WORKER_RESERVED_MEMORY=0.01 diff --git a/README.md b/README.md index 6eaab81773..1e8608ff83 100644 --- a/README.md +++ b/README.md @@ -76,3 +76,5 @@ DolphinScheduler enriches the paramsMap) { // datax python command - return DATAX_PYTHON + + return PYTHON_LAUNCHER + " " + - DATAX_PATH + + DATAX_LAUNCHER + " " + loadJvmEnv(dataXParameters) + addCustomParameters(paramsMap) + diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/test/java/org/apache/dolphinscheduler/plugin/task/datax/DataxTaskTest.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/test/java/org/apache/dolphinscheduler/plugin/task/datax/DataxTaskTest.java index e423fcb89d..933e47f451 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/test/java/org/apache/dolphinscheduler/plugin/task/datax/DataxTaskTest.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/test/java/org/apache/dolphinscheduler/plugin/task/datax/DataxTaskTest.java @@ -122,7 +122,7 @@ public class DataxTaskTest { Assertions.assertTrue(delete); Assertions.assertEquals(dataxTask.buildCommand("/tmp/execution/app-id_job.json", null), - "python2.7 ${DATAX_HOME}/bin/datax.py --jvm=\"-Xms1G -Xmx1G\" /tmp/execution/app-id_job.json"); + "${PYTHON_LAUNCHER} ${DATAX_LAUNCHER} --jvm=\"-Xms1G -Xmx1G\" /tmp/execution/app-id_job.json"); } @Test @@ -157,7 +157,7 @@ public class DataxTaskTest { Assertions.assertTrue(delete); Assertions.assertEquals(dataxTask.buildCommand("/tmp/execution/app-id_job.json", createPrepareParamsMap()), - "python2.7 ${DATAX_HOME}/bin/datax.py --jvm=\"-Xms1G -Xmx1G\" -p \"-DDT='DT' -DDS='DS'\" /tmp/execution/app-id_job.json"); + "${PYTHON_LAUNCHER} ${DATAX_LAUNCHER} --jvm=\"-Xms1G -Xmx1G\" -p \"-DDT='DT' -DDS='DS'\" /tmp/execution/app-id_job.json"); } @Test @@ -237,7 +237,7 @@ public class DataxTaskTest { DataxParameters dataXParameters = createDataxParameters(); dataXParameters.setXms(3); dataXParameters.setXmx(4); - Assertions.assertEquals(dataxTask.loadJvmEnv(dataXParameters), " --jvm=\"-Xms3G -Xmx4G\" "); + Assertions.assertEquals(dataxTask.loadJvmEnv(dataXParameters), "--jvm=\"-Xms3G -Xmx4G\" "); } private DataxParameters createDataxParameters() { diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-openmldb/src/main/java/org/apache/dolphinscheduler/plugin/task/openmldb/OpenmldbTask.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-openmldb/src/main/java/org/apache/dolphinscheduler/plugin/task/openmldb/OpenmldbTask.java index 19b5104f07..9142a364a1 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-openmldb/src/main/java/org/apache/dolphinscheduler/plugin/task/openmldb/OpenmldbTask.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-openmldb/src/main/java/org/apache/dolphinscheduler/plugin/task/openmldb/OpenmldbTask.java @@ -132,7 +132,7 @@ public class OpenmldbTask extends PythonTask { /** * Build the python task command. - * If user have set the 'PYTHON_HOME' environment, we will use the 'PYTHON_HOME', + * If user have set the 'PYTHON_LAUNCHER' environment, we will use the 'PYTHON_LAUNCHER', * if not, we will default use python. * * @param pythonFile Python file, cannot be empty. @@ -145,7 +145,7 @@ public class OpenmldbTask extends PythonTask { } private String getPythonCommand() { - String pythonHome = System.getenv(PYTHON_HOME); + String pythonHome = System.getenv(PYTHON_LAUNCHER); return getPythonCommand(pythonHome); } diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonConstants.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonConstants.java deleted file mode 100644 index e6655db3b4..0000000000 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonConstants.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.dolphinscheduler.plugin.task.python; - -public class PythonConstants { - - private PythonConstants() { - throw new IllegalStateException("Utility class"); - } - - /** - * python home - */ - public static final String PYTHON_HOME = "PYTHON_HOME"; - - /** - * EQUAL SIGN - */ - public static final String EQUAL_SIGN = "="; -} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java index 4b4d8cbd66..3fd938d3a5 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java @@ -59,9 +59,7 @@ public class PythonTask extends AbstractTask { protected TaskExecutionContext taskRequest; - protected static final String PYTHON_HOME = "PYTHON_HOME"; - - private static final String DEFAULT_PYTHON_VERSION = "python"; + protected static final String PYTHON_LAUNCHER = "PYTHON_LAUNCHER"; /** * constructor @@ -185,7 +183,7 @@ public class PythonTask extends AbstractTask { /** * Build the python task command. - * If user have set the 'PYTHON_HOME' environment, we will use the 'PYTHON_HOME', + * If user have set the 'PYTHON_LAUNCHER' environment, we will use the 'PYTHON_LAUNCHER', * if not, we will default use python. * * @param pythonFile Python file, cannot be empty. @@ -194,7 +192,7 @@ public class PythonTask extends AbstractTask { protected String buildPythonExecuteCommand(String pythonFile) { Preconditions.checkNotNull(pythonFile, "Python file cannot be null"); - String pythonHome = String.format("${%s}", PYTHON_HOME); + String pythonHome = String.format("${%s}", PYTHON_LAUNCHER); return pythonHome + " " + pythonFile; } diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/test/java/org/apache/dolphinscheduler/plugin/task/python/PythonTaskTest.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/test/java/org/apache/dolphinscheduler/plugin/task/python/PythonTaskTest.java index 6abcabe4fc..78ee01f30d 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/test/java/org/apache/dolphinscheduler/plugin/task/python/PythonTaskTest.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/test/java/org/apache/dolphinscheduler/plugin/task/python/PythonTaskTest.java @@ -25,7 +25,7 @@ public class PythonTaskTest { @Test public void buildPythonExecuteCommand() throws Exception { PythonTask pythonTask = createPythonTask(); - Assertions.assertEquals("${PYTHON_HOME} test.py", pythonTask.buildPythonExecuteCommand("test.py")); + Assertions.assertEquals("${PYTHON_LAUNCHER} test.py", pythonTask.buildPythonExecuteCommand("test.py")); } private PythonTask createPythonTask() { diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/main/java/org/apache/dolphinscheduler/plugin/task/pytorch/PythonEnvManager.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/main/java/org/apache/dolphinscheduler/plugin/task/pytorch/PythonEnvManager.java index 99c24947d3..4c9b1215c4 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/main/java/org/apache/dolphinscheduler/plugin/task/pytorch/PythonEnvManager.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/main/java/org/apache/dolphinscheduler/plugin/task/pytorch/PythonEnvManager.java @@ -38,7 +38,7 @@ public class PythonEnvManager { private static final String VIRTUALENV_SOURCE = "source %s/bin/activate"; - private static final String VIRTUALENV_BUILD = "virtualenv -p ${PYTHON_HOME} %s"; + private static final String VIRTUALENV_BUILD = "virtualenv -p ${PYTHON_LAUNCHER} %s"; private static final String INSTALL_COMMAND = "%s -m pip install -r %s"; diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/main/java/org/apache/dolphinscheduler/plugin/task/pytorch/PytorchParameters.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/main/java/org/apache/dolphinscheduler/plugin/task/pytorch/PytorchParameters.java index 7fbc669ae6..fa7c4dc70c 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/main/java/org/apache/dolphinscheduler/plugin/task/pytorch/PytorchParameters.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/main/java/org/apache/dolphinscheduler/plugin/task/pytorch/PytorchParameters.java @@ -35,7 +35,7 @@ public class PytorchParameters extends AbstractParameters { private String pythonPath = "."; private String script; private String scriptParams; - private String pythonCommand = "${PYTHON_HOME}"; + private String pythonLauncher = "${PYTHON_LAUNCHER}"; private String pythonEnvTool = PythonEnvManager.ENV_TOOL_VENV; private String requirements = "requirements.txt"; private String condaPythonVersion = "3.9"; @@ -58,12 +58,12 @@ public class PytorchParameters extends AbstractParameters { return getPossiblePath(requirements); } - public String getPythonCommand() { + public String getPythonLauncher() { String command; - if (pythonCommand.isEmpty()) { - command = "${PYTHON_HOME}"; + if (pythonLauncher.isEmpty()) { + command = "${PYTHON_LAUNCHER}"; } else { - command = pythonCommand; + command = pythonLauncher; } return command; } diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/main/java/org/apache/dolphinscheduler/plugin/task/pytorch/PytorchTask.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/main/java/org/apache/dolphinscheduler/plugin/task/pytorch/PytorchTask.java index 806750877c..ffefc83a8e 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/main/java/org/apache/dolphinscheduler/plugin/task/pytorch/PytorchTask.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/main/java/org/apache/dolphinscheduler/plugin/task/pytorch/PytorchTask.java @@ -129,7 +129,7 @@ public class PytorchTask extends AbstractTask { if (pytorchParameters.getIsCreateEnvironment()) { pythonCommand = pythonEnvManager.getPythonCommand(); } else { - pythonCommand = pytorchParameters.getPythonCommand(); + pythonCommand = pytorchParameters.getPythonLauncher(); } return pythonCommand; diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/test/java/org/apache/dolphinscheduler/plugin/task/pytorch/PytorchTaskTest.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/test/java/org/apache/dolphinscheduler/plugin/task/pytorch/PytorchTaskTest.java index 5ffd35971f..25b975b885 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/test/java/org/apache/dolphinscheduler/plugin/task/pytorch/PytorchTaskTest.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-pytorch/src/test/java/org/apache/dolphinscheduler/plugin/task/pytorch/PytorchTaskTest.java @@ -68,7 +68,7 @@ public class PytorchTaskTest { envManager.setPythonEnvTool(PythonEnvManager.ENV_TOOL_VENV); String venvEnvCommand = envManager.getBuildEnvCommand(requirementPath); Assertions.assertEquals(venvEnvCommand, - "virtualenv -p ${PYTHON_HOME} ./venv && source ./venv/bin/activate && ./venv/bin/python -m pip install -r " + "virtualenv -p ${PYTHON_LAUNCHER} ./venv && source ./venv/bin/activate && ./venv/bin/python -m pip install -r " + requirementPath); } @@ -103,15 +103,15 @@ public class PytorchTaskTest { PytorchTask task1 = initTask(parameters); Assertions.assertEquals(task1.buildPythonExecuteCommand(), "export PYTHONPATH=.\n" + - "${PYTHON_HOME} main.py --epochs=1 --dry-run"); + "${PYTHON_LAUNCHER} main.py --epochs=1 --dry-run"); - parameters.setPythonCommand(""); + parameters.setPythonLauncher(""); PytorchTask task2 = initTask(parameters); Assertions.assertEquals(task2.buildPythonExecuteCommand(), "export PYTHONPATH=.\n" + - "${PYTHON_HOME} main.py --epochs=1 --dry-run"); + "${PYTHON_LAUNCHER} main.py --epochs=1 --dry-run"); - parameters.setPythonCommand("/usr/bin/python"); + parameters.setPythonLauncher("/usr/bin/python"); PytorchTask task3 = initTask(parameters); Assertions.assertEquals(task3.buildPythonExecuteCommand(), "export PYTHONPATH=.\n" + @@ -151,7 +151,7 @@ public class PytorchTaskTest { PytorchTask task = initTask(parameters); Assertions.assertEquals(task.buildPythonExecuteCommand(), "export PYTHONPATH=.\n" + - "virtualenv -p ${PYTHON_HOME} ./venv && source ./venv/bin/activate && ./venv/bin/python -m pip install -r requirements.txt\n" + "virtualenv -p ${PYTHON_LAUNCHER} ./venv && source ./venv/bin/activate && ./venv/bin/python -m pip install -r requirements.txt\n" + "./venv/bin/python main.py --epochs=1 --dry-run"); @@ -178,7 +178,7 @@ public class PytorchTaskTest { createFile(scriptFile); String expected = "export PYTHONPATH=%s\n" + - "virtualenv -p ${PYTHON_HOME} ./venv && source ./venv/bin/activate && ./venv/bin/python -m pip install -r %s\n" + "virtualenv -p ${PYTHON_LAUNCHER} ./venv && source ./venv/bin/activate && ./venv/bin/python -m pip install -r %s\n" + "./venv/bin/python %s"; System.out.println(task.buildPythonExecuteCommand()); diff --git a/dolphinscheduler-ui/src/locales/en_US/project.ts b/dolphinscheduler-ui/src/locales/en_US/project.ts index 9ef3735b23..1f475592ed 100644 --- a/dolphinscheduler-ui/src/locales/en_US/project.ts +++ b/dolphinscheduler-ui/src/locales/en_US/project.ts @@ -847,7 +847,7 @@ export default { pytorch_python_path: 'Project Path', pytorch_is_create_environment: 'Create An Environment Or Not', pytorch_python_command: 'Python Command Path', - pytorch_python_command_tips: 'If empty,will be set $PYTHON_HOME', + pytorch_python_command_tips: 'If empty,will be set $PYTHON_LAUNCHER', pytorch_python_env_tool: 'Python Environment Manager Tool', pytorch_requirements: 'Requirement File', pytorch_conda_python_version: 'Python Version', diff --git a/dolphinscheduler-ui/src/locales/zh_CN/project.ts b/dolphinscheduler-ui/src/locales/zh_CN/project.ts index cc83479f18..7ceddb5527 100644 --- a/dolphinscheduler-ui/src/locales/zh_CN/project.ts +++ b/dolphinscheduler-ui/src/locales/zh_CN/project.ts @@ -823,7 +823,7 @@ export default { pytorch_python_path: 'python项目地址', pytorch_is_create_environment: '是否创建新环境', pytorch_python_command: 'python命令路径', - pytorch_python_command_tips: '若为空,则使用$PYTHON_HOME', + pytorch_python_command_tips: '若为空,则使用$PYTHON_LAUNCHER', pytorch_python_env_tool: 'python环境管理工具', pytorch_requirements: '依赖文件', pytorch_conda_python_version: 'python版本', diff --git a/dolphinscheduler-ui/src/views/projects/task/components/node/tasks/use-pytorch.ts b/dolphinscheduler-ui/src/views/projects/task/components/node/tasks/use-pytorch.ts index d43e819080..3d3a8606f2 100644 --- a/dolphinscheduler-ui/src/views/projects/task/components/node/tasks/use-pytorch.ts +++ b/dolphinscheduler-ui/src/views/projects/task/components/node/tasks/use-pytorch.ts @@ -45,7 +45,7 @@ export function usePytorch({ timeout: 30, timeoutNotifyStrategy: ['WARN'], pythonEnvTool: 'conda', - pythonCommand: '${PYTHON_HOME}', + pythonCommand: '${PYTHON_LAUNCHER}', condaPythonVersion: '3.7', requirements: 'requirements.txt', pythonPath: '.' diff --git a/dolphinscheduler-ui/src/views/security/environment-manage/components/environment-modal.tsx b/dolphinscheduler-ui/src/views/security/environment-manage/components/environment-modal.tsx index e0ad77c54a..1b9d54f5b1 100644 --- a/dolphinscheduler-ui/src/views/security/environment-manage/components/environment-modal.tsx +++ b/dolphinscheduler-ui/src/views/security/environment-manage/components/environment-modal.tsx @@ -31,13 +31,13 @@ const envConfigPlaceholder = 'export HADOOP_HOME=/opt/hadoop-2.6.5\n' + 'export HADOOP_CONF_DIR=/etc/hadoop/conf\n' + 'export SPARK_HOME=/opt/soft/spark\n' + - 'export PYTHON_HOME=/opt/soft/python\n' + + 'export PYTHON_LAUNCHER=/opt/soft/python/bin/python3\n' + 'export JAVA_HOME=/opt/java/jdk1.8.0_181-amd64\n' + 'export HIVE_HOME=/opt/soft/hive\n' + 'export FLINK_HOME=/opt/soft/flink\n' + - 'export DATAX_HOME=/opt/soft/datax\n' + + 'export DATAX_LAUNCHER=/opt/soft/datax/bin/datax.py\n' + 'export YARN_CONF_DIR=/etc/hadoop/conf\n' + - 'export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH\n' + + 'export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH\n' + 'export HADOOP_CLASSPATH=`hadoop classpath`\n' const EnvironmentModal = defineComponent({