You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2013/08/01 11:21:57 UTC
git commit: JCLOUDS-208: The datacenter link has been added to the
Limits object construction.
Updated Branches:
refs/heads/master 880c1c7d0 -> 3870f4525
JCLOUDS-208: The datacenter link has been added to the Limits object construction.
This link is used in the 2.4 version of the Abiquo API to establish a relation
between an enterprise and the datacenter it is restricted to.
Project: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/commit/3870f452
Tree: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/tree/3870f452
Diff: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/diff/3870f452
Branch: refs/heads/master
Commit: 3870f45255bda8089e8144a1545317bb1794b6d4
Parents: 880c1c7
Author: Carlos Garcia <ca...@emea.nec.com>
Authored: Tue Jul 30 13:39:35 2013 +0200
Committer: Ignasi Barrera <ig...@gmail.com>
Committed: Thu Aug 1 11:12:14 2013 +0200
----------------------------------------------------------------------
.../abiquo/domain/enterprise/Enterprise.java | 2 +-
.../abiquo/domain/enterprise/Limits.java | 33 ++++++++++++++++----
2 files changed, 28 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/3870f452/abiquo/src/main/java/org/jclouds/abiquo/domain/enterprise/Enterprise.java
----------------------------------------------------------------------
diff --git a/abiquo/src/main/java/org/jclouds/abiquo/domain/enterprise/Enterprise.java b/abiquo/src/main/java/org/jclouds/abiquo/domain/enterprise/Enterprise.java
index ac2400a..c1fb3c5 100644
--- a/abiquo/src/main/java/org/jclouds/abiquo/domain/enterprise/Enterprise.java
+++ b/abiquo/src/main/java/org/jclouds/abiquo/domain/enterprise/Enterprise.java
@@ -360,7 +360,7 @@ public class Enterprise extends DomainWithLimitsWrapper<EnterpriseDto> {
try {
// Create new limits
- Limits limits = Limits.builder(context).build();
+ Limits limits = Limits.builder(context, datacenter).build();
// Save new limits
dto = context.getApi().getEnterpriseApi().createLimits(target, datacenter.unwrap(), limits.unwrap());
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/3870f452/abiquo/src/main/java/org/jclouds/abiquo/domain/enterprise/Limits.java
----------------------------------------------------------------------
diff --git a/abiquo/src/main/java/org/jclouds/abiquo/domain/enterprise/Limits.java b/abiquo/src/main/java/org/jclouds/abiquo/domain/enterprise/Limits.java
index d8a3d26..9c9c4f9 100644
--- a/abiquo/src/main/java/org/jclouds/abiquo/domain/enterprise/Limits.java
+++ b/abiquo/src/main/java/org/jclouds/abiquo/domain/enterprise/Limits.java
@@ -16,12 +16,19 @@
*/
package org.jclouds.abiquo.domain.enterprise;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import org.jclouds.abiquo.AbiquoApi;
import org.jclouds.abiquo.domain.DomainWithLimitsWrapper;
import org.jclouds.abiquo.domain.builder.LimitsBuilder;
+import org.jclouds.abiquo.domain.infrastructure.Datacenter;
+import org.jclouds.abiquo.reference.ValidationErrors;
+import org.jclouds.abiquo.reference.rest.ParentLinkName;
import org.jclouds.rest.ApiContext;
+import com.abiquo.model.rest.RESTLink;
import com.abiquo.server.core.enterprise.DatacenterLimitsDto;
+import com.abiquo.server.core.infrastructure.DatacenterDto;
/**
* Adds high level functionality to {@link DatacenterLimitsDto}.
@@ -57,8 +64,8 @@ public class Limits extends DomainWithLimitsWrapper<DatacenterLimitsDto> {
// Builder
- public static Builder builder(final ApiContext<AbiquoApi> context) {
- return new Builder(context);
+ public static Builder builder(final ApiContext<AbiquoApi> context, Datacenter datacenter) {
+ return new Builder(context, datacenter);
}
public static class Builder extends LimitsBuilder<Builder> {
@@ -68,9 +75,11 @@ public class Limits extends DomainWithLimitsWrapper<DatacenterLimitsDto> {
protected Long repositoryHard = Long.valueOf(DEFAULT_LIMITS);
- public Builder(final ApiContext<AbiquoApi> context) {
- super();
- this.context = context;
+ protected Datacenter datacenter;
+
+ public Builder(final ApiContext<AbiquoApi> context, final Datacenter datacenter) {
+ this.context = checkNotNull(context, "missing context object");
+ this.datacenter = checkNotNull(datacenter, "missing datacenter object");
}
public Builder repositoryLimits(final long soft, final long hard) {
@@ -90,13 +99,18 @@ public class Limits extends DomainWithLimitsWrapper<DatacenterLimitsDto> {
dto.setRepositoryHardLimitsInMb(repositoryHard);
dto.setRepositorySoftLimitsInMb(repositorySoft);
+ // Establish the relation with the physical datacenter
+ dto.addLink(new RESTLink(ParentLinkName.DATACENTER, checkNotNull(datacenter.unwrap().getEditLink(),
+ "missing edit link").getHref()));
+
Limits limits = new Limits(context, dto);
return limits;
}
public static Builder fromEnterprise(final Limits in) {
- return Limits.builder(in.context).ramLimits(in.getRamSoftLimitInMb(), in.getRamHardLimitInMb())
+ return Limits.builder(in.context, in.getDatacenter())
+ .ramLimits(in.getRamSoftLimitInMb(), in.getRamHardLimitInMb())
.cpuCountLimits(in.getCpuCountSoftLimit(), in.getCpuCountHardLimit())
.hdLimitsInMb(in.getHdSoftLimitInMb(), in.getHdHardLimitInMb())
.storageLimits(in.getStorageSoft(), in.getStorageHard())
@@ -133,6 +147,13 @@ public class Limits extends DomainWithLimitsWrapper<DatacenterLimitsDto> {
target.setRepositorySoftLimitsInMb(repositorySoft);
}
+ public Datacenter getDatacenter() {
+ Integer datacenterId = target.getIdFromLink(ParentLinkName.DATACENTER);
+ checkNotNull(datacenterId, ValidationErrors.MISSING_REQUIRED_LINK);
+ DatacenterDto dto = context.getApi().getInfrastructureApi().getDatacenter(datacenterId);
+ return wrap(context, Datacenter.class, dto);
+ }
+
@Override
public String toString() {
return "Limits [id=" + getId() + ", repositoryHard=" + getRepositoryHard() + ", repositorySoft="