So I got everything working. Can list vm's, get their configs, start them and stop them, pause them and save them... but for the life of me I can not figure out how to mount a floppy disk to a running windows vm and have the machine realize that a floppy image has been placed into its floppy drive. Here is the code:
Code: Select all
<?php
require_once('vboxServiceWrappers.php');
//Connect to webservice
$connection = new SoapClient("vboxwebService.wsdl", array('location' => "http://localhost:18083/", 'trace' => 1));
//Logon to webservice
$websessionManager = new IWebsessionManager($connection);
$virtualbox = $websessionManager->logon("null","null");
$newMachine = $virtualbox->findMachine("Windows XP");
$floppyImg = $virtualbox->getFloppyImage("ca7d3782-6c20-4106-a78d-d40b54a00355");
$floppyImg->lockRead();
$newMachine->mountMedium("Floppy Controller", 0, 0, "ca7d3782-6c20-4106-a78d-d40b54a00355", false);
$fff = $newMachine->getMediumAttachment("Floppy Controller", 0, 0);
echo $fff->getMedium()->name . "<br/>";
$medias = $newMachine->getMediumAttachments();
foreach($medias as $ma) {
echo "=============== <br/>";
echo "media attach cnt: " . $ma->getController() . "<br/>";
echo "media attach port: " . $ma->getPort() . "<br/>";
echo "media attach device: " . $ma->getDevice() . "<br/>";
echo "media attach type: " . $ma->getType() . "<br/>";
$med = $ma->getMedium();
if($med->handle != null) {
echo "med: " . $med->name . "<br/>";
echo "med: " . $med->getFormat() . "<br/>";
echo "med: " . $med->getDeviceType() . "<br/>";
echo "med: " . $med->getType() . "<br/>";
echo "med: " . $med->getState() . "<br/>";
echo "med: " . $med->getLocation() . "<br/>";
echo "med: " . $med->getSize() . "<br/>";
echo "med: " . $med->getLogicalSize() . "<br/>";
echo "med: " . $med->getReadOnly() . "<br/>";
echo "med: " . $med->getHostDrive() . "<br/>";
} else {
echo "null media <br/>";
}
}
$websessionManager->logoff($virtualbox->handle);
?>
Dos3.3.img
===============
media attach cnt: IDE Controller
media attach port: 0
media attach device: 0
media attach type: HardDisk
med: {dfb1310a-5d30-443d-ad72-6e274f6848b4}.vmdk
med: VMDK
med: HardDisk
med: Normal
med: LockedWrite
med: /Volumes/Virtualization/VirtualBox/Machines/Windows XP/Snapshots/{dfb1310a-5d30-443d-ad72-6e274f6848b4}.vmdk
med: 2091712512
med: 4096
med:
med:
===============
media attach cnt: IDE Controller
media attach port: 0
media attach device: 1
media attach type: DVD
null media
===============
media attach cnt: IDE Controller
media attach port: 1
media attach device: 0
media attach type: DVD
med: VBoxGuestAdditions.iso
med: RAW
med: DVD
med: Writethrough
med: LockedRead
med: /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso
med: 33470464
med: 31
med:
med:
===============
media attach cnt: Floppy Controller
media attach port: 0
media attach device: 0
media attach type: Floppy
med: Dos3.3.img
med: RAW
med: Floppy
med: Writethrough
med: LockedRead
med: /Volumes/Virtualization/VM Install Images/Dos3.3.img
med: 1474560
med: 1
med:
med:
It seems that the Virtualbox sees that a mount was issued, as I can see it in the GUI drop down with a checkmark next to the name, but the machine xml file does not get updated nor does the VM realize that a floppy has been inserted. So what am I doing wrong?
thanks,
michael