[Zope-dev] Re: moment when zope was started.

2005-11-09 Thread Florent Guillaume

Victor Safronovich wrote:

Hello zope-dev!

   How could i find the moment when zope was started in Zope 2.8?
   in  Zope  2.7  was the variable 'Zope.Startup.started', which setted to True 
when
   zope was started.

   But in Zope 2.8 the variable 'Zope2.Startup.started' not changed its value to
   True, because Zope2.Startup.start_zope was never called, instead of that 
called
   Zope2.Startup.run.run function.


What do you suggest? If you feel the attribute 'started' should be removed 
from Zope, because it's unused, please file a new ticket in the Zope collector.


Florent

--
Florent Guillaume, Nuxeo (Paris, France)   CTO, Director of R&D
+33 1 40 33 71 59   http://nuxeo.com   [EMAIL PROTECTED]
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] Re: moment when zope was started.

2005-11-09 Thread Florent Guillaume
If you go to the control panel of a running Zope, you'll see it display 
"Running For" with the correct number of seconds. So there's obviously an 
existing way for the server to know when it was started, just look how the 
control panel does it.


Florent

Victor Safronovich wrote:

VS>How could i find the moment when zope was started in Zope 2.8?
VS>in  Zope  2.7  was the variable 'Zope.Startup.started', which setted to 
True when
VS>zope was started.

VS>But in Zope 2.8 the variable 'Zope2.Startup.started' not changed its 
value to
VS>True, because Zope2.Startup.start_zope was never called, instead of that 
called
VS>Zope2.Startup.run.run function.
   this may be fixed like in attachment.





Index: __init__.py
===
--- __init__.py (revision 39858)
+++ __init__.py (working copy)
@@ -28,13 +28,17 @@
 
 logger = logging.getLogger("Zope")

 started = False
+starter = None
 
 def get_starter():

-check_python_version()
-if sys.platform[:3].lower() == "win":
-return WindowsZopeStarter()
-else:
-return UnixZopeStarter()
+global starter
+if starter is None:
+check_python_version()
+if sys.platform[:3].lower() == "win":
+starter = WindowsZopeStarter()
+else:
+starter = UnixZopeStarter()
+return starter
 
 def start_zope(cfg, debug_handler):

 """The function called by run.py which starts a Zope appserver."""
@@ -47,11 +51,11 @@
 starter.setConfiguration(cfg)
 starter.prepare()
 
-started = True

+starter.start()
 try:
 starter.run()
 finally:
-started = False
+starter.finish()
 
 
 class ZopeStarter:

@@ -59,6 +63,8 @@
 
 Making it a class makes it easier to test.

 """
+started = False
+
 def __init__(self):
 self.event_logger = logging.getLogger()
 # We log events to the root logger, which is backed by a
@@ -81,6 +87,14 @@
 def setConfiguration(self, cfg):
 self.cfg = cfg
 
+def start(self):

+global started
+self.started = started = True
+ 
+def finish(self)

+global started
+self.started = started = False
+
 def prepare(self):
 self.setupInitialLogging()
 self.setupLocale()
Index: run.py
===
--- run.py  (revision 39858)
+++ run.py  (working copy)
@@ -15,11 +15,7 @@
 def run():
 """ Start a Zope instance """
 import Zope2.Startup
-starter = Zope2.Startup.get_starter()
-opts = _setconfig()
-starter.setConfiguration(opts.configroot)
-starter.prepare()
-starter.run()
+Zope2.Startup.start_zope(_setconfig().configroot, None)
 
 def configure(configfile):

 """ Provide an API which allows scripts like zopectl to configure




___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce

 http://mail.zope.org/mailman/listinfo/zope )



--
Florent Guillaume, Nuxeo (Paris, France)   CTO, Director of R&D
+33 1 40 33 71 59   http://nuxeo.com   [EMAIL PROTECTED]
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )