Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature][scaleph-ui-react] update doris instance detail web #667

Merged
merged 11 commits into from
Dec 21, 2023
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import cn.sliew.scaleph.engine.doris.service.param.WsDorisOperatorInstanceUpdateParam;
import cn.sliew.scaleph.system.model.ResponseVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.fabric8.kubernetes.api.model.GenericKubernetesResource;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -36,6 +37,7 @@

import javax.validation.Valid;
import java.util.List;
import java.util.Optional;

@Tag(name = "Doris管理-Operator实例管理")
@RestController
Expand Down Expand Up @@ -125,4 +127,12 @@ public ResponseEntity<ResponseVO> shutdown(@PathVariable("id") Long id) {
return new ResponseEntity<>(ResponseVO.success(), HttpStatus.OK);
}

@Logging
@GetMapping("status/{id}")
@Operation(summary = "获取实例状态", description = "获取实例状态")
public ResponseEntity<ResponseVO<GenericKubernetesResource>> getStatus(@PathVariable("id") Long id) {
Optional<GenericKubernetesResource> sessionCluster = wsDorisInstanceService.getStatusWithoutManagedFields(id);
return new ResponseEntity<>(ResponseVO.success(sessionCluster.orElse(null)), HttpStatus.OK);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,7 @@
import cn.sliew.milky.common.filter.ActionListener;
import cn.sliew.milky.common.util.JacksonUtil;
import cn.sliew.scaleph.engine.doris.operator.status.DorisClusterStatus;
import cn.sliew.scaleph.engine.doris.service.DorisOperatorService;
import cn.sliew.scaleph.engine.doris.service.WsDorisOperatorInstanceService;
import cn.sliew.scaleph.engine.doris.service.dto.WsDorisOperatorInstanceDTO;
import cn.sliew.scaleph.workflow.engine.action.ActionContext;
import cn.sliew.scaleph.workflow.engine.action.ActionResult;
import cn.sliew.scaleph.workflow.engine.workflow.AbstractWorkFlow;
Expand All @@ -41,8 +39,6 @@ public class DorisOperatorInstanceStatusSyncJob extends AbstractWorkFlow {

@Autowired
private WsDorisOperatorInstanceService wsDorisOperatorInstanceService;
@Autowired
private DorisOperatorService dorisOperatorService;

public DorisOperatorInstanceStatusSyncJob() {
super("DORIS_OPERATOR_INSTANCE_STATUS_SYNC_JOB");
Expand All @@ -61,8 +57,7 @@ private void process() {

private void doProcess(Long id) {
try {
WsDorisOperatorInstanceDTO instanceDTO = wsDorisOperatorInstanceService.selectOne(id);
Optional<GenericKubernetesResource> optional = dorisOperatorService.get(instanceDTO);
Optional<GenericKubernetesResource> optional = wsDorisOperatorInstanceService.getStatusWithoutManagedFields(id);
if (optional.isPresent()) {
String json = JacksonUtil.toJsonString(optional.get().get("status"));
DorisClusterStatus status = JacksonUtil.parseJsonString(json, DorisClusterStatus.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,10 @@
import cn.sliew.scaleph.engine.doris.service.param.WsDorisOperatorInstanceListParam;
import cn.sliew.scaleph.engine.doris.service.param.WsDorisOperatorInstanceUpdateParam;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.fabric8.kubernetes.api.model.GenericKubernetesResource;

import java.util.List;
import java.util.Optional;

public interface WsDorisOperatorInstanceService {

Expand Down Expand Up @@ -54,6 +56,10 @@ public interface WsDorisOperatorInstanceService {

void shutdown(Long id);

Optional<GenericKubernetesResource> getStatus(Long id);

Optional<GenericKubernetesResource> getStatusWithoutManagedFields(Long id);

int updateStatus(Long id, DorisClusterStatus status);

int clearStatus(Long id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

package cn.sliew.scaleph.engine.doris.service.impl;

import cn.sliew.milky.common.exception.Rethrower;
import cn.sliew.milky.common.util.JacksonUtil;
import cn.sliew.scaleph.common.dict.common.YesOrNo;
import cn.sliew.scaleph.common.util.UUIDUtil;
Expand All @@ -38,14 +39,19 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.fabric8.kubernetes.api.model.GenericKubernetesResource;
import io.fabric8.kubernetes.api.model.GenericKubernetesResourceBuilder;
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
import io.fabric8.kubernetes.client.utils.Serialization;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.util.Predicates;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;

import static cn.sliew.milky.common.check.Ensures.checkState;
Expand Down Expand Up @@ -203,6 +209,34 @@ public void shutdown(Long id) {
wsDorisOperatorInstanceMapper.updateById(record);
}

@Override
public Optional<GenericKubernetesResource> getStatus(Long id) {
try {
WsDorisOperatorInstanceDTO instanceDTO = selectOne(id);
if (instanceDTO.getDeployed() == YesOrNo.YES) {
return dorisOperatorService.get(instanceDTO);
}
return Optional.empty();
} catch (Exception e) {
Rethrower.throwAs(e);
return null;
}
}

@Override
public Optional<GenericKubernetesResource> getStatusWithoutManagedFields(Long id) {
Optional<GenericKubernetesResource> optional = getStatus(id);
if (optional.isEmpty()) {
return Optional.empty();
}
GenericKubernetesResource status = optional.get();
GenericKubernetesResourceBuilder builder = new GenericKubernetesResourceBuilder(status);
ObjectMetaBuilder objectMetaBuilder = new ObjectMetaBuilder(status.getMetadata());
objectMetaBuilder.removeMatchingFromManagedFields(Predicates.isTrue());
builder.withMetadata(objectMetaBuilder.build());
return Optional.of(builder.build());
}

@Override
public int updateStatus(Long id, DorisClusterStatus status) {
if (status == null) {
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion scaleph-ui-react/public/images/DataSource/Cassandra.svg

This file was deleted.

Binary file modified scaleph-ui-react/public/images/DataSource/Elasticsearch.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified scaleph-ui-react/public/images/DataSource/HBase.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified scaleph-ui-react/public/images/DataSource/HDFS.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion scaleph-ui-react/public/images/DataSource/HDFS.svg

This file was deleted.

Binary file modified scaleph-ui-react/public/images/DataSource/Hive.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading