Return-Path: X-Original-To: apmail-incubator-cloudstack-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-cloudstack-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id AAC32E467 for ; Thu, 6 Dec 2012 04:08:30 +0000 (UTC) Received: (qmail 99213 invoked by uid 500); 6 Dec 2012 04:08:28 -0000 Delivered-To: apmail-incubator-cloudstack-commits-archive@incubator.apache.org Received: (qmail 98874 invoked by uid 500); 6 Dec 2012 04:08:26 -0000 Mailing-List: contact cloudstack-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cloudstack-dev@incubator.apache.org Delivered-To: mailing list cloudstack-commits@incubator.apache.org Received: (qmail 98730 invoked by uid 99); 6 Dec 2012 04:08:21 -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, 06 Dec 2012 04:08:21 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 3A0098193F2; Thu, 6 Dec 2012 04:08:20 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: bhaisaab@apache.org To: cloudstack-commits@incubator.apache.org X-Mailer: ASF-Git Admin Mailer Subject: [1/3] git commit: api: Optimize and improve api, db call perfomance Message-Id: <20121206040820.3A0098193F2@tyr.zones.apache.org> Date: Thu, 6 Dec 2012 04:08:20 +0000 (UTC) Updated Branches: refs/heads/api_refactoring c59de6cbd -> b0ce8fd4f api: Optimize and improve api, db call perfomance This is part 1 of list API refactoring. Commands covered: listVmsCmd, listRoutersCmd Response covered: UserVmResponse, DomainRouterResponse. DB views created: user_vm_view, domain_router_view. Signed-off-by: Rohit Yadav Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/b0ce8fd4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/b0ce8fd4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/b0ce8fd4 Branch: refs/heads/api_refactoring Commit: b0ce8fd4ff512c7a7da0a71671c4477492e854e7 Parents: c59de6c Author: Min Chen Authored: Wed Dec 5 16:18:38 2012 -0800 Committer: Rohit Yadav Committed: Wed Dec 5 20:06:20 2012 -0800 ---------------------------------------------------------------------- api/src/com/cloud/api/response/BaseResponse.java | 19 +- .../api/response/ControlledViewEntityResponse.java | 31 + .../cloud/api/response/DomainRouterResponse.java | 97 +- api/src/com/cloud/api/response/NicResponse.java | 32 +- api/src/com/cloud/api/response/UserVmResponse.java | 132 +- .../cloud/api/view/vo/ControlledViewEntity.java | 45 + .../com/cloud/api/view/vo/DomainRouterJoinVO.java | 928 +++++++++ api/src/com/cloud/api/view/vo/UserVmJoinVO.java | 1623 +++++++++++++++ api/src/com/cloud/server/ManagementService.java | 3 +- api/src/com/cloud/vm/UserVmService.java | 3 +- .../apache/cloudstack/api/ResponseGenerator.java | 8 + .../org/apache/cloudstack/api/ResponseObject.java | 17 + .../api/admin/router/command/ListRoutersCmd.java | 19 +- .../cloudstack/api/user/vm/command/ListVMsCmd.java | 12 +- .../api/commands/test/ListRoutersCmdTest.java | 170 ++ .../cloud/api/commands/test/ListVmsCmdTest.java | 173 ++ server/src/com/cloud/api/ApiDBUtils.java | 50 +- server/src/com/cloud/api/ApiResponseHelper.java | 580 +----- server/src/com/cloud/api/ApiServer.java | 4 +- .../cloud/api/response/ApiResponseSerializer.java | 5 +- .../configuration/DefaultComponentLibrary.java | 5 + .../src/com/cloud/server/ManagementServerImpl.java | 54 +- server/src/com/cloud/user/AccountManager.java | 7 + server/src/com/cloud/user/AccountManagerImpl.java | 52 +- server/src/com/cloud/vm/UserVmManager.java | 3 +- server/src/com/cloud/vm/UserVmManagerImpl.java | 136 +- .../src/com/cloud/vm/dao/DomainRouterJoinDao.java | 36 + .../com/cloud/vm/dao/DomainRouterJoinDaoImpl.java | 231 ++ server/src/com/cloud/vm/dao/UserVmJoinDao.java | 38 + server/src/com/cloud/vm/dao/UserVmJoinDaoImpl.java | 384 ++++ server/test/com/cloud/keystore/KeystoreTest.java | 2 +- .../com/cloud/user/MockAccountManagerImpl.java | 13 + .../test/com/cloud/vm/MockUserVmManagerImpl.java | 5 +- setup/db/create-schema.sql | 215 ++ utils/src/com/cloud/utils/db/GenericDaoBase.java | 13 +- 35 files changed, 4394 insertions(+), 751 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b0ce8fd4/api/src/com/cloud/api/response/BaseResponse.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/api/response/BaseResponse.java b/api/src/com/cloud/api/response/BaseResponse.java index 14aa2b9..dbe8420 100755 --- a/api/src/com/cloud/api/response/BaseResponse.java +++ b/api/src/com/cloud/api/response/BaseResponse.java @@ -46,17 +46,26 @@ public abstract class BaseResponse implements ResponseObject { this.objectName = objectName; } + //TODO: TO be replaced by getObjectUuid() after all response refactoring public Long getObjectId() { return null; } + public String getObjectUuid(){ + return null; + } + // For use by list commands with pending async jobs - @SerializedName(ApiConstants.JOB_ID) @Param(description="the ID of the latest async job acting on this object") + //TODO: To be replaced by jobUuid after all response refactoring protected IdentityProxy jobId = new IdentityProxy("async_job"); + @SerializedName(ApiConstants.JOB_ID) @Param(description="the UUID of the latest async job acting on this object") + protected String jobUuid; + @SerializedName(ApiConstants.JOB_STATUS) @Param(description="the current status of the latest async job acting on this object") private Integer jobStatus; + //TODO: TO be replaced by getter and setters for jobUuid. public Long getJobId() { return jobId.getValue(); } @@ -65,6 +74,14 @@ public abstract class BaseResponse implements ResponseObject { this.jobId.setValue(jobId); } + public String getJobUuid() { + return jobUuid; + } + + public void setJobUuid(String jobUuid) { + this.jobUuid = jobUuid; + } + public Integer getJobStatus() { return jobStatus; } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b0ce8fd4/api/src/com/cloud/api/response/ControlledViewEntityResponse.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/api/response/ControlledViewEntityResponse.java b/api/src/com/cloud/api/response/ControlledViewEntityResponse.java new file mode 100644 index 0000000..471a8d1 --- /dev/null +++ b/api/src/com/cloud/api/response/ControlledViewEntityResponse.java @@ -0,0 +1,31 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +package com.cloud.api.response; + +public interface ControlledViewEntityResponse { + + public void setAccountName(String accountName); + + public void setProjectId(String projectId); + + public void setProjectName(String projectName); + + public void setDomainId(String domainId); + + public void setDomainName(String domainName); +} + http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b0ce8fd4/api/src/com/cloud/api/response/DomainRouterResponse.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/api/response/DomainRouterResponse.java b/api/src/com/cloud/api/response/DomainRouterResponse.java index 8170b2e..6db46fa 100644 --- a/api/src/com/cloud/api/response/DomainRouterResponse.java +++ b/api/src/com/cloud/api/response/DomainRouterResponse.java @@ -18,6 +18,9 @@ package com.cloud.api.response; import java.util.Date; import java.util.List; +import java.util.HashSet; +import java.util.Set; + import org.apache.cloudstack.api.ApiConstants; import com.cloud.serializer.Param; @@ -26,12 +29,12 @@ import com.cloud.vm.VirtualMachine.State; import com.google.gson.annotations.SerializedName; @SuppressWarnings("unused") -public class DomainRouterResponse extends BaseResponse implements ControlledEntityResponse{ +public class DomainRouterResponse extends BaseResponse implements ControlledViewEntityResponse{ @SerializedName(ApiConstants.ID) @Param(description="the id of the router") - private IdentityProxy id = new IdentityProxy("vm_instance"); + private String id; @SerializedName(ApiConstants.ZONE_ID) @Param(description="the Zone ID for the router") - private IdentityProxy zoneId = new IdentityProxy("data_center"); + private String zoneId; @SerializedName(ApiConstants.ZONE_NAME) @Param(description="the Zone name for the router") private String zoneName; @@ -52,10 +55,10 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti private String name; @SerializedName(ApiConstants.POD_ID) @Param(description="the Pod ID for the router") - private IdentityProxy podId = new IdentityProxy("host_pod_ref"); + private String podId; @SerializedName(ApiConstants.HOST_ID) @Param(description="the host ID for the router") - private IdentityProxy hostId = new IdentityProxy("host"); + private String hostId; @SerializedName("hostname") @Param(description="the hostname for the router") private String hostName; @@ -70,7 +73,7 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti private String linkLocalNetmask; @SerializedName(ApiConstants.LINK_LOCAL_NETWORK_ID) @Param(description="the ID of the corresponding link local network") - private IdentityProxy linkLocalNetworkId = new IdentityProxy("networks"); + private String linkLocalNetworkId; @SerializedName(ApiConstants.PUBLIC_IP) @Param(description="the public IP address for the router") private String publicIp; @@ -82,7 +85,7 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti private String publicNetmask; @SerializedName("publicnetworkid") @Param(description="the ID of the corresponding public network") - private IdentityProxy publicNetworkId = new IdentityProxy("networks"); + private String publicNetworkId; @SerializedName("guestipaddress") @Param(description="the guest IP address for the router") private String guestIpAddress; @@ -94,10 +97,10 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti private String guestNetmask; @SerializedName("guestnetworkid") @Param(description="the ID of the corresponding guest network") - private IdentityProxy guestNetworkId = new IdentityProxy("networks"); + private String guestNetworkId; @SerializedName(ApiConstants.TEMPLATE_ID) @Param(description="the template ID for the router") - private IdentityProxy templateId = new IdentityProxy("vm_template"); + private String templateId; @SerializedName(ApiConstants.CREATED) @Param(description="the date and time the router was created") private Date created; @@ -109,19 +112,19 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti private String accountName; @SerializedName(ApiConstants.PROJECT_ID) @Param(description="the project id of the ipaddress") - private IdentityProxy projectId = new IdentityProxy("projects"); + private String projectId; @SerializedName(ApiConstants.PROJECT) @Param(description="the project name of the address") private String projectName; @SerializedName(ApiConstants.DOMAIN_ID) @Param(description="the domain ID associated with the router") - private IdentityProxy domainId = new IdentityProxy("domain"); + private String domainId; @SerializedName(ApiConstants.DOMAIN) @Param(description="the domain associated with the router") private String domainName; @SerializedName(ApiConstants.SERVICE_OFFERING_ID) @Param(description="the ID of the service offering of the virtual machine") - private IdentityProxy serviceOfferingId = new IdentityProxy("disk_offering"); + private String serviceOfferingId; @SerializedName("serviceofferingname") @Param(description="the name of the service offering of the virtual machine") private String serviceOfferingName; @@ -139,27 +142,31 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti private String scriptsVersion; @SerializedName(ApiConstants.VPC_ID) @Param(description="VPC the network belongs to") - private IdentityProxy vpcId = new IdentityProxy("vpc"); + private String vpcId; @SerializedName("nic") @Param(description="the list of nics associated with the router", responseObject = NicResponse.class, since="4.0") - private List nics; + private Set nics; + + public DomainRouterResponse(){ + nics = new HashSet(); + } @Override - public Long getObjectId() { - return getId(); + public String getObjectUuid() { + return this.getId(); } - public Long getId() { - return id.getValue(); + public String getId() { + return id; } - public void setId(Long id) { - this.id.setValue(id); + public void setId(String id) { + this.id = id; } - public void setZoneId(Long zoneId) { - this.zoneId.setValue(zoneId); + public void setZoneId(String zoneId) { + this.zoneId = zoneId; } public void setZoneName(String zoneName) { @@ -186,12 +193,12 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti this.name = name; } - public void setPodId(Long podId) { - this.podId.setValue(podId); + public void setPodId(String podId) { + this.podId = podId; } - public void setHostId(Long hostId) { - this.hostId.setValue(hostId); + public void setHostId(String hostId) { + this.hostId = hostId; } public void setHostName(String hostName) { @@ -222,8 +229,8 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti this.guestNetmask = guestNetmask; } - public void setTemplateId(Long templateId) { - this.templateId.setValue(templateId); + public void setTemplateId(String templateId) { + this.templateId = templateId; } public void setCreated(Date created) { @@ -240,8 +247,8 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti } @Override - public void setDomainId(Long domainId) { - this.domainId.setValue(domainId); + public void setDomainId(String domainId) { + this.domainId = domainId; } @Override @@ -249,12 +256,12 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti this.domainName = domainName; } - public void setPublicNetworkId(Long publicNetworkId) { - this.publicNetworkId.setValue(publicNetworkId); + public void setPublicNetworkId(String publicNetworkId) { + this.publicNetworkId = publicNetworkId; } - public void setGuestNetworkId(Long guestNetworkId) { - this.guestNetworkId.setValue(guestNetworkId); + public void setGuestNetworkId(String guestNetworkId) { + this.guestNetworkId = guestNetworkId; } public void setLinkLocalIp(String linkLocalIp) { @@ -269,12 +276,12 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti this.linkLocalNetmask = linkLocalNetmask; } - public void setLinkLocalNetworkId(Long linkLocalNetworkId) { - this.linkLocalNetworkId.setValue(linkLocalNetworkId); + public void setLinkLocalNetworkId(String linkLocalNetworkId) { + this.linkLocalNetworkId = linkLocalNetworkId; } - public void setServiceOfferingId(Long serviceOfferingId) { - this.serviceOfferingId.setValue(serviceOfferingId); + public void setServiceOfferingId(String serviceOfferingId) { + this.serviceOfferingId = serviceOfferingId; } public void setServiceOfferingName(String serviceOfferingName) { @@ -305,8 +312,8 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti this.scriptsVersion = scriptsVersion; } @Override - public void setProjectId(Long projectId) { - this.projectId.setValue(projectId); + public void setProjectId(String projectId) { + this.projectId = projectId; } @Override @@ -314,11 +321,15 @@ public class DomainRouterResponse extends BaseResponse implements ControlledEnti this.projectName = projectName; } - public void setVpcId(Long vpcId) { - this.vpcId.setValue(vpcId); + public void setVpcId(String vpcId) { + this.vpcId = vpcId; } - public void setNics(List nics) { + public void setNics(Set nics) { this.nics = nics; } + + public void addNic(NicResponse nic) { + this.nics.add(nic); + } } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b0ce8fd4/api/src/com/cloud/api/response/NicResponse.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/api/response/NicResponse.java b/api/src/com/cloud/api/response/NicResponse.java index e27a8cf..7001e12 100755 --- a/api/src/com/cloud/api/response/NicResponse.java +++ b/api/src/com/cloud/api/response/NicResponse.java @@ -17,7 +17,6 @@ package com.cloud.api.response; import org.apache.cloudstack.api.ApiConstants; -import com.cloud.utils.IdentityProxy; import com.cloud.serializer.Param; import com.google.gson.annotations.SerializedName; @@ -25,10 +24,10 @@ import com.google.gson.annotations.SerializedName; public class NicResponse extends BaseResponse { @SerializedName("id") @Param(description="the ID of the nic") - private final IdentityProxy id = new IdentityProxy("nics"); + private String id; @SerializedName("networkid") @Param(description="the ID of the corresponding network") - private final IdentityProxy networkId = new IdentityProxy("networks"); + private String networkId; @SerializedName("networkname") @Param(description="the name of the corresponding network") private String networkName ; @@ -60,16 +59,21 @@ public class NicResponse extends BaseResponse { @SerializedName("macaddress") @Param(description="true if nic is default, false otherwise") private String macAddress; - public Long getId() { - return id.getValue(); + public String getId() { + return id; } - public void setId(Long id) { - this.id.setValue(id); + public void setId(String id) { + this.id = id; } - public void setNetworkid(Long networkid) { - this.networkId.setValue(networkid); + @Override + public String getObjectUuid() { + return this.getId(); + } + + public void setNetworkid(String networkid) { + this.networkId = networkid; } public void setNetworkName(String networkname) { @@ -116,7 +120,8 @@ public class NicResponse extends BaseResponse { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((id == null) ? 0 : id.hashCode()); + String oid = this.getId(); + result = prime * result + ((oid== null) ? 0 : oid.hashCode()); return result; } @@ -129,10 +134,11 @@ public class NicResponse extends BaseResponse { if (getClass() != obj.getClass()) return false; NicResponse other = (NicResponse) obj; - if (id == null) { - if (other.id != null) + String oid = this.getId(); + if (oid == null) { + if (other.getId() != null) return false; - } else if (!id.equals(other.id)) + } else if (!oid.equals(other.getId())) return false; return true; } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b0ce8fd4/api/src/com/cloud/api/response/UserVmResponse.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/api/response/UserVmResponse.java b/api/src/com/cloud/api/response/UserVmResponse.java index e7665b5..572d4ed 100755 --- a/api/src/com/cloud/api/response/UserVmResponse.java +++ b/api/src/com/cloud/api/response/UserVmResponse.java @@ -17,20 +17,21 @@ package com.cloud.api.response; import java.util.Date; +import java.util.HashSet; import java.util.List; +import java.util.Set; import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.Entity; import com.cloud.vm.VirtualMachine; import com.cloud.serializer.Param; -import com.cloud.utils.IdentityProxy; import com.google.gson.annotations.SerializedName; @SuppressWarnings("unused") @Entity(value = VirtualMachine.class) public class UserVmResponse extends BaseResponse implements ControlledEntityResponse { @SerializedName(ApiConstants.ID) @Param(description="the ID of the virtual machine") - private IdentityProxy id = new IdentityProxy("vm_instance"); + private String id; @SerializedName(ApiConstants.NAME) @Param(description="the name of the virtual machine") private String name; @@ -42,13 +43,13 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp private String accountName; @SerializedName(ApiConstants.PROJECT_ID) @Param(description="the project id of the vm") - private IdentityProxy projectId = new IdentityProxy("projects"); + private String projectId; @SerializedName(ApiConstants.PROJECT) @Param(description="the project name of the vm") private String projectName; @SerializedName(ApiConstants.DOMAIN_ID) @Param(description="the ID of the domain in which the virtual machine exists") - private IdentityProxy domainId = new IdentityProxy("domain"); + private String domainId; @SerializedName(ApiConstants.DOMAIN) @Param(description="the name of the domain in which the virtual machine exists") private String domainName; @@ -63,25 +64,25 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp private Boolean haEnable; @SerializedName(ApiConstants.GROUP_ID) @Param(description="the group ID of the virtual machine") - private IdentityProxy groupId = new IdentityProxy("instance_group"); + private String groupId; @SerializedName(ApiConstants.GROUP) @Param(description="the group name of the virtual machine") private String group; @SerializedName(ApiConstants.ZONE_ID) @Param(description="the ID of the availablility zone for the virtual machine") - private IdentityProxy zoneId = new IdentityProxy("data_center"); + private String zoneId; @SerializedName(ApiConstants.ZONE_NAME) @Param(description="the name of the availability zone for the virtual machine") private String zoneName; @SerializedName(ApiConstants.HOST_ID) @Param(description="the ID of the host for the virtual machine") - private IdentityProxy hostId = new IdentityProxy("host"); + private String hostId; @SerializedName("hostname") @Param(description="the name of the host for the virtual machine") private String hostName; @SerializedName(ApiConstants.TEMPLATE_ID) @Param(description="the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file.") - private IdentityProxy templateId = new IdentityProxy("vm_template"); + private String templateId; @SerializedName("templatename") @Param(description="the name of the template for the virtual machine") private String templateName; @@ -93,7 +94,7 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp private Boolean passwordEnabled; @SerializedName("isoid") @Param(description="the ID of the ISO attached to the virtual machine") - private IdentityProxy isoId = new IdentityProxy("vm_template"); + private String isoId; @SerializedName("isoname") @Param(description="the name of the ISO attached to the virtual machine") private String isoName; @@ -102,7 +103,7 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp private String isoDisplayText; @SerializedName(ApiConstants.SERVICE_OFFERING_ID) @Param(description="the ID of the service offering of the virtual machine") - private IdentityProxy serviceOfferingId = new IdentityProxy("disk_offering"); + private String serviceOfferingId; @SerializedName("serviceofferingname") @Param(description="the name of the service offering of the virtual machine") private String serviceOfferingName; @@ -129,7 +130,7 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp private Long networkKbsWrite; @SerializedName("guestosid") @Param(description="Os type ID of the virtual machine") - private IdentityProxy guestOsId = new IdentityProxy("guest_os"); + private String guestOsId; @SerializedName("rootdeviceid") @Param(description="device ID of the root volume") private Long rootDeviceId; @@ -138,19 +139,19 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp private String rootDeviceType; @SerializedName("securitygroup") @Param(description="list of security groups associated with the virtual machine", responseObject = SecurityGroupResponse.class) - private List securityGroupList; + private Set securityGroupList; @SerializedName(ApiConstants.PASSWORD) @Param(description="the password (if exists) of the virtual machine") private String password; @SerializedName("nic") @Param(description="the list of nics associated with vm", responseObject = NicResponse.class) - private List nics; + private Set nics; @SerializedName("hypervisor") @Param(description="the hypervisor on which the template runs") private String hypervisor; @SerializedName(ApiConstants.PUBLIC_IP_ID) @Param(description="public IP address id associated with vm via Static nat rule") - private IdentityProxy publicIpId = new IdentityProxy("user_ip_address"); + private String publicIpId; @SerializedName(ApiConstants.PUBLIC_IP) @Param(description="public IP address id associated with vm via Static nat rule") private String publicIp; @@ -159,21 +160,32 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp private String instanceName; @SerializedName(ApiConstants.TAGS) @Param(description="the list of resource tags associated with vm", responseObject = ResourceTagResponse.class) - private List tags; + private Set tags; @SerializedName(ApiConstants.SSH_KEYPAIR) @Param(description="ssh key-pair") private String keyPairName; + public UserVmResponse(){ + securityGroupList = new HashSet(); + nics = new HashSet(); + tags = new HashSet(); + } + public void setHypervisor(String hypervisor) { this.hypervisor = hypervisor; } - public void setId(Long id) { - this.id.setValue(id); + public void setId(String id) { + this.id = id; } - public Long getId() { - return this.id.getValue(); + public String getId() { + return this.id; + } + + @Override + public String getObjectUuid() { + return this.getId(); } public void setName(String name) { @@ -188,8 +200,8 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp this.accountName = accountName; } - public void setDomainId(Long domainId) { - this.domainId.setValue(domainId); + public void setDomainId(String domainId) { + this.domainId = domainId; } public void setDomainName(String domainName) { @@ -208,32 +220,32 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp this.haEnable = haEnable; } - public void setGroupId(Long groupId) { - this.groupId.setValue(groupId); + public void setGroupId(String groupId) { + this.groupId = groupId; } public void setGroup(String group) { this.group = group; } - public void setZoneId(Long zoneId) { - this.zoneId.setValue(zoneId); + public void setZoneId(String zoneId) { + this.zoneId = zoneId; } public void setZoneName(String zoneName) { this.zoneName = zoneName; } - public void setHostId(Long hostId) { - this.hostId.setValue(hostId); + public void setHostId(String hostId) { + this.hostId = hostId; } public void setHostName(String hostName) { this.hostName = hostName; } - public void setTemplateId(Long templateId) { - this.templateId.setValue(templateId); + public void setTemplateId(String templateId) { + this.templateId = templateId; } public void setTemplateName(String templateName) { @@ -248,8 +260,8 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp this.passwordEnabled = passwordEnabled; } - public void setIsoId(Long isoId) { - this.isoId.setValue(isoId); + public void setIsoId(String isoId) { + this.isoId = isoId; } public void setIsoName(String isoName) { @@ -260,8 +272,8 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp this.isoDisplayText = isoDisplayText; } - public void setServiceOfferingId(Long serviceOfferingId) { - this.serviceOfferingId.setValue(serviceOfferingId); + public void setServiceOfferingId(String serviceOfferingId) { + this.serviceOfferingId = serviceOfferingId; } public void setServiceOfferingName(String serviceOfferingName) { @@ -292,8 +304,8 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp this.networkKbsWrite = networkKbsWrite; } - public void setGuestOsId(Long guestOsId) { - this.guestOsId.setValue(guestOsId); + public void setGuestOsId(String guestOsId) { + this.guestOsId = guestOsId; } public void setRootDeviceId(Long rootDeviceId) { @@ -308,30 +320,24 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp this.password = password; } -/* - public void setJobId(Long jobId) { - super.setJobId(jobId); - } - - public void setJobStatus(Integer jobStatus) { - this.jobStatus = jobStatus; - } -*/ public void setForVirtualNetwork(Boolean forVirtualNetwork) { this.forVirtualNetwork = forVirtualNetwork; } - public void setNics(List nics) { + public void setNics(Set nics) { this.nics = nics; } - public void setSecurityGroupList(List securityGroups) { + public void addNic(NicResponse nic) { + this.nics.add(nic); + } + + public void setSecurityGroupList(Set securityGroups) { this.securityGroupList = securityGroups; } - @Override - public void setProjectId(Long projectId) { - this.projectId.setValue(projectId); + public void setProjectId(String projectId) { + this.projectId = projectId; } @Override @@ -339,8 +345,8 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp this.projectName = projectName; } - public void setPublicIpId(Long publicIpId) { - this.publicIpId.setValue(publicIpId); + public void setPublicIpId(String publicIpId) { + this.publicIpId = publicIpId; } public void setPublicIp(String publicIp) { @@ -351,11 +357,33 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp this.instanceName = instanceName; } - public void setTags(List tags) { + public void setTags(Set tags) { this.tags = tags; } + public void addTag(ResourceTagResponse tag){ + this.tags.add(tag); + } + public void setKeyPairName(String keyPairName) { this.keyPairName = keyPairName; } + + @Override + public void setProjectId(Long projectId) { + // TODO: remove this later + } + + @Override + public void setDomainId(Long domainId) { + // TODO: remove this later + } + + public void setProjectUuid(String projectUuid){ + this.projectId = projectUuid; + } + + public void setDomainUuid(String domainUuid){ + this.domainId = domainUuid; + } } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b0ce8fd4/api/src/com/cloud/api/view/vo/ControlledViewEntity.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/api/view/vo/ControlledViewEntity.java b/api/src/com/cloud/api/view/vo/ControlledViewEntity.java new file mode 100644 index 0000000..163e001 --- /dev/null +++ b/api/src/com/cloud/api/view/vo/ControlledViewEntity.java @@ -0,0 +1,45 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +package com.cloud.api.view.vo; + +import com.cloud.acl.ControlledEntity; + +/** + * This is the interface for all VO classes representing DB views created for previous ControlledEntity. + * + * @author minc + * + */ +public interface ControlledViewEntity extends ControlledEntity { + + public String getDomainPath(); + + public short getAccountType(); + + public String getAccountUuid(); + + public String getAccountName(); + + public String getDomainUuid(); + + public String getDomainName(); + + public String getProjectUuid(); + + public String getProjectName(); + +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b0ce8fd4/api/src/com/cloud/api/view/vo/DomainRouterJoinVO.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/api/view/vo/DomainRouterJoinVO.java b/api/src/com/cloud/api/view/vo/DomainRouterJoinVO.java new file mode 100644 index 0000000..58e69bf --- /dev/null +++ b/api/src/com/cloud/api/view/vo/DomainRouterJoinVO.java @@ -0,0 +1,928 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +package com.cloud.api.view.vo; + +import java.net.URI; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.Table; + +import com.cloud.network.Network.GuestType; +import com.cloud.network.Networks.TrafficType; +import com.cloud.network.router.VirtualRouter.RedundantState; +import com.cloud.utils.db.GenericDao; +import com.cloud.vm.VirtualMachine.State; + +@Entity +@Table(name="domain_router_view") +public class DomainRouterJoinVO implements ControlledViewEntity { + + @Column(name="id", updatable=false, nullable = false) + private long id; + + @Column(name="name", updatable=false, nullable=false, length=255) + private String name = null; + + + @Column(name="account_id") + private long accountId; + + @Column(name="account_uuid") + private String accountUuid; + + @Column(name="account_name") + private String accountName = null; + + @Column(name="account_type") + private short accountType; + + @Column(name="domain_id") + private long domainId; + + @Column(name="domain_uuid") + private String domainUuid; + + @Column(name="domain_name") + private String domainName = null; + + @Column(name="domain_path") + private String domainPath = null; + + /** + * Note that state is intentionally missing the setter. Any updates to + * the state machine needs to go through the DAO object because someone + * else could be updating it as well. + */ + @Enumerated(value=EnumType.STRING) + @Column(name="state", updatable=true, nullable=false, length=32) + private State state = null; + + @Column(name=GenericDao.CREATED_COLUMN) + private Date created; + + @Column(name=GenericDao.REMOVED_COLUMN) + private Date removed; + + @Column(name="instance_name", updatable=true, nullable=false) + private String instanceName; + + @Column(name="pod_id", updatable=true, nullable=false) + private Long podId; + + @Column(name="pod_uuid") + private String podUuid; + + @Column(name="data_center_id") + private long dataCenterId; + + @Column(name="data_center_uuid") + private String dataCenterUuid; + + @Column(name="data_center_name") + private String dataCenterName = null; + + @Column(name="dns1") + private String dns1 = null; + + @Column(name="dns2") + private String dns2 = null; + + + @Column(name="host_id", updatable=true, nullable=true) + private long hostId; + + @Column(name="host_uuid") + private String hostUuid; + + @Column(name="host_name", nullable=false) + private String hostName; + + @Column(name="template_id", updatable=true, nullable=true, length=17) + private long templateId; + + @Column(name="template_uuid") + private String templateUuid; + + @Column(name="service_offering_id") + private long serviceOfferingId; + + @Column(name="service_offering_uuid") + private String serviceOfferingUuid; + + @Column(name="service_offering_name") + private String serviceOfferingName; + + + @Column(name = "vpc_id") + private long vpcId; + + @Column(name = "vpc_uuid") + private String vpcUuid; + + @Column(name = "nic_id") + private long nicId; + + @Column(name = "nic_uuid") + private String nicUuid; + + @Column(name = "is_default_nic") + private boolean isDefaultNic; + + @Column(name = "ip_address") + private String ipAddress; + + @Column(name = "gateway") + private String gateway; + + @Column(name = "netmask") + private String netmask; + + @Column(name = "mac_address") + private String macAddress; + + @Column(name = "broadcast_uri") + private URI broadcastUri; + + @Column(name = "isolation_uri") + private URI isolationUri; + + @Column(name="network_id") + private long networkId; + + @Column(name="network_uuid") + private String networkUuid; + + @Column(name="network_name") + private String networkName; + + @Column(name="network_domain") + private String networkDomain; + + @Column(name="traffic_type") + @Enumerated(value=EnumType.STRING) + private TrafficType trafficType; + + + @Column(name="project_id") + private long projectId; + + @Column(name="project_uuid") + private String projectUuid; + + @Column(name="project_name") + private String projectName; + + @Column(name="job_id") + private long jobId; + + @Column(name="job_uuid") + private String jobUuid; + + @Column(name="job_status") + private int jobStatus; + + + @Column(name="uuid") + private String uuid; + + @Column(name="template_version") + private String templateVersion; + + @Column(name="scripts_version") + private String scriptsVersion; + + @Column(name="redundant_state") + @Enumerated(EnumType.STRING) + private RedundantState redundantState; + + @Column(name="is_redundant_router") + boolean isRedundantRouter; + + @Column(name="guest_type") + @Enumerated(value=EnumType.STRING) + private GuestType guestType; + + + public DomainRouterJoinVO() { + } + + + + + public String getUuid() { + return uuid; + } + + + + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + + public long getId() { + return id; + } + + + public void setId(long id) { + this.id = id; + } + + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + + + public long getAccountId() { + return accountId; + } + + + public void setAccountId(long accountId) { + this.accountId = accountId; + } + + + public String getAccountUuid() { + return accountUuid; + } + + + + + public void setAccountUuid(String accountUuid) { + this.accountUuid = accountUuid; + } + + + + + public String getAccountName() { + return accountName; + } + + + public void setAccountName(String accountName) { + this.accountName = accountName; + } + + + public short getAccountType() { + return accountType; + } + + + public void setAccountType(short accountType) { + this.accountType = accountType; + } + + + public long getDomainId() { + return domainId; + } + + + public void setDomainId(long domainId) { + this.domainId = domainId; + } + + @Override + public String getDomainUuid() { + return domainUuid; + } + + + + + public void setDomainUuid(String domainUuid) { + this.domainUuid = domainUuid; + } + + + + + public String getDomainName() { + return domainName; + } + + + public void setDomainName(String domainName) { + this.domainName = domainName; + } + + public String getDomainPath() { + return domainPath; + } + + + public void setDomainPath(String domainPath) { + this.domainPath = domainPath; + } + + + public State getState() { + return state; + } + + + public void setState(State state) { + this.state = state; + } + + + public Date getCreated() { + return created; + } + + + public void setCreated(Date created) { + this.created = created; + } + + + public Date getRemoved() { + return removed; + } + + + public void setRemoved(Date removed) { + this.removed = removed; + } + + + public String getInstanceName() { + return instanceName; + } + + + public void setInstanceName(String instanceName) { + this.instanceName = instanceName; + } + + + public String getPodUuid() { + return podUuid; + } + + + + + public void setPodUuid(String podUuid) { + this.podUuid = podUuid; + } + + + public String getDataCenterUuid() { + return dataCenterUuid; + } + + public void setDataCenterUuid(String zoneUuid) { + this.dataCenterUuid = zoneUuid; + } + + public String getDataCenterName() { + return dataCenterName; + } + + + public void setDataCenterName(String zoneName) { + this.dataCenterName = zoneName; + } + + + public Long getHostId() { + return hostId; + } + + + public void setHostId(long hostId) { + this.hostId = hostId; + } + + + public String getHostUuid() { + return hostUuid; + } + + + + + public void setHostUuid(String hostUuid) { + this.hostUuid = hostUuid; + } + + + + + public String getHostName() { + return hostName; + } + + + public void setHostName(String hostName) { + this.hostName = hostName; + } + + + public long getTemplateId() { + return templateId; + } + + + public void setTemplateId(long templateId) { + this.templateId = templateId; + } + + + + public String getTemplateUuid() { + return templateUuid; + } + + + + + public void setTemplateUuid(String templateUuid) { + this.templateUuid = templateUuid; + } + + + + + + public String getServiceOfferingUuid() { + return serviceOfferingUuid; + } + + + public void setServiceOfferingUuid(String serviceOfferingUuid) { + this.serviceOfferingUuid = serviceOfferingUuid; + } + + + + + public String getServiceOfferingName() { + return serviceOfferingName; + } + + + public void setServiceOfferingName(String serviceOfferingName) { + this.serviceOfferingName = serviceOfferingName; + } + + public long getVpcId() { + return vpcId; + } + + public void setVpcId(long vpcId) { + this.vpcId = vpcId; + } + + + + + public long getNicId() { + return nicId; + } + + + public void setNicId(long nicId) { + this.nicId = nicId; + } + + + public boolean isDefaultNic() { + return isDefaultNic; + } + + + public void setDefaultNic(boolean isDefaultNic) { + this.isDefaultNic = isDefaultNic; + } + + + public String getIpAddress() { + return ipAddress; + } + + + public void setIpAddress(String ipAddress) { + this.ipAddress = ipAddress; + } + + + public String getGateway() { + return gateway; + } + + + public void setGateway(String gateway) { + this.gateway = gateway; + } + + + public String getNetmask() { + return netmask; + } + + + public void setNetmask(String netmask) { + this.netmask = netmask; + } + + + public String getMacAddress() { + return macAddress; + } + + + public void setMacAddress(String macAddress) { + this.macAddress = macAddress; + } + + + public URI getBroadcastUri() { + return broadcastUri; + } + + + public void setBroadcastUri(URI broadcastUri) { + this.broadcastUri = broadcastUri; + } + + + public URI getIsolationUri() { + return isolationUri; + } + + + public void setIsolationUri(URI isolationUri) { + this.isolationUri = isolationUri; + } + + + public long getNetworkId() { + return networkId; + } + + + public void setNetworkId(long networkId) { + this.networkId = networkId; + } + + + public String getNetworkName() { + return networkName; + } + + + + + public void setNetworkName(String networkName) { + this.networkName = networkName; + } + + + + + public String getNetworkDomain() { + return networkDomain; + } + + + + + public void setNetworkDomain(String networkDomain) { + this.networkDomain = networkDomain; + } + + + + + public TrafficType getTrafficType() { + return trafficType; + } + + + public void setTrafficType(TrafficType trafficType) { + this.trafficType = trafficType; + } + + + + public long getServiceOfferingId() { + return serviceOfferingId; + } + + + + + public void setServiceOfferingId(long serviceOfferingId) { + this.serviceOfferingId = serviceOfferingId; + } + + + + + public long getProjectId() { + return projectId; + } + + + + + public void setProjectId(long projectId) { + this.projectId = projectId; + } + + + + + public String getProjectUuid() { + return projectUuid; + } + + + + + public void setProjectUuid(String projectUuid) { + this.projectUuid = projectUuid; + } + + + + + public String getProjectName() { + return projectName; + } + + + + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + + + + + + public String getVpcUuid() { + return vpcUuid; + } + + + + + public void setVpcUuid(String vpcUuid) { + this.vpcUuid = vpcUuid; + } + + + + + public String getNicUuid() { + return nicUuid; + } + + + + + public void setNicUuid(String nicUuid) { + this.nicUuid = nicUuid; + } + + + + + public String getNetworkUuid() { + return networkUuid; + } + + + + + public void setNetworkUuid(String networkUuid) { + this.networkUuid = networkUuid; + } + + + public long getJobId() { + return jobId; + } + + + + + public void setJobId(long jobId) { + this.jobId = jobId; + } + + + + + public String getJobUuid() { + return jobUuid; + } + + + + + public void setJobUuid(String jobUuid) { + this.jobUuid = jobUuid; + } + + + + + public int getJobStatus() { + return jobStatus; + } + + + + + public void setJobStatus(int jobStatus) { + this.jobStatus = jobStatus; + } + + + + public Long getPodId() { + return podId; + } + + + + + public void setPodId(Long podId) { + this.podId = podId; + } + + + + + public long getDataCenterId() { + return dataCenterId; + } + + + + + public void setDataCenterId(long zoneId) { + this.dataCenterId = zoneId; + } + + + + + public String getDns1() { + return dns1; + } + + + + + public void setDns1(String dns1) { + this.dns1 = dns1; + } + + + + + public String getDns2() { + return dns2; + } + + + + + public void setDns2(String dns2) { + this.dns2 = dns2; + } + + + + + public String getTemplateVersion() { + return templateVersion; + } + + + + + public void setTemplateVersion(String templateVersion) { + this.templateVersion = templateVersion; + } + + + + + public String getScriptsVersion() { + return scriptsVersion; + } + + + + + public void setScriptsVersion(String scriptsVersion) { + this.scriptsVersion = scriptsVersion; + } + + + + + public RedundantState getRedundantState() { + return redundantState; + } + + + + + public void setRedundantState(RedundantState redundantState) { + this.redundantState = redundantState; + } + + + + + public boolean isRedundantRouter() { + return isRedundantRouter; + } + + + + + public void setRedundantRouter(boolean isRedundantRouter) { + this.isRedundantRouter = isRedundantRouter; + } + + + + + public GuestType getGuestType() { + return guestType; + } + + + + + public void setGuestType(GuestType guestType) { + this.guestType = guestType; + } + + + + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + (int) (id ^ (id >>> 32)); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + DomainRouterJoinVO other = (DomainRouterJoinVO) obj; + if (id != other.id) + return false; + return true; + } +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b0ce8fd4/api/src/com/cloud/api/view/vo/UserVmJoinVO.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/api/view/vo/UserVmJoinVO.java b/api/src/com/cloud/api/view/vo/UserVmJoinVO.java new file mode 100644 index 0000000..1aa137b --- /dev/null +++ b/api/src/com/cloud/api/view/vo/UserVmJoinVO.java @@ -0,0 +1,1623 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +package com.cloud.api.view.vo; + +import java.net.URI; +import java.util.Date; +import java.util.Map; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.Table; +import javax.persistence.Transient; + +import com.cloud.hypervisor.Hypervisor.HypervisorType; +import com.cloud.network.Network.GuestType; +import com.cloud.network.Networks.TrafficType; +import com.cloud.server.ResourceTag.TaggedResourceType; +import com.cloud.storage.Volume; +import com.cloud.storage.Storage.StoragePoolType; +import com.cloud.utils.db.Encrypt; +import com.cloud.utils.db.GenericDao; +import com.cloud.vm.VirtualMachine; +import com.cloud.vm.VirtualMachine.State; + +@Entity +@Table(name="user_vm_view") +public class UserVmJoinVO implements ControlledViewEntity { + + @Column(name="id", updatable=false, nullable = false) + private long id; + + @Column(name="name", updatable=false, nullable=false, length=255) + private String name = null; + + @Column(name="display_name", updatable=false, nullable=false, length=255) + private String displayName = null; + + @Column(name="account_id") + private long accountId; + + @Column(name="account_uuid") + private String accountUuid; + + @Column(name="account_name") + private String accountName = null; + + @Column(name="account_type") + private short accountType; + + @Column(name="domain_id") + private long domainId; + + @Column(name="domain_uuid") + private String domainUuid; + + @Column(name="domain_name") + private String domainName = null; + + @Column(name="domain_path") + private String domainPath = null; + + @Column(name="instance_group_id") + private long instanceGroupId; + + @Column(name="instance_group_uuid") + private String instanceGroupUuid; + + @Column(name="instance_group_name") + private String instanceGroupName; + + @Column(name="vm_type", updatable=false, nullable=false, length=32) + @Enumerated(value=EnumType.STRING) + protected VirtualMachine.Type type; + + /** + * Note that state is intentionally missing the setter. Any updates to + * the state machine needs to go through the DAO object because someone + * else could be updating it as well. + */ + @Enumerated(value=EnumType.STRING) + @Column(name="state", updatable=true, nullable=false, length=32) + private State state = null; + + @Column(name=GenericDao.CREATED_COLUMN) + private Date created; + + @Column(name=GenericDao.REMOVED_COLUMN) + private Date removed; + + @Column(name="instance_name", updatable=true, nullable=false) + private String instanceName; + + @Column(name="guest_os_id", nullable=false, length=17) + private long guestOsId; + + @Column(name="guest_os_uuid") + private String guestOsUuid; + + @Column(name="hypervisor_type") + @Enumerated(value=EnumType.STRING) + private HypervisorType hypervisorType; + + @Column(name="ha_enabled", updatable=true, nullable=true) + private boolean haEnabled; + + @Encrypt + @Column(name="vnc_password", updatable=true, nullable=false, length=255) + protected String vncPassword; + + @Column(name="limit_cpu_use", updatable=true, nullable=true) + private boolean limitCpuUse; + + @Column(name="last_host_id", updatable=true, nullable=true) + private Long lastHostId; + + @Column(name="private_ip_address", updatable=true) + private String privateIpAddress; + + + @Column(name="private_mac_address", updatable=true, nullable=true) + private String privateMacAddress; + + @Column(name="pod_id", updatable=true, nullable=false) + private Long podId; + + @Column(name="pod_uuid") + private String podUuid; + + @Column(name="data_center_id") + private long dataCenterId; + + @Column(name="data_center_uuid") + private String dataCenterUuid; + + @Column(name="data_center_name") + private String dataCenterName = null; + + @Column(name="security_group_enabled") + private boolean securityGroupEnabled; + + @Column(name="host_id", updatable=true, nullable=true) + private long hostId; + + @Column(name="host_uuid") + private String hostUuid; + + @Column(name="host_name", nullable=false) + private String hostName; + + @Column(name="template_id", updatable=true, nullable=true, length=17) + private long templateId; + + @Column(name="template_uuid") + private String templateUuid; + + @Column(name="template_name") + private String templateName; + + @Column(name="template_display_text", length=4096) + private String templateDisplayText; + + @Column(name="password_enabled") + private boolean passwordEnabled; + + @Column(name="iso_id", updatable=true, nullable=true, length=17) + private long isoId; + + @Column(name="iso_uuid") + private String isoUuid; + + @Column(name="iso_name") + private String isoName; + + @Column(name="iso_display_text", length=4096) + private String isoDisplayText; + + @Column(name="service_offering_id") + private long serviceOfferingId; + + @Column(name="service_offering_uuid") + private String serviceOfferingUuid; + + @Column(name="service_offering_name") + private String serviceOfferingName; + + @Column(name="cpu") + private int cpu; + + @Column(name="speed") + private int speed; + + @Column(name="ram_size") + private int ramSize; + + @Column(name="pool_id", updatable=false, nullable = false) + private long poolId; + + @Column(name="pool_uuid") + private String poolUuid; + + @Column(name="pool_type", updatable=false, nullable=false, length=32) + @Enumerated(value=EnumType.STRING) + private StoragePoolType poolType; + + @Column(name = "volume_id") + private long volume_id; + + @Column(name = "volume_uuid") + private String volume_uuid; + + @Column(name = "volume_device_id") + private Long volumeDeviceId = null; + + @Column(name = "volume_type") + @Enumerated(EnumType.STRING) + private Volume.Type volumeType; + + @Column(name = "security_group_id") + private long securityGroupId; + + @Column(name = "security_group_uuid") + private String securityGroupUuid; + + @Column(name = "security_group_name") + private String securityGroupName; + + @Column(name = "security_group_description") + private String securityGroupDescription; + + @Column(name = "vpc_id") + private long vpcId; + + @Column(name = "vpc_uuid") + private String vpcUuid; + + @Column(name = "nic_id") + private long nicId; + + @Column(name = "nic_uuid") + private String nicUuid; + + @Column(name = "is_default_nic") + private boolean isDefaultNic; + + @Column(name = "ip_address") + private String ipAddress; + + @Column(name = "gateway") + private String gateway; + + @Column(name = "netmask") + private String netmask; + + @Column(name = "mac_address") + private String macAddress; + + @Column(name = "broadcast_uri") + private URI broadcastUri; + + @Column(name = "isolation_uri") + private URI isolationUri; + + @Column(name="network_id") + private long networkId; + + @Column(name="network_uuid") + private String networkUuid; + + @Column(name="traffic_type") + @Enumerated(value=EnumType.STRING) + private TrafficType trafficType; + + @Column(name="guest_type") + @Enumerated(value=EnumType.STRING) + private GuestType guestType; + + @Column(name = "public_ip_id") + private long publicIpId; + + @Column(name = "public_ip_uuid") + private String publicIpUuid; + + @Column(name = "public_ip_address") + private String publicIpAddress; + + @Column(name="user_data", updatable=true, nullable=true, length=2048) + private String userData; + + @Column(name="project_id") + private long projectId; + + @Column(name="project_uuid") + private String projectUuid; + + @Column(name="project_name") + private String projectName; + + @Column(name="keypair_name") + private String keypairName; + + @Column(name="job_id") + private long jobId; + + @Column(name="job_uuid") + private String jobUuid; + + @Column(name="job_status") + private int jobStatus; + + @Column(name="tag_id") + private long tagId; + + @Column(name="tag_uuid") + private String tagUuid; + + @Column(name="tag_key") + private String tagKey; + + @Column(name="tag_value") + private String tagValue; + + @Column(name="tag_domain_id") + private long tagDomainId; + + @Column(name="tag_account_id") + private long tagAccountId; + + @Column(name="tag_resource_id") + private long tagResourceId; + + @Column(name="tag_resource_uuid") + private String tagResourceUuid; + + @Column(name="tag_resource_type") + @Enumerated(value=EnumType.STRING) + private TaggedResourceType tagResourceType; + + @Column(name="tag_customer") + private String tagCustomer; + + transient String password; + + @Transient + Map details; + + @Column(name="uuid") + private String uuid; + + public UserVmJoinVO() { + } + + + + + public String getUuid() { + return uuid; + } + + + + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public long getId() { + return id; + } + + + public void setId(long id) { + this.id = id; + } + + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + public String getDisplayName() { + return displayName; + } + + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + + public long getAccountId() { + return accountId; + } + + + public void setAccountId(long accountId) { + this.accountId = accountId; + } + + + public String getAccountUuid() { + return accountUuid; + } + + + + + public void setAccountUuid(String accountUuid) { + this.accountUuid = accountUuid; + } + + + + + public String getAccountName() { + return accountName; + } + + + public void setAccountName(String accountName) { + this.accountName = accountName; + } + + + public short getAccountType() { + return accountType; + } + + + public void setAccountType(short accountType) { + this.accountType = accountType; + } + + + public long getDomainId() { + return domainId; + } + + + public void setDomainId(long domainId) { + this.domainId = domainId; + } + + + public String getDomainUuid() { + return domainUuid; + } + + + + + public void setDomainUuid(String domainUuid) { + this.domainUuid = domainUuid; + } + + + + + public String getDomainName() { + return domainName; + } + + + public void setDomainName(String domainName) { + this.domainName = domainName; + } + + + public String getDomainPath() { + return domainPath; + } + + + public void setDomainPath(String domainPath) { + this.domainPath = domainPath; + } + + + + + public long getInstanceGroupId() { + return instanceGroupId; + } + + + public void setInstanceGroupId(long instanceGroupId) { + this.instanceGroupId = instanceGroupId; + } + + + public String getInstanceGroupUuid() { + return instanceGroupUuid; + } + + + + + public void setInstanceGroupUuid(String instanceGroupUuid) { + this.instanceGroupUuid = instanceGroupUuid; + } + + + + + public String getInstanceGroupName() { + return instanceGroupName; + } + + + public void setInstanceGroupName(String instanceGroupName) { + this.instanceGroupName = instanceGroupName; + } + + + public VirtualMachine.Type getType() { + return type; + } + + + + + public void setType(VirtualMachine.Type type) { + this.type = type; + } + + + + + public State getState() { + return state; + } + + + public void setState(State state) { + this.state = state; + } + + + public Date getCreated() { + return created; + } + + + public void setCreated(Date created) { + this.created = created; + } + + + public Date getRemoved() { + return removed; + } + + + public void setRemoved(Date removed) { + this.removed = removed; + } + + + public String getInstanceName() { + return instanceName; + } + + + public void setInstanceName(String instanceName) { + this.instanceName = instanceName; + } + + + public long getGuestOSId() { + return guestOsId; + } + + + public void setGuestOSId(long guestOSId) { + this.guestOsId = guestOSId; + } + + + public String getGuestOsUuid() { + return guestOsUuid; + } + + + + + public void setGuestOsUuid(String guestOsUuid) { + this.guestOsUuid = guestOsUuid; + } + + + + + public HypervisorType getHypervisorType() { + return hypervisorType; + } + + + public void setHypervisorType(HypervisorType hypervisorType) { + this.hypervisorType = hypervisorType; + } + + + public boolean isHaEnabled() { + return haEnabled; + } + + + public void setHaEnabled(boolean haEnabled) { + this.haEnabled = haEnabled; + } + + public void setVncPassword(String vncPassword) { + this.vncPassword = vncPassword; + } + + public String getVncPassword() { + return vncPassword; + } + + + + + public String getPrivateIpAddress() { + return privateIpAddress; + } + + + + + public void setPrivateIpAddress(String privateIpAddress) { + this.privateIpAddress = privateIpAddress; + } + + + + + public String getPrivateMacAddress() { + return privateMacAddress; + } + + + + + public void setPrivateMacAddress(String privateMacAddress) { + this.privateMacAddress = privateMacAddress; + } + + + + + public Long getLastHostId() { + return lastHostId; + } + + + + + public void setLastHostId(Long lastHostId) { + this.lastHostId = lastHostId; + } + + + + + + + public Long getPodId() { + return podId; + } + + + + + public void setPodId(Long podIdToDeployIn) { + this.podId = podIdToDeployIn; + } + + + + + public String getPodUuid() { + return podUuid; + } + + + + + public void setPodUuid(String podUuid) { + this.podUuid = podUuid; + } + + + + + public long getDataCenterId() { + return dataCenterId; + } + + + + + public void setDataCenterId(long dataCenterIdToDeployIn) { + this.dataCenterId = dataCenterIdToDeployIn; + } + + + public boolean limitCpuUse() { + return limitCpuUse; + } + + public void setLimitCpuUse(boolean value) { + limitCpuUse = value; + } + + + public String getDataCenterUuid() { + return dataCenterUuid; + } + + + + + public void setDataCenterUuid(String zoneUuid) { + this.dataCenterUuid = zoneUuid; + } + + + + + public String getDataCenterName() { + return dataCenterName; + } + + + public void setDataCenterName(String zoneName) { + this.dataCenterName = zoneName; + } + + + public boolean isSecurityGroupEnabled() { + return securityGroupEnabled; + } + + + public void setSecurityGroupEnabled(boolean securityGroupEnabled) { + this.securityGroupEnabled = securityGroupEnabled; + } + + + public Long getHostId() { + return hostId; + } + + + public void setHostId(long hostId) { + this.hostId = hostId; + } + + + public String getHostUuid() { + return hostUuid; + } + + + + + public void setHostUuid(String hostUuid) { + this.hostUuid = hostUuid; + } + + + + + public String getHostName() { + return hostName; + } + + + public void setHostName(String hostName) { + this.hostName = hostName; + } + + + public long getTemplateId() { + return templateId; + } + + + public void setTemplateId(long templateId) { + this.templateId = templateId; + } + + + + public String getTemplateUuid() { + return templateUuid; + } + + + + + public void setTemplateUuid(String templateUuid) { + this.templateUuid = templateUuid; + } + + + + + public String getTemplateName() { + return templateName; + } + + + public void setTemplateName(String templateName) { + this.templateName = templateName; + } + + + public String getTemplateDisplayText() { + return templateDisplayText; + } + + + public void setTemplateDisplayText(String templateDisplayText) { + this.templateDisplayText = templateDisplayText; + } + + + public boolean isPasswordEnabled() { + return passwordEnabled; + } + + + public void setPasswordEnabled(boolean passwordEnabled) { + this.passwordEnabled = passwordEnabled; + } + + + public Long getIsoId() { + return isoId; + } + + + public void setIsoId(long isoId) { + this.isoId = isoId; + } + + + public String getIsoUuid() { + return isoUuid; + } + + + + + public void setIsoUuid(String isoUuid) { + this.isoUuid = isoUuid; + } + + + + + public String getIsoName() { + return isoName; + } + + + public void setIsoName(String isoName) { + this.isoName = isoName; + } + + + public String getIsoDisplayText() { + return isoDisplayText; + } + + public void setIsoDisplayText(String isoDisplayText) { + this.isoDisplayText = isoDisplayText; + } + + + + + public String getServiceOfferingUuid() { + return serviceOfferingUuid; + } + + + + + public void setServiceOfferingUuid(String serviceOfferingUuid) { + this.serviceOfferingUuid = serviceOfferingUuid; + } + + + + + public String getServiceOfferingName() { + return serviceOfferingName; + } + + + public void setServiceOfferingName(String serviceOfferingName) { + this.serviceOfferingName = serviceOfferingName; + } + + + public int getCpu() { + return cpu; + } + + + public void setCpu(int cpu) { + this.cpu = cpu; + } + + + public int getSpeed() { + return speed; + } + + + public void setSpeed(int speed) { + this.speed = speed; + } + + + public int getRamSize() { + return ramSize; + } + + + public void setRamSize(int ramSize) { + this.ramSize = ramSize; + } + + + public long getPoolId() { + return poolId; + } + + + public void setPoolId(long poolId) { + this.poolId = poolId; + } + + + public StoragePoolType getPoolType() { + return poolType; + } + + + public void setPoolType(StoragePoolType poolType) { + this.poolType = poolType; + } + + + public long getVolume_id() { + return volume_id; + } + + + public void setVolume_id(long volume_id) { + this.volume_id = volume_id; + } + + + public Long getVolumeDeviceId() { + return volumeDeviceId; + } + + + public void setVolumeDeviceId(Long volumeDeviceId) { + this.volumeDeviceId = volumeDeviceId; + } + + + public Volume.Type getVolumeType() { + return volumeType; + } + + + public void setVolumeType(Volume.Type volumeType) { + this.volumeType = volumeType; + } + + + public long getSecurityGroupId() { + return securityGroupId; + } + + + public void setSecurityGroupId(long securityGroupId) { + this.securityGroupId = securityGroupId; + } + + + public String getSecurityGroupName() { + return securityGroupName; + } + + + public void setSecurityGroupName(String securityGroupName) { + this.securityGroupName = securityGroupName; + } + + + public String getSecurityGroupDescription() { + return securityGroupDescription; + } + + + public void setSecurityGroupDescription(String securityGroupDescription) { + this.securityGroupDescription = securityGroupDescription; + } + + + public long getVpcId() { + return vpcId; + } + + + + public void setVpcId(long vpcId) { + this.vpcId = vpcId; + } + + + + + public long getNicId() { + return nicId; + } + + + public void setNicId(long nicId) { + this.nicId = nicId; + } + + + public boolean isDefaultNic() { + return isDefaultNic; + } + + + public void setDefaultNic(boolean isDefaultNic) { + this.isDefaultNic = isDefaultNic; + } + + + public String getIpAddress() { + return ipAddress; + } + + + public void setIpAddress(String ipAddress) { + this.ipAddress = ipAddress; + } + + + public String getGateway() { + return gateway; + } + + + public void setGateway(String gateway) { + this.gateway = gateway; + } + + + public String getNetmask() { + return netmask; + } + + + public void setNetmask(String netmask) { + this.netmask = netmask; + } + + + public String getMacAddress() { + return macAddress; + } + + + public void setMacAddress(String macAddress) { + this.macAddress = macAddress; + } + + + public URI getBroadcastUri() { + return broadcastUri; + } + + + public void setBroadcastUri(URI broadcastUri) { + this.broadcastUri = broadcastUri; + } + + + public URI getIsolationUri() { + return isolationUri; + } + + + public void setIsolationUri(URI isolationUri) { + this.isolationUri = isolationUri; + } + + + public long getNetworkId() { + return networkId; + } + + + public void setNetworkId(long networkId) { + this.networkId = networkId; + } + + + public TrafficType getTrafficType() { + return trafficType; + } + + + public void setTrafficType(TrafficType trafficType) { + this.trafficType = trafficType; + } + + + public GuestType getGuestType() { + return guestType; + } + + + public void setGuestType(GuestType guestType) { + this.guestType = guestType; + } + + + public long getPublicIpId() { + return publicIpId; + } + + + + + public void setPublicIpId(long publicIpId) { + this.publicIpId = publicIpId; + } + + + + + public String getPublicIpAddress() { + return publicIpAddress; + } + + + public void setPublicIpAddress(String publicIpAddress) { + this.publicIpAddress = publicIpAddress; + } + + + + public long getServiceOfferingId() { + return serviceOfferingId; + } + + + + + public void setServiceOfferingId(long serviceOfferingId) { + this.serviceOfferingId = serviceOfferingId; + } + + + public Map getDetails() { + return details; + } + + public String getDetail(String name) { + assert (details != null) : "Did you forget to load the details?"; + + return details != null ? details.get(name) : null; + } + + public void setDetail(String name, String value) { + assert (details != null) : "Did you forget to load the details?"; + + details.put(name, value); + } + + public void setDetails(Map details) { + this.details = details; + } + + public void setUserData(String userData) { + this.userData = userData; + } + + public String getUserData() { + return userData; + } + + + + public long getGuestOsId() { + return guestOsId; + } + + + + + public void setGuestOsId(long guestOsId) { + this.guestOsId = guestOsId; + } + + + + + public long getProjectId() { + return projectId; + } + + + + + public void setProjectId(long projectId) { + this.projectId = projectId; + } + + + + + public String getProjectUuid() { + return projectUuid; + } + + + + + public void setProjectUuid(String projectUuid) { + this.projectUuid = projectUuid; + } + + + + + public String getProjectName() { + return projectName; + } + + + + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + + + + public String getKeypairName() { + return keypairName; + } + + + + + public void setKeypairName(String keypairName) { + this.keypairName = keypairName; + } + + + + + public long getTagId() { + return tagId; + } + + + + + public void setTagId(long tagId) { + this.tagId = tagId; + } + + + + + public String getTagUuid() { + return tagUuid; + } + + + + + public void setTagUuid(String tagUuid) { + this.tagUuid = tagUuid; + } + + + + + public String getTagKey() { + return tagKey; + } + + + + + public void setTagKey(String tagKey) { + this.tagKey = tagKey; + } + + + + + public String getTagValue() { + return tagValue; + } + + + + + public void setTagValue(String tagValue) { + this.tagValue = tagValue; + } + + + + + public long getTagDomainId() { + return tagDomainId; + } + + + + + public void setTagDomainId(long tagDomainId) { + this.tagDomainId = tagDomainId; + } + + + + + public long getTagAccountId() { + return tagAccountId; + } + + + + + public void setTagAccountId(long tagAccountId) { + this.tagAccountId = tagAccountId; + } + + + + + public long getTagResourceId() { + return tagResourceId; + } + + + + + public void setTagResourceId(long tagResourceId) { + this.tagResourceId = tagResourceId; + } + + + + + public String getTagResourceUuid() { + return tagResourceUuid; + } + + + + + public void setTagResourceUuid(String tagResourceUuid) { + this.tagResourceUuid = tagResourceUuid; + } + + + + + public TaggedResourceType getTagResourceType() { + return tagResourceType; + } + + + + + public void setTagResourceType(TaggedResourceType tagResourceType) { + this.tagResourceType = tagResourceType; + } + + + + + public String getTagCustomer() { + return tagCustomer; + } + + + + + public void setTagCustomer(String tagCustomer) { + this.tagCustomer = tagCustomer; + } + + + + + public boolean isLimitCpuUse() { + return limitCpuUse; + } + + + + public String getPoolUuid() { + return poolUuid; + } + + + + + public void setPoolUuid(String poolUuid) { + this.poolUuid = poolUuid; + } + + + + + public String getVolume_uuid() { + return volume_uuid; + } + + + + + public void setVolume_uuid(String volume_uuid) { + this.volume_uuid = volume_uuid; + } + + + + + public String getSecurityGroupUuid() { + return securityGroupUuid; + } + + + + + public void setSecurityGroupUuid(String securityGroupUuid) { + this.securityGroupUuid = securityGroupUuid; + } + + + + + public String getVpcUuid() { + return vpcUuid; + } + + + + + public void setVpcUuid(String vpcUuid) { + this.vpcUuid = vpcUuid; + } + + + + + public String getNicUuid() { + return nicUuid; + } + + + + + public void setNicUuid(String nicUuid) { + this.nicUuid = nicUuid; + } + + + + + public String getNetworkUuid() { + return networkUuid; + } + + + + + public void setNetworkUuid(String networkUuid) { + this.networkUuid = networkUuid; + } + + + + + public String getPublicIpUuid() { + return publicIpUuid; + } + + + + + public void setPublicIpUuid(String publicIpUuid) { + this.publicIpUuid = publicIpUuid; + } + + + + public long getJobId() { + return jobId; + } + + + + + public void setJobId(long jobId) { + this.jobId = jobId; + } + + + + + public String getJobUuid() { + return jobUuid; + } + + + + + public void setJobUuid(String jobUuid) { + this.jobUuid = jobUuid; + } + + + + + public int getJobStatus() { + return jobStatus; + } + + + + + public void setJobStatus(int jobStatus) { + this.jobStatus = jobStatus; + } + + + + transient String toString; + @Override + public String toString() { + if (toString == null) { + toString = new StringBuilder("VM[").append(id).append("|").append(hostName).append("]").toString(); + } + return toString; + } + + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + (int) (id ^ (id >>> 32)); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + UserVmJoinVO other = (UserVmJoinVO) obj; + if (id != other.id) + return false; + return true; + } +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b0ce8fd4/api/src/com/cloud/server/ManagementService.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/server/ManagementService.java b/api/src/com/cloud/server/ManagementService.java index 78f2cb5..1b43662 100755 --- a/api/src/com/cloud/server/ManagementService.java +++ b/api/src/com/cloud/server/ManagementService.java @@ -62,6 +62,7 @@ import org.apache.cloudstack.api.user.iso.command.UpdateIsoCmd; import org.apache.cloudstack.api.user.vmgroup.command.UpdateVMGroupCmd; import com.cloud.api.commands.UpgradeSystemVMCmd; import com.cloud.api.commands.UploadCustomCertificateCmd; +import com.cloud.api.view.vo.DomainRouterJoinVO; import com.cloud.async.AsyncJob; import com.cloud.capacity.Capacity; import com.cloud.configuration.Configuration; @@ -184,7 +185,7 @@ public interface ManagementService { * @param cmd * @return List of DomainRouters. */ - Pair, Integer> searchForRouters(ListRoutersCmd cmd); + Pair, Integer> searchForRouters(ListRoutersCmd cmd); /** * Obtains a list of IP Addresses by the specified search criteria. Can search by: "userId", "dataCenterId", http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b0ce8fd4/api/src/com/cloud/vm/UserVmService.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/vm/UserVmService.java b/api/src/com/cloud/vm/UserVmService.java index 04fa600..4568944 100755 --- a/api/src/com/cloud/vm/UserVmService.java +++ b/api/src/com/cloud/vm/UserVmService.java @@ -37,6 +37,7 @@ import org.apache.cloudstack.api.user.vm.command.RestoreVMCmd; import org.apache.cloudstack.api.user.vm.command.StartVMCmd; import org.apache.cloudstack.api.user.vm.command.UpdateVMCmd; import org.apache.cloudstack.api.user.vm.command.UpgradeVMCmd; +import com.cloud.api.view.vo.UserVmJoinVO; import com.cloud.dc.DataCenter; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientCapacityException; @@ -379,7 +380,7 @@ public interface UserVmService { * the API command that wraps the search criteria * @return List of UserVMs. */ - Pair, Integer> searchForUserVMs(ListVMsCmd cmd); + Pair, Integer> searchForUserVMs(ListVMsCmd cmd); HypervisorType getHypervisorTypeOfUserVM(long vmid); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b0ce8fd4/api/src/org/apache/cloudstack/api/ResponseGenerator.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/api/ResponseGenerator.java b/api/src/org/apache/cloudstack/api/ResponseGenerator.java index 9939855..aeafe6a 100755 --- a/api/src/org/apache/cloudstack/api/ResponseGenerator.java +++ b/api/src/org/apache/cloudstack/api/ResponseGenerator.java @@ -152,6 +152,8 @@ import com.cloud.user.User; import com.cloud.user.UserAccount; import com.cloud.uservm.UserVm; import com.cloud.vm.InstanceGroup; +import com.cloud.api.view.vo.DomainRouterJoinVO; +import com.cloud.api.view.vo.UserVmJoinVO; import com.cloud.vm.VirtualMachine; public interface ResponseGenerator { @@ -175,6 +177,10 @@ public interface ResponseGenerator { SnapshotPolicyResponse createSnapshotPolicyResponse(SnapshotPolicy policy); + List createUserVmResponse(String objectName, UserVmJoinVO... userVms); + + List createUserVmResponse(String objectName, EnumSet details, UserVmJoinVO... userVms); + List createUserVmResponse(String objectName, UserVm... userVms); List createUserVmResponse(String objectName, EnumSet details, UserVm... userVms); @@ -183,6 +189,8 @@ public interface ResponseGenerator { DomainRouterResponse createDomainRouterResponse(VirtualRouter router); + List createDomainRouterResponse(DomainRouterJoinVO... router); + HostResponse createHostResponse(Host host, EnumSet details); HostResponse createHostResponse(Host host); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b0ce8fd4/api/src/org/apache/cloudstack/api/ResponseObject.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/api/ResponseObject.java b/api/src/org/apache/cloudstack/api/ResponseObject.java index ff03c20..fd327fa 100644 --- a/api/src/org/apache/cloudstack/api/ResponseObject.java +++ b/api/src/org/apache/cloudstack/api/ResponseObject.java @@ -50,6 +50,11 @@ public interface ResponseObject { Long getObjectId(); /** + * Returns the object uuid. To replace getObjectId() later. + */ + String getObjectUuid(); + + /** * Returns the job id * * @return @@ -57,6 +62,12 @@ public interface ResponseObject { Long getJobId(); /** + * Return the async job uuid. To replace getJobId() later. + * @return + */ + String getJobUuid(); + + /** * Sets the job id * * @param jobId @@ -64,6 +75,12 @@ public interface ResponseObject { void setJobId(Long jobId); /** + * Set the job uuid. To replace setJobId() later. + * @param jobUuid job uuid + */ + void setJobUuid(String jobUuid); + + /** * Returns the job status * * @return