DaanHoogland commented on code in PR #8031:
URL: https://github.com/apache/cloudstack/pull/8031#discussion_r1351618298
##########
server/src/main/java/com/cloud/storage/StorageManagerImpl.java:
##########
@@ -1289,37 +1289,52 @@ public void cleanupStorage(boolean recurring) {
try {
List<VMTemplateStoragePoolVO>
unusedTemplatesInPool = _tmpltMgr.getUnusedTemplatesInPool(pool);
- s_logger.debug("Storage pool garbage collector
found " + unusedTemplatesInPool.size() + " templates to clean up in storage
pool: " + pool.getName());
+ s_logger.debug(String.format("Storage pool
garbage collector found [%s] templates to be cleaned up in storage pool [%s].",
unusedTemplatesInPool.size(), pool.getName()));
for (VMTemplateStoragePoolVO templatePoolVO :
unusedTemplatesInPool) {
if (templatePoolVO.getDownloadState() !=
VMTemplateStorageResourceAssoc.Status.DOWNLOADED) {
- s_logger.debug("Storage pool garbage
collector is skipping template with ID: " + templatePoolVO.getTemplateId() + "
on pool " + templatePoolVO.getPoolId()
- + " because it is not completely
downloaded.");
+ s_logger.debug(String.format("Storage
pool garbage collector is skipping template [%s] clean up on pool [%s] " +
+ "because it is not completely
downloaded.", templatePoolVO.getTemplateId(), templatePoolVO.getPoolId()));
continue;
}
if (!templatePoolVO.getMarkedForGC()) {
templatePoolVO.setMarkedForGC(true);
_vmTemplatePoolDao.update(templatePoolVO.getId(), templatePoolVO);
- s_logger.debug("Storage pool garbage
collector has marked template with ID: " + templatePoolVO.getTemplateId() + "
on pool " + templatePoolVO.getPoolId()
- + " for garbage collection.");
+ s_logger.debug(String.format("Storage
pool garbage collector has marked template [%s] on pool [%s] " +
+ "for garbage collection.",
templatePoolVO.getTemplateId(), templatePoolVO.getPoolId()));
continue;
}
_tmpltMgr.evictTemplateFromStoragePool(templatePoolVO);
}
} catch (Exception e) {
- s_logger.warn("Problem cleaning up primary
storage pool " + pool, e);
+ s_logger.error(String.format("Failed to clean
up primary storage pool [%s] due to: [%s].", pool, e.getMessage()), e);
}
}
}
//destroy snapshots in destroying state in
snapshot_store_ref
List<SnapshotDataStoreVO> ssSnapshots =
_snapshotStoreDao.listByState(ObjectInDataStoreStateMachine.State.Destroying);
for (SnapshotDataStoreVO ssSnapshotVO : ssSnapshots) {
+ SnapshotVO snapshot =
_snapshotDao.findById(ssSnapshotVO.getSnapshotId());
+ if (snapshot == null) {
+ s_logger.warn(String.format("Did not find snapshot
[%s] in destroying state; therefore, it cannot be destroyed.",
ssSnapshotVO.getSnapshotId()));
+ continue;
+ }
+
+ String snapshotUuid = snapshot.getUuid();
try {
-
_snapshotService.deleteSnapshot(snapshotFactory.getSnapshot(ssSnapshotVO.getSnapshotId(),
DataStoreRole.Image));
+ s_logger.debug(String.format("Verifying if
snapshot [%s] is in destroying state in any image data store.", snapshotUuid));
+ SnapshotInfo snapshotInfo =
snapshotFactory.getSnapshot(snapshot.getId(), DataStoreRole.Image);
+
+ if (snapshotInfo != null) {
+ s_logger.debug(String.format("Snapshot [%s] in
destroying state found in image data store [%s]; therefore, it will be
destroyed.", snapshotUuid, snapshotInfo.getDataStore().getUuid()));
+ _snapshotService.deleteSnapshot(snapshotInfo);
+ } else {
+ s_logger.debug(String.format("Did not find
snapshot [%s] in destroying state in any image data store.", snapshotUuid));
+ }
} catch (Exception e) {
- s_logger.debug("Failed to delete snapshot: " +
ssSnapshotVO.getId() + " from storage");
+ s_logger.error(String.format("Failed to delete
snapshot [%s] from storage due to: [%s].", snapshotUuid, e.getMessage()), e);
Review Comment:
```suggestion
s_logger.error(String.format("Failed to delete
snapshot [%s] from storage due to: [%s].", snapshotUuid, e.getMessage()));
s_logger.debug(String.format("Failed to delete
snapshot [%s] from storage.", snapshotUuid), e);
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]