[ https://issues.apache.org/jira/browse/CLOUDSTACK-643?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joe Brockmeier updated CLOUDSTACK-643: -------------------------------------- Fix Version/s: (was: 4.0.1) 4.0.2 > KVM snapshots deleted on UI/API do not physically delete from secondary > storage > ------------------------------------------------------------------------------- > > Key: CLOUDSTACK-643 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-643 > Project: CloudStack > Issue Type: Bug > Security Level: Public(Anyone can view this level - this is the > default.) > Components: KVM, Snapshot > Affects Versions: 4.0.0, 4.1.0 > Reporter: Prasanna Santhanam > Fix For: 4.0.2, 4.1.0 > > > Snapshots taken on KVM do not delete on secondary storage even after deleting > them on the API/UI. > The cmd.getSnapshotUuid() in case of KVM is the complete path to the qcow2 > image on secondary storage. But the following concatenation evaluates to an > invalid path and subsequent "rm -f" fails quietly returning Answer(success) > back to management server. > "" > String lPath = parent + "/snapshots/" + String.valueOf(accountId) + "/" + > String.valueOf(volumeId) + "/" + filename; > "" > On NfsSecondaryStorageResource.java: > protected Answer execute(final DeleteSnapshotBackupCommand cmd) { > String secondaryStorageUrl = cmd.getSecondaryStorageUrl(); > Long accountId = cmd.getAccountId(); > Long volumeId = cmd.getVolumeId(); > String name = cmd.getSnapshotUuid(); > try { > if (swift == null) { > String parent = getRootDir(secondaryStorageUrl); > String filename; > if (cmd.isAll()) { > filename = "*"; > } else { > filename = "*" + name + "*"; > } > String lPath = parent + "/snapshots/" + > String.valueOf(accountId) + "/" + String.valueOf(volumeId) + "/" + filename; > String result = deleteLocalFile(lPath); > if (result != null) { > String errMsg = "failed to delete snapshot " + lPath + " > , err=" + result; > s_logger.warn(errMsg); > return new Answer(cmd, false, errMsg); > } > } else { > #### SNIP #### > } > return new Answer(cmd, true, "success"); > } catch (Exception e) { > } > } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira