@Override
public PhysicalNetworkVO doInTransaction(TransactionStatus status) {
long id = _physicalNetworkDao.getNextInSequence(Long.class, "id");
PhysicalNetworkVO pNetwork = new PhysicalNetworkVO(id, zoneId, vnetRange, networkSpeed, domainId, broadcastDomainRangeFinal, name);
pNetwork.setTags(tags);
pNetwork.setIsolationMethods(isolationMethods);
pNetwork = _physicalNetworkDao.persist(pNetwork);
if (vnetRange != null) {
addOrRemoveVnets(vnetRange.split(","), pNetwork);
}
addDefaultVirtualRouterToPhysicalNetwork(pNetwork.getId());
if (pNetwork.getIsolationMethods().contains("GRE")) {
addDefaultOvsToPhysicalNetwork(pNetwork.getId());
}
addDefaultSecurityGroupProviderToPhysicalNetwork(pNetwork.getId());
addDefaultVpcVirtualRouterToPhysicalNetwork(pNetwork.getId());
addDefaultBaremetalProvidersToPhysicalNetwork(pNetwork.getId());
addDefaultInternalLbProviderToPhysicalNetwork(pNetwork.getId());
addConfigDriveToPhysicalNetwork(pNetwork.getId());
return pNetwork;
}
});