Here's another use case for this kind of thing that doesn't involve
proprietary code or terms.

I recently put together a charm for launchpad-buildd: this lets you
deploy a builder node in a container that can be attached to a local
instance of Launchpad.  There are two plausible ways to get the actual
launchpad-buildd code in place:

 1) You don't really care about the details and just want the latest
    stable version.  For this, it makes sense to install from our PPA,
    which we're maintaining anyway for production use.  I don't want to
    have to separately keep resources up to date.

 2) You're hacking on a change to the launchpad-buildd code and want an
    easy way to deploy it locally to try it out.  While you *could*
    build the whole thing in a PPA, that increases your iteration time
    quite a bit; it's much quicker to just build the packages locally
    and attach them as resources.

My first attempt was to list the resources in metadata.yaml and only
attach them if they were actually needed, which I naïvely assumed would
work.  And in fact it did almost entirely work: hookenv.resource_get
returned False as documented, and my charm handled that and fell back to
installing from a PPA.  What didn't work was when I tried to do "charm
release", which gave me:

  ERROR cannot release charm or bundle: bad request: charm published with 
incorrect resources: resources are missing from publish request: 
launchpad-buildd, python-lpbuildd

As suggested in this thread and on IRC, I fell back to accepting
zero-sized resources instead and uploading those to the store, and that
works OK:

  https://jujucharms.com/u/launchpad/launchpad-buildd

It seems like a fairly nasty hack though.  Resources are pretty nice,
and this feels like a wart.

Thanks,

-- 
Colin Watson                                       [cjwat...@ubuntu.com]

-- 
Juju mailing list
Juju@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju

Reply via email to