12
12
=head2 create project interface to add|remove|update source trees
14
If I keep the defaults of "deploy", this is doable. That means
15
every dir in src/ is considered it's own project. I can leave out
16
super projects for now and concentrate on the CRUD cycle for launchpad
17
branches only. That doesn't mean you couldn't use this for any other
18
VCS, it's just that at least initially it will get lp/bzr projects up
19
faster than configuring it yourself. Which really isn't a big deal,
20
ssh in, cd /var/opengrok/src && bzr branch lp:foo. Add additional
14
Thus far, the "C" and "U" of CRUD is complete. Implementing the
15
rest is a real challenge. I may be exceeding the design contract
16
for juju config state. I don't like it that if this fails the
17
entire charm reports failed and the user would be forced to
18
use debug consoles and run individual hooks to discover the fault,
19
which may be transiant. For example you could have a perfectly
20
good lp repo but the attempt to pull from lp failed for reasons
21
outside of your control.
23
23
=head2 Create hook to integrate with existing tomcat6 service
25
I've looked the website relation for tomcat6 and the integration
26
of additional services isn't very clear to me. I also hesitate
27
to co-op this with a general servlet engine as the IO/CPU demands
28
will easily starve out everything else. It's also wierd that there's
29
no *jsp* or *java-servlet* interface, the tomcat charms only provide
32
25
Since a subordinate charm is basically omitting the installation of
33
26
tomcat it should be easy to make this charm both a standalone and
34
27
subordinate capable charm.
36
=head2 Attach and manage persistent storage for src & data
38
Whatever it is this must be fast, NFS won't cut it. May need
39
to be aware of configuration parameteriztion too.
41
=head2 Parameterize opengrok configuration at deployment
43
We may leave this alone for a while seeing that opengrok generates
44
a configuration.xml and deposits it in /var/opengrok/etc. Should this
45
charm build an interface to adding/removing/updating projects, paremetizing
46
the root configuration in addition to that would make for a complex
47
implementation for sure.
29
=head2 Accomodate shared repos
31
When cloning and maintaining Linux kernel repos, one typically uses linux-2.6
32
as a reference and git merely copies the deltas into the new tree. This saves
33
tons of disk space and update time.