Visitar URL original
CLOUDSTACK-7868: Failed storage.PrimaryStorageDownloadCommand leaves … · enterdevstudio/cloudstack@e6907ed · GitHub
Skip to content

Commit e6907ed

Browse files
CLOUDSTACK-7868: Failed storage.PrimaryStorageDownloadCommand leaves corrupt VDIs in primary storage.
1 parent 3a2f6ff commit e6907ed

2 files changed

Lines changed: 21 additions & 1 deletion

File tree

‎plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2747,6 +2747,16 @@ void destroyVDIbyNameLabel(Connection conn, String nameLabel) {
27472747
try {
27482748
vdi.destroy(conn);
27492749
} catch (Exception e) {
2750+
String msg = "Failed to destroy VDI : " + nameLabel + "due to " + e.toString() + "\n Force deleting VDI using system 'rm' command";
2751+
s_logger.warn(msg);
2752+
try {
2753+
String srUUID = vdi.getSR(conn).getUuid(conn);
2754+
String vdiUUID = vdi.getUuid(conn);
2755+
String vdifile = "/var/run/sr-mount/" + srUUID + "/" + vdiUUID + ".vhd";
2756+
String results = callHostPluginAsync(conn, "vmopspremium", "remove_corrupt_vdi", 10, "vdifile", vdifile);
2757+
} catch (Exception e2) {
2758+
s_logger.warn(e2);
2759+
}
27502760
}
27512761
}
27522762
} catch (Exception e) {

‎scripts/vm/hypervisor/xenserver/vmopspremium‎

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,16 @@ def copy_vhd_from_secondarystorage(session, args):
100100
txt = '10#failed'
101101
return txt
102102

103+
@echo
104+
def remove_corrupt_vdi(session, args):
105+
vdifile = args['vdifile']
106+
try:
107+
cmd = ['rm', '-f', vdifile]
108+
txt = util.pread2(cmd)
109+
except:
110+
txt = '10#failed'
111+
return txt
112+
103113
@echo
104114
def setup_heartbeat_sr(session, args):
105115
host = args['host']
@@ -146,4 +156,4 @@ def asmonitor(session, args):
146156
return 'fail'
147157

148158
if __name__ == "__main__":
149-
XenAPIPlugin.dispatch({"forceShutdownVM":forceShutdownVM, "upgrade_snapshot":upgrade_snapshot, "create_privatetemplate_from_snapshot":create_privatetemplate_from_snapshot, "copy_vhd_to_secondarystorage":copy_vhd_to_secondarystorage, "copy_vhd_from_secondarystorage":copy_vhd_from_secondarystorage, "setup_heartbeat_sr":setup_heartbeat_sr, "setup_heartbeat_file":setup_heartbeat_file, "heartbeat": heartbeat, "asmonitor": asmonitor})
159+
XenAPIPlugin.dispatch({"forceShutdownVM":forceShutdownVM, "upgrade_snapshot":upgrade_snapshot, "create_privatetemplate_from_snapshot":create_privatetemplate_from_snapshot, "copy_vhd_to_secondarystorage":copy_vhd_to_secondarystorage, "copy_vhd_from_secondarystorage":copy_vhd_from_secondarystorage, "setup_heartbeat_sr":setup_heartbeat_sr, "setup_heartbeat_file":setup_heartbeat_file, "heartbeat": heartbeat, "asmonitor": asmonitor, "remove_corrupt_vdi": remove_corrupt_vdi})

0 commit comments

Comments
 (0)