mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-6472 (4.3 specific) listUsageRecords: Pull information from removed items as well, fixing NPEs/Null UUIDs with usage API calls.
Signed-off-by: Sebastien Goasguen <runseb@gmail.com>
This commit is contained in:
parent
5ccde5de93
commit
e8047e11db
|
|
@ -3318,11 +3318,11 @@ public class ApiResponseHelper implements ResponseGenerator {
|
|||
}
|
||||
|
||||
if(usageRecord.getUsageType() == UsageTypes.RUNNING_VM || usageRecord.getUsageType() == UsageTypes.ALLOCATED_VM){
|
||||
ServiceOfferingVO svcOffering = _entityMgr.findById(ServiceOfferingVO.class, usageRecord.getOfferingId().toString());
|
||||
ServiceOfferingVO svcOffering = _entityMgr.findByIdIncludingRemoved(ServiceOfferingVO.class, usageRecord.getOfferingId().toString());
|
||||
//Service Offering Id
|
||||
usageRecResponse.setOfferingId(svcOffering.getUuid());
|
||||
//VM Instance ID
|
||||
VMInstanceVO vm = _entityMgr.findById(VMInstanceVO.class, usageRecord.getUsageId().toString());
|
||||
VMInstanceVO vm = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getUsageId().toString());
|
||||
if (vm != null) {
|
||||
usageRecResponse.setUsageId(vm.getUuid());
|
||||
}
|
||||
|
|
@ -3335,7 +3335,7 @@ public class ApiResponseHelper implements ResponseGenerator {
|
|||
//isSystem
|
||||
usageRecResponse.setSystem((usageRecord.getSize() == 1)?true:false);
|
||||
//IP Address ID
|
||||
IPAddressVO ip = _entityMgr.findById(IPAddressVO.class, usageRecord.getUsageId().toString());
|
||||
IPAddressVO ip = _entityMgr.findByIdIncludingRemoved(IPAddressVO.class, usageRecord.getUsageId().toString());
|
||||
if (ip != null) {
|
||||
usageRecResponse.setUsageId(ip.getUuid());
|
||||
}
|
||||
|
|
@ -3345,19 +3345,19 @@ public class ApiResponseHelper implements ResponseGenerator {
|
|||
usageRecResponse.setType(usageRecord.getType());
|
||||
if(usageRecord.getType().equals("DomainRouter")){
|
||||
//Domain Router Id
|
||||
VMInstanceVO vm = _entityMgr.findById(VMInstanceVO.class, usageRecord.getUsageId().toString());
|
||||
VMInstanceVO vm = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getUsageId().toString());
|
||||
if (vm != null) {
|
||||
usageRecResponse.setUsageId(vm.getUuid());
|
||||
}
|
||||
} else {
|
||||
//External Device Host Id
|
||||
HostVO host = _entityMgr.findById(HostVO.class, usageRecord.getUsageId().toString());
|
||||
HostVO host = _entityMgr.findByIdIncludingRemoved(HostVO.class, usageRecord.getUsageId().toString());
|
||||
if (host != null) {
|
||||
usageRecResponse.setUsageId(host.getUuid());
|
||||
}
|
||||
}
|
||||
//Network ID
|
||||
NetworkVO network = _entityMgr.findById(NetworkVO.class, usageRecord.getNetworkId().toString());
|
||||
NetworkVO network = _entityMgr.findByIdIncludingRemoved(NetworkVO.class, usageRecord.getNetworkId().toString());
|
||||
if (network != null) {
|
||||
usageRecResponse.setNetworkId(network.getUuid());
|
||||
}
|
||||
|
|
@ -3367,19 +3367,19 @@ public class ApiResponseHelper implements ResponseGenerator {
|
|||
//Device Type
|
||||
usageRecResponse.setType(usageRecord.getType());
|
||||
//VM Instance Id
|
||||
VMInstanceVO vm = _entityMgr.findById(VMInstanceVO.class, usageRecord.getVmInstanceId().toString());
|
||||
VMInstanceVO vm = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getVmInstanceId().toString());
|
||||
if (vm != null) {
|
||||
usageRecResponse.setVirtualMachineId(vm.getUuid());
|
||||
}
|
||||
//Volume ID
|
||||
VolumeVO volume = _entityMgr.findById(VolumeVO.class, usageRecord.getUsageId().toString());
|
||||
VolumeVO volume = _entityMgr.findByIdIncludingRemoved(VolumeVO.class, usageRecord.getUsageId().toString());
|
||||
if (volume != null) {
|
||||
usageRecResponse.setUsageId(volume.getUuid());
|
||||
}
|
||||
|
||||
} else if(usageRecord.getUsageType() == UsageTypes.VOLUME){
|
||||
//Volume ID
|
||||
VolumeVO volume = _entityMgr.findById(VolumeVO.class, usageRecord.getUsageId().toString());
|
||||
VolumeVO volume = _entityMgr.findByIdIncludingRemoved(VolumeVO.class, usageRecord.getUsageId().toString());
|
||||
if (volume != null) {
|
||||
usageRecResponse.setUsageId(volume.getUuid());
|
||||
}
|
||||
|
|
@ -3387,13 +3387,13 @@ public class ApiResponseHelper implements ResponseGenerator {
|
|||
usageRecResponse.setSize(usageRecord.getSize());
|
||||
//Disk Offering Id
|
||||
if(usageRecord.getOfferingId() != null){
|
||||
DiskOfferingVO diskOff = _entityMgr.findById(DiskOfferingVO.class, usageRecord.getOfferingId().toString());
|
||||
DiskOfferingVO diskOff = _entityMgr.findByIdIncludingRemoved(DiskOfferingVO.class, usageRecord.getOfferingId().toString());
|
||||
usageRecResponse.setOfferingId(diskOff.getUuid());
|
||||
}
|
||||
|
||||
} else if(usageRecord.getUsageType() == UsageTypes.TEMPLATE || usageRecord.getUsageType() == UsageTypes.ISO){
|
||||
//Template/ISO ID
|
||||
VMTemplateVO tmpl = _entityMgr.findById(VMTemplateVO.class, usageRecord.getUsageId().toString());
|
||||
VMTemplateVO tmpl = _entityMgr.findByIdIncludingRemoved(VMTemplateVO.class, usageRecord.getUsageId().toString());
|
||||
if (tmpl != null) {
|
||||
usageRecResponse.setUsageId(tmpl.getUuid());
|
||||
}
|
||||
|
|
@ -3407,7 +3407,7 @@ public class ApiResponseHelper implements ResponseGenerator {
|
|||
|
||||
} else if(usageRecord.getUsageType() == UsageTypes.SNAPSHOT){
|
||||
//Snapshot ID
|
||||
SnapshotVO snap = _entityMgr.findById(SnapshotVO.class, usageRecord.getUsageId().toString());
|
||||
SnapshotVO snap = _entityMgr.findByIdIncludingRemoved(SnapshotVO.class, usageRecord.getUsageId().toString());
|
||||
if (snap != null) {
|
||||
usageRecResponse.setUsageId(snap.getUuid());
|
||||
}
|
||||
|
|
@ -3416,39 +3416,39 @@ public class ApiResponseHelper implements ResponseGenerator {
|
|||
|
||||
} else if(usageRecord.getUsageType() == UsageTypes.LOAD_BALANCER_POLICY){
|
||||
//Load Balancer Policy ID
|
||||
LoadBalancerVO lb = _entityMgr.findById(LoadBalancerVO.class, usageRecord.getUsageId().toString());
|
||||
LoadBalancerVO lb = _entityMgr.findByIdIncludingRemoved(LoadBalancerVO.class, usageRecord.getUsageId().toString());
|
||||
if(lb != null){
|
||||
usageRecResponse.setUsageId(lb.getUuid());
|
||||
}
|
||||
} else if(usageRecord.getUsageType() == UsageTypes.PORT_FORWARDING_RULE){
|
||||
//Port Forwarding Rule ID
|
||||
PortForwardingRuleVO pf = _entityMgr.findById(PortForwardingRuleVO.class, usageRecord.getUsageId().toString());
|
||||
PortForwardingRuleVO pf = _entityMgr.findByIdIncludingRemoved(PortForwardingRuleVO.class, usageRecord.getUsageId().toString());
|
||||
if(pf != null){
|
||||
usageRecResponse.setUsageId(pf.getUuid());
|
||||
}
|
||||
|
||||
} else if(usageRecord.getUsageType() == UsageTypes.NETWORK_OFFERING){
|
||||
//Network Offering Id
|
||||
NetworkOfferingVO netOff = _entityMgr.findById(NetworkOfferingVO.class, usageRecord.getOfferingId().toString());
|
||||
NetworkOfferingVO netOff = _entityMgr.findByIdIncludingRemoved(NetworkOfferingVO.class, usageRecord.getOfferingId().toString());
|
||||
usageRecResponse.setOfferingId(netOff.getUuid());
|
||||
//is Default
|
||||
usageRecResponse.setDefault((usageRecord.getUsageId() == 1)? true:false);
|
||||
|
||||
} else if(usageRecord.getUsageType() == UsageTypes.VPN_USERS){
|
||||
//VPN User ID
|
||||
VpnUserVO vpnUser = _entityMgr.findById(VpnUserVO.class, usageRecord.getUsageId().toString());
|
||||
VpnUserVO vpnUser = _entityMgr.findByIdIncludingRemoved(VpnUserVO.class, usageRecord.getUsageId().toString());
|
||||
if(vpnUser != null){
|
||||
usageRecResponse.setUsageId(vpnUser.getUuid());
|
||||
}
|
||||
|
||||
} else if(usageRecord.getUsageType() == UsageTypes.SECURITY_GROUP){
|
||||
//Security Group Id
|
||||
SecurityGroupVO sg = _entityMgr.findById(SecurityGroupVO.class, usageRecord.getUsageId().toString());
|
||||
SecurityGroupVO sg = _entityMgr.findByIdIncludingRemoved(SecurityGroupVO.class, usageRecord.getUsageId().toString());
|
||||
if (sg != null) {
|
||||
usageRecResponse.setUsageId(sg.getUuid());
|
||||
}
|
||||
} else if(usageRecord.getUsageType() == UsageTypes.VM_SNAPSHOT){
|
||||
VMInstanceVO vm = _entityMgr.findById(VMInstanceVO.class, usageRecord.getVmInstanceId().toString());
|
||||
VMInstanceVO vm = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getVmInstanceId().toString());
|
||||
if (vm != null) {
|
||||
usageRecResponse.setVmName(vm.getInstanceName());
|
||||
usageRecResponse.setUsageId(vm.getUuid());
|
||||
|
|
|
|||
|
|
@ -69,6 +69,8 @@ public interface EntityManager {
|
|||
*/
|
||||
public <T> List<? extends T> list(Class<T> entityType);
|
||||
|
||||
public <T, K extends Serializable> T findByIdIncludingRemoved(Class<T> entityType, K id);
|
||||
|
||||
public <T, K extends Serializable> void remove(Class<T> entityType, K id);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue