You're right, probably more complex than needed for now.
The "clutter" I meant is just in the SoftwareProcess code. But
{pre,post}_launch is probably worth it.
Agree with you about leaving it as a string for now.
--A
On 01/07/2014 16:20, Aled Sage wrote:
Hi Alex,
Are you thinking of using an entity initializer that (when executed on
entity.init) does some very fancy stuff to intercept the tasks that
will later be executed - in particular intercepting the launch task
which is a sub-task of start? If so, that sounds powerful but
complicated.
What do you mean by "always cluttering it"? With Martin's scheme, we'd
only include the config in yaml when we needed it to execute extra
commands.
I wondered about the config being a list as well - I backed off that
because ListConfigKey is deprecated (because our use of the datagrid
for storing config values is backed by a set, and is not preserving
order).
We could declare it as ConfigKey<List<String>> though.
Aled
On 01/07/2014 15:56, Alex Heneveld wrote:
We could define this as an entity initializer which wraps the
SoftwareProcess tasks, that way it is optionally available in yaml
without
always cluttering it. Or okay to add always.
It could take a list that way it could be extended multiple times.
Best
Alex
On 1 Jul 2014 12:07, "Aled Sage" <[email protected]> wrote:
Hi Martin,
That makes sense. I'm slightly hesitant for us to have so many config
options.
For now, should we just add PRE_LAUNCH_COMMAND and
POST_LAUNCH_COMMAND as
I believe that meets your UserGrid use-case (to update a config file
being
installed into a Tomcat server, without having to write Java code that
sub-classes the Tomcat7SshDriver).
---
Another useful thing (based on separate chat on another UserGrid
requirement) is to specify files to be uploaded. In
`brooklyn.entity.messaging.qpid.QpidBroker`, there are config keys for
RUNTIME_FILES and RUNTIME_TEMPLATES that are uploaded in
`QpidSshDriver.customize`. It would be good to generalise these in
SoftwareProcess.
(MongoDBClient.JS_SCRIPTS is similar, but the
MongoDBClientSshDriver.customize
chooses the destination dir rather than it being part of the config
values).
Aled
p.s. the interface is SoftwareProcess rather than
AbstractSoftwareProcess.
On 19/06/2014 16:19, Martin Harris wrote:
Hi Folks,
I have a use-case where I want to deploy a Tomcat server, and once
it's
launched I want to modify one of the files (inject the URL of
another node
into a config file)
If I were doing it in Java, I'd create a custom SSH driver and
override
launch, but I want to do it in YAML
In a similar pattern to the VanillaSoftwareProcess, I'm thinking about
adding some ConfigKey<String> keys to AbstractSoftwareProcess as
follows:
ConfigKey<String> PRE_INSTALL_COMMAND
ConfigKey<String> POST_INSTALL_COMMAND
ConfigKey<String> PRE_CUSTOMIZE_COMMAND
ConfigKey<String> POST_CUSTOMIZE_COMMAND
ConfigKey<String> PRE_LAUNCH_COMMAND
ConfigKey<String> POST_LAUNCH_COMMAND
These would then be executed in AbstractSoftwareProcess.start()
Any thoughts?