@@ -2557,12 +2557,12 @@ public Pair<List<? extends Network>, Integer> searchForNetworks(ListNetworksCmd
25572557 SearchCriteria <NetworkVO > sc = createNetworkSearchCriteria (sb , keyword , id , isSystem , zoneId , guestIpType , trafficType ,
25582558 physicalNetworkId , networkOfferingId , null , restartRequired , specifyIpRanges ,
25592559 vpcId , tags , display , vlanId , associatedNetworkId );
2560- addProjectNetworksConditionToSearch (sc , true );
2560+ addProjectNetworksConditionToSearch (sc , true , null );
25612561 result = _networksDao .searchAndCount (sc , searchFilter );
25622562 } else {
25632563 SearchCriteria <NetworkVO > additionalSC = _networksDao .createSearchCriteria ();
25642564
2565- addAccountSpecificNetworksToSearch (additionalSC , sb , networkFilter , skipProjectNetworks , permittedAccounts , path , isRecursive );
2565+ addAccountSpecificNetworksToSearch (additionalSC , sb , networkFilter , skipProjectNetworks , permittedAccounts , path , isRecursive , projectId );
25662566 addDomainSpecificNetworksToSearch (additionalSC , sb , networkFilter , permittedAccounts , domainId , path , isRecursive );
25672567 addSharedNetworksToSearch (additionalSC , sb , networkFilter , permittedAccounts , path , isRecursive );
25682568
@@ -2622,7 +2622,7 @@ public Pair<List<? extends Network>, Integer> searchForNetworks(ListNetworksCmd
26222622
26232623 private void addAccountSpecificNetworksToSearch (SearchCriteria <NetworkVO > additionalSC , SearchBuilder <NetworkVO > sb ,
26242624 Network .NetworkFilter networkFilter , boolean skipProjectNetworks ,
2625- List <Long > permittedAccounts , String path , boolean isRecursive ) {
2625+ List <Long > permittedAccounts , String path , boolean isRecursive , Long projectId ) {
26262626 if (!Arrays .asList (Network .NetworkFilter .Account , Network .NetworkFilter .AccountDomain , Network .NetworkFilter .All ).contains (networkFilter )) {
26272627 return ;
26282628 }
@@ -2641,7 +2641,7 @@ private void addAccountSpecificNetworksToSearch(SearchCriteria<NetworkVO> additi
26412641 } else {
26422642 accountSC .addAnd ("accountId" , SearchCriteria .Op .IN , permittedAccounts .toArray ());
26432643 }
2644- addProjectNetworksConditionToSearch (accountSC , skipProjectNetworks );
2644+ addProjectNetworksConditionToSearch (accountSC , skipProjectNetworks , projectId );
26452645 additionalSC .addOr ("id" , SearchCriteria .Op .SC , accountSC );
26462646 }
26472647
@@ -2785,7 +2785,7 @@ private void addDomainLevelNetworksToSearch(SearchCriteria<NetworkVO> additional
27852785 SearchCriteria <NetworkVO > domainSC = sb .create ();
27862786 domainSC .addAnd ("id" , SearchCriteria .Op .IN , networkIds .toArray ());
27872787 domainSC .addAnd ("aclType" , SearchCriteria .Op .EQ , ACLType .Domain .toString ());
2788- addProjectNetworksConditionToSearch (domainSC , true );
2788+ addProjectNetworksConditionToSearch (domainSC , true , null );
27892789 additionalSC .addOr ("id" , SearchCriteria .Op .SC , domainSC );
27902790 }
27912791 }
@@ -2813,13 +2813,17 @@ private void addDomainNetworksByDomainPathToSearch(SearchCriteria<NetworkVO> add
28132813 SearchCriteria <NetworkVO > domainSC = sb .create ();
28142814 domainSC .addAnd ("id" , SearchCriteria .Op .IN , networkIds .toArray ());
28152815 domainSC .addAnd ("aclType" , SearchCriteria .Op .EQ , ACLType .Domain .toString ());
2816- addProjectNetworksConditionToSearch (domainSC , true );
2816+ addProjectNetworksConditionToSearch (domainSC , true , null );
28172817 additionalSC .addOr ("id" , SearchCriteria .Op .SC , domainSC );
28182818 }
28192819 }
28202820
2821- private void addProjectNetworksConditionToSearch (SearchCriteria <NetworkVO > sc , boolean skipProjectNetworks ) {
2822- sc .getJoin ("account" ).addAnd ("type" , skipProjectNetworks ? Op .NEQ : Op .EQ , Account .Type .PROJECT );
2821+ protected void addProjectNetworksConditionToSearch (SearchCriteria <NetworkVO > sc , boolean skipProjectNetworks , Long projectId ) {
2822+ if (!skipProjectNetworks && projectId == -1 ) {
2823+ sc .getJoin ("account" ).addAnd ("type" , Op .NNULL );
2824+ } else {
2825+ sc .getJoin ("account" ).addAnd ("type" , skipProjectNetworks ? Op .NEQ : Op .EQ , Account .Type .PROJECT );
2826+ }
28232827 sc .addAnd ("id" , Op .SC , sc .getJoin ("account" ));
28242828 }
28252829
@@ -2829,7 +2833,7 @@ private void addSharedNetworksByAccountsToSearch(SearchCriteria<NetworkVO> addit
28292833 if (!sharedNetworkIds .isEmpty ()) {
28302834 SearchCriteria <NetworkVO > ssc = sb .create ();
28312835 ssc .addAnd ("id" , SearchCriteria .Op .IN , sharedNetworkIds .toArray ());
2832- addProjectNetworksConditionToSearch (ssc , true );
2836+ addProjectNetworksConditionToSearch (ssc , true , null );
28332837 additionalSC .addOr ("id" , SearchCriteria .Op .SC , ssc );
28342838 }
28352839 }
@@ -2859,7 +2863,7 @@ private void addSharedNetworksByDomainPathToSearch(SearchCriteria<NetworkVO> add
28592863 if (!sharedNetworkIds .isEmpty ()) {
28602864 SearchCriteria <NetworkVO > ssc = sb .create ();
28612865 ssc .addAnd ("id" , SearchCriteria .Op .IN , sharedNetworkIds .toArray ());
2862- addProjectNetworksConditionToSearch (ssc , true );
2866+ addProjectNetworksConditionToSearch (ssc , true , null );
28632867 additionalSC .addOr ("id" , SearchCriteria .Op .SC , ssc );
28642868 }
28652869 }
0 commit comments