@@ -2128,7 +2128,7 @@ public Pair<List<? extends IpAddress>, Integer> searchForIPAddresses(final ListP
21282128 _accountMgr .buildACLSearchBuilder (sb , domainId , isRecursive , permittedAccounts , listProjectResourcesCriteria );
21292129 }
21302130
2131- buildParameters (sb , cmd );
2131+ buildParameters (sb , cmd , vlanType == VlanType . VirtualNetwork ? true : isAllocated );
21322132
21332133 SearchCriteria <IPAddressVO > sc = sb .create ();
21342134 setParameters (sc , cmd , vlanType );
@@ -2190,26 +2190,26 @@ public Pair<List<? extends IpAddress>, Integer> searchForIPAddresses(final ListP
21902190 }
21912191 if (freeAddrIds .size () > 0 ) {
21922192 final SearchBuilder <IPAddressVO > sb2 = _publicIpAddressDao .createSearchBuilder ();
2193- buildParameters (sb2 , cmd );
2193+ buildParameters (sb2 , cmd , false );
21942194 sb2 .and ("ids" , sb2 .entity ().getId (), SearchCriteria .Op .IN );
21952195
21962196 SearchCriteria <IPAddressVO > sc2 = sb2 .create ();
21972197 setParameters (sc2 , cmd , vlanType );
21982198 sc2 .setParameters ("ids" , freeAddrIds .toArray ());
21992199 addrs .addAll (_publicIpAddressDao .search (sc2 , searchFilter )); // Allocated + Free
22002200 }
2201+ Collections .sort (addrs , Comparator .comparing (IPAddressVO ::getAddress ));
22012202 List <? extends IpAddress > wPagination = com .cloud .utils .StringUtils .applyPagination (addrs , cmd .getStartIndex (), cmd .getPageSizeVal ());
22022203 if (wPagination != null ) {
22032204 return new Pair <List <? extends IpAddress >, Integer >(wPagination , addrs .size ());
22042205 }
22052206 return new Pair <>(addrs , addrs .size ());
22062207 }
22072208
2208- private void buildParameters (final SearchBuilder <IPAddressVO > sb , final ListPublicIpAddressesCmd cmd ) {
2209+ private void buildParameters (final SearchBuilder <IPAddressVO > sb , final ListPublicIpAddressesCmd cmd , final Boolean isAllocated ) {
22092210 final Object keyword = cmd .getKeyword ();
22102211 final String address = cmd .getIpAddress ();
22112212 final Boolean forLoadBalancing = cmd .isForLoadBalancing ();
2212- Boolean isAllocated = cmd .isAllocatedOnly ();
22132213 final Map <String , String > tags = cmd .getTags ();
22142214
22152215 sb .and ("dataCenterId" , sb .entity ().getDataCenterId (), SearchCriteria .Op .EQ );
0 commit comments