Return-Path: X-Original-To: apmail-cloudstack-commits-archive@www.apache.org Delivered-To: apmail-cloudstack-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A0609F149 for ; Thu, 11 Apr 2013 22:13:19 +0000 (UTC) Received: (qmail 95206 invoked by uid 500); 11 Apr 2013 22:13:11 -0000 Delivered-To: apmail-cloudstack-commits-archive@cloudstack.apache.org Received: (qmail 95120 invoked by uid 500); 11 Apr 2013 22:13:11 -0000 Mailing-List: contact commits-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list commits@cloudstack.apache.org Received: (qmail 94731 invoked by uid 99); 11 Apr 2013 22:13:10 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 11 Apr 2013 22:13:10 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id B5D8A880EB8; Thu, 11 Apr 2013 22:13:10 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: bfederle@apache.org To: commits@cloudstack.apache.org Date: Thu, 11 Apr 2013 22:13:41 -0000 Message-Id: <23d16c3b51ca4e62adfd6a69bf1d2a81@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [33/48] git commit: updated refs/heads/ui-vm-affinity to 96999be Added AffinityGroup View in order to include VM details while listing AffinityGroups. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/3403b547 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/3403b547 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/3403b547 Branch: refs/heads/ui-vm-affinity Commit: 3403b547735fe14e22b879f2627776548394951e Parents: 09a6eb7 Author: Prachi Damle Authored: Thu Apr 4 22:46:11 2013 -0700 Committer: Prachi Damle Committed: Thu Apr 11 13:23:23 2013 -0700 ---------------------------------------------------------------------- .../cloudstack/affinity/AffinityGroupResponse.java | 16 +- .../user/affinitygroup/ListAffinityGroupsCmd.java | 26 +-- .../affinitygroup/UpdateVMAffinityGroupCmd.java | 8 +- .../org/apache/cloudstack/query/QueryService.java | 4 + client/tomcatconf/applicationContext.xml.in | 10 + client/tomcatconf/componentContext.xml.in | 1 + .../affinity/HostAntiAffinityProcessor.java | 9 +- server/src/com/cloud/api/ApiDBUtils.java | 14 + .../src/com/cloud/api/query/QueryManagerImpl.java | 108 +++++++ .../com/cloud/api/query/ViewResponseHelper.java | 18 + .../cloud/api/query/dao/AffinityGroupJoinDao.java | 37 +++ .../api/query/dao/AffinityGroupJoinDaoImpl.java | 155 +++++++++ .../cloud/api/query/vo/AffinityGroupJoinVO.java | 248 +++++++++++++++ .../affinity/dao/AffinityGroupDaoImpl.java | 1 - .../affinity/dao/AffinityGroupVMMapDaoImpl.java | 1 - setup/db/db/schema-410to420.sql | 34 ++- 16 files changed, 661 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3403b547/api/src/org/apache/cloudstack/affinity/AffinityGroupResponse.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/affinity/AffinityGroupResponse.java b/api/src/org/apache/cloudstack/affinity/AffinityGroupResponse.java index 073a82c..1ae7c59 100644 --- a/api/src/org/apache/cloudstack/affinity/AffinityGroupResponse.java +++ b/api/src/org/apache/cloudstack/affinity/AffinityGroupResponse.java @@ -17,6 +17,7 @@ package org.apache.cloudstack.affinity; import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; import org.apache.cloudstack.api.ApiConstants; @@ -24,6 +25,7 @@ import org.apache.cloudstack.api.BaseResponse; import org.apache.cloudstack.api.EntityReference; import org.apache.cloudstack.api.response.ControlledEntityResponse; import org.apache.cloudstack.api.response.ControlledViewEntityResponse; +import org.apache.cloudstack.api.response.UserVmResponse; import com.cloud.network.security.SecurityGroup; import com.cloud.serializer.Param; @@ -31,7 +33,7 @@ import com.google.gson.annotations.SerializedName; @SuppressWarnings("unused") @EntityReference(value = AffinityGroup.class) -public class AffinityGroupResponse extends BaseResponse implements ControlledEntityResponse { +public class AffinityGroupResponse extends BaseResponse implements ControlledViewEntityResponse { @SerializedName(ApiConstants.ID) @Param(description="the ID of the affinity group") private String id; @@ -55,8 +57,12 @@ public class AffinityGroupResponse extends BaseResponse implements ControlledEnt @Param(description = "the type of the affinity group") private String type; + @SerializedName("virtualmachine") + @Param(description = "virtual machines associated with this affinity group ", responseObject = UserVmResponse.class) + private Set vmList; public AffinityGroupResponse() { + this.vmList = new LinkedHashSet(); } @Override @@ -136,4 +142,12 @@ public class AffinityGroupResponse extends BaseResponse implements ControlledEnt } + public void setVMList(Set vmList) { + this.vmList = vmList; + } + + public void addVM(UserVmResponse vm) { + this.vmList.add(vm); + } + } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3403b547/api/src/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupsCmd.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupsCmd.java b/api/src/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupsCmd.java index effbd86..9310fb9 100644 --- a/api/src/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupsCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/affinitygroup/ListAffinityGroupsCmd.java @@ -16,23 +16,16 @@ // under the License. package org.apache.cloudstack.api.command.user.affinitygroup; -import java.util.ArrayList; -import java.util.List; - -import org.apache.cloudstack.affinity.AffinityGroup; import org.apache.cloudstack.affinity.AffinityGroupResponse; import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.ApiConstants; -import org.apache.cloudstack.api.ApiErrorCode; import org.apache.cloudstack.api.BaseListCmd; import org.apache.cloudstack.api.Parameter; -import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.response.ListResponse; import org.apache.cloudstack.api.response.UserVmResponse; import org.apache.log4j.Logger; import com.cloud.async.AsyncJob; -import com.cloud.utils.Pair; @APICommand(name = "listAffinityGroups", description = "Lists affinity groups", responseObject = AffinityGroupResponse.class) public class ListAffinityGroupsCmd extends BaseListCmd { @@ -83,22 +76,11 @@ public class ListAffinityGroupsCmd extends BaseListCmd { @Override public void execute(){ - Pair, Integer> result = _affinityGroupService.listAffinityGroups(id, - affinityGroupName, + ListResponse response = _queryService.listAffinityGroups(id, affinityGroupName, affinityGroupType, virtualMachineId, this.getStartIndex(), this.getPageSizeVal()); - if (result != null) { - ListResponse response = new ListResponse(); - List groupResponses = new ArrayList(); - for (AffinityGroup group : result.first()) { - AffinityGroupResponse groupResponse = _responseGenerator.createAffinityGroupResponse(group); - groupResponses.add(groupResponse); - } - response.setResponses(groupResponses, result.second()); - response.setResponseName(getCommandName()); - this.setResponseObject(response); - } else { - throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to search for affinity groups"); - } + response.setResponseName(getCommandName()); + this.setResponseObject(response); + } @Override http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3403b547/api/src/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java b/api/src/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java index 94f8446..44d017b 100644 --- a/api/src/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/affinitygroup/UpdateVMAffinityGroupCmd.java @@ -17,6 +17,7 @@ package org.apache.cloudstack.api.command.user.affinitygroup; import java.util.ArrayList; +import java.util.EnumSet; import java.util.List; import org.apache.cloudstack.affinity.AffinityGroupResponse; @@ -27,6 +28,7 @@ import org.apache.cloudstack.api.ApiErrorCode; import org.apache.cloudstack.api.BaseAsyncCmd; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.ServerApiException; +import org.apache.cloudstack.api.ApiConstants.VMDetails; import org.apache.cloudstack.api.response.UserVmResponse; import org.apache.log4j.Logger; @@ -131,8 +133,12 @@ public class UpdateVMAffinityGroupCmd extends BaseAsyncCmd { InsufficientCapacityException, ServerApiException { UserContext.current().setEventDetails("Vm Id: "+getId()); UserVm result = _affinityGroupService.updateVMAffinityGroups(getId(), getAffinityGroupIdList()); + ArrayList dc = new ArrayList(); + dc.add(VMDetails.valueOf("affgrp")); + EnumSet details = EnumSet.copyOf(dc); + if (result != null){ - UserVmResponse response = _responseGenerator.createUserVmResponse("virtualmachine", result).get(0); + UserVmResponse response = _responseGenerator.createUserVmResponse("virtualmachine", details, result).get(0); response.setResponseName(getCommandName()); this.setResponseObject(response); } else { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3403b547/api/src/org/apache/cloudstack/query/QueryService.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/query/QueryService.java b/api/src/org/apache/cloudstack/query/QueryService.java index c3f86aa..443c5df 100644 --- a/api/src/org/apache/cloudstack/query/QueryService.java +++ b/api/src/org/apache/cloudstack/query/QueryService.java @@ -16,6 +16,7 @@ // under the License. package org.apache.cloudstack.query; +import org.apache.cloudstack.affinity.AffinityGroupResponse; import org.apache.cloudstack.api.command.admin.host.ListHostsCmd; import org.apache.cloudstack.api.command.admin.router.ListRoutersCmd; import org.apache.cloudstack.api.command.admin.storage.ListStoragePoolsCmd; @@ -97,4 +98,7 @@ public interface QueryService { public ListResponse searchForServiceOfferings(ListServiceOfferingsCmd cmd); public ListResponse listDataCenters(ListZonesByCmd cmd); + + public ListResponse listAffinityGroups(Long affinityGroupId, String affinityGroupName, + String affinityGroupType, Long vmId, Long startIndex, Long pageSize); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3403b547/client/tomcatconf/applicationContext.xml.in ---------------------------------------------------------------------- diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in index 67b1286..0d13877 100644 --- a/client/tomcatconf/applicationContext.xml.in +++ b/client/tomcatconf/applicationContext.xml.in @@ -836,5 +836,15 @@ --> + + + + + + + + + + http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3403b547/client/tomcatconf/componentContext.xml.in ---------------------------------------------------------------------- diff --git a/client/tomcatconf/componentContext.xml.in b/client/tomcatconf/componentContext.xml.in index 7f3e02d..92838fd 100644 --- a/client/tomcatconf/componentContext.xml.in +++ b/client/tomcatconf/componentContext.xml.in @@ -31,6 +31,7 @@ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> +