Forwardmerge #2980 - Fix set initial reservation on public IP ranges

This commit is contained in:
Rafael Weingärtner 2018-11-07 10:50:09 -02:00
commit f18326880b
2 changed files with 11 additions and 5 deletions

View File

@ -3569,10 +3569,10 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
}
// increment resource count for dedicated public ip's
_resourceLimitMgr.incrementResourceCount(vlanOwner.getId(), ResourceType.public_ip, new Long(ips.size()));
} else if (domain != null) {
} else if (domain != null && !forSystemVms) {
// This VLAN is domain-wide, so create a DomainVlanMapVO entry
//final DomainVlanMapVO domainVlanMapVO = new DomainVlanMapVO(domain.getId(), vlan.getId());
//_domainVlanMapDao.persist(domainVlanMapVO);
final DomainVlanMapVO domainVlanMapVO = new DomainVlanMapVO(domain.getId(), vlan.getId());
_domainVlanMapDao.persist(domainVlanMapVO);
} else if (podId != null) {
// This VLAN is pod-wide, so create a PodVlanMapVO entry
final PodVlanMapVO podVlanMapVO = new PodVlanMapVO(podId, vlan.getId());
@ -3754,8 +3754,10 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
// Check if any of the Public IP addresses is allocated to another
// account
boolean forSystemVms = false;
final List<IPAddressVO> ips = _publicIpAddressDao.listByVlanId(vlanDbId);
for (final IPAddressVO ip : ips) {
forSystemVms = ip.isForSystemVms();
final Long allocatedToAccountId = ip.getAllocatedToAccountId();
if (allocatedToAccountId != null) {
final Account accountAllocatedTo = _accountMgr.getActiveAccountById(allocatedToAccountId);
@ -3779,7 +3781,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NET_IP_ASSIGN, vlanOwner.getId(), ip.getDataCenterId(), ip.getId(), ip.getAddress().toString(), ip.isSourceNat(),
vlan.getVlanType().toString(), ip.getSystem(), ip.getClass().getName(), ip.getUuid());
}
} else if (domain != null) {
} else if (domain != null && !forSystemVms) {
// Create an DomainVlanMapVO entry
DomainVlanMapVO domainVlanMapVO = new DomainVlanMapVO(domain.getId(), vlan.getId());
_domainVlanMapDao.persist(domainVlanMapVO);

View File

@ -126,13 +126,16 @@
var $systemvmsCb = $systemvms.find('input[type=checkbox]');
var $account = args.$form.find('.form-item[rel=account]');
var $accountTxt = args.$form.find('input[name=account]');
var $domainid = args.$form.find('select[name=domainid]');
$systemvmsCb.change(function() {
if ($systemvmsCb.is(':checked')) {
$accountTxt.val('');
$accountTxt.attr('disabled', true);
$domainid.attr('disabled', true);
}
else {
$accountTxt.attr('disabled', false);
$domainid.attr('disabled', false);
}
});
}
@ -526,7 +529,8 @@
},
actionPreFilter: function (args) {
var actionsToShow =[ 'destroy'];
if (args.context.multiRule[0].domain == 'ROOT' && args.context.multiRule[0].account != null && args.context.multiRule[0].account.account == 'system')
if (args.context.multiRule[0].domain == 'ROOT' && args.context.multiRule[0].account != null &&
args.context.multiRule[0].account.account == 'system' && !args.context.multiRule[0].forsystemvms)
actionsToShow.push('addAccount'); else
actionsToShow.push('releaseFromAccount');
return actionsToShow;