[PATCH 3/7] python/machine: add instance disambiguator to default nickname

John Snow posted 7 patches 4 years, 2 months ago
Maintainers: John Snow <jsnow@redhat.com>, Cleber Rosa <crosa@redhat.com>, Eduardo Habkost <ehabkost@redhat.com>
[PATCH 3/7] python/machine: add instance disambiguator to default nickname
Posted by John Snow 4 years, 2 months ago
If you create two instances of QEMUMachine(), they'll both create the
same nickname by default -- which is not that helpful.

Luckily, they'll both create unique temporary directories ... but due to
user configuration, they may share logging and sockfile directories,
meaning two instances can collide. The Python logging will also be quite
confusing, with no differentiation between the two instances.

Add an instance disambiguator (The memory address of the instance) to
the default nickname to foolproof this in all cases.

Signed-off-by: John Snow <jsnow@redhat.com>
---
 python/qemu/machine/machine.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py
index ea9e07805d..ad529fd92a 100644
--- a/python/qemu/machine/machine.py
+++ b/python/qemu/machine/machine.py
@@ -133,7 +133,7 @@ def __init__(self,
         self._wrapper = wrapper
         self._qmp_timer = qmp_timer
 
-        self._name = name or "qemu-%d" % os.getpid()
+        self._name = name or f"qemu-{os.getpid()}-{id(self):02x}"
         self._temp_dir: Optional[str] = None
         self._base_temp_dir = base_temp_dir
         self._sock_dir = sock_dir
-- 
2.31.1


Re: [PATCH 3/7] python/machine: add instance disambiguator to default nickname
Posted by Willian Rampazzo 4 years, 2 months ago
On Thu, Nov 18, 2021 at 5:49 PM John Snow <jsnow@redhat.com> wrote:
>
> If you create two instances of QEMUMachine(), they'll both create the
> same nickname by default -- which is not that helpful.
>
> Luckily, they'll both create unique temporary directories ... but due to
> user configuration, they may share logging and sockfile directories,
> meaning two instances can collide. The Python logging will also be quite
> confusing, with no differentiation between the two instances.
>
> Add an instance disambiguator (The memory address of the instance) to
> the default nickname to foolproof this in all cases.
>
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>  python/qemu/machine/machine.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>

Reviewed-by: Willian Rampazzo <willianr@redhat.com>


Re: [PATCH 3/7] python/machine: add instance disambiguator to default nickname
Posted by Philippe Mathieu-Daudé 4 years, 2 months ago
On 11/18/21 21:46, John Snow wrote:
> If you create two instances of QEMUMachine(), they'll both create the
> same nickname by default -- which is not that helpful.
> 
> Luckily, they'll both create unique temporary directories ... but due to
> user configuration, they may share logging and sockfile directories,
> meaning two instances can collide. The Python logging will also be quite
> confusing, with no differentiation between the two instances.
> 
> Add an instance disambiguator (The memory address of the instance) to
> the default nickname to foolproof this in all cases.
> 
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>  python/qemu/machine/machine.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

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