package org.zstack.test.compute.vm; import org.zstack.header.errorcode.ErrorCode; import org.zstack.header.exception.CloudRuntimeException; import org.zstack.header.vm.VmInstanceInventory; import org.zstack.header.vm.VmInstanceMigrateExtensionPoint; import org.zstack.utils.Utils; import org.zstack.utils.logging.CLogger; public class VmMigrateExtension implements VmInstanceMigrateExtensionPoint { CLogger logger = Utils.getLogger(VmMigrateExtension.class); boolean preventMigrate = false; boolean beforeCalled = false; boolean afterCalled = false; boolean failedCalled = false; String expectedUuid; @Override public void preMigrateVm(VmInstanceInventory inv, String huuid) { if (preventMigrate) { throw new CloudRuntimeException("on purpose"); } } @Override public void beforeMigrateVm(VmInstanceInventory inv, String huuid) { if (inv.getUuid().equals(expectedUuid)) { beforeCalled = true; } else { logger.debug(String.format("Expected uuid: %s but got %s", expectedUuid, inv.getUuid())); } } @Override public void afterMigrateVm(VmInstanceInventory inv, String srcHostUuid) { if (inv.getUuid().equals(expectedUuid)) { afterCalled = true; } else { logger.debug(String.format("Expected uuid: %s but got %s", expectedUuid, inv.getUuid())); } } @Override public void failedToMigrateVm(VmInstanceInventory inv, String huuid, ErrorCode reason) { if (inv.getUuid().equals(expectedUuid)) { failedCalled = true; } else { logger.debug(String.format("Expected uuid: %s but got %s", expectedUuid, inv.getUuid())); } } public boolean isPreventMigrate() { return preventMigrate; } public void setPreventMigrate(boolean preventMigrate) { this.preventMigrate = preventMigrate; } 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 boolean isFailedCalled() { return failedCalled; } public void setFailedCalled(boolean failedCalled) { this.failedCalled = failedCalled; } public String getExpectedUuid() { return expectedUuid; } public void setExpectedUuid(String expectedUuid) { this.expectedUuid = expectedUuid; } }