VCS code duplication and subordinate
Clint Byrum
clint at ubuntu.com
Mon Mar 11 19:49:47 UTC 2013
Excerpts from Sidnei da Silva's message of 2013-03-11 11:14:52 -0700:
> On Mon, Mar 11, 2013 at 3:01 PM, Patrick Hetu <patrick.hetu at gmail.com>wrote:
>
> > > Sure, but how will it make sure that the service is restarted when new
> > content is found?
> >
> > In the python-django charm I'm using a timestamp variable (an idea
> > from someone on IRC) that triggers the reloading of the wsgi server
> > when configuration change.
> >
> > See:
> > http://bazaar.launchpad.net/~charmers/charms/precise/python-django/trunk/view/head:/hooks/config-changed#L133
> >
> > > It's also possible to add this to a standard library of charm tools,
> > rather than do it in a subordinate.
> >
> > I was thinking about one subordinate charm per vcs because I didn't
> > wanted to install all vcs
> > when I'm just using one of them. But that's a minor issue.
> >
> > > This might be a good time to mention there's a VCS Charm Helper
> >
> > Yeah, extending and using those helpers would the solve the
> > dependencies problem.
> >
> > I'm also copying those helpers too in all my new charms to avoid repetition
> > and I just realized they are pretty much all in charm-tools. Maybe we
> > could split
> > the python version of those helpers in a python-charm-tools package an
> > make them importable
> > python code?
> >
> >
> > http://bazaar.launchpad.net/~charmers/charms/precise/postgresql/trunk/view/head:/hooks/hooks.py
> > (first half of the file)
> >
> > http://bazaar.launchpad.net/~charmers/charms/precise/postgresql/trunk/view/head:/hooks/helpers.py
> >
> > Patrick
> >
>
> That would be really helpful. We're collecting some things over at
> https://code.launchpad.net/~charmsupport/charmsupport/trunk but it's
> currently a chicken-and-egg problem because you need to have charmsupport
> installed before it can be used, so as a short-term measure we included a
> copy of it when deploying a charm.
>
This stuff should be in the python charm-helpers. Its already setup to
be an importable python library and its quite easy to add via the PPA
to any charm.
Also, the install hook is for bootstrapping things so that the other
hooks can respond to orchestration events. So put uncomplicated straight
forward commands to apt-get/pip install in the install hook, and then
write the other hooks (like config-changed) with these helpers.
More information about the Juju
mailing list