Skip to content

Commit 084febb

Browse files
committed
CE-113 use of duration (instead of the old clock-tick-based code
1 parent 4fd7291 commit 084febb

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import java.net.URISyntaxException;
2323
import java.net.URL;
2424
import java.rmi.RemoteException;
25+
import java.time.Duration;
26+
import java.time.Instant;
2527
import java.util.ArrayList;
2628
import java.util.HashMap;
2729
import java.util.List;
@@ -129,7 +131,7 @@
129131
public class VmwareManagerImpl extends ManagerBase implements VmwareManager, VmwareStorageMount, Listener, VmwareDatacenterService, Configurable {
130132
private static final Logger s_logger = Logger.getLogger(VmwareManagerImpl.class);
131133

132-
private static final long MILISECONDS_PER_MINUTE = 60000;
134+
private static final long SECONDS_PER_MINUTE = 60;
133135
private static final int STARTUP_DELAY = 60000; // 60 seconds
134136
private static final long DEFAULT_HOST_SCAN_INTERVAL = 600000; // every 10 minutes
135137
private long _hostScanInterval = DEFAULT_HOST_SCAN_INTERVAL;
@@ -555,17 +557,18 @@ public boolean needRecycle(String workerTag) {
555557
// this time-out check was disabled
556558
// "until we have found out a VMware API that can check if there are pending tasks on the subject VM"
557559
// but as we expire jobs and those stale worker VMs stay around untill an MS reboot we opt in to have them removed anyway
558-
Long hungWorkerTimeout = 2 * (AsyncJobManagerImpl.JobExpireMinutes.value() + AsyncJobManagerImpl.JobCancelThresholdMinutes.value()) * MILISECONDS_PER_MINUTE;
559-
Long letsSayNow = System.currentTimeMillis();
560-
if(s_vmwareCleanOldWorderVMs.value() && letsSayNow - startTick > hungWorkerTimeout) {
560+
Instant start = Instant.ofEpochMilli(startTick);
561+
Instant end = start.plusSeconds(2 * (AsyncJobManagerImpl.JobExpireMinutes.value() + AsyncJobManagerImpl.JobCancelThresholdMinutes.value()) * SECONDS_PER_MINUTE);
562+
Instant now = Instant.now();
563+
if(s_vmwareCleanOldWorderVMs.value() && now.isAfter(end)) {
561564
if(s_logger.isInfoEnabled()) {
562-
s_logger.info("Worker VM expired, seconds elapsed: " + (System.currentTimeMillis() - startTick) / 1000);
565+
s_logger.info("Worker VM expired, seconds elapsed: " + Duration.between(start,now).getSeconds());
563566
}
564567
return true;
565568
}
566569
if (s_logger.isTraceEnabled()) {
567570
s_logger.trace("Worker VM with tag '" + workerTag + "' does not need recycling, yet." +
568-
"But in " + (startTick + hungWorkerTimeout - letsSayNow) + " milisecs, though");
571+
"But in " + Duration.between(now,end).getSeconds() + " seconds, though");
569572
}
570573
return false;
571574
}

0 commit comments

Comments
 (0)