[Kimchi-devel] [PATCH v2] [Kimchi 1/4] Move unix socket files from /tmp to /run

Jose Ricardo Ziviani joserz at linux.vnet.ibm.com
Wed Mar 16 17:25:16 UTC 2016


 - /run is a temporary fs (tmpfs) more adequate to store this kind of
   file.

Signed-off-by: Jose Ricardo Ziviani <joserz at linux.vnet.ibm.com>
---
 i18n.py          |  1 +
 model/vms.py     | 11 ++++++++++-
 serialconsole.py |  5 +++--
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/i18n.py b/i18n.py
index 707b74b..7abae66 100644
--- a/i18n.py
+++ b/i18n.py
@@ -135,6 +135,7 @@ messages = {
     "KCHVM0078E": _("Memory or Maximum Memory value is higher than amount supported by the host: %(memHost)sMiB."),
     "KCHVM0079E": _("Memory or Maximum Memory value is higher than maximum amount recommended: %(value)sTiB"),
     "KCHVM0080E": _("Cannot update Maximum Memory when guest is running."),
+    "KCHVM0081E": _("Impossible to create %(dir)s directory."),
 
     "KCHVMHDEV0001E": _("VM %(vmid)s does not contain directly assigned host device %(dev_name)s."),
     "KCHVMHDEV0002E": _("The host device %(dev_name)s is not allowed to directly assign to VM."),
diff --git a/model/vms.py b/model/vms.py
index 195c879..e86f8b8 100644
--- a/model/vms.py
+++ b/model/vms.py
@@ -1467,8 +1467,17 @@ class VMModel(object):
         if not self._vm_check_serial(name):
             raise OperationFailed("KCHVM0076E", {'name': name})
 
+        if not os.path.isdir(serialconsole.BASE_DIRECTORY):
+            try:
+                os.mkdir(serialconsole.BASE_DIRECTORY)
+
+            except OSError as e:
+                raise OperationFailed("KCHVM0081E",
+                                      {'dir': serialconsole.BASE_DIRECTORY})
+
         websocket.add_proxy_token(name.encode('utf-8')+'-console',
-                                  '/tmp/%s' % name.encode('utf-8'), True)
+                                  os.path.join(serialconsole.BASE_DIRECTORY,
+                                               name.encode('utf-8')), True)
 
         try:
             self._serial_procs.append(
diff --git a/serialconsole.py b/serialconsole.py
index 1eb48b1..fa6f6b4 100644
--- a/serialconsole.py
+++ b/serialconsole.py
@@ -35,6 +35,7 @@ from wok.plugins.kimchi import model
 SOCKET_QUEUE_BACKLOG = 0
 DEFAULT_TIMEOUT = 120  # seconds
 CTRL_Q = '\x11'
+BASE_DIRECTORY = '/run'
 
 
 class SocketServer(Process):
@@ -61,13 +62,13 @@ class SocketServer(Process):
     def __init__(self, guest_name, URI):
         """Constructs a unix socket server.
 
-        Listens to connections on /tmp/<guest name>.
+        Listens to connections on /run/<guest name>.
         """
         Process.__init__(self)
 
         self._guest_name = guest_name
         self._uri = URI
-        self._server_addr = '/tmp/%s' % guest_name
+        self._server_addr = os.path.join(BASE_DIRECTORY, guest_name)
         if os.path.exists(self._server_addr):
             wok_log.error('Cannot connect to %s due to an existing '
                           'connection', guest_name)
-- 
1.9.1




More information about the Kimchi-devel mailing list