[bug] consider STANDALONE for the paths
authorIvan Alejandro <ivanalejandro0@gmail.com>
Tue, 6 Oct 2015 17:41:18 +0000 (14:41 -0300)
committerIvan Alejandro <ivanalejandro0@gmail.com>
Wed, 7 Oct 2015 15:11:06 +0000 (12:11 -0300)
Since we need to write a file we have to consider whether we are
running in 'standalone' mode or not to use the right path prefix.

- Related: #7512

changes/bug-7512_use-right-config-path [new file with mode: 0644]
src/leap/common/config/flags.py [new file with mode: 0644]
src/leap/common/events/client.py
src/leap/common/events/txclient.py
src/leap/common/events/zmq_components.py

diff --git a/changes/bug-7512_use-right-config-path b/changes/bug-7512_use-right-config-path
new file mode 100644 (file)
index 0000000..b472431
--- /dev/null
@@ -0,0 +1 @@
+- Consider standalone flag when saving events certificates. Related #7512.
diff --git a/src/leap/common/config/flags.py b/src/leap/common/config/flags.py
new file mode 100644 (file)
index 0000000..6fd43f6
--- /dev/null
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# flags.py
+# Copyright (C) 2015 LEAP
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+"""
+This file is meant to be used to store global flags that affect the
+application.
+
+WARNING: You should NOT use this kind of flags unless you're sure of what
+         you're doing, and someone else tells you that you're right.
+         Most of the times there is a better and safer alternative.
+"""
+
+# The STANDALONE flag is used to:
+#   - use a relative or system wide path to find the configuration files.
+STANDALONE = False
index e38e9d3..60d24bc 100644 (file)
@@ -47,7 +47,7 @@ try:
 except ImportError:
     pass
 
-from leap.common.config import get_path_prefix
+from leap.common.config import flags, get_path_prefix
 from leap.common.zmq_utils import zmq_has_curve
 from leap.common.zmq_utils import maybe_create_and_get_certificates
 from leap.common.zmq_utils import PUBLIC_KEYS_PREFIX
@@ -55,7 +55,6 @@ from leap.common.zmq_utils import PUBLIC_KEYS_PREFIX
 from leap.common.events.errors import CallbackAlreadyRegisteredError
 from leap.common.events.server import EMIT_ADDR
 from leap.common.events.server import REG_ADDR
-from leap.common.events import flags
 from leap.common.events import catalog
 
 
@@ -280,7 +279,7 @@ class EventsClientThread(threading.Thread, EventsClient):
         self._lock = threading.Lock()
         self._initialized = threading.Event()
         self._config_prefix = os.path.join(
-            get_path_prefix(), "leap", "events")
+            get_path_prefix(flags.STANDALONE), "leap", "events")
         self._loop = None
         self._context = None
         self._push = None
index f3c183e..dfd0533 100644 (file)
@@ -35,7 +35,7 @@ from leap.common.events.client import EventsClient
 from leap.common.events.client import configure_client
 from leap.common.events.server import EMIT_ADDR
 from leap.common.events.server import REG_ADDR
-from leap.common.events import catalog, flags
+from leap.common.events import catalog
 
 
 logger = logging.getLogger(__name__)
index f99c754..729ca90 100644 (file)
@@ -36,7 +36,7 @@ try:
 except ImportError:
     pass
 
-from leap.common.config import get_path_prefix
+from leap.common.config import flags, get_path_prefix
 from leap.common.zmq_utils import zmq_has_curve
 from leap.common.zmq_utils import maybe_create_and_get_certificates
 from leap.common.zmq_utils import PUBLIC_KEYS_PREFIX
@@ -64,7 +64,7 @@ class TxZmqComponent(object):
         self._factory = txzmq.ZmqFactory()
         self._factory.registerForShutdown()
         if path_prefix is None:
-            path_prefix = get_path_prefix()
+            path_prefix = get_path_prefix(flags.STANDALONE)
         self._config_prefix = os.path.join(path_prefix, "leap", "events")
         self._connections = []