package org.zstack.test.deployer; import org.springframework.beans.factory.annotation.Autowire; import org.springframework.beans.factory.annotation.Configurable; import org.zstack.header.configuration.InstanceOfferingInventory; import org.zstack.header.identity.SessionInventory; import org.zstack.test.ApiSenderException; import org.zstack.test.deployer.schema.DeployerConfig; import org.zstack.test.deployer.schema.InstanceOfferingConfig; import java.util.List; @Configurable(preConstruction = true, autowire = Autowire.BY_TYPE) public class UserVmInstanceOfferingDeployer implements InstanceOfferingDeployer<InstanceOfferingConfig> { @Override public Class<InstanceOfferingConfig> getSupportedDeployerClassType() { return InstanceOfferingConfig.class; } @Override public void deploy(List<InstanceOfferingConfig> offerings, DeployerConfig config, Deployer deployer) throws ApiSenderException { for (InstanceOfferingConfig ic : offerings) { InstanceOfferingInventory inv = new InstanceOfferingInventory(); inv.setAllocatorStrategy(ic.getAllocatorStrategy()); inv.setCpuNum((int) ic.getCpuNum()); inv.setCpuSpeed((int) ic.getCpuSpeed()); inv.setDescription(ic.getDescription()); inv.setMemorySize(deployer.parseSizeCapacity(ic.getMemoryCapacity())); inv.setName(ic.getName()); SessionInventory sessoin = ic.getAccountRef() == null ? null : deployer.loginByAccountRef(ic.getAccountRef(), config); inv = deployer.getApi().addInstanceOffering(inv, sessoin); deployer.instanceOfferings.put(inv.getName(), inv); } } }