Skip to content

Commit b84fc57

Browse files
authored
Make reorder ACL items invoke Netris controller (apache#90)
1 parent b1a3246 commit b84fc57

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

engine/components-api/src/main/java/com/cloud/network/vpc/NetworkACLManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,5 +93,5 @@ public interface NetworkACLManager {
9393

9494
boolean applyACLToPrivateGw(PrivateGateway gateway) throws ResourceUnavailableException;
9595

96-
boolean reorderAclRules(VpcVO vpc, List<? extends Network> networks, List<? extends NetworkACLItem> networkACLItems);
96+
boolean reorderAclRules(VpcVO vpc, List<? extends Network> networks, List<? extends NetworkACLItem> networkACLItems, Network.Provider networkProvider);
9797
}

server/src/main/java/com/cloud/network/vpc/NetworkACLManagerImpl.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -369,15 +369,16 @@ public boolean applyACLToPrivateGw(final PrivateGateway gateway) throws Resource
369369
}
370370

371371
@Override
372-
public boolean reorderAclRules(VpcVO vpc, List<? extends Network> networks, List<? extends NetworkACLItem> networkACLItems) {
373-
List<NetworkACLServiceProvider> nsxElements = new ArrayList<>();
374-
nsxElements.add((NetworkACLServiceProvider) _ntwkModel.getElementImplementingProvider(Network.Provider.Nsx.getName()));
372+
public boolean reorderAclRules(VpcVO vpc, List<? extends Network> networks,
373+
List<? extends NetworkACLItem> networkACLItems, Network.Provider networkProvider) {
374+
List<NetworkACLServiceProvider> providers = new ArrayList<>();
375+
providers.add((NetworkACLServiceProvider) _ntwkModel.getElementImplementingProvider(networkProvider.getName()));
375376
try {
376-
for (final NetworkACLServiceProvider provider : nsxElements) {
377+
for (final NetworkACLServiceProvider provider : providers) {
377378
return provider.reorderAclRules(vpc, networks, networkACLItems);
378379
}
379380
} catch (final Exception ex) {
380-
logger.debug("Failed to reorder ACLs on NSX due to: " + ex.getLocalizedMessage());
381+
logger.debug(String.format("Failed to reorder ACLs on %s due to: %s", networkProvider.getName(), ex.getLocalizedMessage()));
381382
}
382383
return false;
383384
}

server/src/main/java/com/cloud/network/vpc/NetworkACLServiceImpl.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@
2828

2929
import com.cloud.dc.DataCenter;
3030
import com.cloud.exception.PermissionDeniedException;
31+
import com.cloud.network.dao.NetrisProviderDao;
3132
import com.cloud.network.dao.NsxProviderDao;
33+
import com.cloud.network.element.NetrisProviderVO;
3234
import com.cloud.network.element.NsxProviderVO;
3335
import org.apache.cloudstack.api.ApiErrorCode;
3436
import org.apache.cloudstack.api.ServerApiException;
@@ -41,6 +43,7 @@
4143
import org.apache.cloudstack.context.CallContext;
4244
import org.apache.commons.codec.digest.DigestUtils;
4345
import org.apache.commons.collections.CollectionUtils;
46+
import org.apache.commons.lang3.ObjectUtils;
4447
import org.apache.commons.lang3.StringUtils;
4548
import org.springframework.stereotype.Component;
4649

@@ -104,6 +107,8 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ
104107
private VpcService _vpcSvc;
105108
@Inject
106109
private NsxProviderDao nsxProviderDao;
110+
@Inject
111+
private NetrisProviderDao netrisProviderDao;
107112

108113
private String supportedProtocolsForAclRules = "tcp,udp,icmp,all";
109114

@@ -1031,10 +1036,12 @@ public NetworkACLItem moveNetworkAclRuleToNewPosition(MoveNetworkAclItemCmd move
10311036
}
10321037
final DataCenter dc = _entityMgr.findById(DataCenter.class, vpc.getZoneId());
10331038
final NsxProviderVO nsxProvider = nsxProviderDao.findByZoneId(dc.getId());
1039+
final NetrisProviderVO netrisProvider = netrisProviderDao.findByZoneId(dc.getId());
10341040
List<NetworkVO> networks = _networkDao.listByAclId(lockedAcl.getId());
1035-
if (Objects.nonNull(nsxProvider) && !networks.isEmpty()) {
1041+
if (ObjectUtils.anyNotNull(nsxProvider, netrisProvider) && !networks.isEmpty()) {
10361042
allAclRules = getAllAclRulesSortedByNumber(lockedAcl.getId());
1037-
_networkAclMgr.reorderAclRules(vpc, networks, allAclRules);
1043+
Network.Provider networkProvider = nsxProvider != null ? Network.Provider.Nsx : Network.Provider.Netris;
1044+
_networkAclMgr.reorderAclRules(vpc, networks, allAclRules, networkProvider);
10381045
}
10391046
return networkACLItem;
10401047
} finally {

0 commit comments

Comments
 (0)