package org.zstack.simulator.kvm;
import org.zstack.kvm.KVMAgentCommands;
import org.zstack.kvm.KVMAgentCommands.*;
import org.zstack.kvm.KVMConstant.KvmVmState;
import org.zstack.network.securitygroup.SecurityGroupRuleTO;
import org.zstack.utils.data.SizeUnit;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class KVMSimulatorConfig {
public volatile boolean connectSuccess = true;
public volatile boolean iptablesSucc = true;
public List<ConnectCmd> connectCmds = new ArrayList<ConnectCmd>();
public volatile String simulatorHostUuid;
public Map<String, String> connectHostUuids = new HashMap<String, String>();
public volatile boolean connectException = false;
public volatile boolean pingSuccess = true;
public volatile Map<String, Boolean> pingSuccessMap = new HashMap<String, Boolean>();
public volatile boolean mountSuccess = true;
public volatile boolean mountException = false;
public volatile long totalDiskCapacity = SizeUnit.TERABYTE.toByte(100);
public volatile long availableDiskCapacity = totalDiskCapacity;
public volatile boolean unmountSuccess = true;
public volatile boolean unmountException = false;
public volatile boolean hostFactSuccess = true;
public volatile boolean hostFactException = false;
public volatile long cpuNum = 1024;
public volatile long cpuSpeed = 26000;
public volatile long usedCpu;
public volatile long totalMemory = SizeUnit.GIGABYTE.toByte(256);
public volatile long usedMemory;
public volatile boolean checkPhysicalInterfaceSuccess = true;
public volatile boolean checkPhysicalInterfaceException = false;
public volatile boolean createL2NoVlanNetworkSuccess = true;
public volatile boolean createL2VlanNetworkSuccess = true;
public volatile boolean startVmSuccess = true;
public volatile boolean stopVmSuccess = true;
public volatile List<StopVmCmd> stopVmCmds = new ArrayList<StopVmCmd>();
public volatile List<PauseVmCmd> pauseVmCmds = new ArrayList<>();
public volatile boolean pauseVmSuccess = true;
public volatile List<ResumeVmCmd> resumeVmCmds = new ArrayList<>();
public volatile boolean resumeVmSuccess = true;
public volatile boolean rebootVmSuccess = true;
public volatile List<RebootVmCmd> rebootVmCmds = new ArrayList<RebootVmCmd>();
public volatile boolean destroyVmSuccess = true;
public volatile boolean attachVolumeSuccess = true;
public volatile boolean detachVolumeSuccess = true;
public volatile List<DetachDataVolumeCmd> detachDataVolumeCmds = new ArrayList<DetachDataVolumeCmd>();
public volatile String destroyedVmUuid;
public volatile boolean securityGroupSuccess = true;
public volatile Map<String, SecurityGroupRuleTO> securityGroups = new HashMap<String, SecurityGroupRuleTO>();
public volatile List<RefreshAllRulesOnHostCmd> securityGroupRefreshAllRulesOnHostCmds = new ArrayList<RefreshAllRulesOnHostCmd>();
public volatile Map<String, KvmVmState> vms = new HashMap<String, KvmVmState>();
public volatile int consolePort;
public volatile KVMAgentCommands.StartVmCmd startVmCmd;
public volatile Map<String, KVMAgentCommands.NicTO> attachedNics = new HashMap<String, KVMAgentCommands.NicTO>();
public volatile boolean attachNicSuccess = true;
public volatile List<KVMAgentCommands.CreateBridgeCmd> bridges = new ArrayList<KVMAgentCommands.CreateBridgeCmd>();
public volatile List<KVMAgentCommands.CreateVlanBridgeCmd> vlanBridges = new ArrayList<KVMAgentCommands.CreateVlanBridgeCmd>();
public volatile boolean checkNoVlanBridgeSuccess = true;
public volatile boolean checkVlanBridgeSuccess = true;
public volatile boolean migrateVmSuccess = true;
public volatile List<KVMAgentCommands.MigrateVmCmd> migrateVmCmds = new ArrayList<KVMAgentCommands.MigrateVmCmd>();
public volatile boolean snapshotSuccess = true;
public volatile List<KVMAgentCommands.TakeSnapshotCmd> snapshotCmds = new ArrayList<KVMAgentCommands.TakeSnapshotCmd>();
public volatile boolean mergeSnapshotSuccess = true;
public volatile List<MergeSnapshotCmd> mergeSnapshotCmds = new ArrayList<MergeSnapshotCmd>();
public volatile List<AttachDataVolumeCmd> attachDataVolumeCmds = new ArrayList<AttachDataVolumeCmd>();
public volatile List<CreateBridgeCmd> createBridgeCmds = new ArrayList<CreateBridgeCmd>();
public volatile List<LogoutIscsiTargetCmd> logoutIscsiTargetCmds = new ArrayList<LogoutIscsiTargetCmd>();
public volatile List<LoginIscsiTargetCmd> loginIscsiTargetCmds = new ArrayList<LoginIscsiTargetCmd>();
public volatile List<AttachNicCommand> attachNicCommands = new ArrayList<AttachNicCommand>();
public volatile List<DetachNicCommand> detachNicCommands = new ArrayList<DetachNicCommand>();
public volatile boolean detachNicSuccess = true;
public volatile List<AttachIsoCmd> attachIsoCmds = new ArrayList<AttachIsoCmd>();
public volatile List<DetachIsoCmd> detachIsoCmds = new ArrayList<DetachIsoCmd>();
public volatile double startVmFailureChance = 0;
public volatile List<CheckVmStateCmd> checkVmStateCmds = new ArrayList<CheckVmStateCmd>();
public volatile Map<String, Map<String, String>> checkVmStatesConfig = new HashMap<String, Map<String, String>>();
public volatile boolean vmSyncSuccess = true;
public List<HardenVmConsoleCmd> hardenVmConsoleCmds = new ArrayList<HardenVmConsoleCmd>();
public List<DeleteVmConsoleFirewallCmd> deleteVmConsoleFirewallCmds = new ArrayList<DeleteVmConsoleFirewallCmd>();
public Map<String, Long> takeSnapshotCmdSize = new HashMap<String, Long>();
}