mirror of
https://github.com/ZwareBear/JFrog-Cloud-Installers.git
synced 2026-01-21 05:06:56 -06:00
54 lines
2.2 KiB
Groovy
54 lines
2.2 KiB
Groovy
import org.artifactory.state.ArtifactoryServerState
|
|
import org.artifactory.storage.db.servers.service.ArtifactoryServersCommonService
|
|
import org.artifactory.common.ConstantValues
|
|
import org.slf4j.Logger
|
|
|
|
import java.util.concurrent.TimeUnit
|
|
|
|
jobs {
|
|
clean(interval: 90000, delay: 900000) {
|
|
runCleanupHAInactiveServers()
|
|
}
|
|
}
|
|
|
|
executions {
|
|
cleanHAInactiveServers() { params ->
|
|
runCleanupHAInactiveServers()
|
|
}
|
|
}
|
|
|
|
def runCleanupHAInactiveServers() {
|
|
def artifactoryServersCommonService = ctx.beanForType(ArtifactoryServersCommonService)
|
|
def artifactoryInactiveServerCleaner = new ArtifactoryInactiveServersCleaner(artifactoryServersCommonService, log)
|
|
artifactoryInactiveServerCleaner.cleanInactiveArtifactoryServers()
|
|
}
|
|
|
|
public class ArtifactoryInactiveServersCleaner {
|
|
|
|
private ArtifactoryServersCommonService artifactoryServersCommonService
|
|
private Logger log
|
|
|
|
ArtifactoryInactiveServersCleaner(ArtifactoryServersCommonService artifactoryServersCommonService, Logger log) {
|
|
this.artifactoryServersCommonService = artifactoryServersCommonService
|
|
this.log = log
|
|
}
|
|
|
|
def cleanInactiveArtifactoryServers() {
|
|
log.info "Executing inactive artifactory servers cleaner plugin"
|
|
List<String> allMembers = artifactoryServersCommonService.getAllArtifactoryServers()
|
|
for (member in allMembers) {
|
|
def heartbeat = TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis() - member.getLastHeartbeat())
|
|
def noHeartbeat = heartbeat > ConstantValues.haHeartbeatStaleIntervalSecs.getInt()
|
|
if (member.getServerState() == ArtifactoryServerState.UNAVAILABLE || ( noHeartbeat && member.getServerState() != ArtifactoryServerState.CONVERTING && member.getServerState() != ArtifactoryServerState.STARTING )) {
|
|
try {
|
|
log.info "Inactive artifactory servers cleaning task found server ${member.serverId} to remove"
|
|
artifactoryServersCommonService.removeServer(member.serverId)
|
|
|
|
}catch (Exception e){
|
|
log.error "Error: Not able to remove ${member.serverId}, ${e.message}"
|
|
}
|
|
}
|
|
}
|
|
log.info "No inactive servers found"
|
|
}
|
|
} |