Skip to content

Commit f276485

Browse files
committed
Merge release branch 4.13 to master
* 4.13: fixed inconsistency of IP on VR when VR is destroyed and recrea… (#3825) server: fix resource count error when upgrade a vm (#3759)
2 parents a813c24 + b581f85 commit f276485

2 files changed

Lines changed: 18 additions & 13 deletions

File tree

server/src/main/java/com/cloud/network/NetworkModelImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2298,6 +2298,10 @@ public NicVO getPlaceholderNicForRouter(Network network, Long podId) {
22982298
} else {
22992299
ipv6 = _ipv6Dao.findByNetworkIdAndIp(network.getId(), nic.getIPv6Address());
23002300
}
2301+
2302+
if (vlans.isEmpty()) {
2303+
return nic;
2304+
}
23012305
//return nic only when its ip address belong to the pod range (for the Basic zone case)
23022306
for (Vlan vlan : vlans) {
23032307
if (ip != null && ip.getVlanId() == vlan.getId()) {

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

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,11 +1015,12 @@ public UserVm upgradeVirtualMachine(UpgradeVMCmd cmd) throws ResourceAllocationE
10151015
int currentCpu = currentServiceOffering.getCpu();
10161016
int currentMemory = currentServiceOffering.getRamSize();
10171017

1018+
Account owner = _accountMgr.getActiveAccountById(vmInstance.getAccountId());
10181019
if (newCpu > currentCpu) {
1019-
_resourceLimitMgr.checkResourceLimit(caller, ResourceType.cpu, newCpu - currentCpu);
1020+
_resourceLimitMgr.checkResourceLimit(owner, ResourceType.cpu, newCpu - currentCpu);
10201021
}
10211022
if (newMemory > currentMemory) {
1022-
_resourceLimitMgr.checkResourceLimit(caller, ResourceType.memory, newMemory - currentMemory);
1023+
_resourceLimitMgr.checkResourceLimit(owner, ResourceType.memory, newMemory - currentMemory);
10231024
}
10241025

10251026
// Check that the specified service offering ID is valid
@@ -1036,14 +1037,14 @@ public UserVm upgradeVirtualMachine(UpgradeVMCmd cmd) throws ResourceAllocationE
10361037

10371038
// Increment or decrement CPU and Memory count accordingly.
10381039
if (newCpu > currentCpu) {
1039-
_resourceLimitMgr.incrementResourceCount(caller.getAccountId(), ResourceType.cpu, new Long(newCpu - currentCpu));
1040+
_resourceLimitMgr.incrementResourceCount(owner.getAccountId(), ResourceType.cpu, new Long(newCpu - currentCpu));
10401041
} else if (currentCpu > newCpu) {
1041-
_resourceLimitMgr.decrementResourceCount(caller.getAccountId(), ResourceType.cpu, new Long(currentCpu - newCpu));
1042+
_resourceLimitMgr.decrementResourceCount(owner.getAccountId(), ResourceType.cpu, new Long(currentCpu - newCpu));
10421043
}
10431044
if (newMemory > currentMemory) {
1044-
_resourceLimitMgr.incrementResourceCount(caller.getAccountId(), ResourceType.memory, new Long(newMemory - currentMemory));
1045+
_resourceLimitMgr.incrementResourceCount(owner.getAccountId(), ResourceType.memory, new Long(newMemory - currentMemory));
10451046
} else if (currentMemory > newMemory) {
1046-
_resourceLimitMgr.decrementResourceCount(caller.getAccountId(), ResourceType.memory, new Long(currentMemory - newMemory));
1047+
_resourceLimitMgr.decrementResourceCount(owner.getAccountId(), ResourceType.memory, new Long(currentMemory - newMemory));
10471048
}
10481049

10491050
// Generate usage event for VM upgrade
@@ -1121,11 +1122,12 @@ private UserVm upgradeStoppedVirtualMachine(Long vmId, Long svcOffId, Map<String
11211122
int currentCpu = currentServiceOffering.getCpu();
11221123
int currentMemory = currentServiceOffering.getRamSize();
11231124

1125+
Account owner = _accountMgr.getActiveAccountById(vmInstance.getAccountId());
11241126
if (newCpu > currentCpu) {
1125-
_resourceLimitMgr.checkResourceLimit(caller, ResourceType.cpu, newCpu - currentCpu);
1127+
_resourceLimitMgr.checkResourceLimit(owner, ResourceType.cpu, newCpu - currentCpu);
11261128
}
11271129
if (newMemory > currentMemory) {
1128-
_resourceLimitMgr.checkResourceLimit(caller, ResourceType.memory, newMemory - currentMemory);
1130+
_resourceLimitMgr.checkResourceLimit(owner, ResourceType.memory, newMemory - currentMemory);
11291131
}
11301132

11311133
// Check that the specified service offering ID is valid
@@ -1147,7 +1149,6 @@ private UserVm upgradeStoppedVirtualMachine(Long vmId, Long svcOffId, Map<String
11471149

11481150
// Check if the new service offering can be applied to vm instance
11491151
ServiceOffering newSvcOffering = _offeringDao.findById(svcOffId);
1150-
Account owner = _accountMgr.getActiveAccountById(vmInstance.getAccountId());
11511152
_accountMgr.checkAccess(owner, newSvcOffering, _dcDao.findById(vmInstance.getDataCenterId()));
11521153

11531154
_itMgr.upgradeVmDb(vmId, svcOffId);
@@ -1161,14 +1162,14 @@ private UserVm upgradeStoppedVirtualMachine(Long vmId, Long svcOffId, Map<String
11611162

11621163
// Increment or decrement CPU and Memory count accordingly.
11631164
if (newCpu > currentCpu) {
1164-
_resourceLimitMgr.incrementResourceCount(caller.getAccountId(), ResourceType.cpu, new Long(newCpu - currentCpu));
1165+
_resourceLimitMgr.incrementResourceCount(owner.getAccountId(), ResourceType.cpu, new Long(newCpu - currentCpu));
11651166
} else if (currentCpu > newCpu) {
1166-
_resourceLimitMgr.decrementResourceCount(caller.getAccountId(), ResourceType.cpu, new Long(currentCpu - newCpu));
1167+
_resourceLimitMgr.decrementResourceCount(owner.getAccountId(), ResourceType.cpu, new Long(currentCpu - newCpu));
11671168
}
11681169
if (newMemory > currentMemory) {
1169-
_resourceLimitMgr.incrementResourceCount(caller.getAccountId(), ResourceType.memory, new Long(newMemory - currentMemory));
1170+
_resourceLimitMgr.incrementResourceCount(owner.getAccountId(), ResourceType.memory, new Long(newMemory - currentMemory));
11701171
} else if (currentMemory > newMemory) {
1171-
_resourceLimitMgr.decrementResourceCount(caller.getAccountId(), ResourceType.memory, new Long(currentMemory - newMemory));
1172+
_resourceLimitMgr.decrementResourceCount(owner.getAccountId(), ResourceType.memory, new Long(currentMemory - newMemory));
11721173
}
11731174

11741175
return _vmDao.findById(vmInstance.getId());

0 commit comments

Comments
 (0)