Skip to content

Commit 17a4546

Browse files
committed
refactor and additional data
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
1 parent 53298f2 commit 17a4546

5 files changed

Lines changed: 52 additions & 3 deletions

File tree

plugins/integrations/veeam-control-service/src/main/java/org/apache/cloudstack/veeam/VeeamControlService.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,8 @@ public interface VeeamControlService extends PluggableService, Configurable {
4343
"change-me", "Password for Basic Auth on Veeam Integration REST API server", true);
4444
ConfigKey<String> ServiceAccountId = new ConfigKey<>("Advanced", String.class,
4545
"integration.veeam.control.service.account", "",
46-
"ID of the service account used to perform operations on resources. " +
47-
"Preferably an admin-level account with permissions to access resources across the environment " +
48-
"and optionally assign them to other users.",
46+
"ID of the service account that the Veeam Control Service uses to perform operations on " +
47+
"resources.This account should be a Root-Admin.",
4948
true);
5049
ConfigKey<Boolean> InstanceRestoreAssignOwner = new ConfigKey<>("Advanced", Boolean.class,
5150
"integration.veeam.control.instance.restore.assign.owner",

plugins/integrations/veeam-control-service/src/main/java/org/apache/cloudstack/veeam/api/converter/UserVmJoinVOToVmConverter.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,9 @@ public static Vm toVm(final UserVmJoinVO src,
173173
basePath + ApiRouteHandler.BASE_ROUTE + "/cpuprofiles/" + src.getServiceOfferingUuid(),
174174
src.getServiceOfferingUuid()));
175175

176+
dst.setInstanceId(src.getUuid());
177+
dst.setInstanceName(src.getInstanceName());
178+
dst.setInstanceGroupId(src.getInstanceGroupUuid());
176179
dst.setAccountId(src.getAccountUuid());
177180
dst.setAffinityGroupId(src.getAffinityGroupUuid());
178181
dst.setUserDataId(src.getUserDataUuid());

plugins/integrations/veeam-control-service/src/main/java/org/apache/cloudstack/veeam/api/dto/OvfXmlUtil.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,9 @@ private static void addCloudStackMetadata(Vm vm, UserVmJoinVO vo, StringBuilder
418418
sb.append("<Section xsi:type=\"ovf:CloudStackMetadata_Type\">");
419419
sb.append("<Info>CloudStack specific metadata</Info>");
420420
sb.append("<CloudStack>");
421+
sb.append("<InstanceId>").append(vm.getInstanceId()).append("</InstanceId>");
422+
sb.append("<InstanceName>").append(vm.getInstanceName()).append("</InstanceName>");
423+
sb.append("<InstanceGroupId>").append(vm.getInstanceGroupId()).append("</InstanceGroupId>");
421424
sb.append("<AccountId>").append(vo.getAccountUuid()).append("</AccountId>");
422425
sb.append("<DomainId>").append(vo.getDomainUuid()).append("</DomainId>");
423426
sb.append("<ProjectId>").append(escapeText(vo.getProjectUuid())).append("</ProjectId>");
@@ -799,6 +802,18 @@ private static void updateFromXmlCloudStackMetadataSection(Vm vm, Node metadataS
799802
if (metadataSection == null) {
800803
return;
801804
}
805+
String instanceId = xpathString(xpath, metadataSection, ".//*[local-name()='InstanceId']/text()");
806+
if (StringUtils.isNotBlank(instanceId)) {
807+
vm.setInstanceId(instanceId);
808+
}
809+
String instanceName = xpathString(xpath, metadataSection, ".//*[local-name()='InstanceName']/text()");
810+
if (StringUtils.isNotBlank(instanceName)) {
811+
vm.setInstanceName(instanceName);
812+
}
813+
String instanceGroupId = xpathString(xpath, metadataSection, ".//*[local-name()='InstanceGroupId']/text()");
814+
if (StringUtils.isNotBlank(instanceGroupId)) {
815+
vm.setInstanceGroupId(instanceGroupId);
816+
}
802817
String serviceOfferingId = xpathString(xpath, metadataSection, ".//*[local-name()='ServiceOfferingId']/text()");
803818
if (StringUtils.isNotBlank(serviceOfferingId)) {
804819
vm.setCpuProfile(Ref.of("", serviceOfferingId));

plugins/integrations/veeam-control-service/src/main/java/org/apache/cloudstack/veeam/api/dto/Vm.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ public final class Vm extends BaseDto {
7979
public EmptyElement display = new EmptyElement();
8080

8181
// CloudStack-specific fields
82+
private String instanceId;
83+
private String instanceName;
84+
private String instanceGroupId;
8285
private String accountId;
8386
private String affinityGroupId;
8487
private String userDataId;
@@ -299,6 +302,33 @@ public void setCpuProfile(Ref cpuProfile) {
299302
this.cpuProfile = cpuProfile;
300303
}
301304

305+
@JsonIgnore
306+
public String getInstanceId() {
307+
return instanceId;
308+
}
309+
310+
public void setInstanceId(String instanceId) {
311+
this.instanceId = instanceId;
312+
}
313+
314+
@JsonIgnore
315+
public String getInstanceName() {
316+
return instanceName;
317+
}
318+
319+
public void setInstanceName(String instanceName) {
320+
this.instanceName = instanceName;
321+
}
322+
323+
@JsonIgnore
324+
public String getInstanceGroupId() {
325+
return instanceGroupId;
326+
}
327+
328+
public void setInstanceGroupId(String instanceGroupId) {
329+
this.instanceGroupId = instanceGroupId;
330+
}
331+
302332
@JsonIgnore
303333
public String getAccountId() {
304334
return accountId;

server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2757,6 +2757,8 @@ private Volume orchestrateAttachVolumeToVM(Long vmId, Long volumeId, Long device
27572757
return newVol;
27582758
}
27592759

2760+
@Override
2761+
@ActionEvent(eventType = EventTypes.EVENT_VOLUME_ATTACH, eventDescription = "attaching volume", async = true)
27602762
public Volume attachVolumeToVM(Long vmId, Long volumeId, Long deviceId, Boolean allowAttachForSharedFS) {
27612763
Account caller = CallContext.current().getCallingAccount();
27622764

0 commit comments

Comments
 (0)