[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-API] XCP daemon boilerplate

  • To: "xen-api@xxxxxxxxxxxxx" <xen-api@xxxxxxxxxxxxx>
  • From: Dave Scott <Dave.Scott@xxxxxxxxxxxxx>
  • Date: Tue, 12 Feb 2013 12:01:34 +0000
  • Accept-language: en-US
  • Acceptlanguage: en-US
  • Delivery-date: Tue, 12 Feb 2013 12:01:48 +0000
  • List-id: User and development list for XCP and XAPI <xen-api.lists.xen.org>
  • Thread-index: Ac4JFw6cN3Dv743qRcabNNP1p6hJRw==
  • Thread-topic: XCP daemon boilerplate


As I've been splitting up XCP services recently I've noticed the amount of 
duplicated boilerplate. I know this isn't a new observation :-) but I think it 
might be a good time to act.

The following services:

1. xenopsd (domain manager): https://github.com/djs55/xenopsd
2. squeezed (ballooning manager): https://github.com/xen-org/squeezed
3. xcp-networkd (host networking manager): 
4. xcp-rrdd (statistics collector): 
... and more I'm sure!

Have the following in common (mostly):

1. configuration: through command-line parsing and config file reading
2. unix domain socket I/O
3. logging
4. daemonisation
5. rpc-light-style XML/JSON RPC interfaces

I propose to add the boilerplate and interface definitions to the "xcp" library:


I'd like to achieve the following:

1. avoid cut 'n paste (obviously) :-)
2. hide the unix daemon specifics (sockets, fork(), config files) so that a 
simple "xcp" package update could allow the services to use mirage[1] and be 
built as stub domains
3. make it easier to manage interface changes and versioning by keeping the 
interfaces in this repo, rather than next to the implementation. Several times 
now I've missed the significance of interface changes because the diffs were 
buried in the middle of implementation details.



Xen-api mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.