apiConnector.read(vm);
// Virtual machine interface
String vmInterfaceName = "vmi-" + vmName;
String vmiUuid = UUID.randomUUID().toString();
VirtualMachineInterface vmInterface = new VirtualMachineInterface();
vmInterface.setDisplayName(vmInterfaceName);
vmInterface.setUuid(vmiUuid);
vmInterface.setParent(vCenterProject);
vmInterface.setName(vmiUuid);
vmInterface.setVirtualNetwork(network);
vmInterface.addVirtualMachine(vm);
MacAddressesType macAddrType = new MacAddressesType();
macAddrType.addMacAddress(macAddress);
vmInterface.setMacAddresses(macAddrType);
apiConnector.create(vmInterface);
String vmInterfaceUuid = apiConnector.findByName(
VirtualMachineInterface.class, vm, vmInterface.getName());
s_logger.info("Create virtual machine interface:" + vmInterfaceName +
": " + vmInterfaceUuid + "vmiUuid :" + vmiUuid);
// Instance Ip
String instanceIpName = "ip-" + vmName;
String instIpUuid = UUID.randomUUID().toString();
InstanceIp instanceIp = new InstanceIp();
//instanceIp.setParent(vm); SAS_FIXME
instanceIp.setDisplayName(instanceIpName);
instanceIp.setUuid(instIpUuid);
instanceIp.setName(instIpUuid);
instanceIp.setVirtualNetwork(network);
instanceIp.setVirtualMachineInterface(vmInterface);
apiConnector.create(instanceIp);
// Read back to get assigned IP address
//instanceIp = (InstanceIp) apiConnector.find(InstanceIp.class, vm,
// instanceIp.getName());
apiConnector.read(instanceIp);
String vmIpAddress = instanceIp.getAddress();
s_logger.info("Create instance IP:" + instanceIp.getName() + ": " +
vmIpAddress);
// Plug notification to vrouter
if (vrouterIpAddress == null) {
s_logger.info("Virtual machine: " + vmName + " host: " + hostName
+ " create notification NOT sent");
return;
}
try {
ContrailVRouterApi vrouterApi = vrouterApiMap.get(vrouterIpAddress);
if (vrouterApi == null) {
vrouterApi = new ContrailVRouterApi(
InetAddress.getByName(vrouterIpAddress),
vrouterApiPort, false);
vrouterApiMap.put(vrouterIpAddress, vrouterApi);
}
vrouterApi.AddPort(UUID.fromString(vmiUuid),
UUID.fromString(vmUuid), vmInterface.getName(),
InetAddress.getByName(vmIpAddress),
Utils.parseMacAddress(macAddress),
UUID.fromString(vnUuid), isolatedVlanId, primaryVlanId);
s_logger.debug("VRouterAPi Add Port success - port name: " + vmInterface.getName() + "(" + vmInterface.getDisplayName() + ")");
}catch(Throwable e) {
s_logger.error("Exception : " + e);
e.printStackTrace();
}
}