Copy Product from development site to production site

Hello,

I'm new in developing Plone Products. I developed a new test product in a development Plone (only zinstance) installation, but now need to copy it to the production site (with ZEO-Server).
I done the same steps like in the development site, but it doesn't work in the production site.
Same plone version 4.3.12, Zope 2.13.26, Python 2.7.5.

  • tar/untar in zinstance/src and zeoserver/src
  • edit buildout.cfg:
eggs =
    Plone
    Pillow
    ...
    sb.exergo
develop =
     src/sb.exergo
  • bin/buildout: I can see the product installation. No errors.
  • bin/plonectl start: all started, but the clients are restarting and restarting...

In ./var/client1/event.log I can see nothing more then this connecting/disconnecting messages:

2017-05-01T13:43:45 INFO Zope Set effective user to "plone_daemon"
2017-05-01T13:43:48 INFO Products.PloneFormGen gpg_subprocess initialized, using /usr/bin/gpg
2017-05-01T13:43:49 INFO ZEO.ClientStorage zeostorage ClientStorage (pid=8812) created RW/normal for storage: '1'
2017-05-01T13:43:49 WARNING ZODB.blob (8812) Blob dir /opt/Plone/zeocluster/var/blobstorage/ has insecure mode setting
2017-05-01T13:43:49 INFO ZEO.cache created temporary cache file ''
2017-05-01T13:43:49 INFO ZEO.ClientStorage zeostorage Testing connection <ManagedClientConnection ('127.0.0.1', 8100)>
2017-05-01T13:43:49 INFO ZEO.zrpc.Connection(C) (127.0.0.1:8100) received handshake 'Z3101'
2017-05-01T13:43:49 INFO ZEO.ClientStorage zeostorage Server authentication protocol None
2017-05-01T13:43:49 INFO ZEO.ClientStorage zeostorage Connected to storage: ('localhost.localdomain', 8100)
2017-05-01T13:43:49 INFO ZEO.ClientStorage zeostorage No verification necessary -- empty cache
2017-05-01T13:43:49 INFO ZEO.ClientStorage zeostorage Disconnected from storage: "('localhost.localdomain', 8100)"
2017-05-01T13:43:59 INFO ZServer HTTP server started at Mon May 1 13:43:59 2017
Hostname: 0.0.0.0
Port: 8080

Are the more log file to check? Is it the right way to install a product on a new side (it's only for me and only a test, I don't need git or something else for it)? Can anyone help?

Thanks,
Bieli

Try having a look at https://docs.plone.org/manage/troubleshooting/index.html for help figuring out what might be causing a problem.

I will say that deploying like that to production seems like a bad idea. Production should be eggs-only, ie. not using src directories.

Thanks for the answer. Now I started Plone in foreground mode and I got this error:

2017-05-01 17:47:11 INFO ZEO.ClientStorage zeostorage Disconnected from storage: "('localhost.localdomain', 8100)"
Traceback (most recent call last):
  File "/opt/Plone/buildout-cache/eggs/Zope2-2.13.26-py2.7.egg/Zope2/Startup/run.py", line 76, in <module>
    run()
  File "/opt/Plone/buildout-cache/eggs/Zope2-2.13.26-py2.7.egg/Zope2/Startup/run.py", line 22, in run
    starter.prepare()
  File "/opt/Plone/buildout-cache/eggs/Zope2-2.13.26-py2.7.egg/Zope2/Startup/__init__.py", line 92, in prepare
    self.startZope()
  File "/opt/Plone/buildout-cache/eggs/Zope2-2.13.26-py2.7.egg/Zope2/Startup/__init__.py", line 268, in startZope
    Zope2.startup()
  File "/opt/Plone/buildout-cache/eggs/Zope2-2.13.26-py2.7.egg/Zope2/__init__.py", line 47, in startup
    _startup()
  File "/opt/Plone/buildout-cache/eggs/Zope2-2.13.26-py2.7.egg/Zope2/App/startup.py", line 120, in startup
    load_zcml()
  File "/opt/Plone/buildout-cache/eggs/Zope2-2.13.26-py2.7.egg/Zope2/App/startup.py", line 52, in load_zcml
    load_site()
  File "/opt/Plone/buildout-cache/eggs/Zope2-2.13.26-py2.7.egg/Zope2/App/zcml.py", line 46, in load_site
    _context = xmlconfig.file(site_zcml)
  File "/opt/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 649, in file
    include(context, name, package)
  File "/opt/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
    processxmlfile(f, context)
  File "/opt/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
    parser.parse(src)
  File "/opt/Plone/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 107, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/opt/Plone/Python-2.7/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
    self.feed(buffer)
  File "/opt/Plone/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 210, in feed
    self._parser.Parse(data, isFinal)
  File "/opt/Plone/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 352, in end_element_ns
    self._cont_handler.endElementNS(pair, None)
  File "/opt/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
    self.context.end()
  File "/opt/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
    self.stack.pop().finish()
  File "/opt/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 706, in finish
    actions = self.handler(context, **args)
  File "/opt/Plone/buildout-cache/eggs/Zope2-2.13.26-py2.7.egg/OFS/metaconfigure.py", line 46, in loadProducts
    xmlconfig.include(_context, zcml, package=product)
  File "/opt/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
    processxmlfile(f, context)
  File "/opt/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
    parser.parse(src)
  File "/opt/Plone/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 107, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/opt/Plone/Python-2.7/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
    self.feed(buffer)
  File "/opt/Plone/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 210, in feed
    self._parser.Parse(data, isFinal)
  File "/opt/Plone/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 352, in end_element_ns
    self._cont_handler.endElementNS(pair, None)
  File "/opt/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
    self.context.end()
  File "/opt/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
    self.stack.pop().finish()
  File "/opt/Plone/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 706, in finish
    actions = self.handler(context, **args)
  File "/opt/Plone/buildout-cache/eggs/z3c.autoinclude-0.3.5-py2.7.egg/z3c/autoinclude/zcml.py", line 101, in includePluginsDirective
    info = PluginFinder(dotted_name).includableInfo(zcml_to_look_for)
  File "/opt/Plone/buildout-cache/eggs/z3c.autoinclude-0.3.5-py2.7.egg/z3c/autoinclude/plugin.py", line 18, in includableInfo
    groups = zcml_to_include(plugin_dottedname, zcml_to_look_for)
  File "/opt/Plone/buildout-cache/eggs/z3c.autoinclude-0.3.5-py2.7.egg/z3c/autoinclude/plugin.py", line 36, in zcml_to_include
    filename = resource_filename(dotted_name, zcmlgroup)
  File "/opt/Plone/buildout-cache/eggs/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 907, in resource_filename
    return get_provider(package_or_requirement).get_resource_filename(
  File "/opt/Plone/buildout-cache/eggs/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 213, in get_provider
    __import__(moduleOrReq)
  File "/opt/Plone/buildout-cache/eggs/quintagroup.z3cform.captcha-1.0.3-py2.7.egg/quintagroup/z3cform/captcha/__init__.py", line 1, in <module>
    from quintagroup.z3cform.captcha import field, widget
  File "/opt/Plone/buildout-cache/eggs/quintagroup.z3cform.captcha-1.0.3-py2.7.egg/quintagroup/z3cform/captcha/widget.py", line 4, in <module>
    from z3c.form import widget
  File "/opt/Plone/buildout-cache/eggs/z3c.form-3.2.11-py2.7.egg/z3c/form/widget.py", line 30, in <module>
    from z3c.form import interfaces, util, value
  File "/opt/Plone/buildout-cache/eggs/z3c.form-3.2.11-py2.7.egg/z3c/form/util.py", line 21, in <module>
    import six
zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/opt/Plone/zeocluster/parts/client1/etc/site.zcml", line 12.2-12.39
    ZopeXMLConfigurationError: File "/opt/Plone/buildout-cache/eggs/Products.CMFPlone-4.3.14-py2.7.egg/Products/CMFPlone/meta.zcml", line 42.4-46.10
    ImportError: No module named six

Any idea? Any help?

Thanks,
Bieli

Looks like one of the eggs you're including in your buildout is trying to import "six".

Maybe paste your entire buildout.cfg here.

OK, here my buildout.cfg. But only I have trouble integrating the sb.exergo package:

[buildout]
extends =
    base.cfg
    http://dist.plone.org/release/4.3-latest/versions.cfg
find-links +=
    http://dist.plone.org/release/4.3-latest
effective-user = plone_daemon
buildout-user = plone_buildout
need-sudo = yes
eggs =
    Plone
    Pillow
    Products.LinguaPlone
    Products.PloneFormGen
    Products.CMFBibliographyAT
    quintagroup.plonecaptchas >=4.0
    Products.ZMySQLDA
    Products.EasyNewsletter
    sb.exergo
zcml =
develop =
     src/sb.exergo
var-dir=${buildout:directory}/var
backups-dir=${buildout:var-dir}
user=admin:TYqT6Ho3hsKc
deprecation-warnings = off
verbose-security = off
parts =
    zeoserver
    client1
    client2
    backup
    zopepy
    unifiedinstaller
    precompiler
    setpermissions
[zeoserver]
<= zeoserver_base
recipe = plone.recipe.zeoserver
zeo-address = 127.0.0.1:8100
[client1]
<= client_base
recipe = plone.recipe.zope2instance
zeo-address = ${zeoserver:zeo-address}
http-address = 8080
[client2]
<= client_base
recipe = plone.recipe.zope2instance
zeo-address = ${zeoserver:zeo-address}
http-address = 8081
[versions]
Cheetah = 2.2.1
plone.recipe.command = 1.1
plone.recipe.precompiler = 0.6
plone.recipe.unifiedinstaller = 4.3.1
Products.DocFinderTab = 1.0.5
ZopeSkel = 2.21.2
collective.recipe.backup = 2.14
zopeskel.dexterity = 1.5.3
zopeskekel.dexterity = 1.5.3
zopeskel.diazotheme = 1.1
Products.CMFBibliographyAT = 1.2.1
quintagroup.plonecaptchas = 4.2
Products.ZMySQLDA = 3.1.1

Thanks for answers!
Bieli

You could try to add six to your eggs definition.

You are right! I added six to the eggs, made a buildout, can't see nothing about six in the output, but it worked.

Thanks a lot!
Bieli

1 Like