存储redis
This commit is contained in:
parent
a5fb181db3
commit
6707bc2710
|
@ -4,6 +4,7 @@ import com.ruoyi.common.core.web.controller.BaseController;
|
||||||
import com.ruoyi.common.core.web.domain.GenericsAjaxResult;
|
import com.ruoyi.common.core.web.domain.GenericsAjaxResult;
|
||||||
import com.ruoyi.platform.service.TensorBoardService;
|
import com.ruoyi.platform.service.TensorBoardService;
|
||||||
import com.ruoyi.platform.vo.FrameLogPathVo;
|
import com.ruoyi.platform.vo.FrameLogPathVo;
|
||||||
|
import com.ruoyi.platform.vo.TensorboardStatusVo;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||||
|
@ -36,7 +37,7 @@ public class TensorBoardController extends BaseController {
|
||||||
}
|
}
|
||||||
@PostMapping("/getStatus")
|
@PostMapping("/getStatus")
|
||||||
@ApiResponse
|
@ApiResponse
|
||||||
public GenericsAjaxResult<String> getStatus(@RequestBody FrameLogPathVo frameLogPathVo) throws Exception {
|
public GenericsAjaxResult<TensorboardStatusVo> getStatus(@RequestBody FrameLogPathVo frameLogPathVo) throws Exception {
|
||||||
return genericsSuccess(tensorBoardService.getTensorBoardStatus(frameLogPathVo));
|
return genericsSuccess(tensorBoardService.getTensorBoardStatus(frameLogPathVo));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
package com.ruoyi.platform.service;
|
package com.ruoyi.platform.service;
|
||||||
|
|
||||||
import com.ruoyi.platform.vo.FrameLogPathVo;
|
import com.ruoyi.platform.vo.FrameLogPathVo;
|
||||||
|
import com.ruoyi.platform.vo.TensorboardStatusVo;
|
||||||
|
|
||||||
public interface TensorBoardService {
|
public interface TensorBoardService {
|
||||||
|
|
||||||
|
|
||||||
String getTensorBoardStatus(FrameLogPathVo frameLogPathVo);
|
TensorboardStatusVo getTensorBoardStatus(FrameLogPathVo frameLogPathVo);
|
||||||
/**
|
/**
|
||||||
* 在集群中启动TensorBoard容器,并且返回地址,4小时后销毁
|
* 在集群中启动TensorBoard容器,并且返回地址,4小时后销毁
|
||||||
* @param frameLogPathVo
|
* @param frameLogPathVo
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
package com.ruoyi.platform.service.impl;
|
package com.ruoyi.platform.service.impl;
|
||||||
|
|
||||||
import com.ruoyi.common.core.utils.StringUtils;
|
import com.ruoyi.common.core.utils.StringUtils;
|
||||||
|
import com.ruoyi.common.redis.service.RedisService;
|
||||||
import com.ruoyi.common.security.utils.SecurityUtils;
|
import com.ruoyi.common.security.utils.SecurityUtils;
|
||||||
import com.ruoyi.platform.domain.PodStatus;
|
import com.ruoyi.platform.domain.PodStatus;
|
||||||
import com.ruoyi.platform.service.TensorBoardService;
|
import com.ruoyi.platform.service.TensorBoardService;
|
||||||
import com.ruoyi.platform.utils.K8sClientUtil;
|
import com.ruoyi.platform.utils.K8sClientUtil;
|
||||||
import com.ruoyi.platform.vo.FrameLogPathVo;
|
import com.ruoyi.platform.vo.FrameLogPathVo;
|
||||||
|
import com.ruoyi.platform.vo.TensorboardStatusVo;
|
||||||
import com.ruoyi.system.api.model.LoginUser;
|
import com.ruoyi.system.api.model.LoginUser;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
@ -23,12 +25,16 @@ public class TensorBoardServiceImpl implements TensorBoardService {
|
||||||
@Value("${tensorBoard.masterIp}")
|
@Value("${tensorBoard.masterIp}")
|
||||||
private String masterIp;
|
private String masterIp;
|
||||||
@Resource
|
@Resource
|
||||||
|
private RedisService redisService;
|
||||||
|
@Resource
|
||||||
private K8sClientUtil k8sClientUtil;
|
private K8sClientUtil k8sClientUtil;
|
||||||
@Override
|
@Override
|
||||||
public String getTensorBoardStatus(FrameLogPathVo frameLogPathVo){
|
public TensorboardStatusVo getTensorBoardStatus(FrameLogPathVo frameLogPathVo){
|
||||||
String status = PodStatus.Terminated.getName();
|
String status = PodStatus.Terminated.getName();
|
||||||
|
TensorboardStatusVo tensorboardStatusVo = new TensorboardStatusVo();
|
||||||
|
tensorboardStatusVo.setStatus(status);
|
||||||
if (StringUtils.isEmpty(frameLogPathVo.getPath())){
|
if (StringUtils.isEmpty(frameLogPathVo.getPath())){
|
||||||
return status;
|
return tensorboardStatusVo;
|
||||||
}
|
}
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
String podName = loginUser.getUsername().toLowerCase()+"-"+frameLogPathVo.getPath().split("/")[2]+ "-tensorboard-pod";
|
String podName = loginUser.getUsername().toLowerCase()+"-"+frameLogPathVo.getPath().split("/")[2]+ "-tensorboard-pod";
|
||||||
|
@ -42,9 +48,12 @@ public class TensorBoardServiceImpl implements TensorBoardService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return PodStatus.Terminated.getName();
|
return tensorboardStatusVo;
|
||||||
}
|
}
|
||||||
return status;
|
String url = redisService.getCacheObject(podName);
|
||||||
|
tensorboardStatusVo.setStatus(status);
|
||||||
|
tensorboardStatusVo.setUrl(url);
|
||||||
|
return tensorboardStatusVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -55,6 +64,7 @@ public class TensorBoardServiceImpl implements TensorBoardService {
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
String podName = loginUser.getUsername().toLowerCase()+"-"+frameLogPathVo.getPath().split("/")[2]+ "-tensorboard-pod";
|
String podName = loginUser.getUsername().toLowerCase()+"-"+frameLogPathVo.getPath().split("/")[2]+ "-tensorboard-pod";
|
||||||
Integer podPort = k8sClientUtil.createPodWithSubPath(podName, StringUtils.isEmpty(frameLogPathVo.getNamespace())?"default":frameLogPathVo.getNamespace(), port, mountPath,frameLogPathVo.getPath(), frameLogPathVo.getPvcName(), image);
|
Integer podPort = k8sClientUtil.createPodWithSubPath(podName, StringUtils.isEmpty(frameLogPathVo.getNamespace())?"default":frameLogPathVo.getNamespace(), port, mountPath,frameLogPathVo.getPath(), frameLogPathVo.getPvcName(), image);
|
||||||
|
redisService.setCacheObject(podName,masterIp + ":" + podPort);
|
||||||
return masterIp + ":" + podPort;
|
return masterIp + ":" + podPort;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.ruoyi.platform.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonNaming;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
|
||||||
|
public class TensorboardStatusVo implements Serializable {
|
||||||
|
private String status;
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
public String getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatus(String status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUrl() {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrl(String url) {
|
||||||
|
this.url = url;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue