use of com.cloud.agent.api.PingCommand in project cloudstack by apache.
the class CiscoVnmcResourceTest method testPingCommandStatusOk.
@Test
public void testPingCommandStatusOk() throws ConfigurationException, ExecutionException {
_resource.setConnection(_connection);
when(_connection.login()).thenReturn(true);
PingCommand ping = _resource.getCurrentStatus(1);
assertTrue(ping != null);
assertTrue(ping.getHostId() == 1);
assertTrue(ping.getHostType() == Host.Type.ExternalFirewall);
}
use of com.cloud.agent.api.PingCommand in project cosmic by MissionCriticalCloud.
the class NiciraNvpResourceTest method testPingCommandStatusOk.
@Test
public void testPingCommandStatusOk() throws ConfigurationException, NiciraNvpApiException {
resource.configure("NiciraNvpResource", parameters);
final ControlClusterStatus ccs = mock(ControlClusterStatus.class);
when(ccs.getClusterStatus()).thenReturn("stable");
when(nvpApi.getControlClusterStatus()).thenReturn(ccs);
final PingCommand ping = resource.getCurrentStatus(42);
assertTrue(ping != null);
assertTrue(ping.getHostId() == 42);
assertTrue(ping.getHostType() == Type.L2Networking);
}
use of com.cloud.agent.api.PingCommand in project cosmic by MissionCriticalCloud.
the class NiciraNvpResourceTest method testPingCommandStatusApiException.
@Test
public void testPingCommandStatusApiException() throws ConfigurationException, NiciraNvpApiException {
resource.configure("NiciraNvpResource", parameters);
final ControlClusterStatus ccs = mock(ControlClusterStatus.class);
when(ccs.getClusterStatus()).thenReturn("unstable");
when(nvpApi.getControlClusterStatus()).thenThrow(new NiciraNvpApiException());
final PingCommand ping = resource.getCurrentStatus(42);
assertTrue(ping == null);
}
use of com.cloud.agent.api.PingCommand in project cosmic by MissionCriticalCloud.
the class NiciraNvpResource method getCurrentStatus.
@Override
public PingCommand getCurrentStatus(final long id) {
try {
final ControlClusterStatus ccs = getNiciraNvpApi().getControlClusterStatus();
getApiProviderMajorityVersion(ccs);
if (!"stable".equals(ccs.getClusterStatus())) {
s_logger.error("ControlCluster state is not stable: " + ccs.getClusterStatus());
rotateNiciraNvpApi();
return null;
}
} catch (final NiciraNvpApiException e) {
s_logger.error("getControlClusterStatus failed", e);
rotateNiciraNvpApi();
return null;
}
return new PingCommand(Host.Type.L2Networking, id);
}
use of com.cloud.agent.api.PingCommand in project CloudStack-archive by CloudStack-extras.
the class Agent method processOtherTask.
public void processOtherTask(Task task) {
final Object obj = task.get();
if (obj instanceof Response) {
if ((System.currentTimeMillis() - _lastPingResponseTime) > _pingInterval * _shell.getPingRetries()) {
s_logger.error("Ping Interval has gone past " + _pingInterval * _shell.getPingRetries() + ". Attempting to reconnect.");
final Link link = task.getLink();
reconnect(link);
return;
}
final PingCommand ping = _resource.getCurrentStatus(getId());
final Request request = new Request(_id, -1, ping, false);
request.setSequence(getNextSequence());
if (s_logger.isDebugEnabled()) {
s_logger.debug("Sending ping: " + request.toString());
}
try {
task.getLink().send(request.toBytes());
//if i can send pingcommand out, means the link is ok
setLastPingResponseTime();
} catch (final ClosedChannelException e) {
s_logger.warn("Unable to send request: " + request.toString());
}
} else if (obj instanceof Request) {
final Request req = (Request) obj;
final Command command = req.getCommand();
Answer answer = null;
_inProgress.incrementAndGet();
try {
answer = _resource.executeRequest(command);
} finally {
_inProgress.decrementAndGet();
}
if (answer != null) {
final Response response = new Response(req, answer);
if (s_logger.isDebugEnabled()) {
s_logger.debug("Watch Sent: " + response.toString());
}
try {
task.getLink().send(response.toBytes());
} catch (final ClosedChannelException e) {
s_logger.warn("Unable to send response: " + response.toString());
}
}
} else {
s_logger.warn("Ignoring an unknown task");
}
}
Aggregations