Re: [Zope-dev] Separate staging and development areas for a product
I think it's worth having a completely separate Zope. Otherwise there's no way to separate development and staging versions of filesystem based products. You might be interested in ZSyncer, or ZCVSFolder for synchronization. -steve On Monday, April 15, 2002, at 12:12 PM, Ted Skolnick wrote: > Hi, > I have a Zope product in development. I want to setup a staging area > for > stable releases and I am not sure how to go about it. I could install > another Zope in a different directory, but it seems like I should be > able to > do it with the Zope instance I've got. Any thoughts, or pointers? > > My project contains ZSQL methods and external methods, if that is > significant. It seems like the external methods could be a rub, since > they > exist as files in the Zope installation directories (specifically in the > Extensions directory). I don't know how I could have multiple > versions of > these files, one for development, one for staging all within one > instance of > Zope. > > One lesser question, newbie question... how do I control the URL to > reach > the methods exposed in my project. For example, I have a product called > myproj, with my method. The only URL I can get to work is this > http://myserver/Control_Panel/Products/myproj/mymethod > > I'd like to have a URL that looks like this... > http://myserver/myproj/mymethod without the Control_Panel bit. > > thanks, > Ted > > > > ___ > Zope-Dev maillist - [EMAIL PROTECTED] > http://lists.zope.org/mailman/listinfo/zope-dev > ** No cross posts or HTML encoding! ** > (Related lists - > http://lists.zope.org/mailman/listinfo/zope-announce > http://lists.zope.org/mailman/listinfo/zope ) ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Future of ZPatterns
Hi Marcello, Wow.. sounds like a neat book. ;-) Seriously, Phil Eby has suggested that there will be some sort of migration helpers to move from ZPatterns to TransWarp (www.eby-sarna.com): http://www.eby-sarna.com/mailman/listinfo/transwarp http://cvs.eby-sarna.com/TransWarp/ Also.. Zope3 will have a some kind of Zope2 compatability layer, so in principal, it should be possible to move ZPatterns apps to Zope2 using the compatability layer. I, for one, have a slew of ZPatterns apps out there, so I will be motivated to do something about migration. -steve On Monday, April 15, 2002, at 02:11 PM, Marcello Parra Martins wrote: > Hello, > > I'm new to Zope. I'm studing 'Zope Web Application Develepment and > Content Management' book. > Many of the examples of the book uses ZPatterns. > I saw in past messages that ZPatterns will not be supported in Zope3. > > Is this true ?? If I create a product based on it, will it be a lost of > time ??? > > > Thanks, > > Marcello Parra > > ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
[Zope-dev] ZEO 1.0 final release
I am happy to announce that ZEO 1.0 final was released today. Zope Enterprise Objects (ZEO) provides the ability for multiple processes to use a single Zope Object Database. ZEO turns the Zope object system in a distributed architecture, allowing multiple processors, machines, and networks to act as one website. For more information and downloads, see the ZEO web page at http://www.zope.org/Products/ZEO. ZEO 1.0 will work with Zope 2.2 or higher and with StandaloneZODB 1.0. The 1.0 release comes after one year of beta testing, which results in several important bug fixes and increased stability. ZEO 1.0 has been used in production environment supporting hundreds of requests per second. See CHANGES.txt for details about bugs fixed. Jeremy ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] External methods in Extensions folder under Product
where it says "Module" in the external method edit screen you need to say . and not just jens On Monday, April 15, 2002, at 02:56 , Ted Skolnick wrote: > Hi, > I currently have my external methods under the Extensions folder within > the > Zope installation (i.e. /usr/local/Zope/Extensions ). I read that I could > place them in Extensions folders within specific installed products. I'd > much prefer that, but can't seem to get it working. > > What I did: > I have a product I created through the management interface called > "myproduct". > I created a directory on the files system like this... > /usr/local/Zope/lib/python/Products/myproduct/Extensions > > Inside there I put my test.py module, and try to add it as an external > method to that product. I get a message that test.py can't be found. > If I > put it in the general Extensions folder for the Zope install, all is well. > > Any ideas? > > thanks, > Ted > > > > ___ > Zope-Dev maillist - [EMAIL PROTECTED] > http://lists.zope.org/mailman/listinfo/zope-dev > ** No cross posts or HTML encoding! ** > (Related lists - > http://lists.zope.org/mailman/listinfo/zope-announce > http://lists.zope.org/mailman/listinfo/zope ) ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
[Zope-dev] Future of ZPatterns
Hello, I'm new to Zope. I'm studing 'Zope Web Application Develepment and Content Management' book. Many of the examples of the book uses ZPatterns. I saw in past messages that ZPatterns will not be supported in Zope3. Is this true ?? If I create a product based on it, will it be a lost of time ??? Thanks, Marcello Parra
[Zope-dev] External methods in Extensions folder under Product
Hi, I currently have my external methods under the Extensions folder within the Zope installation (i.e. /usr/local/Zope/Extensions ). I read that I could place them in Extensions folders within specific installed products. I'd much prefer that, but can't seem to get it working. What I did: I have a product I created through the management interface called "myproduct". I created a directory on the files system like this... /usr/local/Zope/lib/python/Products/myproduct/Extensions Inside there I put my test.py module, and try to add it as an external method to that product. I get a message that test.py can't be found. If I put it in the general Extensions folder for the Zope install, all is well. Any ideas? thanks, Ted ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Overriding HTTPResponse.unauthorized()
Matt Behrens wrote: > I've got some rather funky auth requirements where I need to stop Zope > from challenging Basic authentication when Unauthorized is raised. > > I seem to be able to do this if I monkey-patch > HTTPResponse.unauthorized(), but what I'd really like is to be able to > hook into it to make a user folder-overridable challenge with a fallback > to the standard unauthorized. Maybe such a hook would be useful in 2.6 :-) > > So, given that, can I get to the user folder from > HTTPResponse.unauthorized()? Or are there any better ideas? Check out CookieCrumbler. It does several things: - It patches response *instances*; that is, it adds an attribute to response instances called "unauthorized" which overrides the method. The attribute value is a method bound to a different object. - It uses the request._hold() mechanism to delete the attribute it added to the response, avoiding a memory leak. It would be useful to provide a better way to hook unauthorized() in Zope 2.6, but this way is compatible with Zope 2.4 and 2.5, so I'm not motivated enough. ;-) Shane ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
[Zope-dev] Overriding HTTPResponse.unauthorized()
I've got some rather funky auth requirements where I need to stop Zope from challenging Basic authentication when Unauthorized is raised. I seem to be able to do this if I monkey-patch HTTPResponse.unauthorized(), but what I'd really like is to be able to hook into it to make a user folder-overridable challenge with a fallback to the standard unauthorized. Maybe such a hook would be useful in 2.6 :-) So, given that, can I get to the user folder from HTTPResponse.unauthorized()? Or are there any better ideas? ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
[Zope-dev] Separate staging and development areas for a product
Hi, I have a Zope product in development. I want to setup a staging area for stable releases and I am not sure how to go about it. I could install another Zope in a different directory, but it seems like I should be able to do it with the Zope instance I've got. Any thoughts, or pointers? My project contains ZSQL methods and external methods, if that is significant. It seems like the external methods could be a rub, since they exist as files in the Zope installation directories (specifically in the Extensions directory). I don't know how I could have multiple versions of these files, one for development, one for staging all within one instance of Zope. One lesser question, newbie question... how do I control the URL to reach the methods exposed in my project. For example, I have a product called myproj, with my method. The only URL I can get to work is this http://myserver/Control_Panel/Products/myproj/mymethod I'd like to have a URL that looks like this... http://myserver/myproj/mymethod without the Control_Panel bit. thanks, Ted ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] __after_publishing_traverse__
Ivo van der Wijk wrote: [snip] > This indeed does work. The only difference is that I'm installing the hook > in __before_publishing_traverse__, so I don't have to do any traversal > myself. > > I find it a scary solution though (though not as scary as monkeypatching > __del__), so I'm not 100% sure if I will use this code, or perhaps I'll > make it very optional (basically, thanks to this nice hack, QuotaFolder can > do traffic accounting as well :) I'll agree that dynamically creating __del__ methods might be a bit scary, but I don't see anything too crazy about this method, depending of course on exactly what you are doing with RESPONSE. ;^) You're really just calling something at the last possible second before the REQUEST goes away. -Casey ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] __after_publishing_traverse__
Shane Hathaway wrote: > > a __del__() method that calls your application logic. In fact, this is > the mechanism Zope uses to make sure the database connection gets > closed. (see ZODB/ZApplication.py.) Ewww... ;-) Chris - Someone got some deodorant for ZApplication? ...sure *gets can with "Zope 3" written on side* ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] __after_publishing_traverse__
Ivo van der Wijk wrote: > Hi All, > > I would like to do some bookkeeping *after* an object has been published, > i.e. imagine a request is done for: > > /a/b/c/d > > 'b' is the (folderish) object that does the accounting, 'd' is the object > to be published. I would like 'b' to examine the RESPONSE after publishing. > > I know there's a __before_publishing_traverse__, however, this is not what > I want. > > Does someone know a way to implement this cleanly? I.e. without monkeypatching > 'd' (which can be any kind of zope object)? REQUEST._hold() is designed for this purpose. _hold() accepts an object which will be deleted when the request is finished. Add an object with a __del__() method that calls your application logic. In fact, this is the mechanism Zope uses to make sure the database connection gets closed. (see ZODB/ZApplication.py.) Shane ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] ZEO Server Crashed
Alex Kelly wrote: > We have been running our web site with Zope 2.4.2 and ZEO (I'm unsure > of > the version, can't seem to find it anywhere) for about 5 months. We > are > running it on Solaris 8 w/ Python 2.1.2. The other day we had a major > crash and this was left in the ZEO_Server.log: > 2002-04-09T16:36:49 ERROR(200) ZEO Server uncaptured python exception, > closing channel > (exceptions.OSError:[Errno 24]Too many open files > [/opt/Lang/Python-2.1.2/lib/python2.1/asyncore.py|poll|92] > [/opt/Lang/Python-2.1.2/lib/python2.1/asyncore.py|handle_read_event|380] > >[/opt/WWW/ZopeInstallation/Zope_software_home/lib/python/ZEO/StorageServer.py|handle_accept|189] > >[/opt/WWW/ZopeInstallation/Zope_software_home/lib/python/ZEO/StorageServer.py|__init__|238] > >[/opt/WWW/ZopeInstallation/Zope_software_home/lib/python/ZEO/trigger.py|__init__|133]) > > Any clues as to what caused this? Or any information about making > sure > this doesn't happen again? This looks like a bug that has been solved in recent versions of ZEO. The problem was that each time a new ZEO client connection was made, a pair of special file descriptors were also created, and these special descriptors were never cleaned up. Eventually the server ran into an OS-defined limit. Shane ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] __after_publishing_traverse__
On Mon, Apr 15, 2002 at 09:39:47AM -0600, Casey Duncan wrote: > The request object has a hold area which keeps objects alive as long as > the request lives. Although I have not tried it, you might be able to > add an object to this hold area using __bobo_traverse__ defined on B. > > This object's class would need to have a destructor method (__del__) > defined so that it can do something when the request is over and the > response has presumably been written. > > you could code that something like this: > > In b's class: > > class b: > ... > def __bobo_traverse__(self, name): > self.REQUEST._hold(ResponseChecker(self.REQUEST.RESPONSE)) > > class ResponseChecker: > def __init__(self, response): > self.response = response > > def __del__(self): > ...do something with self.response... > > Like I said, I've never tried this, but you never know, it might work. > If not, another option would be to have b use __bobo_traverse__ to > dynamically add a destructor to the RESPONSE object (it doesn't already > have one AFAIK). Like this: > This indeed does work. The only difference is that I'm installing the hook in __before_publishing_traverse__, so I don't have to do any traversal myself. I find it a scary solution though (though not as scary as monkeypatching __del__), so I'm not 100% sure if I will use this code, or perhaps I'll make it very optional (basically, thanks to this nice hack, QuotaFolder can do traffic accounting as well :) Cheers, Ivo -- Drs. I.R. van der Wijk -=- Brouwersgracht 132 Amaze Internet Services V.O.F. 1013 HA Amsterdam, NL -=- Tel: +31-20-4688336 Linux/Web/Zope/SQL/MMBase Fax: +31-20-4688337 Network Solutions Web: http://www.amaze.nl/Consultancy Email: [EMAIL PROTECTED] -=- ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
[Zope-dev] ZEO Server Crashed
We have been running our web site with Zope 2.4.2 and ZEO (I'm unsure of the version, can't seem to find it anywhere) for about 5 months. We are running it on Solaris 8 w/ Python 2.1.2. The other day we had a major crash and this was left in the ZEO_Server.log: 2002-04-09T16:36:49 ERROR(200) ZEO Server uncaptured python exception, closing channel (exceptions.OSError:[Errno 24]Too many open files [/opt/Lang/Python-2.1.2/lib/python2.1/asyncore.py|poll|92] [/opt/Lang/Python-2.1.2/lib/python2.1/asyncore.py|handle_read_event|380] [/opt/WWW/ZopeInstallation/Zope_software_home/lib/python/ZEO/StorageServer.py|handle_accept|189] [/opt/WWW/ZopeInstallation/Zope_software_home/lib/python/ZEO/StorageServer.py|__init__|238] [/opt/WWW/ZopeInstallation/Zope_software_home/lib/python/ZEO/trigger.py|__init__|133]) Any clues as to what caused this? Or any information about making sure this doesn't happen again? Thanks Alex Kelly Internet System Administrator Franklin University ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] __after_publishing_traverse__
On Mon, 15 Apr 2002 15:05:32 +0200, Ivo van der Wijk <[EMAIL PROTECTED]> wrote: >I would like to do some bookkeeping *after* an object has been published, The transation object lets you register methods to be called on transaction commit, abort, etc. Toby Dickenson [EMAIL PROTECTED] ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] __after_publishing_traverse__
The request object has a hold area which keeps objects alive as long as the request lives. Although I have not tried it, you might be able to add an object to this hold area using __bobo_traverse__ defined on B. This object's class would need to have a destructor method (__del__) defined so that it can do something when the request is over and the response has presumably been written. you could code that something like this: In b's class: class b: ... def __bobo_traverse__(self, name): self.REQUEST._hold(ResponseChecker(self.REQUEST.RESPONSE)) class ResponseChecker: def __init__(self, response): self.response = response def __del__(self): ...do something with self.response... Like I said, I've never tried this, but you never know, it might work. If not, another option would be to have b use __bobo_traverse__ to dynamically add a destructor to the RESPONSE object (it doesn't already have one AFAIK). Like this: class b: ... def __bobo_traverse__(self, name): self.REQUEST.RESPONSE.__del__ = afterResponse def afterResponse(self): ...do something with response... The latter is a monkey patch, but a very narrow one, since the hook would only get put in for objects under an instance of b. -Casey Ivo van der Wijk wrote: > Hi All, > > I would like to do some bookkeeping *after* an object has been published, > i.e. imagine a request is done for: > > /a/b/c/d > > 'b' is the (folderish) object that does the accounting, 'd' is the object > to be published. I would like 'b' to examine the RESPONSE after publishing. > > I know there's a __before_publishing_traverse__, however, this is not what > I want. > > Does someone know a way to implement this cleanly? I.e. without monkeypatching > 'd' (which can be any kind of zope object)? > > Regards, > > Ivo > > ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Speaking of 2.6...
On Tue, Apr 09, 2002 at 01:47:49PM -0400, Brian Lloyd wrote: > ...I sent out a note a while ago now trying to scare up > some ideas on how to vet the current list of 2.6 proposals > and get to a final "plan". I didn't get much (any?) response :( > I am, as the author of the dtml-set tag, of course willing to commit to the implementation of this tag for 2.6 How about 'vetted' - It's set to N, when will I know if I should start coding? Cheers Ivo -- Drs. I.R. van der Wijk -=- Brouwersgracht 132 Amaze Internet Services V.O.F. 1013 HA Amsterdam, NL -=- Tel: +31-20-4688336 Linux/Web/Zope/SQL/MMBase Fax: +31-20-4688337 Network Solutions Web: http://www.amaze.nl/Consultancy Email: [EMAIL PROTECTED] -=- ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
[Zope-dev] __after_publishing_traverse__
Hi All, I would like to do some bookkeeping *after* an object has been published, i.e. imagine a request is done for: /a/b/c/d 'b' is the (folderish) object that does the accounting, 'd' is the object to be published. I would like 'b' to examine the RESPONSE after publishing. I know there's a __before_publishing_traverse__, however, this is not what I want. Does someone know a way to implement this cleanly? I.e. without monkeypatching 'd' (which can be any kind of zope object)? Regards, Ivo -- Drs. I.R. van der Wijk -=- Brouwersgracht 132 Amaze Internet Services V.O.F. 1013 HA Amsterdam, NL -=- Tel: +31-20-4688336 Linux/Web/Zope/SQL/MMBase Fax: +31-20-4688337 Network Solutions Web: http://www.amaze.nl/Consultancy Email: [EMAIL PROTECTED] -=- ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] [RFClet]: What about the request method and the client side trojan?
On Friday 12 Apr 2002 7:19 pm, Jeffrey P Shell wrote: >that your proposal isn't up there (or the catalog is up to its old charms ;) No, its not up there. >But now, does this mean I have to go through and tag every method that might >cause a state change? Or might not? You wont ever *have* to do anything to your own methods. You might *want* to, if you want the extra protection against client side trojans that this declaration will give. >Now that I'm understanding things more, I never call non-idempotent methods >(I hope I'm using that term right) from DTML anymore Me to. Thats why I was suprised to see the opposition. >Overall, I still don't know how I feel about the whole thing. It's good to >have Zope as secure as possible, but if putting that security makes it >suddenly much harder to develop for or upgrade to/for, I worry about the >support costs involved. Indeed. ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )