@@ -2174,7 +2174,7 @@ public Pair<List<? extends IpAddress>, Integer> searchForIPAddresses(final ListP
21742174 _accountMgr .buildACLSearchBuilder (sb , domainId , isRecursive , permittedAccounts , listProjectResourcesCriteria );
21752175 }
21762176
2177- buildParameters (sb , cmd );
2177+ buildParameters (sb , cmd , vlanType == VlanType . VirtualNetwork ? true : isAllocated );
21782178
21792179 SearchCriteria <IPAddressVO > sc = sb .create ();
21802180 setParameters (sc , cmd , vlanType );
@@ -2236,26 +2236,26 @@ public Pair<List<? extends IpAddress>, Integer> searchForIPAddresses(final ListP
22362236 }
22372237 if (freeAddrIds .size () > 0 ) {
22382238 final SearchBuilder <IPAddressVO > sb2 = _publicIpAddressDao .createSearchBuilder ();
2239- buildParameters (sb2 , cmd );
2239+ buildParameters (sb2 , cmd , false );
22402240 sb2 .and ("ids" , sb2 .entity ().getId (), SearchCriteria .Op .IN );
22412241
22422242 SearchCriteria <IPAddressVO > sc2 = sb2 .create ();
22432243 setParameters (sc2 , cmd , vlanType );
22442244 sc2 .setParameters ("ids" , freeAddrIds .toArray ());
22452245 addrs .addAll (_publicIpAddressDao .search (sc2 , searchFilter )); // Allocated + Free
22462246 }
2247+ Collections .sort (addrs , Comparator .comparing (IPAddressVO ::getAddress ));
22472248 List <? extends IpAddress > wPagination = com .cloud .utils .StringUtils .applyPagination (addrs , cmd .getStartIndex (), cmd .getPageSizeVal ());
22482249 if (wPagination != null ) {
22492250 return new Pair <List <? extends IpAddress >, Integer >(wPagination , addrs .size ());
22502251 }
22512252 return new Pair <>(addrs , addrs .size ());
22522253 }
22532254
2254- private void buildParameters (final SearchBuilder <IPAddressVO > sb , final ListPublicIpAddressesCmd cmd ) {
2255+ private void buildParameters (final SearchBuilder <IPAddressVO > sb , final ListPublicIpAddressesCmd cmd , final Boolean isAllocated ) {
22552256 final Object keyword = cmd .getKeyword ();
22562257 final String address = cmd .getIpAddress ();
22572258 final Boolean forLoadBalancing = cmd .isForLoadBalancing ();
2258- Boolean isAllocated = cmd .isAllocatedOnly ();
22592259 final Map <String , String > tags = cmd .getTags ();
22602260
22612261 sb .and ("dataCenterId" , sb .entity ().getDataCenterId (), SearchCriteria .Op .EQ );
0 commit comments