ambari-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Levas (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMBARI-7985) Allow for server-side commands
Date Tue, 28 Oct 2014 17:54:34 GMT

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

Mime
View raw message