/** Build VspDhcpVMOption to put on the subnet */ public VspDhcpDomainOption buildNetworkDhcpOption(Network network, NetworkOffering offering) { List<String> dnsProvider = _ntwkOfferingSrvcDao.listProvidersForServiceForNetworkOffering(offering.getId(), Network.Service.Dns); boolean isVrDnsProvider = dnsProvider.contains("VirtualRouter") || dnsProvider.contains("VpcVirtualRouter"); VspDhcpDomainOption.Builder vspDhcpDomainBuilder = new VspDhcpDomainOption.Builder() .dnsServers(_nuageVspManager.getDnsDetails(network.getDataCenterId())) .vrIsDnsProvider(isVrDnsProvider); if (isVrDnsProvider) { vspDhcpDomainBuilder.networkDomain(network.getVpcId() != null ? _vpcDao.findById(network.getVpcId()).getNetworkDomain() : network.getNetworkDomain()); } return vspDhcpDomainBuilder.build(); }
@DB protected Vpc createVpc(final Boolean displayVpc, final VpcVO vpc) { final String cidr = vpc.getCidr(); // Validate CIDR if (!NetUtils.isValidIp4Cidr(cidr)) { throw new InvalidParameterValueException("Invalid CIDR specified " + cidr); } // cidr has to be RFC 1918 complient if (!NetUtils.validateGuestCidr(cidr)) { throw new InvalidParameterValueException("Guest Cidr " + cidr + " is not RFC1918 compliant"); } // validate network domain if (!NetUtils.verifyDomainName(vpc.getNetworkDomain())) { throw new InvalidParameterValueException("Invalid network domain. Total length shouldn't exceed 190 chars. Each domain " + "label must be between 1 and 63 characters long, can contain ASCII letters 'a' through 'z', " + "the digits '0' through '9', " + "and the hyphen ('-'); can't start or end with \"-\""); } return Transaction.execute(new TransactionCallback<VpcVO>() { @Override public VpcVO doInTransaction(final TransactionStatus status) { if (displayVpc != null) { vpc.setDisplay(displayVpc); } final VpcVO persistedVpc = _vpcDao.persist(vpc, finalizeServicesAndProvidersForVpc(vpc.getZoneId(), vpc.getVpcOfferingId())); _resourceLimitMgr.incrementResourceCount(vpc.getAccountId(), ResourceType.vpc); s_logger.debug("Created VPC " + persistedVpc); return persistedVpc; } }); }
try { copyOfVpc = _vpcService.createVpc(vpc.getZoneId(), vpcOfferingId, vpc.getAccountId(), vpc.getName(), vpc.getDisplayText(), vpc.getCidr(), vpc.getNetworkDomain(), vpc.isDisplay()); copyOfVpcId = copyOfVpc.getId();