package org.zstack.appliancevm;
import org.zstack.header.configuration.PythonClassInventory;
import org.zstack.header.search.Inventory;
import org.zstack.header.search.Parent;
import org.zstack.header.search.TypeField;
import org.zstack.header.vm.VmInstanceInventory;
import org.zstack.header.vm.VmNicInventory;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@Inventory(mappingVOClass = ApplianceVmVO.class, collectionValueOfMethod="valueOf1",
parent = {@Parent(inventoryClass = VmInstanceInventory.class, type = ApplianceVmConstant.APPLIANCE_VM_TYPE)})
@PythonClassInventory
public class ApplianceVmInventory extends VmInstanceInventory {
@TypeField
private String applianceVmType;
private String managementNetworkUuid;
private String defaultRouteL3NetworkUuid;
private String status;
private Integer agentPort;
protected ApplianceVmInventory(ApplianceVmVO vo) {
super(vo);
this.setApplianceVmType(vo.getApplianceVmType());
this.setManagementNetworkUuid(vo.getManagementNetworkUuid());
this.setDefaultRouteL3NetworkUuid(vo.getDefaultRouteL3NetworkUuid());
this.setStatus(vo.getStatus().toString());
this.setAgentPort(vo.getAgentPort());
}
public ApplianceVmInventory() {
}
public Integer getAgentPort() {
return agentPort;
}
public void setAgentPort(Integer agentPort) {
this.agentPort = agentPort;
}
public String getManagementNetworkUuid() {
return managementNetworkUuid;
}
public void setManagementNetworkUuid(String managementNetworkUuid) {
this.managementNetworkUuid = managementNetworkUuid;
}
public static ApplianceVmInventory valueOf(ApplianceVmVO vo) {
return new ApplianceVmInventory(vo);
}
public static List<ApplianceVmInventory> valueOf1(Collection<ApplianceVmVO> vos) {
List<ApplianceVmInventory> invs = new ArrayList<ApplianceVmInventory>(vos.size());
for (ApplianceVmVO vo : vos) {
invs.add(new ApplianceVmInventory(vo));
}
return invs;
}
public String getApplianceVmType() {
return applianceVmType;
}
public void setApplianceVmType(String applianceVmType) {
this.applianceVmType = applianceVmType;
}
public String getDefaultRouteL3NetworkUuid() {
return defaultRouteL3NetworkUuid;
}
public void setDefaultRouteL3NetworkUuid(String defaultRouteL3NetworkUuid) {
this.defaultRouteL3NetworkUuid = defaultRouteL3NetworkUuid;
}
public VmNicInventory getManagementNic() {
for (VmNicInventory nic : this.getVmNics()) {
if (nic.getL3NetworkUuid().equals(getManagementNetworkUuid())) {
return nic;
}
}
return null;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}