- Timestamp:
- Jul 9, 2012 3:11:38 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/webservice/samples/perl/clienttest.pl
r42041 r42063 53 53 " $cmd startvm <vm>: start the virtual machine named <vm>.\n". 54 54 " $cmd acpipowerbutton <vm>: shutdown of the irtual machine named <vm>.\n"; 55 " $cmd openhd <disk>: open disk image <disk>.\n"; 55 56 exit 0; 56 57 } … … 89 90 $optMode = "list" 90 91 if (!$optMode); 92 93 # SOAP::Lite hacking to make it serialize the enum types we use correctly. 94 # In the long run, this needs to be done either by stubmaker.pl or something 95 # else, because the WSDL clearly says they're restricted strings. Quite silly 96 # that the default behavior is to ignore the parameter and just let the server 97 # use the default value for the type. 98 99 sub SOAP::Serializer::as_LockType 100 { 101 my ($self, $value, $name, $type, $attr) = @_; 102 die "String value expected instead of @{[ref $value]} reference\n" 103 if ref $value; 104 return [ 105 $name, 106 {'xsi:type' => 'vbox:LockType', %$attr}, 107 SOAP::Utils::encode_data($value) 108 ]; 109 } 110 111 sub SOAP::Serializer::as_DeviceType 112 { 113 my ($self, $value, $name, $type, $attr) = @_; 114 die "String value expected instead of @{[ref $value]} reference\n" 115 if ref $value; 116 return [ 117 $name, 118 {'xsi:type' => 'vbox:DeviceType', %$attr}, 119 SOAP::Utils::encode_data($value) 120 ]; 121 } 122 123 sub SOAP::Serializer::as_AccessMode 124 { 125 my ($self, $value, $name, $type, $attr) = @_; 126 die "String value expected instead of @{[ref $value]} reference\n" 127 if ref $value; 128 return [ 129 $name, 130 {'xsi:type' => 'vbox:AccessMode', %$attr}, 131 SOAP::Utils::encode_data($value) 132 ]; 133 } 134 135 ## @todo needs much more error handling, e.g. openhd never complains 91 136 92 137 my $vbox = vboxService->IWebsessionManager_logon("test", "test"); … … 165 210 if (!$session); 166 211 167 my $shared = SOAP::Data->type('vbox:LockType')->name('session')->value('Shared'); 168 vboxService->IMachine_lockMachine($machine, $session, $shared); 212 vboxService->IMachine_lockMachine($machine, $session, 'Shared'); 169 213 170 214 my $console = vboxService->ISession_getConsole($session); … … 178 222 elsif ($optMode eq "openhd") 179 223 { 180 my $medium = vboxService->IVirtualBox_openMedium($vbox, $disk, 3, # DeviceType_HardDisk 181 1, # AccessMode_ReadWrite 182 0, # false 183 "", # empty uuid 184 0, # false 185 ""); #empty uuid 186 } 224 my $medium = vboxService->IVirtualBox_openMedium($vbox, $disk, 225 'HardDisk', 226 'ReadWrite', 227 0); 228 }
Note:
See TracChangeset
for help on using the changeset viewer.