[ Server ] [ Harbor ] - sync status - 7
This commit is contained in:
@@ -16,7 +16,7 @@ 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,不带端口; 需要同步的仓库project(rancher cmii)名称"
|
||||
),
|
||||
|
||||
SYNC_STATUS_HARBOR(
|
||||
|
||||
@@ -7,6 +7,7 @@ import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@@ -26,7 +27,14 @@ public class ProjectDeployContext {
|
||||
|
||||
boolean agentBaseProcedureAccomplished;
|
||||
|
||||
boolean harborSynchronized;
|
||||
|
||||
public static final ArrayList<String> PROJECT_NEED_TO_BY_SYNCHRONIZED = new ArrayList<>(
|
||||
List.of(
|
||||
"rancher",
|
||||
"cmii"
|
||||
)
|
||||
);
|
||||
boolean rancherHarborSynchronized;
|
||||
boolean cmiiHarborSynchronized;
|
||||
String currentSynchronizingProject;
|
||||
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static io.wdd.func.auto.beans.ProjectDeployContext.PROJECT_NEED_TO_BY_SYNCHRONIZED;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class HarborFuncScheduler {
|
||||
@@ -40,20 +42,6 @@ public class HarborFuncScheduler {
|
||||
|
||||
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!");
|
||||
@@ -77,12 +65,46 @@ public class HarborFuncScheduler {
|
||||
log.error("list harbor project failed !");
|
||||
}
|
||||
|
||||
// 1 - sync harbor
|
||||
if (!SyncBetweenHarbor(projectDeployContext)) {
|
||||
log.error("sync harbor project failed !");
|
||||
}
|
||||
int maxSyncStatusCheckCount = 1000;
|
||||
int timePinch = 2;
|
||||
|
||||
// 1 - load image from tar.gz
|
||||
for (String project : PROJECT_NEED_TO_BY_SYNCHRONIZED) {
|
||||
|
||||
// 1 - sync harbor
|
||||
log.info(
|
||||
"start to sync project of [ {} ]",
|
||||
project
|
||||
);
|
||||
projectDeployContext.setCurrentSynchronizingProject(project);
|
||||
if (!SyncBetweenHarbor(projectDeployContext)) {
|
||||
log.error(
|
||||
"sync harbor project [ {} ] failed !",
|
||||
project
|
||||
);
|
||||
}
|
||||
|
||||
int waitCount = 0;
|
||||
while (waitCount < maxSyncStatusCheckCount && !checkHarborSyncStatus(projectDeployContext)) {
|
||||
waitCount++;
|
||||
try {
|
||||
TimeUnit.SECONDS.sleep(timePinch);
|
||||
} catch (InterruptedException e) {
|
||||
log.error(
|
||||
"wait for project of [ {} ] sync status error !",
|
||||
project
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (waitCount == maxSyncStatusCheckCount) {
|
||||
continue;
|
||||
}
|
||||
|
||||
log.info(
|
||||
"project of [ {} ] has sync success !",
|
||||
project
|
||||
);
|
||||
}
|
||||
|
||||
log.info("Harbor Image Synchronized Succeed !");
|
||||
}
|
||||
@@ -158,9 +180,14 @@ public class HarborFuncScheduler {
|
||||
syncHarborArgList.add(HarborFunctionEnum.SYNC_PROJECT_BETWEEN_HARBOR.getOpName());
|
||||
syncHarborArgList.add(masterNode.getServerIpInV4());
|
||||
|
||||
// second arg sourceHarborHost
|
||||
String sourceHarborHost = getIPv4Address();
|
||||
syncHarborArgList.add(sourceHarborHost);
|
||||
|
||||
// third arg sync project name
|
||||
syncHarborArgList.add(projectDeployContext.getCurrentSynchronizingProject());
|
||||
|
||||
|
||||
log.info(
|
||||
"{} start ! args are => {}",
|
||||
HarborFunctionEnum.SYNC_PROJECT_BETWEEN_HARBOR.getOpName(),
|
||||
|
||||
Reference in New Issue
Block a user