@@ -109,6 +109,8 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ
109109 private NsxProviderDao nsxProviderDao ;
110110 @ Inject
111111 private NetrisProviderDao netrisProviderDao ;
112+ @ Inject
113+ private VpcManager vpcManager ;
112114
113115 private String supportedProtocolsForAclRules = "tcp,udp,icmp,all" ;
114116
@@ -1037,13 +1039,20 @@ public NetworkACLItem moveNetworkAclRuleToNewPosition(MoveNetworkAclItemCmd move
10371039 if (Objects .isNull (vpc )) {
10381040 return networkACLItem ;
10391041 }
1042+ List <NetworkVO > networks = _networkDao .listByAclId (lockedAcl .getId ());
1043+ if (networks .isEmpty ()) {
1044+ return networkACLItem ;
1045+ }
1046+
10401047 final DataCenter dc = _entityMgr .findById (DataCenter .class , vpc .getZoneId ());
10411048 final NsxProviderVO nsxProvider = nsxProviderDao .findByZoneId (dc .getId ());
10421049 final NetrisProviderVO netrisProvider = netrisProviderDao .findByZoneId (dc .getId ());
1043- List <NetworkVO > networks = _networkDao .listByAclId (lockedAcl .getId ());
1044- if (ObjectUtils .anyNotNull (nsxProvider , netrisProvider ) && !networks .isEmpty ()) {
1050+ boolean isVpcNetworkACLProvider = vpcManager .isProviderSupportServiceInVpc (vpc .getId (), Network .Service .NetworkACL , Network .Provider .VPCVirtualRouter );
1051+
1052+ if (ObjectUtils .anyNotNull (nsxProvider , netrisProvider ) || isVpcNetworkACLProvider ) {
10451053 allAclRules = getAllAclRulesSortedByNumber (lockedAcl .getId ());
1046- Network .Provider networkProvider = nsxProvider != null ? Network .Provider .Nsx : Network .Provider .Netris ;
1054+ Network .Provider networkProvider = isVpcNetworkACLProvider ? Network .Provider .VPCVirtualRouter
1055+ : (nsxProvider != null ? Network .Provider .Nsx : Network .Provider .Netris );
10471056 _networkAclMgr .reorderAclRules (vpc , networks , allAclRules , networkProvider );
10481057 }
10491058 return networkACLItem ;
0 commit comments