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")



Reply via email to