mirror of https://github.com/apache/cloudstack.git
Bug 11740 - OVM - after Primary storage OCFS2 with ISCSI path has been removed, attempt to add back same ISCSI path to Primary storage OCFS2 failed
status 11740: resolved fixed
This commit is contained in:
parent
f7f2eb825d
commit
628a88a3e9
|
|
@ -41,6 +41,7 @@ errCode = {
|
|||
"OvmStoragePool.createTemplateFromVolume":OvmStoragePoolErrCodeStub+5,
|
||||
"OvmStoragePool._umount":OvmStoragePoolErrCodeStub+6,
|
||||
"OvmStoragePool.copyVolume":OvmStoragePoolErrCodeStub+7,
|
||||
"OvmStoragePool.delete":OvmStoragePoolErrCodeStub+8,
|
||||
|
||||
"OvmNetwork.createBridge":OvmNetworkErrCodeStub+1,
|
||||
"OvmNetwork.deleteBridge":OvmNetworkErrCodeStub+2,
|
||||
|
|
|
|||
|
|
@ -379,6 +379,19 @@ if this doesn't resolve the problem, please check oracle manual to see how to of
|
|||
logger.error(OvmStoragePool.createTemplateFromVolume, errmsg)
|
||||
raise XmlRpcFault(toErrCode(OvmStoragePool, OvmStoragePool.createTemplateFromVolume), errmsg)
|
||||
|
||||
@staticmethod
|
||||
def delete(uuid):
|
||||
try:
|
||||
sr = OvmStoragePool()._getSrByNameLable(uuid)
|
||||
primaryStoragePath = sr.mountpoint
|
||||
OvmStoragePool()._umount(primaryStoragePath)
|
||||
rs = SUCC()
|
||||
return rs
|
||||
except Exception, e:
|
||||
errmsg = fmt_err_msg(e)
|
||||
logger.error(OvmStoragePool.delete, errmsg)
|
||||
raise XmlRpcFault(toErrCode(OvmStoragePool, OvmStoragePool.delete), errmsg)
|
||||
|
||||
@staticmethod
|
||||
def copyVolume(secStorageMountPath, volumeFolderOnSecStorage, volumePath, storagePoolUuid, toSec):
|
||||
def copyToSecStorage(secMountPoint, volumeFolderOnSecStorage, volumePath):
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ import com.cloud.agent.api.Command;
|
|||
import com.cloud.agent.api.CreatePrivateTemplateFromVolumeCommand;
|
||||
import com.cloud.agent.api.CreateStoragePoolCommand;
|
||||
import com.cloud.agent.api.CreateVolumeFromSnapshotCommand;
|
||||
import com.cloud.agent.api.DeleteStoragePoolCommand;
|
||||
import com.cloud.agent.api.FenceAnswer;
|
||||
import com.cloud.agent.api.FenceCommand;
|
||||
import com.cloud.agent.api.GetHostStatsAnswer;
|
||||
|
|
@ -1215,6 +1216,16 @@ public class OvmResourceBase implements ServerResource, HypervisorResource {
|
|||
}
|
||||
}
|
||||
|
||||
protected Answer execute(DeleteStoragePoolCommand cmd) {
|
||||
try {
|
||||
OvmStoragePool.delete(_conn, cmd.getPool().getUuid());
|
||||
} catch (Exception e) {
|
||||
s_logger.debug("Delete storage pool on host " + _ip + " failed, however, we leave to user for cleanup and tell managment server it succeeded", e);
|
||||
}
|
||||
|
||||
return new Answer(cmd);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Answer executeRequest(Command cmd) {
|
||||
Class<? extends Command> clazz = cmd.getClass();
|
||||
|
|
@ -1270,7 +1281,9 @@ public class OvmResourceBase implements ServerResource, HypervisorResource {
|
|||
return execute((CreatePrivateTemplateFromVolumeCommand)cmd);
|
||||
} else if (clazz == CopyVolumeCommand.class) {
|
||||
return execute((CopyVolumeCommand)cmd);
|
||||
}else {
|
||||
} else if (clazz == DeleteStoragePoolCommand.class) {
|
||||
return execute((DeleteStoragePoolCommand)cmd);
|
||||
} else {
|
||||
return Answer.createUnsupportedCommandAnswer(cmd);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,4 +81,9 @@ public class OvmStoragePool extends OvmObject {
|
|||
Map info = Coder.mapFromJson(res);
|
||||
return (String) info.get("installPath");
|
||||
}
|
||||
|
||||
public static void delete(Connection c, String uuid) throws XmlRpcException {
|
||||
Object[] params = {uuid};
|
||||
c.call("OvmStoragePool.delete", params);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue