Skip to content

Commit ba67e5d

Browse files
author
Kishan Kavala
committed
CLOUDSTACK-2452: Fixed account upgrade for usage. Added cloumn default. Updated usage response for PF , LB and VPN to return UUID instead of Id
1 parent 6e1103e commit ba67e5d

File tree

2 files changed

+169
-162
lines changed

2 files changed

+169
-162
lines changed

server/src/com/cloud/api/ApiResponseHelper.java

Lines changed: 167 additions & 162 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,30 @@
3434

3535
import javax.inject.Inject;
3636

37+
import com.cloud.network.GuestVlan;
38+
import com.cloud.network.IpAddress;
39+
import com.cloud.network.Network;
40+
import com.cloud.network.NetworkModel;
41+
import com.cloud.network.NetworkProfile;
42+
import com.cloud.network.PhysicalNetwork;
43+
import com.cloud.network.PhysicalNetworkServiceProvider;
44+
import com.cloud.network.PhysicalNetworkTrafficType;
45+
import com.cloud.network.RemoteAccessVpn;
46+
import com.cloud.network.Site2SiteCustomerGateway;
47+
import com.cloud.network.Site2SiteVpnConnection;
48+
import com.cloud.network.Site2SiteVpnGateway;
49+
import com.cloud.network.VirtualRouterProvider;
50+
import com.cloud.network.VpnUser;
51+
import com.cloud.network.VpnUserVO;
52+
import com.cloud.network.dao.LoadBalancerVO;
53+
import com.cloud.network.rules.FirewallRule;
54+
import com.cloud.network.rules.FirewallRuleVO;
55+
import com.cloud.network.rules.HealthCheckPolicy;
56+
import com.cloud.network.rules.LoadBalancer;
57+
import com.cloud.network.rules.PortForwardingRule;
58+
import com.cloud.network.rules.PortForwardingRuleVO;
59+
import com.cloud.network.rules.StaticNatRule;
60+
import com.cloud.network.rules.StickinessPolicy;
3761
import org.apache.cloudstack.acl.ControlledEntity;
3862
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
3963
import org.apache.cloudstack.affinity.AffinityGroup;
@@ -193,25 +217,11 @@
193217
import com.cloud.host.Host;
194218
import com.cloud.host.HostVO;
195219
import com.cloud.hypervisor.HypervisorCapabilities;
196-
import com.cloud.network.GuestVlan;
197-
import com.cloud.network.IpAddress;
198-
import com.cloud.network.Network;
199220
import com.cloud.network.Network.Capability;
200221
import com.cloud.network.Network.Provider;
201222
import com.cloud.network.Network.Service;
202-
import com.cloud.network.NetworkModel;
203-
import com.cloud.network.NetworkProfile;
204223
import com.cloud.network.Networks.IsolationType;
205224
import com.cloud.network.Networks.TrafficType;
206-
import com.cloud.network.PhysicalNetwork;
207-
import com.cloud.network.PhysicalNetworkServiceProvider;
208-
import com.cloud.network.PhysicalNetworkTrafficType;
209-
import com.cloud.network.RemoteAccessVpn;
210-
import com.cloud.network.Site2SiteCustomerGateway;
211-
import com.cloud.network.Site2SiteVpnConnection;
212-
import com.cloud.network.Site2SiteVpnGateway;
213-
import com.cloud.network.VirtualRouterProvider;
214-
import com.cloud.network.VpnUser;
215225
import com.cloud.network.as.AutoScalePolicy;
216226
import com.cloud.network.as.AutoScaleVmGroup;
217227
import com.cloud.network.as.AutoScaleVmProfile;
@@ -223,14 +233,7 @@
223233
import com.cloud.network.dao.NetworkVO;
224234
import com.cloud.network.dao.PhysicalNetworkVO;
225235
import com.cloud.network.router.VirtualRouter;
226-
import com.cloud.network.rules.FirewallRule;
227-
import com.cloud.network.rules.FirewallRuleVO;
228-
import com.cloud.network.rules.HealthCheckPolicy;
229-
import com.cloud.network.rules.LoadBalancer;
230236
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
231-
import com.cloud.network.rules.PortForwardingRule;
232-
import com.cloud.network.rules.StaticNatRule;
233-
import com.cloud.network.rules.StickinessPolicy;
234237
import com.cloud.network.security.SecurityGroup;
235238
import com.cloud.network.security.SecurityGroupVO;
236239
import com.cloud.network.security.SecurityRule;
@@ -3452,147 +3455,149 @@ public SnapshotScheduleResponse createSnapshotScheduleResponse(SnapshotSchedule
34523455
}
34533456

34543457

3455-
@Override
3456-
public UsageRecordResponse createUsageResponse(Usage usageRecord) {
3457-
UsageRecordResponse usageRecResponse = new UsageRecordResponse();
3458-
3459-
Account account = ApiDBUtils.findAccountByIdIncludingRemoved(usageRecord.getAccountId());
3460-
if (account.getType() == Account.ACCOUNT_TYPE_PROJECT) {
3461-
//find the project
3462-
Project project = ApiDBUtils.findProjectByProjectAccountIdIncludingRemoved(account.getId());
3463-
usageRecResponse.setProjectId(project.getUuid());
3464-
usageRecResponse.setProjectName(project.getName());
3465-
} else {
3466-
usageRecResponse.setAccountId(account.getUuid());
3467-
usageRecResponse.setAccountName(account.getAccountName());
3468-
}
3469-
3470-
Domain domain = ApiDBUtils.findDomainById(usageRecord.getDomainId());
3471-
if (domain != null) {
3472-
usageRecResponse.setDomainId(domain.getUuid());
3473-
}
3474-
3475-
if (usageRecord.getZoneId() != null) {
3476-
DataCenter zone = ApiDBUtils.findZoneById(usageRecord.getZoneId());
3477-
if (zone != null) {
3478-
usageRecResponse.setZoneId(zone.getUuid());
3479-
}
3480-
}
3481-
usageRecResponse.setDescription(usageRecord.getDescription());
3482-
usageRecResponse.setUsage(usageRecord.getUsageDisplay());
3483-
usageRecResponse.setUsageType(usageRecord.getUsageType());
3484-
if (usageRecord.getVmInstanceId() != null) {
3485-
VMInstanceVO vm = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getVmInstanceId());
3486-
usageRecResponse.setVirtualMachineId(vm.getUuid());
3487-
}
3488-
usageRecResponse.setVmName(usageRecord.getVmName());
3489-
if (usageRecord.getTemplateId() != null) {
3490-
VMTemplateVO template = ApiDBUtils.findTemplateById(usageRecord.getTemplateId());
3491-
if (template != null) {
3492-
usageRecResponse.setTemplateId(template.getUuid());
3493-
}
3494-
}
3495-
3496-
if(usageRecord.getUsageType() == UsageTypes.RUNNING_VM || usageRecord.getUsageType() == UsageTypes.ALLOCATED_VM){
3497-
ServiceOfferingVO svcOffering = _entityMgr.findByIdIncludingRemoved(ServiceOfferingVO.class, usageRecord.getOfferingId().toString());
3498-
//Service Offering Id
3499-
usageRecResponse.setOfferingId(svcOffering.getUuid());
3500-
//VM Instance ID
3501-
VMInstanceVO vm = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getUsageId().toString());
3502-
usageRecResponse.setUsageId(vm.getUuid());
3503-
//Hypervisor Type
3504-
usageRecResponse.setType(usageRecord.getType());
3505-
3506-
} else if(usageRecord.getUsageType() == UsageTypes.IP_ADDRESS){
3507-
//isSourceNAT
3508-
usageRecResponse.setSourceNat((usageRecord.getType().equals("SourceNat"))?true:false);
3509-
//isSystem
3510-
usageRecResponse.setSystem((usageRecord.getSize() == 1)?true:false);
3511-
//IP Address ID
3512-
IPAddressVO ip = _entityMgr.findByIdIncludingRemoved(IPAddressVO.class, usageRecord.getUsageId().toString());
3513-
usageRecResponse.setUsageId(ip.getUuid());
3514-
3515-
} else if(usageRecord.getUsageType() == UsageTypes.NETWORK_BYTES_SENT || usageRecord.getUsageType() == UsageTypes.NETWORK_BYTES_RECEIVED){
3516-
//Device Type
3517-
usageRecResponse.setType(usageRecord.getType());
3518-
if(usageRecord.getType().equals("DomainRouter")){
3519-
//Domain Router Id
3520-
VMInstanceVO vm = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getUsageId().toString());
3521-
usageRecResponse.setUsageId(vm.getUuid());
3522-
} else {
3523-
//External Device Host Id
3524-
HostVO host = _entityMgr.findByIdIncludingRemoved(HostVO.class, usageRecord.getUsageId().toString());
3525-
usageRecResponse.setUsageId(host.getUuid());
3526-
}
3527-
//Network ID
3528-
NetworkVO network = _entityMgr.findByIdIncludingRemoved(NetworkVO.class, usageRecord.getNetworkId().toString());
3529-
usageRecResponse.setNetworkId(network.getUuid());
3530-
3531-
} else if(usageRecord.getUsageType() == UsageTypes.VOLUME){
3532-
//Volume ID
3533-
VolumeVO volume = _entityMgr.findByIdIncludingRemoved(VolumeVO.class, usageRecord.getUsageId().toString());
3534-
usageRecResponse.setUsageId(volume.getUuid());
3535-
//Volume Size
3536-
usageRecResponse.setSize(usageRecord.getSize());
3537-
//Disk Offering Id
3538-
if(usageRecord.getOfferingId() != null){
3539-
DiskOfferingVO diskOff = _entityMgr.findByIdIncludingRemoved(DiskOfferingVO.class, usageRecord.getOfferingId().toString());
3540-
usageRecResponse.setOfferingId(diskOff.getUuid());
3541-
}
3542-
3543-
} else if(usageRecord.getUsageType() == UsageTypes.TEMPLATE || usageRecord.getUsageType() == UsageTypes.ISO){
3544-
//Template/ISO ID
3545-
VMTemplateVO tmpl = _entityMgr.findByIdIncludingRemoved(VMTemplateVO.class, usageRecord.getUsageId().toString());
3546-
usageRecResponse.setUsageId(tmpl.getUuid());
3547-
//Template/ISO Size
3548-
usageRecResponse.setSize(usageRecord.getSize());
3549-
3550-
} else if(usageRecord.getUsageType() == UsageTypes.SNAPSHOT){
3551-
//Snapshot ID
3552-
SnapshotVO snap = _entityMgr.findByIdIncludingRemoved(SnapshotVO.class, usageRecord.getUsageId().toString());
3553-
usageRecResponse.setUsageId(snap.getUuid());
3554-
//Snapshot Size
3555-
usageRecResponse.setSize(usageRecord.getSize());
3556-
3557-
} else if(usageRecord.getUsageType() == UsageTypes.LOAD_BALANCER_POLICY){
3558-
//Load Balancer Policy ID
3559-
usageRecResponse.setUsageId(usageRecord.getUsageId().toString());
3560-
3561-
} else if(usageRecord.getUsageType() == UsageTypes.PORT_FORWARDING_RULE){
3562-
//Port Forwarding Rule ID
3563-
usageRecResponse.setUsageId(usageRecord.getUsageId().toString());
3564-
3565-
} else if(usageRecord.getUsageType() == UsageTypes.NETWORK_OFFERING){
3566-
//Network Offering Id
3567-
NetworkOfferingVO netOff = _entityMgr.findByIdIncludingRemoved(NetworkOfferingVO.class, usageRecord.getOfferingId().toString());
3568-
usageRecResponse.setOfferingId(netOff.getUuid());
3569-
//is Default
3570-
usageRecResponse.setDefault((usageRecord.getUsageId() == 1)? true:false);
3571-
3572-
} else if(usageRecord.getUsageType() == UsageTypes.VPN_USERS){
3573-
//VPN User ID
3574-
usageRecResponse.setUsageId(usageRecord.getUsageId().toString());
3575-
3576-
} else if(usageRecord.getUsageType() == UsageTypes.SECURITY_GROUP){
3577-
//Security Group Id
3578-
SecurityGroupVO sg = _entityMgr.findByIdIncludingRemoved(SecurityGroupVO.class, usageRecord.getUsageId().toString());
3579-
usageRecResponse.setUsageId(sg.getUuid());
3580-
}
3581-
3582-
if (usageRecord.getRawUsage() != null) {
3583-
DecimalFormat decimalFormat = new DecimalFormat("###########.######");
3584-
usageRecResponse.setRawUsage(decimalFormat.format(usageRecord.getRawUsage()));
3585-
}
3586-
3587-
if (usageRecord.getStartDate() != null) {
3588-
usageRecResponse.setStartDate(getDateStringInternal(usageRecord.getStartDate()));
3589-
}
3590-
if (usageRecord.getEndDate() != null) {
3591-
usageRecResponse.setEndDate(getDateStringInternal(usageRecord.getEndDate()));
3592-
}
3593-
3594-
return usageRecResponse;
3595-
}
3458+
@Override
3459+
public UsageRecordResponse createUsageResponse(Usage usageRecord) {
3460+
UsageRecordResponse usageRecResponse = new UsageRecordResponse();
3461+
3462+
Account account = ApiDBUtils.findAccountByIdIncludingRemoved(usageRecord.getAccountId());
3463+
if (account.getType() == Account.ACCOUNT_TYPE_PROJECT) {
3464+
//find the project
3465+
Project project = ApiDBUtils.findProjectByProjectAccountIdIncludingRemoved(account.getId());
3466+
usageRecResponse.setProjectId(project.getUuid());
3467+
usageRecResponse.setProjectName(project.getName());
3468+
} else {
3469+
usageRecResponse.setAccountId(account.getUuid());
3470+
usageRecResponse.setAccountName(account.getAccountName());
3471+
}
3472+
3473+
Domain domain = ApiDBUtils.findDomainById(usageRecord.getDomainId());
3474+
if (domain != null) {
3475+
usageRecResponse.setDomainId(domain.getUuid());
3476+
}
3477+
3478+
if (usageRecord.getZoneId() != null) {
3479+
DataCenter zone = ApiDBUtils.findZoneById(usageRecord.getZoneId());
3480+
if (zone != null) {
3481+
usageRecResponse.setZoneId(zone.getUuid());
3482+
}
3483+
}
3484+
usageRecResponse.setDescription(usageRecord.getDescription());
3485+
usageRecResponse.setUsage(usageRecord.getUsageDisplay());
3486+
usageRecResponse.setUsageType(usageRecord.getUsageType());
3487+
if (usageRecord.getVmInstanceId() != null) {
3488+
VMInstanceVO vm = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getVmInstanceId());
3489+
usageRecResponse.setVirtualMachineId(vm.getUuid());
3490+
}
3491+
usageRecResponse.setVmName(usageRecord.getVmName());
3492+
if (usageRecord.getTemplateId() != null) {
3493+
VMTemplateVO template = ApiDBUtils.findTemplateById(usageRecord.getTemplateId());
3494+
if (template != null) {
3495+
usageRecResponse.setTemplateId(template.getUuid());
3496+
}
3497+
}
3498+
3499+
if(usageRecord.getUsageType() == UsageTypes.RUNNING_VM || usageRecord.getUsageType() == UsageTypes.ALLOCATED_VM){
3500+
ServiceOfferingVO svcOffering = _entityMgr.findByIdIncludingRemoved(ServiceOfferingVO.class, usageRecord.getOfferingId().toString());
3501+
//Service Offering Id
3502+
usageRecResponse.setOfferingId(svcOffering.getUuid());
3503+
//VM Instance ID
3504+
VMInstanceVO vm = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getUsageId().toString());
3505+
usageRecResponse.setUsageId(vm.getUuid());
3506+
//Hypervisor Type
3507+
usageRecResponse.setType(usageRecord.getType());
3508+
3509+
} else if(usageRecord.getUsageType() == UsageTypes.IP_ADDRESS){
3510+
//isSourceNAT
3511+
usageRecResponse.setSourceNat((usageRecord.getType().equals("SourceNat"))?true:false);
3512+
//isSystem
3513+
usageRecResponse.setSystem((usageRecord.getSize() == 1)?true:false);
3514+
//IP Address ID
3515+
IPAddressVO ip = _entityMgr.findByIdIncludingRemoved(IPAddressVO.class, usageRecord.getUsageId().toString());
3516+
usageRecResponse.setUsageId(ip.getUuid());
3517+
3518+
} else if(usageRecord.getUsageType() == UsageTypes.NETWORK_BYTES_SENT || usageRecord.getUsageType() == UsageTypes.NETWORK_BYTES_RECEIVED){
3519+
//Device Type
3520+
usageRecResponse.setType(usageRecord.getType());
3521+
if(usageRecord.getType().equals("DomainRouter")){
3522+
//Domain Router Id
3523+
VMInstanceVO vm = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getUsageId().toString());
3524+
usageRecResponse.setUsageId(vm.getUuid());
3525+
} else {
3526+
//External Device Host Id
3527+
HostVO host = _entityMgr.findByIdIncludingRemoved(HostVO.class, usageRecord.getUsageId().toString());
3528+
usageRecResponse.setUsageId(host.getUuid());
3529+
}
3530+
//Network ID
3531+
NetworkVO network = _entityMgr.findByIdIncludingRemoved(NetworkVO.class, usageRecord.getNetworkId().toString());
3532+
usageRecResponse.setNetworkId(network.getUuid());
3533+
3534+
} else if(usageRecord.getUsageType() == UsageTypes.VOLUME){
3535+
//Volume ID
3536+
VolumeVO volume = _entityMgr.findByIdIncludingRemoved(VolumeVO.class, usageRecord.getUsageId().toString());
3537+
usageRecResponse.setUsageId(volume.getUuid());
3538+
//Volume Size
3539+
usageRecResponse.setSize(usageRecord.getSize());
3540+
//Disk Offering Id
3541+
if(usageRecord.getOfferingId() != null){
3542+
DiskOfferingVO diskOff = _entityMgr.findByIdIncludingRemoved(DiskOfferingVO.class, usageRecord.getOfferingId().toString());
3543+
usageRecResponse.setOfferingId(diskOff.getUuid());
3544+
}
3545+
3546+
} else if(usageRecord.getUsageType() == UsageTypes.TEMPLATE || usageRecord.getUsageType() == UsageTypes.ISO){
3547+
//Template/ISO ID
3548+
VMTemplateVO tmpl = _entityMgr.findByIdIncludingRemoved(VMTemplateVO.class, usageRecord.getUsageId().toString());
3549+
usageRecResponse.setUsageId(tmpl.getUuid());
3550+
//Template/ISO Size
3551+
usageRecResponse.setSize(usageRecord.getSize());
3552+
3553+
} else if(usageRecord.getUsageType() == UsageTypes.SNAPSHOT){
3554+
//Snapshot ID
3555+
SnapshotVO snap = _entityMgr.findByIdIncludingRemoved(SnapshotVO.class, usageRecord.getUsageId().toString());
3556+
usageRecResponse.setUsageId(snap.getUuid());
3557+
//Snapshot Size
3558+
usageRecResponse.setSize(usageRecord.getSize());
3559+
3560+
} else if(usageRecord.getUsageType() == UsageTypes.LOAD_BALANCER_POLICY){
3561+
//Load Balancer Policy ID
3562+
LoadBalancerVO lb = _entityMgr.findByIdIncludingRemoved(LoadBalancerVO.class, usageRecord.getUsageId().toString());
3563+
usageRecResponse.setUsageId(lb.getUuid());
3564+
} else if(usageRecord.getUsageType() == UsageTypes.PORT_FORWARDING_RULE){
3565+
//Port Forwarding Rule ID
3566+
PortForwardingRuleVO pf = _entityMgr.findByIdIncludingRemoved(PortForwardingRuleVO.class, usageRecord.getUsageId().toString());
3567+
usageRecResponse.setUsageId(pf.getUuid());
3568+
3569+
} else if(usageRecord.getUsageType() == UsageTypes.NETWORK_OFFERING){
3570+
//Network Offering Id
3571+
NetworkOfferingVO netOff = _entityMgr.findByIdIncludingRemoved(NetworkOfferingVO.class, usageRecord.getOfferingId().toString());
3572+
usageRecResponse.setOfferingId(netOff.getUuid());
3573+
//is Default
3574+
usageRecResponse.setDefault((usageRecord.getUsageId() == 1)? true:false);
3575+
3576+
} else if(usageRecord.getUsageType() == UsageTypes.VPN_USERS){
3577+
//VPN User ID
3578+
VpnUserVO vpnUser = _entityMgr.findByIdIncludingRemoved(VpnUserVO.class, usageRecord.getUsageId().toString());
3579+
usageRecResponse.setUsageId(vpnUser.getUuid());
3580+
3581+
} else if(usageRecord.getUsageType() == UsageTypes.SECURITY_GROUP){
3582+
//Security Group Id
3583+
SecurityGroupVO sg = _entityMgr.findByIdIncludingRemoved(SecurityGroupVO.class, usageRecord.getUsageId().toString());
3584+
usageRecResponse.setUsageId(sg.getUuid());
3585+
}
3586+
3587+
if (usageRecord.getRawUsage() != null) {
3588+
DecimalFormat decimalFormat = new DecimalFormat("###########.######");
3589+
usageRecResponse.setRawUsage(decimalFormat.format(usageRecord.getRawUsage()));
3590+
}
3591+
3592+
if (usageRecord.getStartDate() != null) {
3593+
usageRecResponse.setStartDate(getDateStringInternal(usageRecord.getStartDate()));
3594+
}
3595+
if (usageRecord.getEndDate() != null) {
3596+
usageRecResponse.setEndDate(getDateStringInternal(usageRecord.getEndDate()));
3597+
}
3598+
3599+
return usageRecResponse;
3600+
}
35963601

35973602

35983603
public String getDateStringInternal(Date inputDate) {

setup/db/db/schema-410to420.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,8 +1040,10 @@ CREATE VIEW `cloud`.`service_offering_view` AS
10401040

10411041
-- Add "default" field to account/user tables
10421042
ALTER TABLE `cloud`.`account` ADD COLUMN `default` int(1) unsigned NOT NULL DEFAULT '0' COMMENT '1 if account is default';
1043+
ALTER TABLE `cloud_usage`.`account` ADD COLUMN `default` int(1) unsigned NOT NULL DEFAULT '0' COMMENT '1 if account is default';
10431044
ALTER TABLE `cloud`.`user` ADD COLUMN `default` int(1) unsigned NOT NULL DEFAULT '0' COMMENT '1 if user is default';
10441045
UPDATE `cloud`.`account` SET `cloud`.`account`.`default`=1 WHERE id IN (1,2);
1046+
UPDATE `cloud_usage`.`account` SET `default`=1 WHERE id IN (1,2);
10451047
UPDATE `cloud`.`user` SET `cloud`.`user`.`default`=1 WHERE id IN (1,2);
10461048

10471049
ALTER VIEW `cloud`.`user_view` AS

0 commit comments

Comments
 (0)