You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2012/08/02 04:08:32 UTC
[4/44] git commit: VPC: CS-15805 - verify vpc guest network cidr only
against networks in the same vpc
VPC: CS-15805 - verify vpc guest network cidr only against networks in the same vpc
Conflicts:
server/src/com/cloud/network/vpc/VpcManagerImpl.java
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/21e8fb37
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/21e8fb37
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/21e8fb37
Branch: refs/heads/vpc
Commit: 21e8fb372bce44a4a6f51103c4be57db884b3e7a
Parents: a4c52d4
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Wed Aug 1 17:58:51 2012 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Wed Aug 1 19:02:43 2012 -0700
----------------------------------------------------------------------
.../com/cloud/api/commands/UpdateNetworkCmd.java | 2 +-
.../src/com/cloud/network/NetworkManagerImpl.java | 4 +-
server/src/com/cloud/network/dao/NetworkDao.java | 2 +-
.../src/com/cloud/network/dao/NetworkDaoImpl.java | 6 +++-
.../cloud/network/vpc/Dao/StaticRouteDaoImpl.java | 2 +-
.../src/com/cloud/network/vpc/Dao/VpcDaoImpl.java | 2 +-
.../src/com/cloud/network/vpc/VpcManagerImpl.java | 20 +++++++-------
7 files changed, 21 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/21e8fb37/api/src/com/cloud/api/commands/UpdateNetworkCmd.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/api/commands/UpdateNetworkCmd.java b/api/src/com/cloud/api/commands/UpdateNetworkCmd.java
index c3657fc..15d8451 100644
--- a/api/src/com/cloud/api/commands/UpdateNetworkCmd.java
+++ b/api/src/com/cloud/api/commands/UpdateNetworkCmd.java
@@ -119,7 +119,7 @@ public class UpdateNetworkCmd extends BaseAsyncCmd {
Account callerAccount = _accountService.getActiveAccountById(callerUser.getAccountId());
Network network = _networkService.getNetwork(id);
if (network == null) {
- throw new InvalidParameterValueException("Couldn't find network by id", null);
+ throw new InvalidParameterValueException("Couldn't find network by id");
}
Network result = null;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/21e8fb37/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java
index 6d243ed..5ffbdcd 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -1628,9 +1628,9 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
return configs;
}
}
- } else if (predefined != null && predefined.getCidr() != null && predefined.getBroadcastUri() == null) {
+ } else if (predefined != null && predefined.getCidr() != null && predefined.getBroadcastUri() == null && vpcId == null) {
// don't allow to have 2 networks with the same cidr in the same zone for the account
- List<NetworkVO> configs = _networksDao.listBy(owner.getId(), plan.getDataCenterId(), predefined.getCidr());
+ List<NetworkVO> configs = _networksDao.listBy(owner.getId(), plan.getDataCenterId(), predefined.getCidr(), true);
if (configs.size() > 0) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Found existing network configuration for offering " + offering + ": " + configs.get(0));
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/21e8fb37/server/src/com/cloud/network/dao/NetworkDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/dao/NetworkDao.java b/server/src/com/cloud/network/dao/NetworkDao.java
index 1b1f769..a2e37b7 100644
--- a/server/src/com/cloud/network/dao/NetworkDao.java
+++ b/server/src/com/cloud/network/dao/NetworkDao.java
@@ -33,7 +33,7 @@ public interface NetworkDao extends GenericDao<NetworkVO, Long> {
List<NetworkVO> listBy(long accountId, long offeringId, long dataCenterId);
- List<NetworkVO> listBy(long accountId, long dataCenterId, String cidr);
+ List<NetworkVO> listBy(long accountId, long dataCenterId, String cidr, boolean skipVpc);
List<NetworkVO> listByZoneAndGuestType(long accountId, long dataCenterId, Network.GuestType type, Boolean isSystem);
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/21e8fb37/server/src/com/cloud/network/dao/NetworkDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/dao/NetworkDaoImpl.java b/server/src/com/cloud/network/dao/NetworkDaoImpl.java
index e3a1cc7..cbfec89 100644
--- a/server/src/com/cloud/network/dao/NetworkDaoImpl.java
+++ b/server/src/com/cloud/network/dao/NetworkDaoImpl.java
@@ -113,6 +113,7 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N
AccountSearch.join("accounts", join, AccountSearch.entity().getId(), join.entity().getNetworkId(), JoinBuilder.JoinType.INNER);
AccountSearch.and("datacenter", AccountSearch.entity().getDataCenterId(), Op.EQ);
AccountSearch.and("cidr", AccountSearch.entity().getCidr(), Op.EQ);
+ AccountSearch.and("vpcId", AccountSearch.entity().getVpcId(), Op.EQ);
AccountSearch.done();
RelatedConfigSearch = createSearchBuilder();
@@ -240,11 +241,14 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N
}
@Override
- public List<NetworkVO> listBy(long accountId, long dataCenterId, String cidr) {
+ public List<NetworkVO> listBy(long accountId, long dataCenterId, String cidr, boolean skipVpc) {
SearchCriteria<NetworkVO> sc = AccountSearch.create();
sc.setJoinParameters("accounts", "account", accountId);
sc.setParameters("datacenter", dataCenterId);
sc.setParameters("cidr", cidr);
+ if (skipVpc) {
+ sc.setParameters("vpcId", (Object)null);
+ }
return listBy(sc);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/21e8fb37/server/src/com/cloud/network/vpc/Dao/StaticRouteDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/Dao/StaticRouteDaoImpl.java b/server/src/com/cloud/network/vpc/Dao/StaticRouteDaoImpl.java
index 20f47f2..b55016d 100644
--- a/server/src/com/cloud/network/vpc/Dao/StaticRouteDaoImpl.java
+++ b/server/src/com/cloud/network/vpc/Dao/StaticRouteDaoImpl.java
@@ -106,7 +106,7 @@ public class StaticRouteDaoImpl extends GenericDaoBase<StaticRouteVO, Long> impl
txn.start();
StaticRouteVO entry = findById(id);
if (entry != null) {
- _tagsDao.removeBy(id, TaggedResourceType.StaticRoute);
+ _tagsDao.removeByIdAndType(id, TaggedResourceType.StaticRoute);
}
boolean result = super.remove(id);
txn.commit();
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/21e8fb37/server/src/com/cloud/network/vpc/Dao/VpcDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/Dao/VpcDaoImpl.java b/server/src/com/cloud/network/vpc/Dao/VpcDaoImpl.java
index fcca6dc..773d6ad 100644
--- a/server/src/com/cloud/network/vpc/Dao/VpcDaoImpl.java
+++ b/server/src/com/cloud/network/vpc/Dao/VpcDaoImpl.java
@@ -103,7 +103,7 @@ public class VpcDaoImpl extends GenericDaoBase<VpcVO, Long> implements VpcDao{
txn.start();
VpcVO entry = findById(id);
if (entry != null) {
- _tagsDao.removeBy(id, TaggedResourceType.Vpc);
+ _tagsDao.removeByIdAndType(id, TaggedResourceType.Vpc);
}
boolean result = super.remove(id);
txn.commit();
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/21e8fb37/server/src/com/cloud/network/vpc/VpcManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
index 6e73a2d..34a0c3c 100644
--- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
@@ -590,16 +590,16 @@ public class VpcManagerImpl implements VpcManager, Manager{
"the digits '0' through '9', "
+ "and the hyphen ('-'); can't start or end with \"-\"");
}
-
-
- //don't allow overlapping CIDRS for the VPCs of the same account
- List<? extends Vpc> vpcs = getVpcsForAccount(vpcOwner.getId());
- for (Vpc vpc : vpcs) {
- if (NetUtils.isNetworksOverlap(cidr, vpc.getCidr())) {
- throw new InvalidParameterValueException("Account already has vpc with cidr " + vpc.getCidr() +
- " that overlaps the cidr specified: " + cidr);
- }
- }
+
+
+// //don't allow overlapping CIDRS for the VPCs of the same account
+// List<? extends Vpc> vpcs = getVpcsForAccount(vpcOwner.getId());
+// for (Vpc vpc : vpcs) {
+// if (NetUtils.isNetworksOverlap(cidr, vpc.getCidr())) {
+// throw new InvalidParameterValueException("Account already has vpc with cidr " + vpc.getCidr() +
+// " that overlaps the cidr specified: " + cidr, null);
+// }
+// }
Transaction txn = Transaction.currentTxn();
txn.start();