[ Server ] [ Harbor ] - sync status - 1
This commit is contained in:
@@ -16,7 +16,12 @@ public enum HarborFunctionEnum {
|
||||
|
||||
SYNC_PROJECT_BETWEEN_HARBOR(
|
||||
"SYNC_PROJECT_BETWEEN_HARBOR",
|
||||
"在源Harbor和目标Harbor之间同步Project, args 为目标Harbor的HostName,不带端口, 源Harbor的HostName,不带端口"
|
||||
"在源Harbor和目标Harbor之间同步Project, args 为目标Harbor的HostName,不带端口; 源Harbor的HostName,不带端口"
|
||||
),
|
||||
|
||||
SYNC_STATUS_HARBOR(
|
||||
"SYNC_STATUS_HARBOR",
|
||||
"查询目标Harbor的同步状态进度, args 为目标Harbor的HostName,不带端口;"
|
||||
);
|
||||
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@@ -31,13 +32,28 @@ public class HarborFuncScheduler {
|
||||
|
||||
|
||||
// after run
|
||||
afterRunProcedure();
|
||||
afterRunProcedure(projectDeployContext);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void afterRunProcedure() {
|
||||
private void afterRunProcedure(ProjectDeployContext projectDeployContext) {
|
||||
|
||||
int maxSyncStatusCheckCount = 1000;
|
||||
int timePinch = 2;
|
||||
|
||||
int waitCount = 0;
|
||||
|
||||
while (waitCount < maxSyncStatusCheckCount && !checkHarborSyncStatus(projectDeployContext)) {
|
||||
waitCount++;
|
||||
|
||||
try {
|
||||
TimeUnit.SECONDS.sleep(timePinch);
|
||||
} catch (InterruptedException e) {
|
||||
log.error("wait for sync status error !");
|
||||
}
|
||||
}
|
||||
|
||||
// 检查是否安装完成, 对安装环境进行判定
|
||||
log.debug("afterRunProcedure complete!");
|
||||
@@ -202,6 +218,27 @@ public class HarborFuncScheduler {
|
||||
|
||||
}
|
||||
|
||||
private boolean checkHarborSyncStatus(ProjectDeployContext projectDeployContext) {
|
||||
ServerInfoPO masterNode = projectDeployContext.getMasterNode();
|
||||
|
||||
ArrayList<String> syncHarborArgList = new ArrayList<>();
|
||||
syncHarborArgList.add(HarborFunctionEnum.SYNC_STATUS_HARBOR.getOpName());
|
||||
syncHarborArgList.add(masterNode.getServerIpInV4());
|
||||
|
||||
|
||||
log.info(
|
||||
"{} start ! args are => {}",
|
||||
HarborFunctionEnum.SYNC_STATUS_HARBOR.getOpName(),
|
||||
syncHarborArgList
|
||||
);
|
||||
|
||||
return funcService.callHarborFuncAndJudge(
|
||||
masterNode.getTopicName(),
|
||||
HarborFunctionEnum.SYNC_STATUS_HARBOR,
|
||||
syncHarborArgList
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
private void beforeRunProcedure(ProjectDeployContext projectDeployContext) {
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package io.wdd.func.controller;
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController("/auto")
|
||||
@Api("Octopus自动化介入")
|
||||
public class AutoController {
|
||||
|
||||
@GetMapping("/harbor/status")
|
||||
@ApiOperation("查看Harbor的Sync的同步状态")
|
||||
public void GetHarborSyncStatus(
|
||||
@RequestParam(name = "projectId") @ApiParam("projectId") Long projectId
|
||||
) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user