ace-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Bakker <paul.bak...@luminis.eu>
Subject Configuring cloud nodes from the UI
Date Mon, 28 May 2012 11:00:30 GMT
Hi all,

I just sent a patch (ACE-277 ) with functionality to configure cloud nodes from the UI before
starting them. This was only possible from a configuration file before with the limitation
that you could only launch one type of node (the same hardware, image, bootscript etc.). 
To support this some refactoring in the NodeLauncher and AmazonNodeLauncher were required
which I would like to discuss here.

The NodeLauncher interface should be independent of the type of nodes being used (e.g. cloud
nodes, embedded devices etc.). The UI however should contain configuration options specific
for the type of nodes being launched. Configuring cloud nodes using jclouds for example should
support setting a hardware type, private key file, image id etc. Those properties are not
relevant for launching other types of nodes/devices. 

A new interface NodeLauncherConfig is introduced. This interface is empty because as described
above it's impossible to come up with a list of configuration properties that all our potential
target types support. This way the NodeLauncher interface is still abstract, while it supports
the concept of configuration.

A NodeLauncher implementation should provide an implementation of NodeLauncher with specific
properties for that kind of nodes it can launch. The AmazonNodeLauncher for example should
provide an implementation with properties reflecting the jclouds API. The NodeLauncher implementation
should cast the NodeLauncher interface to it's specific implementation to do anything useful
with it.

The UI is also specifically built for a type of node. The current implementation is specifically
built for cloud nodes for example. A NodePanel should therefore also cast the NodeLauncherConfig
to the specific implementation. This doesn't brake abstractions, because the UI is designed
for specific implementation. A new type of node launcher should also provide a new UI. 

Another thing to improve is changing the AmazonNodeLauncher to a more general JcloudsNodeLauncher
so that it can launch nodes on different clouds. I made some preparations for that in this
patch, and can finalize that work after this patch is applied.

Cheers,

Paul Bakker

Mime
View raw message