diff mbox series

[3/5] python/qemu: qmp: Make accept()'s timeout configurable

Message ID 20191227134101.244496-4-wainersm@redhat.com
State New
Headers show
Series python/qemu: qmp: Fix, delint and improvements | expand

Commit Message

Wainer dos Santos Moschetta Dec. 27, 2019, 1:40 p.m. UTC
Currently the timeout of QEMUMonitorProtocol.accept() is
hard-coded to 15 seconds. This added the parameter `timeout`
so the value can be configured by the user.

Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
---
 python/qemu/qmp.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Philippe Mathieu-Daudé Dec. 27, 2019, 7:07 p.m. UTC | #1
On 12/27/19 2:40 PM, Wainer dos Santos Moschetta wrote:
> Currently the timeout of QEMUMonitorProtocol.accept() is
> hard-coded to 15 seconds. This added the parameter `timeout`
> so the value can be configured by the user.
> 
> Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
> ---
>   python/qemu/qmp.py | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/python/qemu/qmp.py b/python/qemu/qmp.py
> index f4e04a6683..914b8c6774 100644
> --- a/python/qemu/qmp.py
> +++ b/python/qemu/qmp.py
> @@ -154,16 +154,17 @@ class QEMUMonitorProtocol:
>               return self.__negotiate_capabilities()
>           return None
>   
> -    def accept(self):
> +    def accept(self, timeout=15):
>           """
>           Await connection from QMP Monitor and perform capabilities negotiation.
>   
> +        @param timeout (float): timeout in seconds. Default is 15.

Maybe name with unit: 'timeout_s'.

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

>           @return QMP greeting dict
>           @raise OSError on socket connection errors
>           @raise QMPConnectError if the greeting is not received
>           @raise QMPCapabilitiesError if fails to negotiate capabilities
>           """
> -        self.__sock.settimeout(15)
> +        self.__sock.settimeout(timeout)
>           self.__sock, _ = self.__sock.accept()
>           self.__sockfile = self.__sock.makefile()
>           return self.__negotiate_capabilities()
>
John Snow Jan. 9, 2020, 12:18 a.m. UTC | #2
On 12/27/19 8:40 AM, Wainer dos Santos Moschetta wrote:
> Currently the timeout of QEMUMonitorProtocol.accept() is
> hard-coded to 15 seconds. This added the parameter `timeout`
> so the value can be configured by the user.
> 
> Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
> ---
>  python/qemu/qmp.py | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/python/qemu/qmp.py b/python/qemu/qmp.py
> index f4e04a6683..914b8c6774 100644
> --- a/python/qemu/qmp.py
> +++ b/python/qemu/qmp.py
> @@ -154,16 +154,17 @@ class QEMUMonitorProtocol:
>              return self.__negotiate_capabilities()
>          return None
>  
> -    def accept(self):
> +    def accept(self, timeout=15):
>          """
>          Await connection from QMP Monitor and perform capabilities negotiation.
>  
> +        @param timeout (float): timeout in seconds. Default is 15.

What happens if I pass -1 or 0? Please document the valid range for this
parameter.

>          @return QMP greeting dict
>          @raise OSError on socket connection errors
>          @raise QMPConnectError if the greeting is not received
>          @raise QMPCapabilitiesError if fails to negotiate capabilities
>          """
> -        self.__sock.settimeout(15)
> +        self.__sock.settimeout(timeout)
>          self.__sock, _ = self.__sock.accept()
>          self.__sockfile = self.__sock.makefile()
>          return self.__negotiate_capabilities()
>
Philippe Mathieu-Daudé Jan. 30, 2020, 10:35 p.m. UTC | #3
On 1/9/20 1:18 AM, John Snow wrote:
> On 12/27/19 8:40 AM, Wainer dos Santos Moschetta wrote:
>> Currently the timeout of QEMUMonitorProtocol.accept() is
>> hard-coded to 15 seconds. This added the parameter `timeout`
>> so the value can be configured by the user.
>>
>> Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
>> ---
>>   python/qemu/qmp.py | 5 +++--
>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/python/qemu/qmp.py b/python/qemu/qmp.py
>> index f4e04a6683..914b8c6774 100644
>> --- a/python/qemu/qmp.py
>> +++ b/python/qemu/qmp.py
>> @@ -154,16 +154,17 @@ class QEMUMonitorProtocol:
>>               return self.__negotiate_capabilities()
>>           return None
>>   
>> -    def accept(self):
>> +    def accept(self, timeout=15):

Since it is a float, it is clearer to use 15.0 as default IMHO.

>>           """
>>           Await connection from QMP Monitor and perform capabilities negotiation.
>>   
>> +        @param timeout (float): timeout in seconds. Default is 15.
> 
> What happens if I pass -1 or 0? Please document the valid range for this
> parameter.
> 
>>           @return QMP greeting dict
>>           @raise OSError on socket connection errors
>>           @raise QMPConnectError if the greeting is not received
>>           @raise QMPCapabilitiesError if fails to negotiate capabilities
>>           """
>> -        self.__sock.settimeout(15)
>> +        self.__sock.settimeout(timeout)
>>           self.__sock, _ = self.__sock.accept()
>>           self.__sockfile = self.__sock.makefile()
>>           return self.__negotiate_capabilities()
>>
> 
>
diff mbox series

Patch

diff --git a/python/qemu/qmp.py b/python/qemu/qmp.py
index f4e04a6683..914b8c6774 100644
--- a/python/qemu/qmp.py
+++ b/python/qemu/qmp.py
@@ -154,16 +154,17 @@  class QEMUMonitorProtocol:
             return self.__negotiate_capabilities()
         return None
 
-    def accept(self):
+    def accept(self, timeout=15):
         """
         Await connection from QMP Monitor and perform capabilities negotiation.
 
+        @param timeout (float): timeout in seconds. Default is 15.
         @return QMP greeting dict
         @raise OSError on socket connection errors
         @raise QMPConnectError if the greeting is not received
         @raise QMPCapabilitiesError if fails to negotiate capabilities
         """
-        self.__sock.settimeout(15)
+        self.__sock.settimeout(timeout)
         self.__sock, _ = self.__sock.accept()
         self.__sockfile = self.__sock.makefile()
         return self.__negotiate_capabilities()