package org.ovirt.engine.core.bll.host; import java.util.concurrent.TimeUnit; import org.ovirt.engine.core.bll.network.host.HostSetupNetworkPoller; import org.ovirt.engine.core.common.businessentities.VDS; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HostConnectivityChecker { private static Logger log = LoggerFactory.getLogger(HostConnectivityChecker.class); private static final long VDSM_RESPONSIVENESS_PERIOD_IN_SECONDS = 120; private static final long VDSM_RESPONSIVENESS_PERIOD_IN_NANOS = TimeUnit.SECONDS.toNanos(VDSM_RESPONSIVENESS_PERIOD_IN_SECONDS); public boolean check(final VDS host) { HostSetupNetworkPoller poller = new HostSetupNetworkPoller(); final long startTime = System.nanoTime(); while (System.nanoTime() - startTime < VDSM_RESPONSIVENESS_PERIOD_IN_NANOS) { if (poller.poll(host.getId())) { log.info("Engine managed to communicate with VDSM agent on host '{}' with address '{}' ('{}')", host.getName(), host.getHostName(), host.getId()); return true; } } return false; } }