[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] scripts/qmp/qom-set: Allow setting integer value
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v2] scripts/qmp/qom-set: Allow setting integer value |
Date: |
Sun, 4 Oct 2020 11:46:01 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 |
On 10/4/20 1:55 AM, John Snow wrote:
> 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.
OK.
>
>>>
>>> .. where sensor is a tmp105 device, and temperature is an integer
>>> property.
>>>
>>> Signed-off-by: Jonatan Pålsson <jonatan.p@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"?
I haven't finished the mental 2 -> 3 switch yet :/
>
>>> + except ValueError:
>>> + value = args[1]
>>> else:
>>> usage_error("not enough arguments")
>>>
>>
>