|
|
@@ -1,10 +1,11 @@
|
|
|
package com.zswl.dataservice.service.docker;
|
|
|
|
|
|
+import cn.hutool.json.JSONArray;
|
|
|
+import cn.hutool.json.JSONObject;
|
|
|
import com.zswl.dataservice.dao.docker.DockerMetaDao;
|
|
|
import com.zswl.dataservice.dao.docker.DockerMetaLastTimeDao;
|
|
|
import com.zswl.dataservice.dataConfig.ResultMessage;
|
|
|
-import com.zswl.dataservice.domain.docker.DockerMeta;
|
|
|
-import com.zswl.dataservice.domain.docker.DockerMetaLastTime;
|
|
|
+import com.zswl.dataservice.domain.docker.*;
|
|
|
import com.zswl.dataservice.domain.mqtt.DeviceInfo;
|
|
|
import com.zswl.dataservice.model.docker.*;
|
|
|
import com.zswl.dataservice.model.mqtt.DeviceInfoModel;
|
|
|
@@ -24,6 +25,7 @@ import org.springframework.util.Assert;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author TRX
|
|
|
@@ -132,12 +134,91 @@ public class DockerMetaService extends SuperService {
|
|
|
return model;
|
|
|
}
|
|
|
|
|
|
- public List<DockerListModel> getList() {
|
|
|
- List<DockerListModel> list = new ArrayList<>();
|
|
|
-
|
|
|
+ public List<JSONObject> getList() {
|
|
|
+ List<JSONObject> list = new ArrayList<>();
|
|
|
+ String groupCode = getHeader("groupCode");
|
|
|
+ if (StringUtils.isNotEmpty(groupCode)) {
|
|
|
+ List<DockerMeta> datas = dockerMetaDao.findByGroupCodeOrderByUpdateTimeDesc(groupCode);
|
|
|
+ if (ObjectUtils.isNotEmpty(datas)) {
|
|
|
+ list = datas.stream().map(this::toJson).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ }
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
+ private JSONObject toJson(DockerMeta entity) {
|
|
|
+ JSONObject object = new JSONObject();
|
|
|
+
|
|
|
+ object.set("Remark", entity.getRemark());
|
|
|
+ object.set("UpdateTime", entity.getUpdateTime());
|
|
|
+
|
|
|
+ JSONObject Container = new JSONObject();
|
|
|
+ Container.set("Name", entity.getName());
|
|
|
+ JSONObject Config = new JSONObject();
|
|
|
+ Config.put("Image", entity.getImage());
|
|
|
+ Config.put("WorkingDir", entity.getWorkingDir());
|
|
|
+
|
|
|
+ JSONArray Env = new JSONArray();
|
|
|
+ if (StringUtils.isNotEmpty(entity.getNetworkTypes())) {
|
|
|
+ Env.add(String.format("networkTypes=%s", entity.getNetworkTypes()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(entity.getMessageProtocals())) {
|
|
|
+ Env.add(String.format("messageProtocals=%s", entity.getMessageProtocals()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(entity.getExtend())) {
|
|
|
+ Env.add(String.format("extend=%s", entity.getExtend()));
|
|
|
+ }
|
|
|
+ List<EnvModel> env = entity.getEnv();
|
|
|
+ if (ObjectUtils.isNotEmpty(env)) {
|
|
|
+ for (EnvModel envModel : env) {
|
|
|
+ Env.add(String.format("%s=%s", envModel.getKey(), envModel.getValue()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Config.set("Env", Env);
|
|
|
+ Container.set("Config", Config);
|
|
|
+
|
|
|
+ JSONObject HostConfig = new JSONObject();
|
|
|
+ RestartPolicy restartPolicy = entity.getRestartPolicy();
|
|
|
+ if (ObjectUtils.isNotEmpty(restartPolicy)) {
|
|
|
+ JSONObject RestartPolicy = new JSONObject();
|
|
|
+ RestartPolicy.set("Name", restartPolicy.getName());
|
|
|
+ HostConfig.set("MaximumRetryCount", restartPolicy.getMaximumRetryCount());
|
|
|
+ HostConfig.set("RestartPolicy", RestartPolicy);
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONArray Mounts = new JSONArray();
|
|
|
+ List<Mount> mounts = entity.getMounts();
|
|
|
+ if (ObjectUtils.isNotEmpty(mounts)) {
|
|
|
+ for (Mount mount : mounts) {
|
|
|
+ JSONObject Mount = new JSONObject();
|
|
|
+ Mount.set("Type", mount.getType());
|
|
|
+ Mount.set("Source", mount.getSource());
|
|
|
+ Mount.set("Target", mount.getTarget());
|
|
|
+ Mounts.add(Mount);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ HostConfig.set("Mounts", Mounts);
|
|
|
+
|
|
|
+ JSONObject PortBindings = new JSONObject();
|
|
|
+ List<PortBinding> portBindings = entity.getPortBindings();
|
|
|
+ if (ObjectUtils.isNotEmpty(portBindings)) {
|
|
|
+ for (PortBinding portBinding : portBindings) {
|
|
|
+ String key = String.format("%s/%s", portBinding.getPort(), portBinding.getProtocol());
|
|
|
+ JSONArray bindings = new JSONArray();
|
|
|
+ JSONObject Binding = new JSONObject();
|
|
|
+ Binding.set("HostIp", portBinding.getHostIp());
|
|
|
+ Binding.set("HostPort", portBinding.getHostPort());
|
|
|
+ bindings.add(Binding);
|
|
|
+ PortBindings.set(key, bindings);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ HostConfig.set("PortBindings", PortBindings);
|
|
|
+
|
|
|
+ Container.set("HostConfig", HostConfig);
|
|
|
+ object.set("Container", Container);
|
|
|
+ return object;
|
|
|
+ }
|
|
|
+
|
|
|
public DockerMetaModel toModel(DockerMeta entity) {
|
|
|
DockerMetaModel model = null;
|
|
|
if (ObjectUtils.isNotEmpty(entity)) {
|