Re: zeoctl?

Jim Fulton <[email protected]>
Newsgroups gmane.comp.web.zope.zodb
Message-ID <CAPDm-Fj9g96CVS8JmhRA7hJm4cF=zFVEH8mv26AAWqD88_tGtw@mail.gmail.com>
On Sun, Apr 2, 2017 at 4:35 PM, David Glick (Glick Software) <
[email protected]> wrote:

> On 4/2/17 7:36 AM, Jim Fulton wrote:
>
>> Does anyone know how the ZEO's zeoctl script is supposed to work? I
>> assume it's supposed to provide a way to run ZEO under zdaemon control
>> sharing a single configuration file.
>>
>> I don't recall ever using it and I don't know how to use it. It's
>> undocumented and untested and was broken by changes in ZEO 5, but I can't
>> make it work with ZODB3 3.10.5 either.
>>
>
> I'm afraid I don't know the history of why Plone runs ZEO this way


It's zdctl, which I never understood. It makes little monoliths of zdaemon
and programs in undocumented (AFAICT) and brittle ways.

I really like zdaemon, because it only does one simple thing. And I always
configure it simply as described in it's documentation, generally using
zc.zdaemonrecipe, https://pypi.python.org/pypi/zc.zdaemonrecipe.  I don't
try to combine the configuration of zdaemon and ZEO.

(I happen to prefer zdaemon over supervisord, because it lets me think
about different processes separately, and because it's simpler.)


> and haven't ever needed to take a close look at what it does. Plone sites
> using ZEO generally install a buildout section using the
> plone.recipe.zeoserver recipe, which installs a script (
> https://github.com/plone/plone.recipe.zeoserver/blob/master
> /src/plone/recipe/zeoserver/ctl.py) that runs either runzeo or zeoctl
> depending on whether it's being run by supervisor or not.


OK, looking at:

https://pypi.python.org/pypi/plone.recipe.zeoserver

I created a buildout config:

[buildout]
parts = zeo

[zeo]
recipe = plone.recipe.zeoserver
zeo-address = 8100

When I run it, I get:

...
While:
  Installing zeo.

An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
  File
"/Users/jim/.buildout/eggs/cp27m/zc.buildout-2.9.3-py2.7.egg/zc/buildout/buildout.py",
line 2123, in main
    getattr(buildout, command)(args)
  File
"/Users/jim/.buildout/eggs/cp27m/zc.buildout-2.9.3-py2.7.egg/zc/buildout/buildout.py",
line 796, in install
    installed_files = self[part]._call(recipe.install)
  File
"/Users/jim/.buildout/eggs/cp27m/zc.buildout-2.9.3-py2.7.egg/zc/buildout/buildout.py",
line 1553, in _call
    return f()
  File
"/Users/jim/.buildout/eggs/cp27m/plone.recipe.zeoserver-1.3-py2.7.egg/plone/recipe/zeoserver/__init__.py",
line 84, in install
    ZEOInstanceBuilder().create(location, params)
  File
"/Users/jim/.buildout/eggs/cp27m/zope.mkzeoinstance-4.0-py2.7.egg/zope/mkzeoinstance/__init__.py",
line 185, in create
    makexfile(ZEOCTL_TEMPLATE, home, "bin", "zeoctl", **params)
  File
"/Users/jim/.buildout/eggs/cp27m/zope.mkzeoinstance-4.0-py2.7.egg/zope/mkzeoinstance/__init__.py",
line 259, in makexfile
    path = makefile(template, *args, **kwds)
  File
"/Users/jim/.buildout/eggs/cp27m/zope.mkzeoinstance-4.0-py2.7.egg/zope/mkzeoinstance/__init__.py",
line 245, in makefile
    data = template % kwds
KeyError: 'zodb_home'

whimper.

Any idea what extra magic I'm missing?

If I had a working example of zeoctl, I could double check my fix, but I'm
tempted to just release a possible fix and see if Plone gets better.

Jim

-- 
Jim Fulton
http://jimfulton.info

-- 
You received this message because you are subscribed to the Google Groups "zodb" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.