Hi James/vbox'ers,
I have upgraded to the latest release of VirtualBox (3.1.6) and I am also using
the latest version of the vboxServiceWrappers.php from the 3.1.6 build.
Seems all your changes have successfully made it in and all is great ... well
... except for one item: IPerformanceCollectorCollection.
This is, as you might remember the tricky case where the queryMetricsData
method returns an array of data one of which is a collection of objects.
In the most recent version, you have made a few changes that introduce some
problems.
In the latest version, you have defaulted the _interfaceName element of the
VBox_ManagedObjectCollection class to null rather than 'VBox_ManagedObject' as
you did before. Since the queryMetricsData method cannot determine the class
(seems vboxwebsrv is not setting it?), the VBox_ManagedObjectCollection class
attempts to instantiate a new object using an empty class name which results in
the following error:
PHP Fatal error: Class name must be a valid object or a string in
/home/jvcd/lib/vboxServiceWrappers.php on line 97.
As there is no longer the method 'setInterfaceName', (I was not using it
before), I am unable to 'force' the class ...
I'm OK with any approach you take (changing the default _interfaceName or
adding a setInterfaceName method). Personally I prefer the setInterfaceMethod.
To work around the problem ... I've re-added the setInterfaceName on my local
copy ... Then once the queryMetricsData result is returned, I use the
setInterfaceName method to set the class name to ''VBox_ManagedObject'.
In reality, for the objects returned by the queryMetricsData, all that is
required is the 'handle'. This is necessary so that if multiple statistics are
returned for multiple machines (more efficient that way), you will be able to
determine which stats are for which machine.
I've attached a trace-dump ... note at the bottom of the trace you will see the
_interfaceName element is empty:
[handles:protected] => Array ( [0] =>
ccf984b29176e999-00000000000000c7 [1] =>
ccf984b29176e999-00000000000000c7 [2] =>
ccf984b29176e999-00000000000000c7 [3] =>
ccf984b29176e999-00000000000000c7 [4] =>
ccf984b29176e999-00000000000000c7 [5] =>
ccf984b29176e999-00000000000000c7 [6] =>
ccf984b29176e999-00000000000000c7 )
[_interfaceName:protected] =>
Thanks,Joe
03/28/2010 08:30:38 - 13591 - TRACE - jvcstatd - (jvcstatd.php-[getVBoxStats]):
SETUP: perfDataSetup: IPerformanceMetricCollection Object
(
[_interfaceName:protected] => IPerformanceMetric
[connection:protected] => SoapClient Object
(
[location] => http://192.168.0.200:18083/
[trace] => 1
[_connection_timeout] => 1
[_soap_version] => 1
[sdl] => Resource id #72
[httpurl] => Resource id #123
[__last_request_headers] => POST / HTTP/1.1
Host: 192.168.0.200:18083
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.2.11
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Content-Length: 495
[__last_response_headers] => HTTP/1.1 200 OK
Server: gSOAP/2.7
Content-Type: text/xml; charset=utf-8
Content-Length: 521
Connection: close
[__last_request] => <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://www.virtualbox.org/">
<SOAP-ENV:Body>
<ns1:IPerformanceCollector_setupMetrics>
<_this>ccf984b29176e999-00000000000000c6</_this>
<metricNames>CPU/Load/User,CPU/Load/Kernel,CPU/Load/Idle,CPU/MHz,RAM/Usage/Total,RAM/Usage/Used,RAM/Usage/Free</metricNames>
<period>5</period>
<count>1</count>
</ns1:IPerformanceCollector_setupMetrics>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
[__last_response] => <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:vbox="http://www.virtualbox.org/">
<SOAP-ENV:Body>
<vbox:IPerformanceCollector_setupMetricsResponse>
<returnval>ccf984b29176e999-00000000000000c8</returnval>
</vbox:IPerformanceCollector_setupMetricsResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
)
[handles:protected] => Array
(
[0] => ccf984b29176e999-00000000000000c8
)
)
03/28/2010 08:30:38 - 13591 - TRACE - jvcstatd - (jvcstatd.php-[getVBoxStats]):
ENABLE: perfDataEnable: IPerformanceMetricCollection Object
(
[_interfaceName:protected] => IPerformanceMetric
[connection:protected] => SoapClient Object
(
[location] => http://192.168.0.200:18083/
[trace] => 1
[_connection_timeout] => 1
[_soap_version] => 1
[sdl] => Resource id #72
[httpurl] => Resource id #126
[__last_request_headers] => POST / HTTP/1.1
Host: 192.168.0.200:18083
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.2.11
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Content-Length: 463
[__last_response_headers] => HTTP/1.1 200 OK
Server: gSOAP/2.7
Content-Type: text/xml; charset=utf-8
Content-Length: 523
Connection: close
[__last_request] => <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://www.virtualbox.org/">
<SOAP-ENV:Body>
<ns1:IPerformanceCollector_enableMetrics>
<_this>ccf984b29176e999-00000000000000c6</_this>
<metricNames>CPU/Load/User,CPU/Load/Kernel,CPU/Load/Idle,CPU/MHz,RAM/Usage/Total,RAM/Usage/Used,RAM/Usage/Free</metricNames>
</ns1:IPerformanceCollector_enableMetrics>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
[__last_response] => <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:vbox="http://www.virtualbox.org/">
<SOAP-ENV:Body>
<vbox:IPerformanceCollector_enableMetricsResponse>
<returnval>ccf984b29176e999-00000000000000c9</returnval>
</vbox:IPerformanceCollector_enableMetricsResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
)
[handles:protected] => Array
(
[0] => ccf984b29176e999-00000000000000c9
)
)
03/28/2010 08:30:38 - 13591 - TRACE - jvcstatd - (jvcstatd.php-[getVBoxStats]):
perfData: Array
(
[0] => Array
(
[0] => 0
)
[1] => Array
(
[0] => CPU/Load/User
[1] => CPU/Load/Kernel
[2] => CPU/Load/Idle
[3] => CPU/MHz
[4] => RAM/Usage/Total
[5] => RAM/Usage/Used
[6] => RAM/Usage/Free
)
[2] => VBox_ManagedObjectCollection Object
(
[connection:protected] => SoapClient Object
(
[location] => http://192.168.0.200:18083/
[trace] => 1
[_connection_timeout] => 1
[_soap_version] => 1
[sdl] => Resource id #72
[httpurl] => Resource id #129
[__last_request_headers] => POST / HTTP/1.1
Host: 192.168.0.200:18083
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.2.11
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Content-Length: 469
[__last_response_headers] => HTTP/1.1 200 OK
Server: gSOAP/2.7
Content-Type: text/xml; charset=utf-8
Content-Length: 2644
Connection: close
[__last_request] => <?xml version="1.0"
encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://www.virtualbox.org/">
<SOAP-ENV:Body>
<ns1:IPerformanceCollector_queryMetricsData>
<_this>ccf984b29176e999-00000000000000c6</_this>
<metricNames>CPU/Load/User,CPU/Load/Kernel,CPU/Load/Idle,CPU/MHz,RAM/Usage/Total,RAM/Usage/Used,RAM/Usage/Free</metricNames>
</ns1:IPerformanceCollector_queryMetricsData>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
[__last_response] => <?xml version="1.0"
encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:vbox="http://www.virtualbox.org/">
<SOAP-ENV:Body>
<vbox:IPerformanceCollector_queryMetricsDataResponse>
<returnMetricNames>CPU/Load/User</returnMetricNames>
<returnMetricNames>CPU/Load/Kernel</returnMetricNames>
<returnMetricNames>CPU/Load/Idle</returnMetricNames>
<returnMetricNames>CPU/MHz</returnMetricNames>
<returnMetricNames>RAM/Usage/Total</returnMetricNames>
<returnMetricNames>RAM/Usage/Used</returnMetricNames>
<returnMetricNames>RAM/Usage/Free</returnMetricNames>
<returnObjects>ccf984b29176e999-00000000000000c7</returnObjects>
<returnObjects>ccf984b29176e999-00000000000000c7</returnObjects>
<returnObjects>ccf984b29176e999-00000000000000c7</returnObjects>
<returnObjects>ccf984b29176e999-00000000000000c7</returnObjects>
<returnObjects>ccf984b29176e999-00000000000000c7</returnObjects>
<returnObjects>ccf984b29176e999-00000000000000c7</returnObjects>
<returnObjects>ccf984b29176e999-00000000000000c7</returnObjects>
<returnUnits>%</returnUnits>
<returnUnits>%</returnUnits>
<returnUnits>%</returnUnits>
<returnUnits>MHz</returnUnits>
<returnUnits>kB</returnUnits>
<returnUnits>kB</returnUnits>
<returnUnits>kB</returnUnits>
<returnScales>1000</returnScales>
<returnScales>1000</returnScales>
<returnScales>1000</returnScales>
<returnScales>1</returnScales>
<returnScales>1</returnScales>
<returnScales>1</returnScales>
<returnScales>1</returnScales>
<returnSequenceNumbers>0</returnSequenceNumbers>
<returnSequenceNumbers>3648260</returnSequenceNumbers>
<returnSequenceNumbers>0</returnSequenceNumbers>
<returnSequenceNumbers>0</returnSequenceNumbers>
<returnSequenceNumbers>3648260</returnSequenceNumbers>
<returnSequenceNumbers>22413768</returnSequenceNumbers>
<returnSequenceNumbers>0</returnSequenceNumbers>
<returnDataIndices>0</returnDataIndices>
<returnDataIndices>0</returnDataIndices>
<returnDataIndices>0</returnDataIndices>
<returnDataIndices>0</returnDataIndices>
<returnDataIndices>0</returnDataIndices>
<returnDataIndices>0</returnDataIndices>
<returnDataIndices>0</returnDataIndices>
<returnDataLengths>0</returnDataLengths>
<returnDataLengths>0</returnDataLengths>
<returnDataLengths>0</returnDataLengths>
<returnDataLengths>0</returnDataLengths>
<returnDataLengths>0</returnDataLengths>
<returnDataLengths>0</returnDataLengths>
<returnDataLengths>0</returnDataLengths>
<returnval>0</returnval>
</vbox:IPerformanceCollector_queryMetricsDataResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
)
[handles:protected] => Array
(
[0] => ccf984b29176e999-00000000000000c7
[1] => ccf984b29176e999-00000000000000c7
[2] => ccf984b29176e999-00000000000000c7
[3] => ccf984b29176e999-00000000000000c7
[4] => ccf984b29176e999-00000000000000c7
[5] => ccf984b29176e999-00000000000000c7
[6] => ccf984b29176e999-00000000000000c7
)
[_interfaceName:protected] =>
)
[3] => Array
(
[0] => %
[1] => %
[2] => %
[3] => MHz
[4] => kB
[5] => kB
[6] => kB
)
[4] => Array
(
[0] => 1000
[1] => 1000
[2] => 1000
[3] => 1
[4] => 1
[5] => 1
[6] => 1
)
[5] => Array
(
[0] => 0
[1] => 3648260
[2] => 0
[3] => 0
[4] => 3648260
[5] => 22413768
[6] => 0
)
[6] => Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 0
)
[7] => Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 0
)
)
03/28/2010 08:30:38 - 13591 - TRACE - jvcstatd - (jvcstatd.php-[getVBoxStats]):
perfCollection: VBox_ManagedObjectCollection Object
(
[connection:protected] => SoapClient Object
(
[location] => http://192.168.0.200:18083/
[trace] => 1
[_connection_timeout] => 1
[_soap_version] => 1
[sdl] => Resource id #72
[httpurl] => Resource id #129
[__last_request_headers] => POST / HTTP/1.1
Host: 192.168.0.200:18083
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.2.11
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Content-Length: 469
[__last_response_headers] => HTTP/1.1 200 OK
Server: gSOAP/2.7
Content-Type: text/xml; charset=utf-8
Content-Length: 2644
Connection: close
[__last_request] => <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://www.virtualbox.org/">
<SOAP-ENV:Body>
<ns1:IPerformanceCollector_queryMetricsData>
<_this>ccf984b29176e999-00000000000000c6</_this>
<metricNames>CPU/Load/User,CPU/Load/Kernel,CPU/Load/Idle,CPU/MHz,RAM/Usage/Total,RAM/Usage/Used,RAM/Usage/Free</metricNames>
</ns1:IPerformanceCollector_queryMetricsData>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
[__last_response] => <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:vbox="http://www.virtualbox.org/">
<SOAP-ENV:Body>
<vbox:IPerformanceCollector_queryMetricsDataResponse>
<returnMetricNames>CPU/Load/User</returnMetricNames>
<returnMetricNames>CPU/Load/Kernel</returnMetricNames>
<returnMetricNames>CPU/Load/Idle</returnMetricNames>
<returnMetricNames>CPU/MHz</returnMetricNames>
<returnMetricNames>RAM/Usage/Total</returnMetricNames>
<returnMetricNames>RAM/Usage/Used</returnMetricNames>
<returnMetricNames>RAM/Usage/Free</returnMetricNames>
<returnObjects>ccf984b29176e999-00000000000000c7</returnObjects>
<returnObjects>ccf984b29176e999-00000000000000c7</returnObjects>
<returnObjects>ccf984b29176e999-00000000000000c7</returnObjects>
<returnObjects>ccf984b29176e999-00000000000000c7</returnObjects>
<returnObjects>ccf984b29176e999-00000000000000c7</returnObjects>
<returnObjects>ccf984b29176e999-00000000000000c7</returnObjects>
<returnObjects>ccf984b29176e999-00000000000000c7</returnObjects>
<returnUnits>%</returnUnits>
<returnUnits>%</returnUnits>
<returnUnits>%</returnUnits>
<returnUnits>MHz</returnUnits>
<returnUnits>kB</returnUnits>
<returnUnits>kB</returnUnits>
<returnUnits>kB</returnUnits>
<returnScales>1000</returnScales>
<returnScales>1000</returnScales>
<returnScales>1000</returnScales>
<returnScales>1</returnScales>
<returnScales>1</returnScales>
<returnScales>1</returnScales>
<returnScales>1</returnScales>
<returnSequenceNumbers>0</returnSequenceNumbers>
<returnSequenceNumbers>3648260</returnSequenceNumbers>
<returnSequenceNumbers>0</returnSequenceNumbers>
<returnSequenceNumbers>0</returnSequenceNumbers>
<returnSequenceNumbers>3648260</returnSequenceNumbers>
<returnSequenceNumbers>22413768</returnSequenceNumbers>
<returnSequenceNumbers>0</returnSequenceNumbers>
<returnDataIndices>0</returnDataIndices>
<returnDataIndices>0</returnDataIndices>
<returnDataIndices>0</returnDataIndices>
<returnDataIndices>0</returnDataIndices>
<returnDataIndices>0</returnDataIndices>
<returnDataIndices>0</returnDataIndices>
<returnDataIndices>0</returnDataIndices>
<returnDataLengths>0</returnDataLengths>
<returnDataLengths>0</returnDataLengths>
<returnDataLengths>0</returnDataLengths>
<returnDataLengths>0</returnDataLengths>
<returnDataLengths>0</returnDataLengths>
<returnDataLengths>0</returnDataLengths>
<returnDataLengths>0</returnDataLengths>
<returnval>0</returnval>
</vbox:IPerformanceCollector_queryMetricsDataResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
)
[handles:protected] => Array
(
[0] => ccf984b29176e999-00000000000000c7
[1] => ccf984b29176e999-00000000000000c7
[2] => ccf984b29176e999-00000000000000c7
[3] => ccf984b29176e999-00000000000000c7
[4] => ccf984b29176e999-00000000000000c7
[5] => ccf984b29176e999-00000000000000c7
[6] => ccf984b29176e999-00000000000000c7
)
[_interfaceName:protected] =>
)
_______________________________________________
vbox-dev mailing list
[email protected]
http://vbox.innotek.de/mailman/listinfo/vbox-dev