package org.zstack.header.vm;
import org.zstack.header.message.APIReply;
import org.zstack.header.network.l3.*;
import org.zstack.header.network.service.NetworkServiceConstants;
import org.zstack.header.network.service.NetworkServiceL3NetworkRefInventory;
import org.zstack.header.network.service.NetworkServiceType;
import org.zstack.header.rest.RestResponse;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import static org.codehaus.groovy.runtime.InvokerHelper.asList;
/**
* Created by frank on 7/19/2015.
*/
@RestResponse(allTo = "inventories")
public class APIGetVmAttachableL3NetworkReply extends APIReply {
private List<L3NetworkInventory> inventories;
public List<L3NetworkInventory> getInventories() {
return inventories;
}
public void setInventories(List<L3NetworkInventory> inventories) {
this.inventories = inventories;
}
public static APIGetVmAttachableL3NetworkReply __example__() {
APIGetVmAttachableL3NetworkReply reply = new APIGetVmAttachableL3NetworkReply();
L3NetworkInventory l3 = new L3NetworkInventory();
l3.setName("private L3");
Timestamp time = new Timestamp(System.currentTimeMillis());
String l3Uuid = uuid();
l3.setUuid(l3Uuid);
l3.setType(L3NetworkConstant.L3_BASIC_NETWORK_TYPE);
l3.setState(L3NetworkState.Enabled.toString());
l3.setL2NetworkUuid(uuid());
l3.setZoneUuid(uuid());
l3.setCreateDate(time);
l3.setLastOpDate(time);
IpRangeInventory ipr = new IpRangeInventory();
ipr.setName("ip range");
ipr.setUuid(uuid());
ipr.setL3NetworkUuid(l3Uuid);
ipr.setStartIp("192.168.0.10");
ipr.setEndIp("192.168.0.100");
ipr.setNetmask("255.255.255.0");
ipr.setGateway("192.168.0.1");
ipr.setCreateDate(time);
ipr.setLastOpDate(time);
l3.setIpRanges(asList(ipr));
List<NetworkServiceL3NetworkRefInventory> refs = new ArrayList<>();
String puuid = uuid();
NetworkServiceL3NetworkRefInventory ref = new NetworkServiceL3NetworkRefInventory();
ref.setL3NetworkUuid(l3Uuid);
ref.setNetworkServiceProviderUuid(puuid);
ref.setNetworkServiceType(NetworkServiceType.DHCP.toString());
refs.add(ref);
ref = new NetworkServiceL3NetworkRefInventory();
ref.setL3NetworkUuid(l3Uuid);
ref.setNetworkServiceProviderUuid(puuid);
ref.setNetworkServiceType(NetworkServiceType.DNS.toString());
refs.add(ref);
ref = new NetworkServiceL3NetworkRefInventory();
ref.setL3NetworkUuid(l3Uuid);
ref.setNetworkServiceProviderUuid(puuid);
ref.setNetworkServiceType(NetworkServiceType.SNAT.toString());
refs.add(ref);
l3.setNetworkServices(refs);
reply.setInventories(asList(l3));
return reply;
}
}