collective / collective.ATClamAV

A product providing ClamAV antivirus integration for AT-based content types
2 stars 4 forks source link

Not working with Plone Software Center #1

Closed andreasma closed 13 years ago

andreasma commented 13 years ago

I read the description how to add a virus protection to a file type. I added validators = (('isNonEmptyFile', V_REQUIRED), ('isVirusFree', V_REQUIRED),), to the FileField in downloadablefile.py in Plone Software Center. The code in this section was then:

FileField('downloadableFile',
    primary=1,
    required=1,
    validators = (('isNonEmptyFile', V_REQUIRED),
                  ('isVirusFree', V_REQUIRED),),
    widget=FileWidget(
        label=_(u"label_file_description", default=u"File"),
        description=_(u"help_file_description", default=u"Click 'Browse' to upload a release file."),
        i18n_domain="plonesoftwarecenter",
    ),
    storage=DynamicStorage(),
),

If I run buildout, added collective.ATClamAV and run zeoserver start and instance fg afterwards, I get the following error message:

File "/local/plone/liboextensioncenter/liboextensions_zeo/src/Products.PloneSoftwareCenter/Products/PloneSoftwareCenter/setuphandlers.py", line 23, in from Products.PloneSoftwareCenter.content.downloadablefile import PSCFileSchema File "/local/plone/liboextensioncenter/liboextensions_zeo/src/Products.PloneSoftwareCenter/Products/PloneSoftwareCenter/content/init.py", line 9, in import downloadablefile File "/local/plone/liboextensioncenter/liboextensions_zeo/src/Products.PloneSoftwareCenter/Products/PloneSoftwareCenter/content/downloadablefile.py", line 50, in validators = (('isNonEmptyFile', V_REQUIRED), ZopeXMLConfigurationError: File "/local/plone/liboextensioncenter/liboextensions_zeo/parts/instance/etc/site.zcml", line 16.2-16.23 ZopeXMLConfigurationError: File "/local/plone/liboextensioncenter/liboextensions_zeo/src/Products.PloneSoftwareCenter/Products/PloneSoftwareCenter/configure.zcml", line 12.2-12.33 ZopeXMLConfigurationError: File "/local/plone/liboextensioncenter/liboextensions_zeo/src/Products.PloneSoftwareCenter/Products/PloneSoftwareCenter/profiles.zcml", line 14.4-22.61 NameError: name 'V_REQUIRED' is not defined Traceback (most recent call last): File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/Zope2/Startup/run.py", line 56, in run() File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/Zope2/Startup/run.py", line 21, in run starter.prepare() File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/Zope2/Startup/init.py", line 87, in prepare self.startZope() File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/Zope2/Startup/init.py", line 264, in startZope Zope2.startup() File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/Zope2/init.py", line 47, in startup _startup() File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/Zope2/App/startup.py", line 116, in startup OFS.Application.initialize(application) File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/OFS/Application.py", line 251, in initialize initializer.initialize() File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/OFS/Application.py", line 279, in initialize self.install_products() File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/OFS/Application.py", line 492, in install_products return install_products(app) File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/OFS/Application.py", line 523, in install_products folder_permissions, raise_exc=debug_mode) File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/OFS/Application.py", line 671, in install_product initmethod(context) File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/Products/Five/init.py", line 31, in initialize zcml.load_site() File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/Products/Five/zcml.py", line 51, in load_site _context = xmlconfig.file(file) File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/xmlconfig.py", line 647, in file include(context, name, package) File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/xmlconfig.py", line 546, in include processxmlfile(f, context) File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/xmlconfig.py", line 378, in processxmlfile parser.parse(src) File "/local/plone/libreofficeextension/Python-2.6/lib/python2.6/xml/sax/expatreader.py", line 107, in parse xmlreader.IncrementalParser.parse(self, source) File "/local/plone/libreofficeextension/Python-2.6/lib/python2.6/xml/sax/xmlreader.py", line 123, in parse self.feed(buffer) File "/local/plone/libreofficeextension/Python-2.6/lib/python2.6/xml/sax/expatreader.py", line 207, in feed self._parser.Parse(data, isFinal) File "/local/plone/libreofficeextension/Python-2.6/lib/python2.6/xml/sax/expatreader.py", line 349, in end_element_ns self._cont_handler.endElementNS(pair, None) File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/xmlconfig.py", line 357, in endElementNS self.context.end() File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/config.py", line 537, in end self.stack.pop().finish() File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/config.py", line 685, in finish actions = self.handler(context, _args) File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/Products/Five/fiveconfigure.py", line 74, in loadProducts handleBrokenProduct(product) File "/local/plone/libreofficeextension/buildout-cache/eggs/Zope2-2.12.18-py2.6-linux-x86_64.egg/Products/Five/fiveconfigure.py", line 72, in loadProducts xmlconfig.include(_context, zcml, package=product) File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/xmlconfig.py", line 546, in include processxmlfile(f, context) File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/xmlconfig.py", line 378, in processxmlfile parser.parse(src) File "/local/plone/libreofficeextension/Python-2.6/lib/python2.6/xml/sax/expatreader.py", line 107, in parse xmlreader.IncrementalParser.parse(self, source) File "/local/plone/libreofficeextension/Python-2.6/lib/python2.6/xml/sax/xmlreader.py", line 123, in parse self.feed(buffer) File "/local/plone/libreofficeextension/Python-2.6/lib/python2.6/xml/sax/expatreader.py", line 207, in feed self._parser.Parse(data, isFinal) File "/local/plone/libreofficeextension/Python-2.6/lib/python2.6/xml/sax/expatreader.py", line 349, in end_element_ns self._cont_handler.endElementNS(pair, None) File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/xmlconfig.py", line 357, in endElementNS self.context.end() File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/config.py", line 537, in end self.stack.pop().finish() File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/config.py", line 685, in finish actions = self.handler(context, _args) File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/xmlconfig.py", line 546, in include processxmlfile(f, context) File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/xmlconfig.py", line 378, in processxmlfile parser.parse(src) File "/local/plone/libreofficeextension/Python-2.6/lib/python2.6/xml/sax/expatreader.py", line 107, in parse xmlreader.IncrementalParser.parse(self, source) File "/local/plone/libreofficeextension/Python-2.6/lib/python2.6/xml/sax/xmlreader.py", line 123, in parse self.feed(buffer) File "/local/plone/libreofficeextension/Python-2.6/lib/python2.6/xml/sax/expatreader.py", line 207, in feed self._parser.Parse(data, isFinal) File "/local/plone/libreofficeextension/Python-2.6/lib/python2.6/xml/sax/expatreader.py", line 349, in end_element_ns self._cont_handler.endElementNS(pair, None) File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/xmlconfig.py", line 357, in endElementNS self.context.end() File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/config.py", line 537, in end self.stack.pop().finish() File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/config.py", line 684, in finish args = toargs(context, self.argdata) File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/config.py", line 1376, in toargs args[str(name)] = field.fromUnicode(s) File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/fields.py", line 139, in fromUnicode value = self.context.resolve(name) File "/local/plone/libreofficeextension/buildout-cache/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/config.py", line 180, in resolve mod = import(mname, _import_chickens) File "/local/plone/liboextensioncenter/liboextensions_zeo/src/Products.PloneSoftwareCenter/Products/PloneSoftwareCenter/setuphandlers.py", line 23, in from Products.PloneSoftwareCenter.content.downloadablefile import PSCFileSchema File "/local/plone/liboextensioncenter/liboextensions_zeo/src/Products.PloneSoftwareCenter/Products/PloneSoftwareCenter/content/init.py", line 9, in import downloadablefile File "/local/plone/liboextensioncenter/liboextensions_zeo/src/Products.PloneSoftwareCenter/Products/PloneSoftwareCenter/content/downloadablefile.py", line 50, in validators = (('isNonEmptyFile', V_REQUIRED), zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/local/plone/liboextensioncenter/liboextensions_zeo/parts/instance/etc/site.zcml", line 16.2-16.23 ZopeXMLConfigurationError: File "/local/plone/liboextensioncenter/liboextensions_zeo/src/Products.PloneSoftwareCenter/Products/PloneSoftwareCenter/configure.zcml", line 12.2-12.33 ZopeXMLConfigurationError: File "/local/plone/liboextensioncenter/liboextensions_zeo/src/Products.PloneSoftwareCenter/Products/PloneSoftwareCenter/profiles.zcml", line 14.4-22.61 NameError: name 'V_REQUIRED' is not defined

I used a buildout with Plone 4.0.7 and a git-checkout of Plone Software Center from github.com.

ggozad commented 13 years ago

Perhaps...

    from Products.validation import V_REQUIRED
andreasma commented 13 years ago

Thanks. Yes that did the trick. I have now a working environment. But I see the file inside the blobstorage. I use collective.psc.blobstorage to store the files not inside the database. Is there a configuration to block the upload, if the file is not virus free?

andreasma commented 13 years ago

I looked into the log and found an entry, that collective.ATClamAV is not logging in development mode. I wonder which parameter I had to change.

andreasma commented 13 years ago

Solved. The problem with the development mode was caused from starting the instance with fg.