[oe-commits] [bitbake] 05/17: cooker: Allow changes in PRSERV_HOST to be responded to

git at git.openembedded.org git at git.openembedded.org
Thu Aug 31 16:56:12 UTC 2017


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository bitbake.

commit 971272e84f4efe7ebd0037e164ba54f013a2a34e
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Thu Aug 31 17:09:54 2017 +0100

    cooker: Allow changes in PRSERV_HOST to be responded to
    
    When we reload the configuration, PRSERV_HOST can change. Therefore
    restart the PR Server depending on the new configuration at reparse.
    
    Note that the server has to be started from the right process, it
    can't be in the UI which shuts down as that shutdown triggers a shutdown
    of its children and the PR Server shuts down too. This is why we need
    pre_serve() which ensures its executed in the right context.
    
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 lib/bb/cooker.py | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 5ee1c0a..a2c1b40 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -379,6 +379,13 @@ class BBCooker:
         self.baseconfig_valid = True
         self.parsecache_valid = False
 
+    def handlePRServ(self):
+        # Setup a PR Server based on the new configuration
+        try:
+            self.prhost = prserv.serv.auto_start(self.data)
+        except prserv.serv.PRServiceConfigError as e:
+            bb.fatal("Unable to start PR Server, exitting")
+
     def enableDataTracking(self):
         self.configuration.tracking = True
         if hasattr(self, "data"):
@@ -1468,6 +1475,7 @@ class BBCooker:
         if not self.baseconfig_valid:
             logger.debug(1, "Reloading base configuration data")
             self.initConfigurationData()
+            self.handlePRServ()
 
     # This is called for all async commands when self.state != running
     def updateCache(self):
@@ -1571,14 +1579,9 @@ class BBCooker:
         return pkgs_to_build
 
     def pre_serve(self):
-        # Empty the environment. The environment will be populated as
-        # necessary from the data store.
-        #bb.utils.empty_environment()
-        try:
-            self.prhost = prserv.serv.auto_start(self.data)
-        except prserv.serv.PRServiceConfigError:
-            bb.event.fire(CookerExit(), self.data)
-            self.state = state.error
+        # We now are in our own process so we can call this here.
+        # PRServ exits if its parent process exits
+        self.handlePRServ()
         return
 
     def post_serve(self):

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list