Skip to content

Commit 5c88af2

Browse files
committed
Merge remote-tracking branch 'upstream/main'
2 parents 55bafe1 + ea36568 commit 5c88af2

5 files changed

Lines changed: 23 additions & 3 deletions

File tree

api/src/main/java/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import org.apache.cloudstack.api.response.SecurityGroupResponse;
4242
import org.apache.cloudstack.api.response.ServiceOfferingResponse;
4343
import org.apache.cloudstack.api.response.TemplateResponse;
44+
import org.apache.cloudstack.api.response.UserDataResponse;
4445
import org.apache.cloudstack.api.response.UserResponse;
4546
import org.apache.cloudstack.api.response.UserVmResponse;
4647
import org.apache.cloudstack.api.response.VpcResponse;
@@ -149,6 +150,9 @@ public class ListVMsCmd extends BaseListRetrieveOnlyResourceCountCmd implements
149150
@Parameter(name = ApiConstants.USER_DATA, type = CommandType.BOOLEAN, description = "Whether to return the VMs' user data or not. By default, user data will not be returned.", since = "4.18.0.0")
150151
private Boolean showUserData;
151152

153+
@Parameter(name = ApiConstants.USER_DATA_ID, type = CommandType.UUID, entityType = UserDataResponse.class, required = false, description = "the instances by userdata", since = "4.20.1")
154+
private Long userdataId;
155+
152156
/////////////////////////////////////////////////////
153157
/////////////////// Accessors ///////////////////////
154158
/////////////////////////////////////////////////////
@@ -243,6 +247,10 @@ protected boolean isViewDetailsEmpty() {
243247
return CollectionUtils.isEmpty(viewDetails);
244248
}
245249

250+
public Long getUserdataId() {
251+
return userdataId;
252+
}
253+
246254
public EnumSet<VMDetails> getDetails() throws InvalidParameterValueException {
247255
if (isViewDetailsEmpty()) {
248256
if (_queryService.ReturnVmStatsOnVmList.value()) {

plugins/backup/veeam/src/main/java/org/apache/cloudstack/backup/VeeamBackupProvider.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,9 @@ public boolean assignVMToBackupOffering(final VirtualMachine vm, final BackupOff
191191
public boolean removeVMFromBackupOffering(final VirtualMachine vm) {
192192
final VeeamClient client = getClient(vm.getDataCenterId());
193193
final VmwareDatacenter vmwareDC = findVmwareDatacenterForVM(vm);
194+
if (vm.getBackupExternalId() == null) {
195+
throw new CloudRuntimeException("The VM does not have a backup job assigned.");
196+
}
194197
try {
195198
if (!client.removeVMFromVeeamJob(vm.getBackupExternalId(), vm.getInstanceName(), vmwareDC.getVcenterHost())) {
196199
logger.warn("Failed to remove VM from Veeam Job id: " + vm.getBackupExternalId());

server/src/main/java/com/cloud/api/query/QueryManagerImpl.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1305,6 +1305,7 @@ private Pair<List<Long>, Integer> searchForUserVMIdsAndCount(ListVMsCmd cmd) {
13051305
Long storageId = null;
13061306
StoragePoolVO pool = null;
13071307
Long userId = cmd.getUserId();
1308+
Long userdataId = cmd.getUserdataId();
13081309
Map<String, String> tags = cmd.getTags();
13091310

13101311
boolean isAdmin = false;
@@ -1377,6 +1378,10 @@ private Pair<List<Long>, Integer> searchForUserVMIdsAndCount(ListVMsCmd cmd) {
13771378
userVmSearchBuilder.and("templateId", userVmSearchBuilder.entity().getTemplateId(), Op.EQ);
13781379
}
13791380

1381+
if (userdataId != null) {
1382+
userVmSearchBuilder.and("userdataId", userVmSearchBuilder.entity().getUserDataId(), Op.EQ);
1383+
}
1384+
13801385
if (hypervisor != null) {
13811386
userVmSearchBuilder.and("hypervisorType", userVmSearchBuilder.entity().getHypervisorType(), Op.EQ);
13821387
}
@@ -1569,6 +1574,10 @@ private Pair<List<Long>, Integer> searchForUserVMIdsAndCount(ListVMsCmd cmd) {
15691574
userVmSearchCriteria.setParameters("templateId", templateId);
15701575
}
15711576

1577+
if (userdataId != null) {
1578+
userVmSearchCriteria.setParameters("userdataId", userdataId);
1579+
}
1580+
15721581
if (display != null) {
15731582
userVmSearchCriteria.setParameters("display", display);
15741583
}

server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -394,10 +394,10 @@ public boolean removeVMFromBackupOffering(final Long vmId, final boolean forced)
394394

395395
boolean result = false;
396396
try {
397+
result = backupProvider.removeVMFromBackupOffering(vm);
397398
vm.setBackupOfferingId(null);
398-
vm.setBackupExternalId(null);
399399
vm.setBackupVolumes(null);
400-
result = backupProvider.removeVMFromBackupOffering(vm);
400+
vm.setBackupExternalId(null);
401401
if (result && backupProvider.willDeleteBackupsOnOfferingRemoval()) {
402402
final List<Backup> backups = backupDao.listByVmId(null, vm.getId());
403403
for (final Backup backup : backups) {

ui/src/config/section/compute.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -925,7 +925,7 @@ export default {
925925
related: [{
926926
name: 'vm',
927927
title: 'label.instances',
928-
param: 'userdata'
928+
param: 'userdataid'
929929
}],
930930
tabs: [
931931
{

0 commit comments

Comments
 (0)