[Zope-dev] Blob detection in the ZODB for bug 739692

2011-04-26 Thread William Heymann
I am working on a patch for Blob support in OFS.Image/File and I am running 
into a small problem. What is the correct way to detect if the current ZODB 
supports blobs?

If I just do

self.data = ZODB.blob.Blob(data)

in update_data in OFS.Image

and a system does not support blobs

I get this error

Traceback (innermost last):
  Module ZPublisher.Publish, line 134, in publish
  Module Zope2.App.startup, line 301, in commit
  Module transaction._manager, line 89, in commit
  Module transaction._transaction, line 329, in commit
  Module transaction._transaction, line 443, in _commitResources
  Module ZODB.Connection, line 563, in commit
  Module ZODB.Connection, line 619, in _commit
  Module ZODB.Connection, line 662, in _store_objects
Unsupported: Storing Blobs in ZEO.ClientStorage.ClientStorage object at 
0x3248590 is not supported.

which does not even mention OFS.Image anywhere

I tried putting in

try:
self.data = ZODB.blob.Blob(data)
except zExceptions.Unsupported:
self.data = data

and this of course did not work since the error is not actually occurring 
here.

What I am trying to do is make is to that Blobs are used if blobs are 
supported and not used if they are not currently supported. For all of my 
systems this is not an issue since I only support blobs but for a patch to be 
accepeted it seems that it would need to work either way.

I considered putting in a configuration switch in zope.conf to say if blobs 
should be used or not so that it is up to the developer to set the switch and 
enable blob support and the system would just give errors if setup incorrectly 
but that does not seem like a good idea.
___
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Blob detection in the ZODB for bug 739692

2011-04-26 Thread David Glick
On 4/26/11 7:40 AM, William Heymann wrote:
 I am working on a patch for Blob support in OFS.Image/File and I am running
 into a small problem. What is the correct way to detect if the current ZODB
 supports blobs?

 If I just do

 self.data = ZODB.blob.Blob(data)

 in update_data in OFS.Image

 and a system does not support blobs

 I get this error

 Traceback (innermost last):
Module ZPublisher.Publish, line 134, in publish
Module Zope2.App.startup, line 301, in commit
Module transaction._manager, line 89, in commit
Module transaction._transaction, line 329, in commit
Module transaction._transaction, line 443, in _commitResources
Module ZODB.Connection, line 563, in commit
Module ZODB.Connection, line 619, in _commit
Module ZODB.Connection, line 662, in _store_objects
 Unsupported: Storing Blobs inZEO.ClientStorage.ClientStorage object at
 0x3248590  is not supported.

 which does not even mention OFS.Image anywhere

 I tried putting in

 try:
  self.data = ZODB.blob.Blob(data)
 except zExceptions.Unsupported:
  self.data = data

 and this of course did not work since the error is not actually occurring
 here.

 What I am trying to do is make is to that Blobs are used if blobs are
 supported and not used if they are not currently supported. For all of my
 systems this is not an issue since I only support blobs but for a patch to be
 accepeted it seems that it would need to work either way.

 I considered putting in a configuration switch in zope.conf to say if blobs
 should be used or not so that it is up to the developer to set the switch and
 enable blob support and the system would just give errors if setup incorrectly
 but that does not seem like a good idea.
You can get (persistent object)._p_jar.db().storage and check if it 
provides ZODB.interfaces.IBlobStorage.


--  
David Glick
 Web Developer
 davidgl...@groundwire.org
 206.286.1235x32

Groundwire: You Are Connected   
 http://groundwire.org  

Online tools and strategies for the environmental movement.  Sign up for 
Groundwire News!
 http://groundwire.org/email-capture


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