Skip to content

Commit

Permalink
[Feature][scaleph-ui-react] update doris instance detail web (#667)
Browse files Browse the repository at this point in the history
* fix: replace datasource icon image

* feature: add doris operator instance detail state

* feature: add doris operator instance detail state

* feature: doris instance detail state

* feature: doris instance detail state

* feature: doris instance detail state

* feature: doris instance detail state

* feature: doris instance detail state

* feature: doris instance detail access info

* feature: doris instance detail access info

* feature: update datasource icon

---------

Co-authored-by: wangqi <wangqi@xinxuan.net>
  • Loading branch information
kalencaya and wangqi authored Dec 21, 2023
1 parent eb4ace1 commit bc44bf8
Show file tree
Hide file tree
Showing 40 changed files with 410 additions and 240 deletions.
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

0 comments on commit bc44bf8

Please sign in to comment.