Hello Paul, On May 28, 2012, at 13:00 , Paul Bakker wrote:
> 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. Thanks for this contribution! It sounds very nice. I will look into it a bit more today. Greetings, Marcel