Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
2fc49eb
b&r: phase1 all commits melded
yadvr Jun 29, 2018
b62eacb
B&R: Phase 2 commits melded
yadvr Jul 2, 2018
8833ddd
phase2: fix build/dependency issues with winrm
yadvr Aug 16, 2018
660cfa7
Improvements and refactors
nvazquez Aug 23, 2018
240ff82
make API args consistent with arg/types
yadvr Aug 23, 2018
2fe6c44
bugfix: allow listing of vmbackups of removed VMs
yadvr Aug 24, 2018
bceb29f
Bugfixes: import destroyed VM, check if VM is stopped only for existi…
nvazquez Aug 27, 2018
0bf0fbf
Other round of bugfixes
nvazquez Aug 28, 2018
4c1afcf
fix NPE in case usage metrics updation got a removed vmbackup
yadvr Aug 27, 2018
820b445
implemented access/privilege checks based on the access on the VM
yadvr Aug 28, 2018
5c2a460
don't allow reimport of imported policy and don't allow non-root user…
yadvr Aug 28, 2018
f33ab55
Fix CE298
nvazquez Aug 29, 2018
506e8ec
CE-302: restoring a root disk to another VM from a backup shouldnot add
yadvr Aug 29, 2018
49f0f29
CE300 etc: do access check for vmbackup's VM and allow restoring of a…
yadvr Aug 29, 2018
8723698
CE-304: usage type/id should be of the VM
yadvr Aug 29, 2018
8a70f23
better job deletion logic
yadvr Aug 29, 2018
3361ea0
CE-305: don't allow backup policy deletion if vmbackups use it
yadvr Aug 29, 2018
3abc3b8
Fix CE-303
nvazquez Aug 29, 2018
c76c290
Fix CE-298
nvazquez Aug 29, 2018
7da1799
detect volume including removed, for target VM don't search removed VM
yadvr Aug 30, 2018
c5142ca
Add error cause on exception
nvazquez Aug 31, 2018
fa24f8c
Merge remote-tracking branch 'origin/master' into bckuprecframework
yadvr Jun 11, 2019
a1a7d85
stabilise branch
yadvr Jun 11, 2019
54224c6
Merge remote-tracking branch 'origin/master' into bckuprecframework
yadvr Jun 19, 2019
165e33e
npe fix
yadvr Jun 19, 2019
42ff2c3
Merge branch 'master' into bckuprecframework
yadvr Jun 20, 2019
c9b4ad1
Merge remote-tracking branch 'origin/master' into bckuprecframework
yadvr Aug 1, 2019
45a8300
Merge remote-tracking branch 'origin/master' into bckuprecframework
yadvr Aug 5, 2019
764a8ea
Merge remote-tracking branch 'origin/master' into bckuprecframework
yadvr Aug 7, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
CE-304: usage type/id should be of the VM
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
  • Loading branch information
yadvr committed Aug 29, 2018
commit 8723698769a18c23f5f4555a697d0609e82e5b48
20 changes: 4 additions & 16 deletions server/src/main/java/com/cloud/api/ApiResponseHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -141,9 +141,7 @@
import org.apache.cloudstack.api.response.VpnUsersResponse;
import org.apache.cloudstack.api.response.ZoneResponse;
import org.apache.cloudstack.backup.BackupPolicy;
import org.apache.cloudstack.backup.BackupPolicyVO;
import org.apache.cloudstack.backup.VMBackup;
import org.apache.cloudstack.backup.VMBackupVO;
import org.apache.cloudstack.config.Configuration;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
Expand Down Expand Up @@ -3496,7 +3494,7 @@ public UsageRecordResponse createUsageResponse(Usage usageRecord, Map<String, Se
resourceId = sg.getId();
usageRecResponse.setUsageId(sg.getUuid());
}
} else if (usageRecord.getUsageType() == UsageTypes.VM_SNAPSHOT) {
} else if (usageRecord.getUsageType() == UsageTypes.VM_SNAPSHOT || usageRecord.getUsageType() == UsageTypes.VM_BACKUP) {
VMInstanceVO vm = _entityMgr.findByIdIncludingRemoved(VMInstanceVO.class, usageRecord.getVmInstanceId().toString());
resourceType = ResourceObjectType.UserVm;
if (vm != null) {
Expand All @@ -3505,22 +3503,12 @@ public UsageRecordResponse createUsageResponse(Usage usageRecord, Map<String, Se
usageRecResponse.setUsageId(vm.getUuid());
}
usageRecResponse.setSize(usageRecord.getSize());
if (usageRecord.getVirtualSize() != null) {
usageRecResponse.setVirtualSize(usageRecord.getVirtualSize());
}
if (usageRecord.getOfferingId() != null) {
usageRecResponse.setOfferingId(usageRecord.getOfferingId().toString());
}
} else if (usageRecord.getUsageType() == UsageTypes.VM_BACKUP) {
VMBackupVO backup = _entityMgr.findByIdIncludingRemoved(VMBackupVO.class, usageRecord.getUsageId().toString());
resourceType = ResourceObjectType.VMBackup;
if (backup != null) {
usageRecResponse.setUsageId(backup.getUuid());
BackupPolicyVO policy = _entityMgr.findByIdIncludingRemoved(BackupPolicyVO.class, String.valueOf(backup.getPolicyId()));
if (policy != null) {
usageRecResponse.setOfferingId(policy.getUuid());
}
resourceId = backup.getId();
}
usageRecResponse.setSize(usageRecord.getSize());
usageRecResponse.setVirtualSize(usageRecord.getVirtualSize());
}

if(resourceTagResponseMap != null && resourceTagResponseMap.get(resourceId + ":" + resourceType) != null) {
Expand Down
43 changes: 23 additions & 20 deletions server/src/main/java/com/cloud/usage/UsageServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,28 @@
// under the License.
package com.cloud.usage;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;

import javax.inject.Inject;
import javax.naming.ConfigurationException;

import org.apache.cloudstack.api.command.admin.usage.GenerateUsageRecordsCmd;
import org.apache.cloudstack.api.command.admin.usage.GetUsageRecordsCmd;
import org.apache.cloudstack.api.command.admin.usage.RemoveRawUsageRecordsCmd;
import org.apache.cloudstack.api.response.UsageTypeResponse;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.usage.Usage;
import org.apache.cloudstack.usage.UsageService;
import org.apache.cloudstack.usage.UsageTypes;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;

import com.cloud.configuration.Config;
import com.cloud.domain.DomainVO;
import com.cloud.domain.dao.DomainDao;
Expand Down Expand Up @@ -55,26 +77,6 @@
import com.cloud.utils.db.TransactionLegacy;
import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.dao.VMInstanceDao;
import org.apache.cloudstack.api.command.admin.usage.GenerateUsageRecordsCmd;
import org.apache.cloudstack.api.command.admin.usage.GetUsageRecordsCmd;
import org.apache.cloudstack.api.command.admin.usage.RemoveRawUsageRecordsCmd;
import org.apache.cloudstack.api.response.UsageTypeResponse;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.usage.Usage;
import org.apache.cloudstack.usage.UsageService;
import org.apache.cloudstack.usage.UsageTypes;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;

import javax.inject.Inject;
import javax.naming.ConfigurationException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;

@Component
public class UsageServiceImpl extends ManagerBase implements UsageService, Manager {
Expand Down Expand Up @@ -267,6 +269,7 @@ public Pair<List<? extends Usage>, Integer> getUsageRecords(GetUsageRecordsCmd c
case UsageTypes.RUNNING_VM:
case UsageTypes.ALLOCATED_VM:
case UsageTypes.VM_SNAPSHOT:
case UsageTypes.VM_BACKUP:
VMInstanceVO vm = _vmDao.findByUuidIncludingRemoved(usageId);
if (vm != null) {
usageDbId = vm.getId();
Expand Down