Package org.platformlayer.client.cli.commands

Source Code of org.platformlayer.client.cli.commands.ListJobs

package org.platformlayer.client.cli.commands;

import java.io.IOException;
import java.io.PrintWriter;

import org.kohsuke.args4j.Argument;
import org.platformlayer.PlatformLayerClient;
import org.platformlayer.PlatformLayerClientException;
import org.platformlayer.client.cli.model.ItemPath;
import org.platformlayer.core.model.PlatformLayerKey;
import org.platformlayer.jobs.model.JobData;
import org.platformlayer.jobs.model.JobDataList;
import org.platformlayer.xml.JsonHelper;

import com.fathomdb.cli.CliException;
import com.fathomdb.cli.autocomplete.AutoCompletor;
import com.fathomdb.cli.autocomplete.SimpleAutoCompleter;
import com.fathomdb.cli.commands.Ansi;

public class ListJobs extends PlatformLayerCommandRunnerBase {
  @Argument(index = 0)
  public ItemPath path;

  public ListJobs() {
    super("list", "jobs");
  }

  @Override
  public Object runCommand() throws PlatformLayerClientException {
    PlatformLayerClient client = getPlatformLayerClient();

    JobDataList jobs;
    if (path == null) {
      jobs = client.listJobs();
    } else {
      PlatformLayerKey resolved = path.resolve(getContext());
      jobs = client.listJobs(resolved);
    }
    // if (path != null) {
    // PlatformLayerKey resolved = path.resolve(getContext());
    //
    // JobDataList matches = JobDataList.create();
    //
    // for (JobData job : jobs.getJobs()) {
    // if (!Objects.equal(job.getTargetItemKey(), resolved)) {
    // continue;
    // }
    //
    // matches.jobs.add(job);
    // }
    //
    // jobs = matches;
    // }

    return jobs;
  }

  @Override
  public AutoCompletor getAutoCompleter() {
    return new SimpleAutoCompleter();
  }

  @Override
  public void formatRaw(Object o, PrintWriter writer) {
    JobDataList jobs = (JobDataList) o;

    switch (getFormat()) {
    case JSON:
      JsonHelper<JobDataList> jsonHelper = JsonHelper.build(JobDataList.class);
      boolean formatted = true;
      try {
        String json = jsonHelper.marshal(jobs, formatted);
        writer.println(json);
        return;
      } catch (IOException e) {
        throw new CliException("Error formatting for output", e);
      }
    }

    Ansi ansi = new Ansi(writer);

    for (JobData job : jobs.getJobs()) {
      // JobState state = job.state;
      // if (state != null) {
      // ansi.setColorBlue();
      // switch (job.state) {
      // case FAILED:
      // ansi.setColorRed();
      // break;
      //
      // case SUCCESS:
      // ansi.setColorGreen();
      // break;
      //
      // case RUNNING:
      // ansi.setColorBlue();
      // break;
      //
      // default:
      // ansi.setColorBlue();
      // break;
      // }
      // }

      writer.println(job.key);
    }

    ansi.reset();
  }

}
TOP

Related Classes of org.platformlayer.client.cli.commands.ListJobs

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.