diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java
index 13abe7e348..6ab588a83b 100644
--- a/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java
+++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java
@@ -4,6 +4,7 @@ import io.dataease.base.domain.DatasetGroup;
import io.dataease.controller.request.dataset.DataSetGroupRequest;
import io.dataease.dto.dataset.DataSetGroupDTO;
import io.dataease.service.dataset.DataSetGroupService;
+import io.dataease.service.dataset.ExtractDataService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -18,7 +19,8 @@ import java.util.List;
public class DataSetGroupController {
@Resource
private DataSetGroupService dataSetGroupService;
-
+ @Resource
+ private ExtractDataService extractDataService;
@PostMapping("/save")
public DataSetGroupDTO save(@RequestBody DatasetGroup datasetGroup) {
return dataSetGroupService.save(datasetGroup);
@@ -38,4 +40,9 @@ public class DataSetGroupController {
public DatasetGroup getScene(@PathVariable String id) {
return dataSetGroupService.getScene(id);
}
+
+ @PostMapping("/isKettleRunning")
+ public boolean isKettleRunning(){
+ return extractDataService.isKettleRunning();
+ }
}
diff --git a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java
index 10d81eab98..2f45efe807 100644
--- a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java
+++ b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java
@@ -23,9 +23,15 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpStatus;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
import org.pentaho.di.cluster.SlaveServer;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.row.ValueMetaInterface;
+import org.pentaho.di.core.util.HttpClientManager;
+import org.pentaho.di.core.util.Utils;
import org.pentaho.di.job.Job;
import org.pentaho.di.job.JobExecutionConfiguration;
import org.pentaho.di.job.JobHopMeta;
@@ -54,7 +60,10 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import javax.naming.AuthenticationException;
import java.io.File;
+import java.io.InputStreamReader;
+import java.net.InetAddress;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
@@ -529,6 +538,31 @@ public class ExtractDataService {
return userDefinedJavaClassStep;
}
+ public boolean isKettleRunning(){
+ try {
+ if (InetAddress.getByName(carte).isReachable(1000)) {
+ HttpClient httpClient;
+ HttpGet getMethod = new HttpGet( "http://" + carte + ":" + port);
+ HttpClientManager.HttpClientBuilderFacade clientBuilder = HttpClientManager.getInstance().createBuilder();
+ clientBuilder.setConnectionTimeout(1);
+ clientBuilder.setCredentials(user, passwd);
+ httpClient = clientBuilder.build();
+ HttpResponse httpResponse = httpClient.execute( getMethod );
+ int statusCode = httpResponse.getStatusLine().getStatusCode();
+ if ( statusCode != -1 ) {
+ if ( statusCode == HttpStatus.SC_UNAUTHORIZED ) {
+ return false;
+ }
+ }
+ }else {
+ return false;
+ }
+ }catch (Exception e){
+ return false;
+ }
+ return false;
+ }
+
private static String code = "import org.pentaho.di.core.row.ValueMetaInterface;\n" +
"import java.util.List;\n" +
"import java.io.File;\n" +
diff --git a/frontend/src/api/dataset/dataset.js b/frontend/src/api/dataset/dataset.js
index eaa27aa059..0dd77de2ba 100644
--- a/frontend/src/api/dataset/dataset.js
+++ b/frontend/src/api/dataset/dataset.js
@@ -119,4 +119,12 @@ export function fieldValues(fieldId) {
})
}
+export function isKettleRunning() {
+ return request({
+ url: '/dataset/group/isKettleRunning',
+ method: 'post',
+ loading: true
+ })
+}
+
export default { loadTable, getScene, addGroup, delGroup, addTable, delTable, groupTree }
diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js
index 4b2fbe697e..dfe7752094 100644
--- a/frontend/src/lang/zh.js
+++ b/frontend/src/lang/zh.js
@@ -811,7 +811,8 @@ export default {
target_table: '被关联表',
target_field: '被关联字段',
union_relation: '关联关系',
- pls_setting_union_success: '请正确设置关联关系'
+ pls_setting_union_success: '请正确设置关联关系',
+ invalid_dataset:'Kettle未运行,无效数据集'
},
datasource: {
datasource: '数据源',
diff --git a/frontend/src/views/dataset/add/AddDB.vue b/frontend/src/views/dataset/add/AddDB.vue
index 1d3fa828ae..6a2b950c48 100644
--- a/frontend/src/views/dataset/add/AddDB.vue
+++ b/frontend/src/views/dataset/add/AddDB.vue
@@ -28,8 +28,8 @@
-
-
+
+
@@ -66,6 +66,10 @@ export default {
param: {
type: Object,
default: null
+ },
+ isKettleRunning: {
+ type: Boolean,
+ default: false
}
},
data() {
diff --git a/frontend/src/views/dataset/add/AddSQL.vue b/frontend/src/views/dataset/add/AddSQL.vue
index 71f7f09111..79d3c85f94 100644
--- a/frontend/src/views/dataset/add/AddSQL.vue
+++ b/frontend/src/views/dataset/add/AddSQL.vue
@@ -33,7 +33,7 @@
-
+
@@ -121,6 +121,10 @@ export default {
param: {
type: Object,
required: true
+ },
+ isKettleRunning: {
+ type: Boolean,
+ default: false
}
},
data() {
diff --git a/frontend/src/views/dataset/common/DatasetGroupSelector.vue b/frontend/src/views/dataset/common/DatasetGroupSelector.vue
index 5ac1936be6..240f6f4779 100644
--- a/frontend/src/views/dataset/common/DatasetGroupSelector.vue
+++ b/frontend/src/views/dataset/common/DatasetGroupSelector.vue
@@ -103,12 +103,13 @@