1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-21 14:50:08 +03:00

Now VMWare drivers remove predefined NICs from VMWare VMs

git-svn-id: http://svn.opennebula.org/one/trunk@672 3034c82b-c49b-4eb3-8279-a7acafdc01c0
This commit is contained in:
Constantino Vázquez Blanco 2009-07-10 16:36:53 +00:00
parent b4529d3024
commit 85acc2e00e

View File

@ -256,46 +256,49 @@ public class DeployVM
void configureNetwork()
{
String[][] nics = pXML.getNet();
String[][] nics = pXML.getNet();
int nics_toRemove_counter = 0;
if(nics.length==1 && nics[0].equals(""))
{
return;
}
// First, let's find out the number of NICs to be removed
// VirtualDevice [] test = vmConfigInfo.getHardware().getDevice();
VirtualDevice [] test = vmConfigInfo.getHardware().getDevice();
// Lenth of array is #nicsToBeRemoved-#nicsToBeAdded
//test.length+
VirtualDeviceConfigSpec [] nicSpecArray = new VirtualDeviceConfigSpec[
nics.length];
VirtualDeviceConfigSpec [] nicSpecArray_toRemove = new VirtualDeviceConfigSpec[test.length];
// Let's remove existing NICs
/* for(int i=0;i<test.length;i++)
for(int i=0;i<test.length;i++)
{
VirtualDeviceConfigSpec nicSpec = new VirtualDeviceConfigSpec();
VirtualEthernetCard nic;
nicSpec.setOperation(VirtualDeviceConfigSpecOperation.remove);
nic = (VirtualEthernetCard)test[i];
try
{
nic = (VirtualEthernetCard)test[i];
}
catch(Exception e)
{
continue;
}
nicSpec.setDevice(nic);
nicSpecArray[i] = nicSpec;
nicSpecArray_toRemove[nics_toRemove_counter++] = nicSpec;
}
*/
// Let's add specified NICs
for(int i=0;i<nics.length;i++)
VirtualDeviceConfigSpec [] nicSpecArray = new VirtualDeviceConfigSpec[nics_toRemove_counter+
nics.length];
// Let's add specified NICs
for(int i=nics_toRemove_counter;i<(nics.length+nics_toRemove_counter);i++)
{
VirtualDeviceConfigSpec nicSpec = new VirtualDeviceConfigSpec();
String networkName = nics[i][1];
String networkName = nics[i-nics_toRemove_counter][1];
nicSpec.setOperation(VirtualDeviceConfigSpecOperation.add);
VirtualEthernetCard nic = new VirtualPCNet32();
@ -303,15 +306,19 @@ public class DeployVM
= new VirtualEthernetCardNetworkBackingInfo();
nicBacking.setDeviceName(networkName);
nic.setAddressType("manual");
nic.setMacAddress(nics[i][0]);
nic.setMacAddress(nics[i-nics_toRemove_counter][0]);
nic.setBacking(nicBacking);
nic.setKey(4);
nicSpec.setDevice(nic);
nicSpecArray[i] = nicSpec; // +test.length
nicSpecArray[i] = nicSpec;
}
for(int i=0;i<nics_toRemove_counter;i++)
{
nicSpecArray[i] = nicSpecArray_toRemove[i];
}
vmConfigSpec.setDeviceChange(nicSpecArray);
}