Added isTagged parameter to listNetworkOfferings api. When set to true, it will return offerings with not null tag values

Reviewed-by: Jessica Wang
This commit is contained in:
Alena Prokharchyk 2012-02-22 16:08:35 -08:00
parent a8a36e785f
commit 798accae10
3 changed files with 17 additions and 5 deletions

View File

@ -331,6 +331,7 @@ public class ApiConstants {
public static final String SORT_BY = "sortby";
public static final String CHANGE_CIDR = "changecidr";
public static final String PURPOSE = "purpose";
public static final String IS_TAGGED = "istagged";
public enum HostDetails {
all, capacity, events, stats, min;

View File

@ -28,7 +28,6 @@ import com.cloud.api.BaseListCmd;
import com.cloud.api.IdentityMapper;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.BaseCmd.CommandType;
import com.cloud.api.response.ListResponse;
import com.cloud.api.response.NetworkOfferingResponse;
import com.cloud.offering.NetworkOffering;
@ -88,7 +87,10 @@ public class ListNetworkOfferingsCmd extends BaseListCmd {
private Boolean specifyIpRanges;
@Parameter(name=ApiConstants.TAGS, type=CommandType.STRING, description="list network offerings by tags", length=4096)
private String tags;
private String tags;
@Parameter(name=ApiConstants.IS_TAGGED, type=CommandType.BOOLEAN, description="true if offering has tags specified")
private Boolean isTagged;
/////////////////////////////////////////////////////
/////////////////// Accessors ///////////////////////
@ -154,6 +156,10 @@ public class ListNetworkOfferingsCmd extends BaseListCmd {
return tags;
}
public Boolean isTagged() {
return isTagged;
}
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////

View File

@ -3392,6 +3392,7 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura
List<String> supportedServicesStr = cmd.getSupportedServices();
Object specifyIpRanges = cmd.getSpecifyIpRanges();
String tags = cmd.getTags();
Boolean isTagged = cmd.isTagged();
if (zoneId != null) {
zone = getZone(zoneId);
@ -3486,10 +3487,14 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura
}
if (tags != null) {
if (tags.isEmpty()) {
sc.addAnd("tags", SearchCriteria.Op.NULL);
sc.addAnd("tags", SearchCriteria.Op.EQ, tags);
}
if (isTagged != null) {
if (isTagged) {
sc.addAnd("tags", SearchCriteria.Op.NNULL);
} else {
sc.addAnd("tags", SearchCriteria.Op.EQ, tags);
sc.addAnd("tags", SearchCriteria.Op.NULL);
}
}