mirror of https://github.com/apache/cloudstack.git
bug 6119: some commands are supposed to take a longer time, set timeout for them to 120 min
status 6119: resolved fixed
This commit is contained in:
parent
3bf19dcccb
commit
216e5f23d3
|
|
@ -210,4 +210,6 @@ public interface AgentManager extends Manager {
|
|||
public boolean reconnect(final long hostId) throws AgentUnavailableException;
|
||||
|
||||
public List<HostVO> discoverHosts(long dcId, Long podId, Long clusterId, URI url, String username, String password) throws DiscoveryException;
|
||||
|
||||
Answer easySend(Long hostId, Command cmd, int timeout);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3480,8 +3480,12 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
|
|||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
protected String callHostPlugin(String plugin, String cmd, String... params) {
|
||||
//default time out is 300 s
|
||||
return callHostPluginWithTimeOut(plugin, cmd, 300, params);
|
||||
}
|
||||
|
||||
protected String callHostPluginWithTimeOut(String plugin, String cmd, int timeout, String... params) {
|
||||
Map<String, String> args = new HashMap<String, String>();
|
||||
Session slaveSession = null;
|
||||
Connection slaveConn = null;
|
||||
|
|
@ -3493,7 +3497,7 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
|
|||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
slaveConn = new Connection(slaveUrl, 1800);
|
||||
slaveConn = new Connection(slaveUrl, timeout);
|
||||
slaveSession = Session.slaveLocalLoginWithPassword(slaveConn, _username, _password);
|
||||
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
|
|
@ -6205,7 +6209,7 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
|
|||
checksum = "";
|
||||
}
|
||||
|
||||
String result = callHostPlugin("vmopsSnapshot", "post_create_private_template", "remoteTemplateMountPath", remoteTemplateMountPath, "templateDownloadFolder", templateDownloadFolder,
|
||||
String result = callHostPluginWithTimeOut("vmopsSnapshot", "post_create_private_template", 110*60, "remoteTemplateMountPath", remoteTemplateMountPath, "templateDownloadFolder", templateDownloadFolder,
|
||||
"templateInstallFolder", templateInstallFolder, "templateFilename", templateFilename, "templateName", templateName, "templateDescription", templateDescription,
|
||||
"checksum", checksum, "virtualSize", String.valueOf(virtualSize), "templateId", String.valueOf(templateId));
|
||||
|
||||
|
|
@ -6243,7 +6247,7 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
|
|||
|
||||
// Each argument is put in a separate line for readability.
|
||||
// Using more lines does not harm the environment.
|
||||
String results = callHostPlugin("vmopsSnapshot", "backupSnapshot", "primaryStorageSRUuid", primaryStorageSRUuid, "dcId", dcId.toString(), "accountId", accountId.toString(), "volumeId",
|
||||
String results = callHostPluginWithTimeOut("vmopsSnapshot", "backupSnapshot", 110*60, "primaryStorageSRUuid", primaryStorageSRUuid, "dcId", dcId.toString(), "accountId", accountId.toString(), "volumeId",
|
||||
volumeId.toString(), "secondaryStorageMountPath", secondaryStorageMountPath, "snapshotUuid", snapshotUuid, "prevSnapshotUuid", prevSnapshotUuid, "prevBackupUuid",
|
||||
prevBackupUuid, "isFirstSnapshotOfRootVolume", isFirstSnapshotOfRootVolume.toString(), "isISCSI", isISCSI.toString());
|
||||
|
||||
|
|
@ -6346,7 +6350,7 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
|
|||
|
||||
String failureString = "Could not create volume from " + backedUpSnapshotUuid;
|
||||
templatePath = (templatePath == null) ? "" : templatePath;
|
||||
String results = callHostPlugin("vmopsSnapshot", "createVolumeFromSnapshot", "dcId", dcId.toString(), "accountId", accountId.toString(), "volumeId", volumeId.toString(),
|
||||
String results = callHostPluginWithTimeOut("vmopsSnapshot","createVolumeFromSnapshot", 110*60, "dcId", dcId.toString(), "accountId", accountId.toString(), "volumeId", volumeId.toString(),
|
||||
"secondaryStorageMountPath", secondaryStorageMountPath, "backedUpSnapshotUuid", backedUpSnapshotUuid, "templatePath", templatePath, "templateDownloadFolder",
|
||||
templateDownloadFolder, "isISCSI", isISCSI.toString());
|
||||
|
||||
|
|
|
|||
|
|
@ -1132,11 +1132,16 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Answer easySend(final Long hostId, final Command cmd) {
|
||||
return easySend(hostId, cmd, _wait);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Answer easySend(final Long hostId, final Command cmd) {
|
||||
public Answer easySend(final Long hostId, final Command cmd, int timeout) {
|
||||
try {
|
||||
final Answer answer = send(hostId, cmd, _wait);
|
||||
final Answer answer = send(hostId, cmd, timeout);
|
||||
if (answer == null) {
|
||||
s_logger.warn("send returns null answer");
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -1797,7 +1797,8 @@ public class StorageManagerImpl implements StorageManager {
|
|||
}
|
||||
}
|
||||
s_logger.debug("Trying to execute Command: " + cmd + " on host: " + hostId + " try: " + tryCount);
|
||||
answer = _agentMgr.send(hostId, cmd);
|
||||
// set 120 min timeout for storage related command
|
||||
answer = _agentMgr.send(hostId, cmd, 120*60*1000);
|
||||
|
||||
if (answer != null && answer.getResult()) {
|
||||
return answer;
|
||||
|
|
|
|||
|
|
@ -236,7 +236,8 @@ public class TemplateManagerImpl implements TemplateManager {
|
|||
s_logger.debug("Downloading " + templateId + " via " + vo.getHostId());
|
||||
}
|
||||
dcmd.setLocalPath(vo.getLocalPath());
|
||||
DownloadAnswer answer = (DownloadAnswer)_agentMgr.easySend(vo.getHostId(), dcmd);
|
||||
// set 120 min timeout for this command
|
||||
DownloadAnswer answer = (DownloadAnswer)_agentMgr.easySend(vo.getHostId(), dcmd, 120*60*1000);
|
||||
if (answer != null) {
|
||||
templateStoragePoolRef.setDownloadPercent(templateStoragePoolRef.getDownloadPercent());
|
||||
templateStoragePoolRef.setDownloadState(answer.getDownloadStatus());
|
||||
|
|
|
|||
Loading…
Reference in New Issue