package org.zstack.appliancevm; import org.zstack.header.core.workflow.Flow; import org.zstack.core.workflow.FlowChainBuilder; import org.zstack.header.core.Completion; import org.zstack.header.core.ReturnValueCompletion; import org.zstack.header.host.HypervisorType; import org.zstack.header.vm.VmInstanceSpec; import java.util.List; import java.util.Map; /** * Created with IntelliJ IDEA. * User: frank * Time: 11:42 PM * To change this template use File | Settings | File Templates. */ public interface ApplianceVmFacade { void createApplianceVm(ApplianceVmSpec spec, ReturnValueCompletion<ApplianceVmInventory> completion); void startApplianceVm(String vmUuid, ReturnValueCompletion<ApplianceVmInventory> completion); void stopApplianceVm(String vmUuid, ReturnValueCompletion<ApplianceVmInventory> completion); void rebootApplianceVm(String vmUuid, ReturnValueCompletion<ApplianceVmInventory> completion); void destroyApplianceVm(String vmUuid, ReturnValueCompletion<ApplianceVmInventory> completion); void destroyApplianceVm(String vmUuid); FlowChainBuilder getCreateApplianceVmWorkFlowBuilder(); Map<String, Object> prepareBootstrapInformation(VmInstanceSpec spec); Flow createBootstrapFlow(HypervisorType hvType); void openFirewall(String applianceVmUuid, String l3uuid, List<ApplianceVmFirewallRuleInventory> rules, Completion completion); void removeFirewall(String applianceVmUuid, String l3uuid, List<ApplianceVmFirewallRuleInventory> rules, Completion completion); }