[
https://issues.apache.org/jira/browse/AMBARI-7985?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14187178#comment-14187178
]
Robert Levas commented on AMBARI-7985:
--------------------------------------
For my use cases, I don't have a need to have server and agent-side tasks
running in parallel, but I am sure someone will think that it is useful.
In either case, the ServerActionManager isn't really doing much right now, and
I am not sure if ever gets invoked. So my plan is to probably get rid of that
class and repurpose the ServerAction interface to allow server action
implementations to inherit from it or some abstract implementation of it. The
ActionScheduler would then create a server action handler. That handler would
create a thread (to give control back to the ActionScheduler), create an
instance of the implementation class (specified in the command data),
generating a thread, and then invoke the actions run method. The handler would
the be responsible for altering the state metadata about that task.
> Allow for server-side commands
> ------------------------------
>
> Key: AMBARI-7985
> URL: https://issues.apache.org/jira/browse/AMBARI-7985
> Project: Ambari
> Issue Type: New Feature
> Components: ambari-server
> Affects Versions: 2.0.0
> Reporter: Robert Levas
> Assignee: Robert Levas
> Labels: ambari-server, commands, server, server-side, tasks
> Fix For: 2.0.0
>
>
> Ambari currently handles _client-/agent-side_ commands; however there is no
> ability to handle _server-side_ commands. Server-side commands should be
> specified as a task in a stage and managed along with the stage.
> *Use Case:* Generate principals and keytabs on the Ambari server before
> sending the keytabs to their relevant hosts.
> *Implementation:* To add the concept of a server-side task:
> * update {{org.apache.ambari.server.serveraction.ServerAction}} to be an
> _abstract class_
> ** _server-side_ tasks must implement this class
> * reuse existing _host_role_command_ and _execution_command_ data
> ** _server-side_ tasks are to have a role of {{AMBARI_SERVER_ACTION}}
> ** _server-side_ execution command data should be encapsulated as JSON and
> specify the ServerAction implementation class and any needed payload data
> * {{org.apache.ambari.server.actionmanager.ActionScheduler}} and
> {{org.apache.ambari.server.serveraction.ServerActionManagerImpl}} need to be
> updated to handle the execution of server-side tasks
> ** each _server-side_ task should be executed in its own thread.
> *** _server_side_ tasks should be executed in (staged) order, serially - not
> in parallel
> *** _server_side_ tasks should ensure not to mess up _stage_ ordering
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)