[ 
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)

Reply via email to