package org.zstack.test.compute.host; import org.zstack.header.host.HostDeleteExtensionPoint; import org.zstack.header.host.HostException; import org.zstack.header.host.HostInventory; import org.zstack.utils.Utils; import org.zstack.utils.logging.CLogger; public class DeletHostExtension implements HostDeleteExtensionPoint { CLogger logger = Utils.getLogger(DeletHostExtension.class); private boolean preventDelete = false; private boolean beforeCalled = false; private boolean afterCalled = false; private String expectedHostUuid; @Override public void preDeleteHost(HostInventory inventory) throws HostException { if (this.preventDelete) { throw new HostException("Prevent deleting host on purpose"); } } @Override public void beforeDeleteHost(HostInventory inventory) { if (inventory.getUuid().equals(this.expectedHostUuid)) { this.beforeCalled = true; } else { String err = String.format("beforeDeleteHost: expected host uuid:%s but %s got", this.expectedHostUuid, inventory.getUuid()); logger.warn(err); } } @Override public void afterDeleteHost(HostInventory inventory) { if (inventory.getUuid().equals(this.expectedHostUuid)) { this.afterCalled = true; } else { String err = String.format("afterDeleteHost: expected host uuid:%s but %s got", this.expectedHostUuid, inventory.getUuid()); logger.warn(err); } } public boolean isPreventDelete() { return preventDelete; } public void setPreventDelete(boolean preventDelete) { this.preventDelete = preventDelete; } 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 getExpectedHostUuid() { return expectedHostUuid; } public void setExpectedHostUuid(String expectedHostUuid) { this.expectedHostUuid = expectedHostUuid; } }