mirror of https://github.com/apache/jclouds.git
[JCLOUDS-1468] Adding missing options for the ListUsageRecords API call.
This commit is contained in:
parent
8dcfd8625f
commit
a8b8c9dd3c
|
@ -30,6 +30,7 @@ import com.google.common.base.Objects;
|
||||||
import com.google.common.base.MoreObjects.ToStringHelper;
|
import com.google.common.base.MoreObjects.ToStringHelper;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a usage record from CloudStack
|
* Represents a usage record from CloudStack
|
||||||
|
@ -53,6 +54,13 @@ public class UsageRecord {
|
||||||
PORT_FORWARDING_RULE(12),
|
PORT_FORWARDING_RULE(12),
|
||||||
NETWORK_OFFERING(13),
|
NETWORK_OFFERING(13),
|
||||||
VPN_USERS(14),
|
VPN_USERS(14),
|
||||||
|
VM_DISK_IO_READ(21),
|
||||||
|
VM_DISK_IO_WRITE(22),
|
||||||
|
VM_DISK_BYTES_READ(23),
|
||||||
|
VM_DISK_BYTES_WRITE(24),
|
||||||
|
VM_SNAPSHOT(25),
|
||||||
|
VOLUME_SECONDARY(26),
|
||||||
|
VM_SNAPSHOT_ON_PRIMARY(27),
|
||||||
UNRECOGNIZED(0);
|
UNRECOGNIZED(0);
|
||||||
|
|
||||||
private int code;
|
private int code;
|
||||||
|
@ -109,7 +117,7 @@ public class UsageRecord {
|
||||||
protected String serviceOfferingId;
|
protected String serviceOfferingId;
|
||||||
protected String templateId;
|
protected String templateId;
|
||||||
protected String ipAddress;
|
protected String ipAddress;
|
||||||
protected boolean isSourceNAT;
|
protected Boolean isSourceNAT;
|
||||||
protected double rawUsageHours;
|
protected double rawUsageHours;
|
||||||
protected String usage;
|
protected String usage;
|
||||||
protected Long size;
|
protected Long size;
|
||||||
|
@ -117,6 +125,15 @@ public class UsageRecord {
|
||||||
protected UsageType usageType;
|
protected UsageType usageType;
|
||||||
protected String project;
|
protected String project;
|
||||||
protected String projectId;
|
protected String projectId;
|
||||||
|
protected String domain;
|
||||||
|
protected Long virtualSize;
|
||||||
|
protected Long cpuNumber;
|
||||||
|
protected Long cpuSpeed;
|
||||||
|
protected Long memory;
|
||||||
|
protected Boolean isSystem;
|
||||||
|
protected String networkId;
|
||||||
|
protected Boolean isDefault;
|
||||||
|
protected Set<Tag> tags;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see UsageRecord#getId()
|
* @see UsageRecord#getId()
|
||||||
|
@ -241,7 +258,7 @@ public class UsageRecord {
|
||||||
/**
|
/**
|
||||||
* @see UsageRecord#isSourceNAT()
|
* @see UsageRecord#isSourceNAT()
|
||||||
*/
|
*/
|
||||||
public T isSourceNAT(boolean isSourceNAT) {
|
public T isSourceNAT(Boolean isSourceNAT) {
|
||||||
this.isSourceNAT = isSourceNAT;
|
this.isSourceNAT = isSourceNAT;
|
||||||
return self();
|
return self();
|
||||||
}
|
}
|
||||||
|
@ -301,10 +318,82 @@ public class UsageRecord {
|
||||||
this.projectId = projectId;
|
this.projectId = projectId;
|
||||||
return self();
|
return self();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see UsageRecord#getDomain()
|
||||||
|
*/
|
||||||
|
public T domain(String domain) {
|
||||||
|
this.domain = domain;
|
||||||
|
return self();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see UsageRecord#getVirtualSize()
|
||||||
|
*/
|
||||||
|
public T virtualSize(Long virtualSize) {
|
||||||
|
this.virtualSize = virtualSize;
|
||||||
|
return self();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see UsageRecord#getCpuNumber()
|
||||||
|
*/
|
||||||
|
public T cpuNumber(Long cpuNumber) {
|
||||||
|
this.cpuNumber = cpuNumber;
|
||||||
|
return self();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see UsageRecord#getCpuSpeed()
|
||||||
|
*/
|
||||||
|
public T cpuSpeed(Long cpuSpeed) {
|
||||||
|
this.cpuSpeed = cpuSpeed;
|
||||||
|
return self();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see UsageRecord#getMemory()
|
||||||
|
*/
|
||||||
|
public T memory(Long memory) {
|
||||||
|
this.memory = memory;
|
||||||
|
return self();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see UsageRecord#isSystem()
|
||||||
|
*/
|
||||||
|
public T isSystem(Boolean isSystem) {
|
||||||
|
this.isSystem = isSystem;
|
||||||
|
return self();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see UsageRecord#getNetworkId()
|
||||||
|
*/
|
||||||
|
public T networkId(String networkId) {
|
||||||
|
this.networkId = networkId;
|
||||||
|
return self();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see UsageRecord#isDefault()
|
||||||
|
*/
|
||||||
|
public T isDefault(Boolean isDefault) {
|
||||||
|
this.isDefault = isDefault;
|
||||||
|
return self();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @see UsageRecord#getTags()
|
||||||
|
*/
|
||||||
|
public T tags(Set<Tag> tags) {
|
||||||
|
this.tags = tags;
|
||||||
|
return self();
|
||||||
|
}
|
||||||
public UsageRecord build() {
|
public UsageRecord build() {
|
||||||
return new UsageRecord(id, description, accountId, accountName, domainId, startDate, endDate, assignDate, releaseDate,
|
return new UsageRecord(id, description, accountId, accountName, domainId, startDate, endDate, assignDate, releaseDate,
|
||||||
zoneId, virtualMachineId, virtualMachineName, serviceOfferingId, templateId, ipAddress, isSourceNAT, rawUsageHours,
|
zoneId, virtualMachineId, virtualMachineName, serviceOfferingId, templateId, ipAddress, isSourceNAT, rawUsageHours,
|
||||||
usage, size, type, usageType, project, projectId);
|
usage, size, type, usageType, project, projectId, domain, virtualSize, cpuNumber, cpuSpeed, memory, isSystem,
|
||||||
|
networkId, isDefault, tags);
|
||||||
}
|
}
|
||||||
|
|
||||||
public T fromUsageRecord(UsageRecord in) {
|
public T fromUsageRecord(UsageRecord in) {
|
||||||
|
@ -331,7 +420,16 @@ public class UsageRecord {
|
||||||
.type(in.getType())
|
.type(in.getType())
|
||||||
.usageType(in.getUsageType())
|
.usageType(in.getUsageType())
|
||||||
.project(in.getProject())
|
.project(in.getProject())
|
||||||
.projectId(in.getProjectId());
|
.projectId(in.getProjectId())
|
||||||
|
.domain(in.getDomain())
|
||||||
|
.virtualSize(in.getVirtualSize())
|
||||||
|
.cpuNumber(in.getCpuNumber())
|
||||||
|
.cpuSpeed(in.getCpuSpeed())
|
||||||
|
.memory(in.getMemory())
|
||||||
|
.isSystem(in.isSystem())
|
||||||
|
.networkId(in.getNetworkId())
|
||||||
|
.isDefault(in.isDefault())
|
||||||
|
.tags(in.getTags());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -357,7 +455,7 @@ public class UsageRecord {
|
||||||
private final String serviceOfferingId;
|
private final String serviceOfferingId;
|
||||||
private final String templateId;
|
private final String templateId;
|
||||||
private final String ipAddress;
|
private final String ipAddress;
|
||||||
private final boolean isSourceNAT;
|
private final Boolean isSourceNAT;
|
||||||
private final double rawUsageHours;
|
private final double rawUsageHours;
|
||||||
private final String usage;
|
private final String usage;
|
||||||
private final Long size;
|
private final Long size;
|
||||||
|
@ -365,18 +463,30 @@ public class UsageRecord {
|
||||||
private final UsageType usageType;
|
private final UsageType usageType;
|
||||||
private final String project;
|
private final String project;
|
||||||
private final String projectId;
|
private final String projectId;
|
||||||
|
private final String domain;
|
||||||
|
private final Long virtualSize;
|
||||||
|
private final Long cpuNumber;
|
||||||
|
private final Long cpuSpeed;
|
||||||
|
private final Long memory;
|
||||||
|
private final Boolean isSystem;
|
||||||
|
private final String networkId;
|
||||||
|
private final Boolean isDefault;
|
||||||
|
private final Set<Tag> tags;
|
||||||
|
|
||||||
@ConstructorProperties({
|
@ConstructorProperties({
|
||||||
"usageid", "description", "accountid", "account", "domainid", "startdate", "enddate", "assigndate", "releasedate",
|
"usageid", "description", "accountid", "account", "domainid", "startdate", "enddate", "assigndate", "releasedate",
|
||||||
"zoneid", "virtualmachineid", "name", "offeringid", "templateid", "ipaddress", "issourcenat", "rawusage", "usage",
|
"zoneid", "virtualmachineid", "name", "offeringid", "templateid", "ipaddress", "issourcenat", "rawusage", "usage",
|
||||||
"size", "type", "usagetype", "project", "projectid"
|
"size", "type", "usagetype", "project", "projectid", "domain", "virtualsize", "cpunumber", "cpuspeed", "memory",
|
||||||
|
"issystem", "networkid", "isdefault", "tags"
|
||||||
})
|
})
|
||||||
protected UsageRecord(String id, @Nullable String description, @Nullable String accountId, @Nullable String accountName,
|
protected UsageRecord(String id, @Nullable String description, @Nullable String accountId, @Nullable String accountName,
|
||||||
@Nullable String domainId, @Nullable Date startDate, @Nullable Date endDate, @Nullable Date assignDate,
|
@Nullable String domainId, @Nullable Date startDate, @Nullable Date endDate, @Nullable Date assignDate,
|
||||||
@Nullable String releaseDate, @Nullable String zoneId, @Nullable String virtualMachineId, @Nullable String virtualMachineName,
|
@Nullable String releaseDate, @Nullable String zoneId, @Nullable String virtualMachineId, @Nullable String virtualMachineName,
|
||||||
@Nullable String serviceOfferingId, @Nullable String templateId, @Nullable String ipAddress,
|
@Nullable String serviceOfferingId, @Nullable String templateId, @Nullable String ipAddress,
|
||||||
boolean isSourceNAT, double rawUsageHours, @Nullable String usage, @Nullable Long size,
|
@Nullable Boolean isSourceNAT, double rawUsageHours, @Nullable String usage, @Nullable Long size,
|
||||||
@Nullable String type, @Nullable UsageType usageType, @Nullable String project, @Nullable String projectId) {
|
@Nullable String type, @Nullable UsageType usageType, @Nullable String project, @Nullable String projectId,
|
||||||
|
@Nullable String domain, @Nullable Long virtualSize, @Nullable Long cpuNumber, @Nullable Long cpuSpeed, @Nullable Long memory,
|
||||||
|
@Nullable Boolean isSystem, @Nullable String networkId, @Nullable Boolean isDefault, @Nullable Set<Tag> tags) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.accountId = accountId;
|
this.accountId = accountId;
|
||||||
|
@ -400,6 +510,15 @@ public class UsageRecord {
|
||||||
this.usageType = usageType;
|
this.usageType = usageType;
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.projectId = projectId;
|
this.projectId = projectId;
|
||||||
|
this.domain = domain;
|
||||||
|
this.virtualSize = virtualSize;
|
||||||
|
this.cpuNumber = cpuNumber;
|
||||||
|
this.cpuSpeed = cpuSpeed;
|
||||||
|
this.memory = memory;
|
||||||
|
this.isSystem = isSystem;
|
||||||
|
this.networkId = networkId;
|
||||||
|
this.isDefault = isDefault;
|
||||||
|
this.tags = tags == null ? ImmutableSet.<Tag>of() : ImmutableSet.copyOf(tags);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
|
@ -476,7 +595,8 @@ public class UsageRecord {
|
||||||
return this.ipAddress;
|
return this.ipAddress;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSourceNAT() {
|
@Nullable
|
||||||
|
public Boolean isSourceNAT() {
|
||||||
return this.isSourceNAT;
|
return this.isSourceNAT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -513,11 +633,55 @@ public class UsageRecord {
|
||||||
return this.projectId;
|
return this.projectId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public String getDomain() {
|
||||||
|
return domain;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public Long getVirtualSize() {
|
||||||
|
return virtualSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public Long getCpuNumber() {
|
||||||
|
return cpuNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public Long getCpuSpeed() {
|
||||||
|
return cpuSpeed;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public Long getMemory() {
|
||||||
|
return memory;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public Boolean isSystem() {
|
||||||
|
return isSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public String getNetworkId() {
|
||||||
|
return networkId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public Boolean isDefault() {
|
||||||
|
return isDefault;
|
||||||
|
}
|
||||||
|
@Nullable
|
||||||
|
public Set<Tag> getTags() {
|
||||||
|
return tags;
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return Objects.hashCode(id, description, accountId, accountName, domainId, startDate, endDate, assignDate, releaseDate,
|
return Objects.hashCode(id, description, accountId, accountName, domainId, startDate, endDate, assignDate, releaseDate,
|
||||||
zoneId, virtualMachineId, virtualMachineName, serviceOfferingId, templateId, ipAddress, isSourceNAT, rawUsageHours,
|
zoneId, virtualMachineId, virtualMachineName, serviceOfferingId, templateId, ipAddress, isSourceNAT, rawUsageHours,
|
||||||
size, usage, type, usageType, project, projectId);
|
size, usage, type, usageType, project, projectId, domain, virtualSize, cpuNumber, cpuSpeed, memory, isSystem,
|
||||||
|
networkId, isDefault, tags);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -547,7 +711,15 @@ public class UsageRecord {
|
||||||
&& Objects.equal(this.type, that.type)
|
&& Objects.equal(this.type, that.type)
|
||||||
&& Objects.equal(this.usageType, that.usageType)
|
&& Objects.equal(this.usageType, that.usageType)
|
||||||
&& Objects.equal(this.project, that.project)
|
&& Objects.equal(this.project, that.project)
|
||||||
&& Objects.equal(this.projectId, that.projectId);
|
&& Objects.equal(this.domain, that.domain)
|
||||||
|
&& Objects.equal(this.virtualSize, that.virtualSize)
|
||||||
|
&& Objects.equal(this.cpuNumber, that.cpuNumber)
|
||||||
|
&& Objects.equal(this.cpuSpeed, that.cpuSpeed)
|
||||||
|
&& Objects.equal(this.memory, that.memory)
|
||||||
|
&& Objects.equal(this.isSystem, that.isSystem)
|
||||||
|
&& Objects.equal(this.networkId, that.networkId)
|
||||||
|
&& Objects.equal(this.isDefault, that.isDefault)
|
||||||
|
&& Objects.equal(this.tags, that.tags);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ToStringHelper string() {
|
protected ToStringHelper string() {
|
||||||
|
@ -557,7 +729,9 @@ public class UsageRecord {
|
||||||
.add("releaseDate", releaseDate).add("zoneId", zoneId).add("virtualMachineId", virtualMachineId)
|
.add("releaseDate", releaseDate).add("zoneId", zoneId).add("virtualMachineId", virtualMachineId)
|
||||||
.add("virtualMachineName", virtualMachineName).add("serviceOfferingId", serviceOfferingId).add("templateId", templateId)
|
.add("virtualMachineName", virtualMachineName).add("serviceOfferingId", serviceOfferingId).add("templateId", templateId)
|
||||||
.add("ipAddress", ipAddress).add("isSourceNAT", isSourceNAT).add("rawUsageHours", rawUsageHours).add("usage", usage)
|
.add("ipAddress", ipAddress).add("isSourceNAT", isSourceNAT).add("rawUsageHours", rawUsageHours).add("usage", usage)
|
||||||
.add("size", size).add("type", type).add("usageType", usageType).add("project", project).add("projectId", projectId);
|
.add("size", size).add("type", type).add("usageType", usageType).add("project", project).add("projectId", projectId)
|
||||||
|
.add("domain", domain).add("virtualSize", virtualSize).add("cpuNumber", cpuNumber).add("cpuSpeed", cpuSpeed).add("memory", memory)
|
||||||
|
.add("isSystem", isSystem).add("networkId", networkId).add("isDefault", isDefault).add("tags", tags);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -66,6 +66,11 @@ public class ListUsageRecordsOptions extends AccountInDomainOptions {
|
||||||
return options.pageSize(pageSize);
|
return options.pageSize(pageSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ListUsageRecordsOptions includeTags(boolean includeTags) {
|
||||||
|
ListUsageRecordsOptions options = new ListUsageRecordsOptions();
|
||||||
|
return options.includeTags(includeTags);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -108,4 +113,8 @@ public class ListUsageRecordsOptions extends AccountInDomainOptions {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ListUsageRecordsOptions includeTags(boolean includeTags) {
|
||||||
|
this.queryParameters.replaceValues("includetags", ImmutableSet.of(includeTags + ""));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ import static org.jclouds.cloudstack.options.ListUsageRecordsOptions.Builder.acc
|
||||||
import static org.jclouds.cloudstack.options.ListUsageRecordsOptions.Builder.accountInDomain;
|
import static org.jclouds.cloudstack.options.ListUsageRecordsOptions.Builder.accountInDomain;
|
||||||
import static org.jclouds.cloudstack.options.ListUsageRecordsOptions.Builder.domainId;
|
import static org.jclouds.cloudstack.options.ListUsageRecordsOptions.Builder.domainId;
|
||||||
import static org.jclouds.cloudstack.options.ListUsageRecordsOptions.Builder.keyword;
|
import static org.jclouds.cloudstack.options.ListUsageRecordsOptions.Builder.keyword;
|
||||||
|
import static org.jclouds.cloudstack.options.ListUsageRecordsOptions.Builder.includeTags;
|
||||||
import static org.jclouds.cloudstack.options.ListUsageRecordsOptions.Builder.page;
|
import static org.jclouds.cloudstack.options.ListUsageRecordsOptions.Builder.page;
|
||||||
import static org.jclouds.cloudstack.options.ListUsageRecordsOptions.Builder.pageSize;
|
import static org.jclouds.cloudstack.options.ListUsageRecordsOptions.Builder.pageSize;
|
||||||
import static org.jclouds.cloudstack.options.ListUsageRecordsOptions.Builder.type;
|
import static org.jclouds.cloudstack.options.ListUsageRecordsOptions.Builder.type;
|
||||||
|
@ -92,4 +93,13 @@ public class ListUsageRecordsOptionsTest {
|
||||||
assertEquals(ImmutableSet.of("500"), options.buildQueryParameters().get("pagesize"));
|
assertEquals(ImmutableSet.of("500"), options.buildQueryParameters().get("pagesize"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testIncludeTags() {
|
||||||
|
ListUsageRecordsOptions options = new ListUsageRecordsOptions().includeTags(true);
|
||||||
|
assertEquals(ImmutableSet.of("true"), options.buildQueryParameters().get("includetags"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testIncludeTagsStatic() {
|
||||||
|
ListUsageRecordsOptions options = includeTags(true);
|
||||||
|
assertEquals(ImmutableSet.of("true"), options.buildQueryParameters().get("includetags"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ import org.testng.annotations.Test;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.inject.Guice;
|
import com.google.inject.Guice;
|
||||||
import com.google.inject.Injector;
|
import com.google.inject.Injector;
|
||||||
|
import org.jclouds.cloudstack.domain.Tag;
|
||||||
|
|
||||||
@Test(groups = "unit")
|
@Test(groups = "unit")
|
||||||
public class ListUsageRecordsResponseTest extends BaseSetParserTest<UsageRecord> {
|
public class ListUsageRecordsResponseTest extends BaseSetParserTest<UsageRecord> {
|
||||||
|
@ -61,7 +62,9 @@ public class ListUsageRecordsResponseTest extends BaseSetParserTest<UsageRecord>
|
||||||
.description("Template Id:203 Size:3117171712")
|
.description("Template Id:203 Size:3117171712")
|
||||||
.usage("24 Hrs").usageType(UsageRecord.UsageType.TEMPLATE).rawUsageHours(24)
|
.usage("24 Hrs").usageType(UsageRecord.UsageType.TEMPLATE).rawUsageHours(24)
|
||||||
.size(3117171712L).templateId("0").id("203").project("project1").projectId("1")
|
.size(3117171712L).templateId("0").id("203").project("project1").projectId("1")
|
||||||
.startDate(start).endDate(end).build());
|
.startDate(start).endDate(end).domain("myDomain").virtualSize(3117171712L)
|
||||||
|
.cpuNumber(2L).cpuSpeed(1024L).memory(512L).isSystem(false).isDefault(false)
|
||||||
|
.tags(ImmutableSet.of(Tag.builder().key("env").value("dev").build())).build());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{ "listusagerecordsresponse" : { "count":1 ,"usagerecord" : [ {"account":"admin","accountid":2,"domainid":1,"zoneid":1,"description":"Template Id:203 Size:3117171712","usage":"24 Hrs","usagetype":7,"rawusage":"24","templateid":0,"usageid":203,"size":3117171712,"project":"project1","projectid":1,"startdate":"2011-12-15'T'00:00:00+00:00","enddate":"2011-12-15'T'23:59:59+00:00"} ] } }
|
{ "listusagerecordsresponse" : { "count":1 ,"usagerecord" : [ {"account":"admin","accountid":2,"domainid":1,"zoneid":1,"description":"Template Id:203 Size:3117171712","usage":"24 Hrs","usagetype":7,"rawusage":"24","templateid":0,"usageid":203,"size":3117171712,"project":"project1","projectid":1,"startdate":"2011-12-15'T'00:00:00+00:00","enddate":"2011-12-15'T'23:59:59+00:00","domain":"myDomain","virtualsize":3117171712,"cpunumber":2,"cpuspeed":1024,"memory":512,"issystem":false,"isdefault":false,tags:[ { "key":"env","value":"dev" } ] } ] } }
|
Loading…
Reference in New Issue