diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index d1723ef6eb1..f1cab463d0f 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -248,7 +248,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag @Override public PublicIp assignSourceNatIpAddress(Account owner, Network network, long callerId) throws ConcurrentOperationException, InsufficientAddressCapacityException { - assert ((network.getTrafficType() == TrafficType.Public) || (network.getTrafficType() == TrafficType.Guest && network.getGuestType() == GuestIpType.Direct)) : "You're asking for a source nat but your network can't participate in source nat. What do you have to say for yourself?"; + assert (network.getTrafficType() != null) : "You're asking for a source nat but your network can't participate in source nat. What do you have to say for yourself?"; long dcId = network.getDataCenterId(); long ownerId = owner.getId(); @@ -880,7 +880,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } NetworkVO vo = new NetworkVO(id, config, offering.getId(), plan.getDataCenterId(), guru.getName(), owner.getDomainId(), owner.getId(), related, name, displayText, isShared); - configs.add(_networksDao.persist(vo)); + configs.add(_networksDao.persist(vo, vo.getGuestType() != null)); } if (configs.size() < 1) { diff --git a/server/src/com/cloud/network/dao/NetworkDao.java b/server/src/com/cloud/network/dao/NetworkDao.java index 89eb9039943..370ebb18be6 100644 --- a/server/src/com/cloud/network/dao/NetworkDao.java +++ b/server/src/com/cloud/network/dao/NetworkDao.java @@ -34,6 +34,9 @@ public interface NetworkDao extends GenericDao { SearchBuilder createSearchBuilderForAccount(); List getNetworksForOffering(long offeringId, long dataCenterId, long accountId); List getRelatedNetworks(long related); + + @Override @Deprecated + NetworkVO persist(NetworkVO vo); /** * Retrieves the next available mac address in this network configuration. diff --git a/server/src/com/cloud/network/dao/NetworkDaoImpl.java b/server/src/com/cloud/network/dao/NetworkDaoImpl.java index 5ced8ef191d..bb988ac07b7 100644 --- a/server/src/com/cloud/network/dao/NetworkDaoImpl.java +++ b/server/src/com/cloud/network/dao/NetworkDaoImpl.java @@ -30,6 +30,7 @@ import com.cloud.network.Networks.BroadcastDomainType; import com.cloud.network.Networks.Mode; import com.cloud.network.Networks.TrafficType; import com.cloud.offering.NetworkOffering.GuestIpType; +import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.db.DB; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.JoinBuilder; @@ -49,8 +50,8 @@ public class NetworkDaoImpl extends GenericDaoBase implements N final SearchBuilder AccountNetworkSearch; final SearchBuilder ZoneBroadcastUriSearch; - NetworkAccountDaoImpl _accountsDao = new NetworkAccountDaoImpl(); - NetworkOpDaoImpl _opDao = new NetworkOpDaoImpl(); + NetworkAccountDaoImpl _accountsDao = ComponentLocator.inject(NetworkAccountDaoImpl.class); + NetworkOpDaoImpl _opDao = ComponentLocator.inject(NetworkOpDaoImpl.class); final TableGenerator _tgMacAddress; Random _rand = new Random(System.currentTimeMillis()); long _prefix = 0x2; diff --git a/setup/db/create-schema.sql b/setup/db/create-schema.sql index df1647a78c2..72ad3e1e97e 100755 --- a/setup/db/create-schema.sql +++ b/setup/db/create-schema.sql @@ -410,6 +410,7 @@ CREATE TABLE `cloud`.`op_dc_ip_address_alloc` ( `data_center_id` bigint unsigned NOT NULL COMMENT 'data center it belongs to', `pod_id` bigint unsigned NOT NULL COMMENT 'pod it belongs to', `instance_id` bigint unsigned NULL COMMENT 'instance id', + `mac_address` bigint unsigned NOT NULL COMMENT 'mac_address', `reservation_id` char(40) NULL COMMENT 'reservation id', `taken` datetime COMMENT 'Date taken', PRIMARY KEY (`id`) diff --git a/utils/src/com/cloud/utils/db/SearchCriteria.java b/utils/src/com/cloud/utils/db/SearchCriteria.java index e1af33ee60b..03743d88410 100755 --- a/utils/src/com/cloud/utils/db/SearchCriteria.java +++ b/utils/src/com/cloud/utils/db/SearchCriteria.java @@ -215,7 +215,7 @@ public class SearchCriteria { } public Pair, List> getGroupBy() { - return new Pair, List>(_groupBy, _groupByValues); + return _groupBy == null ? null : new Pair, List>(_groupBy, _groupByValues); } public void setGroupByValues(Object... values) {