Parcourir la source

[master] Move path resolution stuff to bind10_config

... and don't generate isc/server_common/bind10_server.py from
isc/server_common/bind10_server.py.in. This fixes a builddir vs srcdir
path failure for the isc.server_common module.
Mukund Sivaraman il y a 11 ans
Parent
commit
44af79cc0d

+ 0 - 1
configure.ac

@@ -1471,7 +1471,6 @@ AC_OUTPUT([doc/version.ent
            src/lib/python/isc/notify/tests/notify_out_test
            src/lib/python/isc/notify/tests/notify_out_test
            src/lib/python/isc/log/tests/log_console.py
            src/lib/python/isc/log/tests/log_console.py
            src/lib/python/isc/log_messages/work/__init__.py
            src/lib/python/isc/log_messages/work/__init__.py
-           src/lib/python/isc/server_common/bind10_server.py
            src/lib/dns/gen-rdatacode.py
            src/lib/dns/gen-rdatacode.py
            src/lib/python/bind10_config.py
            src/lib/python/bind10_config.py
            src/lib/cc/session_config.h.pre
            src/lib/cc/session_config.h.pre

+ 25 - 0
src/lib/python/bind10_config.py.in

@@ -17,6 +17,31 @@
 # variables to python scripts and libraries.
 # variables to python scripts and libraries.
 import os
 import os
 
 
+def get_specfile_location(module_name):
+    """Return the path to the module spec file following common convetion.
+
+    This method generates the path commonly used by most BIND 10
+    modules, determined by a well known prefix and the module name.
+
+    A specific module can override this method if it uses a different
+    path for the spec file.
+
+    """
+    # First check if it's running under an 'in-source' environment,
+    # then try commonly used paths and file names.  If found, use it.
+    for ev in ['B10_FROM_SOURCE', 'B10_FROM_BUILD']:
+        if ev in os.environ:
+            specfile = os.environ[ev] + '/src/bin/' + module_name + \
+                       '/' + module_name + '.spec'
+            if os.path.exists(specfile):
+                return specfile
+    # Otherwise, just use the installed path, whether or not it really
+    # exists; leave error handling to the caller.
+    specfile_path = '@datadir@/@PACKAGE@'\
+        .replace('${datarootdir}', '@datarootdir@')\
+        .replace('${prefix}', '@prefix@')
+    return specfile_path + '/' + module_name + '.spec'
+
 def reload():
 def reload():
     # In a function, for testing purposes
     # In a function, for testing purposes
     global BIND10_MSGQ_SOCKET_FILE
     global BIND10_MSGQ_SOCKET_FILE

+ 0 - 1
src/lib/python/isc/server_common/Makefile.am

@@ -7,7 +7,6 @@ python_PYTHON += logger.py
 pythondir = $(pyexecdir)/isc/server_common
 pythondir = $(pyexecdir)/isc/server_common
 
 
 BUILT_SOURCES = $(PYTHON_LOGMSGPKG_DIR)/work/server_common_messages.py
 BUILT_SOURCES = $(PYTHON_LOGMSGPKG_DIR)/work/server_common_messages.py
-BUILT_SOURCES += bind10_server.py
 
 
 nodist_pylogmessage_PYTHON = $(PYTHON_LOGMSGPKG_DIR)/work/server_common_messages.py
 nodist_pylogmessage_PYTHON = $(PYTHON_LOGMSGPKG_DIR)/work/server_common_messages.py
 
 

+ 3 - 27
src/lib/python/isc/server_common/bind10_server.py.in

@@ -18,6 +18,7 @@ import os
 import select
 import select
 import signal
 import signal
 
 
+import bind10_config
 import isc.log
 import isc.log
 import isc.config
 import isc.config
 from isc.server_common.logger import logger
 from isc.server_common.logger import logger
@@ -98,35 +99,10 @@ class BIND10Server:
 
 
         """
         """
         self._mod_cc = isc.config.ModuleCCSession(
         self._mod_cc = isc.config.ModuleCCSession(
-            self._get_specfile_location(), self._config_handler,
-            self._command_handler)
+            bind10_config.get_specfile_location(self.__module_name),
+            self._config_handler, self._command_handler)
         self._mod_cc.start()
         self._mod_cc.start()
 
 
-    def _get_specfile_location(self):
-        """Return the path to the module spec file following common convetion.
-
-        This method generates the path commonly used by most BIND 10 modules,
-        determined by a well known prefix and the module name.
-
-        A specific module can override this method if it uses a different
-        path for the spec file.
-
-        """
-        # First check if it's running under an 'in-source' environment,
-        # then try commonly used paths and file names.  If found, use it.
-        for ev in ['B10_FROM_SOURCE', 'B10_FROM_BUILD']:
-            if ev in os.environ:
-                specfile = os.environ[ev] + '/src/bin/' + self.__module_name +\
-                    '/' + self.__module_name + '.spec'
-                if os.path.exists(specfile):
-                    return specfile
-        # Otherwise, just use the installed path, whether or not it really
-        # exists; leave error handling to the caller.
-        specfile_path = '${datarootdir}/bind10'\
-            .replace('${datarootdir}', '${prefix}/share')\
-            .replace('${prefix}', '/Users/jinmei/opt')
-        return specfile_path + '/' + self.__module_name + '.spec'
-
     def _trigger_shutdown(self):
     def _trigger_shutdown(self):
         """Initiate a shutdown sequence.
         """Initiate a shutdown sequence.