This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch 4.11
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.11 by this push:
new b2a19f7 CLOUDSTACK-10247: L2 network not shared on projects (#2420)
b2a19f7 is described below
commit b2a19f7587fdd86fddc6c32fa8476eeac6269116
Author: Nicolas Vazquez <[email protected]>
AuthorDate: Sat Feb 10 14:29:41 2018 -0300
CLOUDSTACK-10247: L2 network not shared on projects (#2420)
When trying to deploy a vm providing a project id and a L2 network id, this
error is logged.
---
server/src/com/cloud/network/NetworkModelImpl.java | 17 +++++++++--------
server/src/com/cloud/network/NetworkServiceImpl.java | 4 ++--
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/server/src/com/cloud/network/NetworkModelImpl.java
b/server/src/com/cloud/network/NetworkModelImpl.java
index e583b71..b8e7b53 100644
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@ -930,7 +930,7 @@ public class NetworkModelImpl extends ManagerBase
implements NetworkModel, Confi
@Override
public String getIpOfNetworkElementInVirtualNetwork(long accountId, long
dataCenterId) {
- List<NetworkVO> virtualNetworks =
_networksDao.listByZoneAndGuestType(accountId, dataCenterId,
Network.GuestType.Isolated, false);
+ List<NetworkVO> virtualNetworks =
_networksDao.listByZoneAndGuestType(accountId, dataCenterId,
GuestType.Isolated, false);
if (virtualNetworks.isEmpty()) {
s_logger.trace("Unable to find default Virtual network account
id=" + accountId);
@@ -950,13 +950,13 @@ public class NetworkModelImpl extends ManagerBase
implements NetworkModel, Confi
}
@Override
- public List<NetworkVO> listNetworksForAccount(long accountId, long zoneId,
Network.GuestType type) {
+ public List<NetworkVO> listNetworksForAccount(long accountId, long zoneId,
GuestType type) {
List<NetworkVO> accountNetworks = new ArrayList<NetworkVO>();
List<NetworkVO> zoneNetworks = _networksDao.listByZone(zoneId);
for (NetworkVO network : zoneNetworks) {
if (!isNetworkSystem(network)) {
- if (network.getGuestType() == Network.GuestType.Shared ||
!_networksDao.listBy(accountId, network.getId()).isEmpty()) {
+ if (network.getGuestType() == GuestType.Shared ||
!_networksDao.listBy(accountId, network.getId()).isEmpty()) {
if (type == null || type == network.getGuestType()) {
accountNetworks.add(network);
}
@@ -967,7 +967,7 @@ public class NetworkModelImpl extends ManagerBase
implements NetworkModel, Confi
}
@Override
- public List<NetworkVO> listAllNetworksInAllZonesByType(Network.GuestType
type) {
+ public List<NetworkVO> listAllNetworksInAllZonesByType(GuestType type) {
List<NetworkVO> networks = new ArrayList<NetworkVO>();
for (NetworkVO network : _networksDao.listAll()) {
if (!isNetworkSystem(network)) {
@@ -1637,7 +1637,8 @@ public class NetworkModelImpl extends ManagerBase
implements NetworkModel, Confi
throw new CloudRuntimeException("cannot check permissions on
(Network) <null>");
}
// Perform account permission check
- if (network.getGuestType() != Network.GuestType.Shared ||
(network.getGuestType() == Network.GuestType.Shared && network.getAclType() ==
ACLType.Account)) {
+ if ((network.getGuestType() != GuestType.Shared &&
network.getGuestType() != GuestType.L2) ||
+ (network.getGuestType() == GuestType.Shared &&
network.getAclType() == ACLType.Account)) {
AccountVO networkOwner =
_accountDao.findById(network.getAccountId());
if (networkOwner == null)
throw new PermissionDeniedException("Unable to use network
with id= " + ((NetworkVO)network).getUuid() +
@@ -1802,14 +1803,14 @@ public class NetworkModelImpl extends ManagerBase
implements NetworkModel, Confi
public boolean isNetworkAvailableInDomain(long networkId, long domainId) {
Long networkDomainId = null;
Network network = getNetwork(networkId);
- if (network.getGuestType() != Network.GuestType.Shared) {
- s_logger.trace("Network id=" + networkId + " is not shared");
+ if (network.getGuestType() != GuestType.Shared &&
network.getGuestType() != GuestType.L2) {
+ s_logger.trace("Network id=" + networkId + " is not shared or L2");
return false;
}
NetworkDomainVO networkDomainMap =
_networkDomainDao.getDomainNetworkMapByNetworkId(networkId);
if (networkDomainMap == null) {
- s_logger.trace("Network id=" + networkId + " is shared, but not
domain specific");
+ s_logger.trace("Network id=" + networkId + " is shared or L2, but
not domain specific");
return true;
} else {
networkDomainId = networkDomainMap.getDomainId();
diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java
b/server/src/com/cloud/network/NetworkServiceImpl.java
index d7ae627..93f73d2 100644
--- a/server/src/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/com/cloud/network/NetworkServiceImpl.java
@@ -1101,8 +1101,8 @@ public class NetworkServiceImpl extends ManagerBase
implements NetworkService {
}
// Only Admin can create Shared networks
- if (ntwkOff.getGuestType() == GuestType.Shared &&
!_accountMgr.isAdmin(caller.getId())) {
- throw new InvalidParameterValueException("Only Admins can create
network with guest type " + GuestType.Shared);
+ if ((ntwkOff.getGuestType() == GuestType.Shared ||
ntwkOff.getGuestType() == GuestType.L2) &&
!_accountMgr.isAdmin(caller.getId())) {
+ throw new InvalidParameterValueException("Only Admins can create
network with guest type " + GuestType.Shared + " or " + GuestType.L2);
}
// Check if the network is domain specific
--
To stop receiving notification emails like this one, please contact
[email protected].