diff --git a/api/src/com/cloud/alert/Alert.java b/api/src/com/cloud/alert/Alert.java index c9368a34522..da75de8f458 100644 --- a/api/src/com/cloud/alert/Alert.java +++ b/api/src/com/cloud/alert/Alert.java @@ -20,6 +20,7 @@ import java.util.Date; public interface Alert { long getId(); + String getUuid(); short getType(); String getSubject(); Long getPodId(); diff --git a/api/src/com/cloud/network/security/SecurityGroup.java b/api/src/com/cloud/network/security/SecurityGroup.java index f6817d7188a..a496aa5e48a 100644 --- a/api/src/com/cloud/network/security/SecurityGroup.java +++ b/api/src/com/cloud/network/security/SecurityGroup.java @@ -22,6 +22,8 @@ import com.cloud.acl.ControlledEntity; public interface SecurityGroup extends ControlledEntity { long getId(); + String getUuid(); + String getName(); String getDescription(); diff --git a/api/src/com/cloud/storage/Snapshot.java b/api/src/com/cloud/storage/Snapshot.java index a37cc94241f..c60b19aec49 100644 --- a/api/src/com/cloud/storage/Snapshot.java +++ b/api/src/com/cloud/storage/Snapshot.java @@ -69,6 +69,8 @@ public interface Snapshot extends ControlledEntity { Long getId(); + String getUuid(); + long getAccountId(); long getVolumeId(); diff --git a/api/src/com/cloud/user/User.java b/api/src/com/cloud/user/User.java index c625c168d0d..e1b9f732885 100644 --- a/api/src/com/cloud/user/User.java +++ b/api/src/com/cloud/user/User.java @@ -23,6 +23,8 @@ public interface User extends OwnedBy { public long getId(); + public String getUuid(); + public Date getCreated(); public Date getRemoved(); diff --git a/api/src/org/apache/cloudstack/api/command/admin/resource/ListAlertsCmd.java b/api/src/org/apache/cloudstack/api/command/admin/resource/ListAlertsCmd.java index f58744a7c99..32dc3d96799 100644 --- a/api/src/org/apache/cloudstack/api/command/admin/resource/ListAlertsCmd.java +++ b/api/src/org/apache/cloudstack/api/command/admin/resource/ListAlertsCmd.java @@ -77,7 +77,7 @@ public class ListAlertsCmd extends BaseListCmd { List alertResponseList = new ArrayList(); for (Alert alert : result.first()) { AlertResponse alertResponse = new AlertResponse(); - alertResponse.setId(alert.getId()); + alertResponse.setId(alert.getUuid()); alertResponse.setAlertType(alert.getType()); alertResponse.setDescription(alert.getSubject()); alertResponse.setLastSent(alert.getLastSent()); diff --git a/api/src/org/apache/cloudstack/api/response/AlertResponse.java b/api/src/org/apache/cloudstack/api/response/AlertResponse.java index c35aad21bc8..fdadd974de3 100644 --- a/api/src/org/apache/cloudstack/api/response/AlertResponse.java +++ b/api/src/org/apache/cloudstack/api/response/AlertResponse.java @@ -19,7 +19,6 @@ package org.apache.cloudstack.api.response; import java.util.Date; import org.apache.cloudstack.api.ApiConstants; -import com.cloud.utils.IdentityProxy; import com.cloud.serializer.Param; import com.google.gson.annotations.SerializedName; import org.apache.cloudstack.api.BaseResponse; @@ -27,7 +26,7 @@ import org.apache.cloudstack.api.BaseResponse; @SuppressWarnings("unused") public class AlertResponse extends BaseResponse { @SerializedName(ApiConstants.ID) @Param(description="the id of the alert") - private IdentityProxy id = new IdentityProxy("alert"); + private String id; @SerializedName(ApiConstants.TYPE) @Param(description="One of the following alert types: " + "MEMORY = 0, CPU = 1, STORAGE = 2, STORAGE_ALLOCATED = 3, PUBLIC_IP = 4, PRIVATE_IP = 5, HOST = 6, USERVM = 7, " + @@ -45,8 +44,8 @@ public class AlertResponse extends BaseResponse { @SerializedName(ApiConstants.SENT) @Param(description="the date and time the alert was sent") private Date lastSent; - public void setId(Long id) { - this.id.setValue(id); + public void setId(String id) { + this.id = id; } public void setAlertType(Short alertType) { diff --git a/api/src/org/apache/cloudstack/api/response/AsyncJobResponse.java b/api/src/org/apache/cloudstack/api/response/AsyncJobResponse.java index d255ec42359..42912be744a 100644 --- a/api/src/org/apache/cloudstack/api/response/AsyncJobResponse.java +++ b/api/src/org/apache/cloudstack/api/response/AsyncJobResponse.java @@ -23,17 +23,16 @@ import org.apache.cloudstack.api.BaseResponse; import org.apache.cloudstack.api.ResponseObject; import com.cloud.async.AsyncJob; import com.cloud.serializer.Param; -import com.cloud.utils.IdentityProxy; import com.google.gson.annotations.SerializedName; @SuppressWarnings("unused") public class AsyncJobResponse extends BaseResponse { @SerializedName("accountid") @Param(description="the account that executed the async command") - private IdentityProxy accountId = new IdentityProxy("account"); + private String accountId; @SerializedName(ApiConstants.USER_ID) @Param(description="the user that executed the async command") - private IdentityProxy userId = new IdentityProxy("user"); + private String userId; @SerializedName("cmd") @Param(description="the async command executed") private String cmd; @@ -57,17 +56,17 @@ public class AsyncJobResponse extends BaseResponse { private String jobInstanceType; @SerializedName("jobinstanceid") @Param(description="the unique ID of the instance/entity object related to the job") - private IdentityProxy jobInstanceId = new IdentityProxy(); + private String jobInstanceId; @SerializedName(ApiConstants.CREATED) @Param(description=" the created date of the job") private Date created; - public void setAccountId(Long accountId) { - this.accountId.setValue(accountId); + public void setAccountId(String accountId) { + this.accountId = accountId; } - public void setUserId(Long userId) { - this.userId.setValue(userId); + public void setUserId(String userId) { + this.userId = userId; } public void setCmd(String cmd) { @@ -97,61 +96,10 @@ public class AsyncJobResponse extends BaseResponse { public void setJobInstanceType(String jobInstanceType) { this.jobInstanceType = jobInstanceType; - - if(jobInstanceType != null) { - if(jobInstanceType.equalsIgnoreCase(AsyncJob.Type.Volume.toString())) { - this.jobInstanceId.setTableName("volumes"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.Template.toString())) { - this.jobInstanceId.setTableName("vm_template"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.Iso.toString())) { - this.jobInstanceId.setTableName("vm_template"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.VirtualMachine.toString()) || jobInstanceType.equalsIgnoreCase(AsyncJob.Type.ConsoleProxy.toString()) || jobInstanceType.equalsIgnoreCase(AsyncJob.Type.SystemVm.toString()) || jobInstanceType.equalsIgnoreCase(AsyncJob.Type.DomainRouter.toString()) ) { - this.jobInstanceId.setTableName("vm_instance"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.Snapshot.toString())) { - this.jobInstanceId.setTableName("snapshots"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.Host.toString())) { - this.jobInstanceId.setTableName("host"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.StoragePool.toString())) { - this.jobInstanceId.setTableName("storage_pool"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.IpAddress.toString())) { - this.jobInstanceId.setTableName("user_ip_address"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.SecurityGroup.toString())) { - this.jobInstanceId.setTableName("security_group"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.PhysicalNetwork.toString())) { - this.jobInstanceId.setTableName("physical_network"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.TrafficType.toString())) { - this.jobInstanceId.setTableName("physical_network_traffic_types"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.PhysicalNetworkServiceProvider.toString())) { - this.jobInstanceId.setTableName("physical_network_service_providers"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.FirewallRule.toString())) { - this.jobInstanceId.setTableName("firewall_rules"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.Account.toString())) { - this.jobInstanceId.setTableName("account"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.User.toString())) { - this.jobInstanceId.setTableName("user"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.StaticRoute.toString())) { - this.jobInstanceId.setTableName("static_routes"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.PrivateGateway.toString())) { - this.jobInstanceId.setTableName("vpc_gateways"); - }else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.Counter.toString())) { - this.jobInstanceId.setTableName("counter"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.Condition.toString())) { - this.jobInstanceId.setTableName("conditions"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.AutoScalePolicy.toString())) { - this.jobInstanceId.setTableName("autoscale_policies"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.AutoScaleVmProfile.toString())) { - this.jobInstanceId.setTableName("autoscale_vmprofiles"); - } else if (jobInstanceType.equalsIgnoreCase(AsyncJob.Type.AutoScaleVmGroup.toString())) { - this.jobInstanceId.setTableName("autoscale_vmgroups"); - } else if (!jobInstanceType.equalsIgnoreCase(AsyncJob.Type.None.toString())){ - // TODO : when we hit here, we need to add instanceType -> UUID entity table mapping - assert(false); - } - } } - public void setJobInstanceId(Long jobInstanceId) { - this.jobInstanceId.setValue(jobInstanceId); + public void setJobInstanceId(String jobInstanceId) { + this.jobInstanceId = jobInstanceId; } public void setCreated(Date created) { diff --git a/core/src/com/cloud/storage/SnapshotVO.java b/core/src/com/cloud/storage/SnapshotVO.java index 9bf1924ec33..05692252588 100644 --- a/core/src/com/cloud/storage/SnapshotVO.java +++ b/core/src/com/cloud/storage/SnapshotVO.java @@ -35,25 +35,25 @@ import com.google.gson.annotations.Expose; @Entity @Table(name="snapshots") -public class SnapshotVO implements Snapshot, Identity { - +public class SnapshotVO implements Snapshot { + @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private long id = -1; - + @Column(name="data_center_id") long dataCenterId; @Column(name="account_id") long accountId; - + @Column(name="domain_id") long domainId; @Column(name="volume_id") Long volumeId; - + @Column(name="disk_offering_id") Long diskOfferingId; @@ -64,7 +64,7 @@ public class SnapshotVO implements Snapshot, Identity { @Expose @Column(name="name") String name; - + @Expose @Column(name="status", updatable = true, nullable=false) @Enumerated(value=EnumType.STRING) @@ -75,10 +75,10 @@ public class SnapshotVO implements Snapshot, Identity { @Column(name="type_description") String typeDescription; - + @Column(name="size") long size; - + @Column(name=GenericDao.CREATED_COLUMN) Date created; @@ -87,10 +87,10 @@ public class SnapshotVO implements Snapshot, Identity { @Column(name="backup_snap_id") String backupSnapshotId; - + @Column(name="swift_id") Long swiftId; - + @Column(name="sechost_id") Long secHostId; @@ -100,14 +100,14 @@ public class SnapshotVO implements Snapshot, Identity { @Column(name="hypervisor_type") @Enumerated(value=EnumType.STRING) HypervisorType hypervisorType; - + @Expose @Column(name="version") String version; - + @Column(name="uuid") String uuid; - + public SnapshotVO() { this.uuid = UUID.randomUUID().toString(); } @@ -129,7 +129,7 @@ public class SnapshotVO implements Snapshot, Identity { this.version = "2.2"; this.uuid = UUID.randomUUID().toString(); } - + @Override public Long getId() { return id; @@ -165,7 +165,7 @@ public class SnapshotVO implements Snapshot, Identity { public String getPath() { return path; } - + public void setPath(String path) { this.path = path; } @@ -178,7 +178,7 @@ public class SnapshotVO implements Snapshot, Identity { public short getsnapshotType() { return snapshotType; } - + @Override public Type getType() { if (snapshotType < 0 || snapshotType >= Type.values().length) { @@ -186,7 +186,7 @@ public class SnapshotVO implements Snapshot, Identity { } return Type.values()[snapshotType]; } - + public Long getSwiftId() { return swiftId; } @@ -207,11 +207,11 @@ public class SnapshotVO implements Snapshot, Identity { public HypervisorType getHypervisorType() { return hypervisorType; } - + public void setSnapshotType(short snapshotType) { this.snapshotType = snapshotType; } - + @Override public boolean isRecursive(){ if ( snapshotType >= Type.HOURLY.ordinal() && snapshotType <= Type.MONTHLY.ordinal() ) { @@ -246,32 +246,32 @@ public class SnapshotVO implements Snapshot, Identity { public Date getRemoved() { return removed; } - + @Override public Status getStatus() { return status; } - + public void setStatus(Status status) { this.status = status; } - + public String getBackupSnapshotId(){ return backupSnapshotId; } - + public long getPrevSnapshotId(){ return prevSnapshotId; } - + public void setBackupSnapshotId(String backUpSnapshotId){ this.backupSnapshotId = backUpSnapshotId; } - + public void setPrevSnapshotId(long prevSnapshotId){ this.prevSnapshotId = prevSnapshotId; } - + public static Type getSnapshotType(String snapshotType) { for ( Type type : Type.values()) { if ( type.equals(snapshotType)) { @@ -280,12 +280,12 @@ public class SnapshotVO implements Snapshot, Identity { } return null; } - + @Override public String getUuid() { return this.uuid; } - + public void setUuid(String uuid) { this.uuid = uuid; } diff --git a/server/src/com/cloud/api/ApiDBUtils.java b/server/src/com/cloud/api/ApiDBUtils.java index 4e41d682773..60a9b26db19 100755 --- a/server/src/com/cloud/api/ApiDBUtils.java +++ b/server/src/com/cloud/api/ApiDBUtils.java @@ -95,33 +95,50 @@ import com.cloud.network.NetworkManager; import com.cloud.network.NetworkProfile; import com.cloud.network.NetworkRuleConfigVO; import com.cloud.network.NetworkVO; +import com.cloud.network.PhysicalNetworkVO; import com.cloud.network.Site2SiteVpnGatewayVO; import com.cloud.network.Site2SiteCustomerGatewayVO; import com.cloud.network.Networks.TrafficType; import com.cloud.network.as.AutoScalePolicy; import com.cloud.network.as.AutoScalePolicyConditionMapVO; +import com.cloud.network.as.AutoScalePolicyVO; import com.cloud.network.as.AutoScaleVmGroupPolicyMapVO; +import com.cloud.network.as.AutoScaleVmGroupVO; +import com.cloud.network.as.AutoScaleVmProfileVO; import com.cloud.network.as.ConditionVO; import com.cloud.network.as.CounterVO; import com.cloud.network.as.dao.AutoScalePolicyConditionMapDao; import com.cloud.network.as.dao.AutoScalePolicyDao; +import com.cloud.network.as.dao.AutoScaleVmGroupDao; import com.cloud.network.as.dao.AutoScaleVmGroupPolicyMapDao; +import com.cloud.network.as.dao.AutoScaleVmProfileDao; import com.cloud.network.as.dao.ConditionDao; import com.cloud.network.as.dao.CounterDao; import com.cloud.network.dao.FirewallRulesCidrsDao; +import com.cloud.network.dao.FirewallRulesDao; import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.LoadBalancerDao; import com.cloud.network.dao.NetworkDao; +import com.cloud.network.dao.PhysicalNetworkDao; import com.cloud.network.dao.NetworkDomainDao; import com.cloud.network.dao.NetworkRuleConfigDao; +import com.cloud.network.dao.PhysicalNetworkServiceProviderDao; +import com.cloud.network.dao.PhysicalNetworkServiceProviderVO; +import com.cloud.network.dao.PhysicalNetworkTrafficTypeDao; +import com.cloud.network.dao.PhysicalNetworkTrafficTypeVO; import com.cloud.network.dao.Site2SiteVpnGatewayDao; import com.cloud.network.dao.Site2SiteCustomerGatewayDao; import com.cloud.network.router.VirtualRouter; +import com.cloud.network.rules.FirewallRuleVO; import com.cloud.network.security.SecurityGroup; import com.cloud.network.security.SecurityGroupManager; import com.cloud.network.security.SecurityGroupVO; import com.cloud.network.security.dao.SecurityGroupDao; +import com.cloud.network.vpc.StaticRouteVO; +import com.cloud.network.vpc.VpcGatewayVO; import com.cloud.network.vpc.VpcManager; +import com.cloud.network.vpc.dao.StaticRouteDao; +import com.cloud.network.vpc.dao.VpcGatewayDao; import com.cloud.offering.NetworkOffering; import com.cloud.offering.ServiceOffering; import com.cloud.offerings.NetworkOfferingVO; @@ -248,6 +265,7 @@ public class ApiDBUtils { private static DataCenterDao _zoneDao; private static NetworkOfferingDao _networkOfferingDao; private static NetworkDao _networkDao; + private static PhysicalNetworkDao _physicalNetworkDao; private static ConfigurationService _configMgr; private static ConfigurationDao _configDao; private static ConsoleProxyDao _consoleProxyDao; @@ -268,6 +286,8 @@ public class ApiDBUtils { private static AutoScalePolicyConditionMapDao _asPolicyConditionMapDao; private static AutoScaleVmGroupPolicyMapDao _asVmGroupPolicyMapDao; private static AutoScalePolicyDao _asPolicyDao; + private static AutoScaleVmProfileDao _asVmProfileDao; + private static AutoScaleVmGroupDao _asVmGroupDao; private static CounterDao _counterDao; private static ResourceTagJoinDao _tagJoinDao; private static EventJoinDao _eventJoinDao; @@ -277,6 +297,12 @@ public class ApiDBUtils { private static ProjectAccountJoinDao _projectAccountJoinDao; private static ProjectInvitationJoinDao _projectInvitationJoinDao; + private static PhysicalNetworkTrafficTypeDao _physicalNetworkTrafficTypeDao; + private static PhysicalNetworkServiceProviderDao _physicalNetworkServiceProviderDao; + private static FirewallRulesDao _firewallRuleDao; + private static StaticRouteDao _staticRouteDao; + private static VpcGatewayDao _vpcGatewayDao; + static { _ms = (ManagementServer) ComponentLocator.getComponent(ManagementServer.Name); ComponentLocator locator = ComponentLocator.getLocator(ManagementServer.Name); @@ -324,6 +350,7 @@ public class ApiDBUtils { _securityGroupJoinDao = locator.getDao(SecurityGroupJoinDao.class); _networkOfferingDao = locator.getDao(NetworkOfferingDao.class); _networkDao = locator.getDao(NetworkDao.class); + _physicalNetworkDao = locator.getDao(PhysicalNetworkDao.class); _configDao = locator.getDao(ConfigurationDao.class); _consoleProxyDao = locator.getDao(ConsoleProxyDao.class); _firewallCidrsDao = locator.getDao(FirewallRulesCidrsDao.class); @@ -343,8 +370,6 @@ public class ApiDBUtils { _asPolicyConditionMapDao = locator.getDao(AutoScalePolicyConditionMapDao.class); _counterDao = locator.getDao(CounterDao.class); _asVmGroupPolicyMapDao = locator.getDao(AutoScaleVmGroupPolicyMapDao.class); - _asVmGroupPolicyMapDao = locator.getDao(AutoScaleVmGroupPolicyMapDao.class); - _counterDao = locator.getDao(CounterDao.class); _tagJoinDao = locator.getDao(ResourceTagJoinDao.class); _vmGroupJoinDao = locator.getDao(InstanceGroupJoinDao.class); _eventJoinDao = locator.getDao(EventJoinDao.class); @@ -353,6 +378,13 @@ public class ApiDBUtils { _projectAccountJoinDao = locator.getDao(ProjectAccountJoinDao.class); _projectInvitationJoinDao = locator.getDao(ProjectInvitationJoinDao.class); + _physicalNetworkTrafficTypeDao = locator.getDao(PhysicalNetworkTrafficTypeDao.class); + _physicalNetworkServiceProviderDao = locator.getDao(PhysicalNetworkServiceProviderDao.class); + _firewallRuleDao = locator.getDao(FirewallRulesDao.class); + _staticRouteDao = locator.getDao(StaticRouteDao.class); + _vpcGatewayDao = locator.getDao(VpcGatewayDao.class); + _asVmProfileDao = locator.getDao(AutoScaleVmProfileDao.class); + _asVmGroupDao = locator.getDao(AutoScaleVmGroupDao.class); // Note: stats collector should already have been initialized by this time, otherwise a null instance is returned _statsCollector = StatsCollector.getInstance(); @@ -738,6 +770,14 @@ public class ApiDBUtils { return _vlanDao.listVlansByNetworkId(networkId); } + public static PhysicalNetworkVO findPhysicalNetworkById(long id) { + return _physicalNetworkDao.findById(id); + } + + public static PhysicalNetworkTrafficTypeVO findPhysicalNetworkTrafficTypeById(long id) { + return _physicalNetworkTrafficTypeDao.findById(id); + } + public static NetworkVO findNetworkById(long id) { return _networkDao.findById(id); } @@ -945,6 +985,38 @@ public class ApiDBUtils { return _counterDao.findById(counterId); } + public static ConditionVO findConditionById(long conditionId){ + return _asConditionDao.findById(conditionId); + } + + public static PhysicalNetworkServiceProviderVO findPhysicalNetworkServiceProviderById(long providerId){ + return _physicalNetworkServiceProviderDao.findById(providerId); + } + + public static FirewallRuleVO findFirewallRuleById(long ruleId){ + return _firewallRuleDao.findById(ruleId); + } + + public static StaticRouteVO findStaticRouteById(long routeId){ + return _staticRouteDao.findById(routeId); + } + + public static VpcGatewayVO findVpcGatewayById(long gatewayId){ + return _vpcGatewayDao.findById(gatewayId); + } + + public static AutoScalePolicyVO findAutoScalePolicyById(long policyId){ + return _asPolicyDao.findById(policyId); + } + + public static AutoScaleVmProfileVO findAutoScaleVmProfileById(long profileId){ + return _asVmProfileDao.findById(profileId); + } + + public static AutoScaleVmGroupVO findAutoScaleVmGroupById(long groupId){ + return _asVmGroupDao.findById(groupId); + } + /////////////////////////////////////////////////////////////////////// // Newly Added Utility Methods for List API refactoring // /////////////////////////////////////////////////////////////////////// diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 51c90171c1e..5f584f72d39 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -159,6 +159,7 @@ import com.cloud.network.Networks.TrafficType; import com.cloud.network.PhysicalNetwork; import com.cloud.network.PhysicalNetworkServiceProvider; import com.cloud.network.PhysicalNetworkTrafficType; +import com.cloud.network.PhysicalNetworkVO; import com.cloud.network.RemoteAccessVpn; import com.cloud.network.Site2SiteCustomerGateway; import com.cloud.network.Site2SiteCustomerGatewayVO; @@ -168,13 +169,19 @@ import com.cloud.network.Site2SiteVpnGatewayVO; import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VpnUser; import com.cloud.network.as.AutoScalePolicy; +import com.cloud.network.as.AutoScalePolicyVO; import com.cloud.network.as.AutoScaleVmGroup; +import com.cloud.network.as.AutoScaleVmGroupVO; import com.cloud.network.as.AutoScaleVmProfile; +import com.cloud.network.as.AutoScaleVmProfileVO; import com.cloud.network.as.Condition; import com.cloud.network.as.ConditionVO; import com.cloud.network.as.Counter; +import com.cloud.network.as.CounterVO; +import com.cloud.network.dao.PhysicalNetworkTrafficTypeVO; import com.cloud.network.router.VirtualRouter; import com.cloud.network.rules.FirewallRule; +import com.cloud.network.rules.FirewallRuleVO; import com.cloud.network.rules.LoadBalancer; import com.cloud.network.rules.PortForwardingRule; import com.cloud.network.rules.StaticNatRule; @@ -184,7 +191,9 @@ import com.cloud.network.security.SecurityRule; import com.cloud.network.security.SecurityRule.SecurityRuleType; import com.cloud.network.vpc.PrivateGateway; import com.cloud.network.vpc.StaticRoute; +import com.cloud.network.vpc.StaticRouteVO; import com.cloud.network.vpc.Vpc; +import com.cloud.network.vpc.VpcGatewayVO; import com.cloud.network.vpc.VpcOffering; import com.cloud.offering.DiskOffering; import com.cloud.offering.NetworkOffering; @@ -2001,8 +2010,14 @@ public class ApiResponseHelper implements ResponseGenerator { @Override public AsyncJobResponse createAsyncJobResponse(AsyncJob job) { AsyncJobResponse jobResponse = new AsyncJobResponse(); - jobResponse.setAccountId(job.getAccountId()); - jobResponse.setUserId(job.getUserId()); + Account account = ApiDBUtils.findAccountById(job.getAccountId()); + if (account != null) { + jobResponse.setAccountId(account.getUuid()); + } + User user = ApiDBUtils.findUserById(job.getUserId()); + if (user != null) { + jobResponse.setUserId(user.getUuid()); + } jobResponse.setCmd(job.getCmd()); jobResponse.setCreated(job.getCreated()); jobResponse.setJobId(job.getId()); @@ -2011,7 +2026,121 @@ public class ApiResponseHelper implements ResponseGenerator { if (job.getInstanceType() != null && job.getInstanceId() != null) { jobResponse.setJobInstanceType(job.getInstanceType().toString()); - jobResponse.setJobInstanceId(job.getInstanceId()); + String jobInstanceId = null; + if (job.getInstanceType() == AsyncJob.Type.Volume) { + VolumeVO volume = ApiDBUtils.findVolumeById(job.getInstanceId()); + if (volume != null) { + jobInstanceId = volume.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.Template || job.getInstanceType() == AsyncJob.Type.Iso) { + VMTemplateVO template = ApiDBUtils.findTemplateById(job.getInstanceId()); + if (template != null) { + jobInstanceId = template.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.VirtualMachine || job.getInstanceType() == AsyncJob.Type.ConsoleProxy + || job.getInstanceType() == AsyncJob.Type.SystemVm || job.getInstanceType() == AsyncJob.Type.DomainRouter) { + VMInstanceVO vm = ApiDBUtils.findVMInstanceById(job.getInstanceId()); + if (vm != null) { + jobInstanceId = vm.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.Snapshot) { + Snapshot snapshot = ApiDBUtils.findSnapshotById(job.getInstanceId()); + if (snapshot != null) { + jobInstanceId = snapshot.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.Host) { + Host host = ApiDBUtils.findHostById(job.getInstanceId()); + if (host != null) { + jobInstanceId = host.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.StoragePool) { + StoragePoolVO spool = ApiDBUtils.findStoragePoolById(job.getInstanceId()); + if (spool != null) { + jobInstanceId = spool.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.IpAddress) { + IPAddressVO ip = ApiDBUtils.findIpAddressById(job.getInstanceId()); + if (ip != null) { + jobInstanceId = ip.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.SecurityGroup) { + SecurityGroup sg = ApiDBUtils.findSecurityGroupById(job.getInstanceId()); + if (sg != null) { + jobInstanceId = sg.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.PhysicalNetwork) { + PhysicalNetworkVO pnet = ApiDBUtils.findPhysicalNetworkById(job.getInstanceId()); + if (pnet != null) { + jobInstanceId = pnet.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.TrafficType) { + PhysicalNetworkTrafficTypeVO trafficType = ApiDBUtils.findPhysicalNetworkTrafficTypeById(job.getInstanceId()); + if (trafficType != null) { + jobInstanceId = trafficType.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.PhysicalNetworkServiceProvider) { + PhysicalNetworkServiceProvider sp = ApiDBUtils.findPhysicalNetworkServiceProviderById(job.getInstanceId()); + if (sp != null) { + jobInstanceId = sp.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.FirewallRule) { + FirewallRuleVO fw = ApiDBUtils.findFirewallRuleById(job.getInstanceId()); + if (fw != null) { + jobInstanceId = fw.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.Account) { + Account acct = ApiDBUtils.findAccountById(job.getInstanceId()); + if (acct != null) { + jobInstanceId = acct.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.User) { + User usr = ApiDBUtils.findUserById(job.getInstanceId()); + if (usr != null) { + jobInstanceId = usr.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.StaticRoute) { + StaticRouteVO route = ApiDBUtils.findStaticRouteById(job.getInstanceId()); + if (route != null) { + jobInstanceId = route.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.PrivateGateway) { + VpcGatewayVO gateway = ApiDBUtils.findVpcGatewayById(job.getInstanceId()); + if (gateway != null) { + jobInstanceId = gateway.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.Counter) { + CounterVO counter = ApiDBUtils.getCounter(job.getInstanceId()); + if (counter != null) { + jobInstanceId = counter.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.Condition) { + ConditionVO condition = ApiDBUtils.findConditionById(job.getInstanceId()); + if (condition != null) { + jobInstanceId = condition.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.AutoScalePolicy) { + AutoScalePolicyVO policy = ApiDBUtils.findAutoScalePolicyById(job.getInstanceId()); + if (policy != null) { + jobInstanceId = policy.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.AutoScaleVmProfile) { + AutoScaleVmProfileVO profile = ApiDBUtils.findAutoScaleVmProfileById(job.getInstanceId()); + if (profile != null) { + jobInstanceId = profile.getUuid(); + } + } else if (job.getInstanceType() == AsyncJob.Type.AutoScaleVmGroup) { + AutoScaleVmGroupVO group = ApiDBUtils.findAutoScaleVmGroupById(job.getInstanceId()); + if (group != null) { + jobInstanceId = group.getUuid(); + } + } else if (job.getInstanceType() != AsyncJob.Type.None) { + // TODO : when we hit here, we need to add instanceType -> UUID + // entity table mapping + assert (false); + } + if (jobInstanceId != null) { + jobResponse.setJobInstanceId(jobInstanceId); + } } jobResponse.setJobResultCode(job.getResultCode()); diff --git a/server/test/com/cloud/keystore/KeystoreTest.java b/server/test/com/cloud/keystore/KeystoreTest.java index 21d5d9c13e0..47212c12cca 100644 --- a/server/test/com/cloud/keystore/KeystoreTest.java +++ b/server/test/com/cloud/keystore/KeystoreTest.java @@ -29,9 +29,9 @@ import org.apache.cloudstack.api.response.UserVmResponse; public class KeystoreTest extends TestCase { private final static Logger s_logger = Logger.getLogger(KeystoreTest.class); - private String keyContent = - "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALV5vGlkiWwoZX4hTRplPXP8qtST\n" + - "hwZhko8noeY5vf8ECwmd+vrCTw/JvnOtkx/8oYNbg/SeUt1EfOsk6gqJdBblGFBZRMcUJlIpqE9z\n" + + private String keyContent = + "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALV5vGlkiWwoZX4hTRplPXP8qtST\n" + + "hwZhko8noeY5vf8ECwmd+vrCTw/JvnOtkx/8oYNbg/SeUt1EfOsk6gqJdBblGFBZRMcUJlIpqE9z\n" + "uv68U9G8Gfi/qvRSY336hibw0J5bZ4vn1QqmyHDB+Czea9AjFUV7AEVG15+vED7why+/AgMBAAEC\n" + "gYBmFBPnNKYYMKDmUdUNA+WNWJK/ADzzWe8WlzR6TACTcbLDthl289WFC/YVG42mcHRpbxDKiEQU\n" + "MnIR0rHTO34Qb/2HcuyweStU2gqR6omxBvMnFpJr90nD1HcOMJzeLHsphau0/EmKKey+gk4PyieD\n" + @@ -42,8 +42,8 @@ public class KeystoreTest extends TestCase { "/DURBUn+1l5pyCKrZnDbvaALSLATLvjmFTuGjoHszy2OeKnOZmEqExWnKKE/VYuPyhy6V7i3TwJA\n" + "f8skDgtPK0OsBCa6IljPaHoWBjPc4kFkSTSS1d56hUcWSikTmiuKdLyBb85AADSZYsvHWrte4opN\n" + "dhNukMJuRA==\n"; - - private String certContent = + + private String certContent = "-----BEGIN CERTIFICATE-----\n" + "MIIE3jCCA8agAwIBAgIFAqv56tIwDQYJKoZIhvcNAQEFBQAwgcoxCzAJBgNVBAYT\n" + "AlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYD\n" + @@ -73,27 +73,27 @@ public class KeystoreTest extends TestCase { "k0fLF4+i/pt9hVCz0QrZ28RUhXf825+EOL0Gw+Uzt+7RV2cCaJrlu4cDrDom2FRy\n" + "E8I=\n" + "-----END CERTIFICATE-----\n"; - + @Override @Before public void setUp() { -/* +/* MockComponentLocator locator = new MockComponentLocator("management-server"); locator.addDao("keystoreDao", KeystoreDaoImpl.class); locator.addManager("KeystoreManager", KeystoreManagerImpl.class); locator.makeActive(new DefaultInterceptorLibrary()); -*/ +*/ } - + @Override @After public void tearDown() throws Exception { } -/* +/* public void testKeystoreSave() throws Exception { KeystoreVO ksVo; - + ComponentLocator locator = ComponentLocator.getCurrentLocator(); KeystoreDao ksDao = locator.getDao(KeystoreDao.class); @@ -103,18 +103,18 @@ public class KeystoreTest extends TestCase { assertTrue(ksVo.getCertificate().equals("CPVMCertificate")); assertTrue(ksVo.getKey().equals("KeyForCertificate")); assertTrue(ksVo.getDomainSuffix().equals("realhostip.com")); - + ksDao.save("CPVMCertificate", "CPVMCertificate Again", "KeyForCertificate Again", "again.realhostip.com"); - + ksVo = ksDao.findByName("CPVMCertificate"); assertTrue(ksVo != null); assertTrue(ksVo.getCertificate().equals("CPVMCertificate Again")); assertTrue(ksVo.getKey().equals("KeyForCertificate Again")); assertTrue(ksVo.getDomainSuffix().equals("again.realhostip.com")); - + ksDao.expunge(ksVo.getId()); } - + public void testStripeKey() throws Exception { Pattern regex = Pattern.compile("(^[\\-]+[^\\-]+[\\-]+[\\n]?)([^\\-]+)([\\-]+[^\\-]+[\\-]+$)"); Matcher m = regex.matcher("-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAm4bLUORp9oM65GV9XrPrbs+K563DjUR1M8mP1HaE+Y4lX5pk\nvQjC/xoEqSs5pxDDWXAkoexvxij8A4AWcsKU1Q+ep2E+GcytBoz8XINGvgb8cQNn\n/4PlVWKp7j5SDDNCfleYvmiRn8k6P4mxVJOHKzwb/IwQcKghyqAF1w==\n-----END RSA PRIVATE KEY-----"); @@ -126,19 +126,19 @@ public class KeystoreTest extends TestCase { assertTrue(false); } } - + public void testKeystoreManager() throws Exception { ComponentLocator locator = ComponentLocator.getCurrentLocator(); - + KeystoreManagerImpl ksMgr = ComponentLocator.inject(KeystoreManagerImpl.class); assertTrue(ksMgr.configure("TaskManager", new HashMap())); assertTrue(ksMgr.start()); - + ksMgr.saveCertificate("CPVMCertificate", certContent, keyContent, "realhostip.com"); - + byte[] ksBits = ksMgr.getKeystoreBits("CPVMCertificate", "realhostip", "vmops.com"); assertTrue(ksBits != null); - + try { KeyStore ks = CertificateHelper.loadKeystore(ksBits, "vmops.com"); assertTrue(ks != null); @@ -150,11 +150,11 @@ public class KeystoreTest extends TestCase { KeystoreVO ksVo = ksDao.findByName("CPVMCertificate"); ksDao.expunge(ksVo.getId()); } -*/ +*/ public void testUuid() { UserVmResponse vm = new UserVmResponse(); vm.setId(Long.toString(3L)); -/* +/* vm.setAccountName("admin"); vm.setName("i-2-3-KY"); vm.setDisplayName("i-2-3-KY"); @@ -165,18 +165,18 @@ public class KeystoreTest extends TestCase { vm.setZoneId(1L); vm.setZoneName("KY"); vm.setHostId(1L); - + vm.setObjectName("virtualmachine"); -*/ +*/ String result = ApiSerializerHelper.toSerializedStringOld(vm); // String result = "org.apache.cloudstack.api.response.UserVmResponse/virtualmachine/{\"id\":{\"_tableName\":\"vm_instance\",\"_value\":3},\"name\":\"i-2-3-KY\",\"displayname\":\"i-2-3-KY\",\"account\":\"admin\",\"projectid\":{\"_tableName\":\"projects\"},\"domainid\":{\"_tableName\":\"domain\",\"_value\":1},\"domain\":\"ROOT\",\"created\":\"2011-11-02T21:54:07-0700\",\"state\":\"Running\",\"haenable\":false,\"groupid\":{\"_tableName\":\"instance_group\"},\"zoneid\":{\"_tableName\":\"data_center\",\"_value\":1},\"zonename\":\"KY\",\"hostid\":{\"_tableName\":\"host\",\"_value\":1},\"hostname\":\"xenserver-basic\",\"templateid\":{\"_tableName\":\"vm_template\",\"_value\":2},\"templatename\":\"CentOS 5.3(64-bit) no GUI (XenServer)\",\"templatedisplaytext\":\"CentOS 5.3(64-bit) no GUI (XenServer)\",\"passwordenabled\":false,\"isoid\":{\"_tableName\":\"vm_template\"},\"serviceofferingid\":{\"_tableName\":\"disk_offering\",\"_value\":7},\"serviceofferingname\":\"Small Instance\",\"cpunumber\":1,\"cpuspeed\":500,\"memory\":512,\"guestosid\":{\"_tableName\":\"guest_os\",\"_value\":12},\"rootdeviceid\":0,\"rootdevicetype\":\"NetworkFilesystem\",\"securitygroup\":[],\"jobid\":{\"_tableName\":\"async_job\"},\"nic\":[{\"id\":7,\"networkid\":200,\"netmask\":\"255.255.255.0\",\"gateway\":\"10.1.1.1\",\"ipaddress\":\"10.1.1.116\",\"isolationuri\":\"vlan://1699\",\"broadcasturi\":\"vlan://1699\",\"traffictype\":\"Guest\",\"type\":\"Virtual\",\"isdefault\":true,\"macaddress\":\"02:00:39:a7:00:01\"}],\"hypervisor\":\"XenServer\"}"; System.out.println(result); //Object obj = ApiSerializerHelper.fromSerializedString(result); AlertResponse alert = new AlertResponse(); - alert.setId(100L); + alert.setId("100"); alert.setDescription("Hello"); - + result = ApiSerializerHelper.toSerializedStringOld(alert); System.out.println(result); ApiSerializerHelper.fromSerializedString(result);