Search in sources :

Example 6 with ActionStatus

use of org.smartdata.protocol.message.ActionStatus in project SSM by Intel-bigdata.

the class Cmdlet method getActionStatuses.

public synchronized List<ActionStatus> getActionStatuses() throws UnsupportedEncodingException {
    if (actionReportList.isEmpty()) {
        return null;
    }
    // get status in the order of the descend action id.
    // The cmdletmanager should update action status in the ascend order.
    List<ActionStatus> statuses = new ArrayList<>();
    Iterator<SmartAction> iter = actionReportList.iterator();
    while (iter.hasNext()) {
        SmartAction action = iter.next();
        ActionStatus status = action.getActionStatus();
        statuses.add(status);
        if (status.isFinished()) {
            iter.remove();
        }
    }
    return Lists.reverse(statuses);
}
Also used : ArrayList(java.util.ArrayList) SmartAction(org.smartdata.action.SmartAction) ActionStatus(org.smartdata.protocol.message.ActionStatus)

Example 7 with ActionStatus

use of org.smartdata.protocol.message.ActionStatus in project SSM by Intel-bigdata.

the class TestCmdletExecutor method testStop.

@Test
public void testStop() throws InterruptedException {
    final List<StatusMessage> statusMessages = new Vector<>();
    StatusReporter reporter = new StatusReporter() {

        @Override
        public void report(StatusMessage status) {
            statusMessages.add(status);
        }
    };
    CmdletExecutor executor = new CmdletExecutor(new SmartConf());
    StatusReportTask statusReportTask = new StatusReportTask(reporter, executor, new SmartConf());
    ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
    executorService.scheduleAtFixedRate(statusReportTask, 100, 10, TimeUnit.MILLISECONDS);
    SmartAction action = new HangingAction();
    action.setActionId(101);
    Cmdlet cmdlet = new Cmdlet(Arrays.asList(action));
    cmdlet.setId(10);
    executor.execute(cmdlet);
    Thread.sleep(1000);
    executor.stop(10L);
    Thread.sleep(2000);
    StatusReport lastReport = (StatusReport) statusMessages.get(statusMessages.size() - 1);
    ActionStatus status = lastReport.getActionStatuses().get(0);
    Assert.assertTrue(status.isFinished());
    Assert.assertNotNull(status.getThrowable());
    executor.shutdown();
}
Also used : ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) StatusMessage(org.smartdata.protocol.message.StatusMessage) ActionStatus(org.smartdata.protocol.message.ActionStatus) StatusReport(org.smartdata.protocol.message.StatusReport) SmartAction(org.smartdata.action.SmartAction) SmartConf(org.smartdata.conf.SmartConf) Vector(java.util.Vector) StatusReporter(org.smartdata.protocol.message.StatusReporter) Test(org.junit.Test)

Aggregations

ActionStatus (org.smartdata.protocol.message.ActionStatus)7 StatusReport (org.smartdata.protocol.message.StatusReport)4 ArrayList (java.util.ArrayList)3 Test (org.junit.Test)3 SmartAction (org.smartdata.action.SmartAction)3 SmartConf (org.smartdata.conf.SmartConf)3 ScheduledExecutorService (java.util.concurrent.ScheduledExecutorService)2 CmdletInfo (org.smartdata.model.CmdletInfo)2 CmdletStatus (org.smartdata.protocol.message.CmdletStatus)2 StatusMessage (org.smartdata.protocol.message.StatusMessage)2 StatusReporter (org.smartdata.protocol.message.StatusReporter)2 IOException (java.io.IOException)1 HashMap (java.util.HashMap)1 Vector (java.util.Vector)1 AtomicLong (java.util.concurrent.atomic.AtomicLong)1 ActionException (org.smartdata.action.ActionException)1 EchoAction (org.smartdata.action.EchoAction)1 MetaStore (org.smartdata.metastore.MetaStore)1 ActionInfo (org.smartdata.model.ActionInfo)1 LaunchAction (org.smartdata.model.LaunchAction)1