Skip to content

Commit 7017eab

Browse files
author
Henrique Sato
committed
default first nic
1 parent b4032d9 commit 7017eab

2 files changed

Lines changed: 27 additions & 1 deletion

File tree

engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4329,7 +4329,9 @@ public NicProfile createNicForVm(final Network network, final NicProfile request
43294329
if (nic == null || vmProfile.getType() == VirtualMachine.Type.User) {
43304330
final int deviceId = _nicDao.getFreeDeviceId(vm.getId());
43314331

4332-
nic = allocateNic(requested, network, false, deviceId, vmProfile).first();
4332+
boolean isDefaultNic = getNicProfileDefaultNic(requested);
4333+
4334+
nic = allocateNic(requested, network, isDefaultNic, deviceId, vmProfile).first();
43334335

43344336
if (nic == null) {
43354337
throw new CloudRuntimeException("Failed to allocate nic for vm " + vm + " in network " + network);
@@ -4357,6 +4359,16 @@ public NicProfile createNicForVm(final Network network, final NicProfile request
43574359
return nic;
43584360
}
43594361

4362+
private boolean getNicProfileDefaultNic(NicProfile nicProfile) {
4363+
if (nicProfile != null) {
4364+
s_logger.debug(String.format("Using requested nic profile isDefaultNic value [%s].", nicProfile.isDefaultNic()));
4365+
return nicProfile.isDefaultNic();
4366+
}
4367+
4368+
s_logger.debug("Using isDefaultNic default value [false] as requested nic profile is null.");
4369+
return false;
4370+
}
4371+
43604372
@Override
43614373
public List<NicProfile> getNicProfiles(final VirtualMachine vm) {
43624374
final List<NicVO> nics = _nicDao.listByVmId(vm.getId());

server/src/main/java/com/cloud/vm/UserVmManagerImpl.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1425,6 +1425,8 @@ public UserVm addNicToVirtualMachine(AddNicToVMCmd cmd) throws InvalidParameterV
14251425
}
14261426
}
14271427

1428+
setNicAsDefaultIfNeeded(vmInstance, profile);
1429+
14281430
NicProfile guestNic = null;
14291431
boolean cleanUp = true;
14301432

@@ -1453,6 +1455,18 @@ public UserVm addNicToVirtualMachine(AddNicToVMCmd cmd) throws InvalidParameterV
14531455
return _vmDao.findById(vmInstance.getId());
14541456
}
14551457

1458+
/**
1459+
* Set NIC as default if VM has no default NIC
1460+
* @param vmInstance VM instance to be checked
1461+
* @param nicProfile NIC profile to be updated
1462+
*/
1463+
public void setNicAsDefaultIfNeeded(UserVmVO vmInstance, NicProfile nicProfile) {
1464+
if (_networkModel.getDefaultNic(vmInstance.getId()) == null) {
1465+
s_logger.debug(String.format("Setting NIC %s as default as VM %s has no default NIC.", nicProfile.getName(), vmInstance.getName()));
1466+
nicProfile.setDefaultNic(true);
1467+
}
1468+
}
1469+
14561470
/**
14571471
* duplicated in {@see VirtualMachineManagerImpl} for a {@see VMInstanceVO}
14581472
*/

0 commit comments

Comments
 (0)