package org.zstack.test.storage.backup; import org.zstack.header.storage.backup.BackupStorageDetachExtensionPoint; import org.zstack.header.storage.backup.BackupStorageException; import org.zstack.header.storage.backup.BackupStorageInventory; import org.zstack.utils.Utils; import org.zstack.utils.logging.CLogger; public class BackupStorageDetachExtension implements BackupStorageDetachExtensionPoint { CLogger logger = Utils.getLogger(BackupStorageDetachExtensionPoint.class); boolean preventChange = false; boolean beforeCalled = false; boolean afterCalled = false; String expectedBackStorageUuid; String expectedZoneUuid; @Override public void preDetachBackupStorage(BackupStorageInventory inventory, String zoneUuid) throws BackupStorageException { if (preventChange) { throw new BackupStorageException("Prevent detaching backup storage on purpose"); } } @Override public void beforeDetachBackupStorage(BackupStorageInventory inventory, String zoneUuid) { if (inventory.getUuid().equals(expectedBackStorageUuid) && zoneUuid.equals(expectedZoneUuid)) { beforeCalled = true; } else { String err = String.format("beforeDetachBackupStorage: expected backup storage uuid: %s zone uuid: %s but got backup storage uuid: %s zone uuid: %s", expectedBackStorageUuid, expectedZoneUuid, inventory.getUuid(), zoneUuid); logger.warn(err); } } @Override public void failToDetachBackupStorage(BackupStorageInventory inventory, String zoneUuid) { // TODO Auto-generated method stub } @Override public void afterDetachBackupStorage(BackupStorageInventory inventory, String zoneUuid) { if (inventory.getUuid().equals(expectedBackStorageUuid) && zoneUuid.equals(expectedZoneUuid)) { afterCalled = true; } else { String err = String.format("afterDetachBackupStorage: expected backup storage uuid: %s zone uuid: %s but got backup storage uuid: %s zone uuid: %s", expectedBackStorageUuid, expectedZoneUuid, inventory.getUuid(), zoneUuid); logger.warn(err); } } public boolean isPreventChange() { return preventChange; } public void setPreventChange(boolean preventChange) { this.preventChange = preventChange; } public boolean isBeforeCalled() { return beforeCalled; } public void setBeforeCalled(boolean beforeCalled) { this.beforeCalled = beforeCalled; } public boolean isAfterCalled() { return afterCalled; } public void setAfterCalled(boolean afterCalled) { this.afterCalled = afterCalled; } public String getExpectedBackStorageUuid() { return expectedBackStorageUuid; } public void setExpectedBackStorageUuid(String expectedBackStorageUuid) { this.expectedBackStorageUuid = expectedBackStorageUuid; } public String getExpectedZoneUuid() { return expectedZoneUuid; } public void setExpectedZoneUuid(String expectedZoneUuid) { this.expectedZoneUuid = expectedZoneUuid; } }