Function: vRA Machine Attach Disk

by Simon Sparks · 3 April 2026

To use this function add it to the class library file named PluginVRAService.ts

GitHub Repository: https://github.com/SimonSparksUK/Orchestrator

Filename: PluginVRAService.ts

Description: Orchestrator Function to Attach a Disk to a Machine

Public Function: MachineAttachDisk

public MachineAttachDisk(objVraMachine: VraMachine, objVraBlockDevice: VraBlockDevice, strUnitNumber: string, strScsiController: string, objProperties: Properties): VraRequestTracker {

    if (objVraBlockDevice.blockDeviceStatus !== "AVAILABLE") {
        this.objLogger.info("Disk should be in available state");

        return null;
    }
    else {
        let objVraDiskAttachmentSpecification: VraDiskAttachmentSpecification = new VraDiskAttachmentSpecification();
        objVraDiskAttachmentSpecification.blockDeviceId = objVraBlockDevice.id;
        objVraDiskAttachmentSpecification.name = objVraBlockDevice.name;
        objVraDiskAttachmentSpecification.description = objVraBlockDevice.description;
        objVraDiskAttachmentSpecification.unitNumber = strUnitNumber;
        objVraDiskAttachmentSpecification.scsiController = strScsiController;

        objProperties.keys.forEach((strKey: string): void => {
            objVraDiskAttachmentSpecification.putDiskAttachmentPropertiesItem(strKey, objProperties.get(strKey))
        });

        let objVraHost: VraHost = objVraMachine.host;

        let objVraInfrastructureClient: VraInfrastructureClient = objVraHost.createInfrastructureClient();

        // @ts-ignore
        let objVraMachineService: VraMachineService = objVraInfrastructureClient.createMachineService();

        let objVraRequestTracker: VraRequestTracker = objVraMachineService.attachMachineDisk(objVraDiskAttachmentSpecification, objVraMachine.id);

        return objVraRequestTracker;
    }
}
TypeScript

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like