On 10/3/20 1:33 PM, Philippe Mathieu-Daudé wrote:
Hi Jonatan,
On 10/2/20 10:52 PM, Jonatan Pålsson wrote:
If the value appears to be an integer, parse it as such.
This allows the following:
qmp/qom-set -s ~/qmp.sock sensor.temperature 20000
Maybe instead:
Fix the following error:
$ scripts/qmp/qom-set -s ~/qmp.sock sensor.temperature 20000
Traceback (most recent call last):
File "scripts/qmp/qom-set", line 66, in <module>
print(srv.command('qom-set', path=path, property=prop, value=value))
File "scripts/qmp/../../python/qemu/qmp.py", line 274, in command
raise QMPResponseError(ret)
qemu.qmp.QMPResponseError: Invalid parameter type for 'temperature',
expected: integer
No, this is just relaying the error that QMP returned. QMP is telling
you it doesn't want string data for this parameter. His diagnosis of the
problem is accurate.
.. where sensor is a tmp105 device, and temperature is an integer
property.
Signed-off-by: Jonatan Pålsson <jonata...@gmail.com>
---
scripts/qmp/qom-set | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/scripts/qmp/qom-set b/scripts/qmp/qom-set
index 240a78187f..49eebe4924 100755
--- a/scripts/qmp/qom-set
+++ b/scripts/qmp/qom-set
@@ -56,7 +56,10 @@ if len(args) > 1:
path, prop = args[0].rsplit('.', 1)
except:
usage_error("invalid format for path/property/value")
- value = args[1]
+ try:
+ value = int(args[1])
Maybe 'long' is safer?
This is a Python patch, what's a "long"?
+ except ValueError:
+ value = args[1]
else:
usage_error("not enough arguments")