Package org.sonatype.nexus.rest.model

Examples of org.sonatype.nexus.rest.model.ScheduledServiceResourceStatusResponse


    prop2.setValue("value2");
    base.addProperty(prop2);

    status.setResource(base);

    ScheduledServiceResourceStatusResponse resource = new ScheduledServiceResourceStatusResponse();
    resource.setData(status);

    this.marshalUnmarchalThenCompare(resource);
    this.validateXmlHasNoPackageNames(resource);
  }
View Full Code Here


  @PUT
  public ScheduledServiceResourceStatusResponse put(Context context, Request request, Response response, Object payload)
      throws ResourceException
  {
    ScheduledServiceResourceResponse serviceRequest = (ScheduledServiceResourceResponse) payload;
    ScheduledServiceResourceStatusResponse result = null;

    if (serviceRequest != null) {
      ScheduledServiceBaseResource resource = serviceRequest.getData();

      try {
        // currently we allow editing of:
        // task name
        // task schedule (even to another type)
        // task params
        ScheduledTask<?> task = getNexusScheduler().getTaskById(getScheduledServiceId(request));
        TaskState state = task.getTaskState();
        if (TaskState.RUNNING.equals(state) || TaskState.CANCELLING.equals(state)
            || TaskState.SLEEPING.equals(state)) {
          throw new ResourceException(Status.CLIENT_ERROR_CONFLICT,
              "Task can't be edited while it is being executed or it is in line to be executed");
        }

        task.setEnabled(resource.isEnabled());

        task.setName(getModelName(resource));

        task.setSchedule(getModelSchedule(resource));

        for (Iterator<ScheduledServicePropertyResource> iter = resource.getProperties().iterator(); iter.hasNext(); ) {
          ScheduledServicePropertyResource prop = iter.next();

          task.getTaskParams().put(prop.getKey(), prop.getValue());
        }

        TaskUtils.setAlertEmail(task, resource.getAlertEmail());
        TaskUtils.setId(task, resource.getId());
        TaskUtils.setName(task, resource.getName());

        task.reset();

        // Store the changes
        getNexusScheduler().updateSchedule(task);

        ScheduledServiceResourceStatus resourceStatus = new ScheduledServiceResourceStatus();
        resourceStatus.setResource(resource);
        // Just need to update the id, as the incoming data is a POST w/ no id
        resourceStatus.getResource().setId(task.getId());
        resourceStatus.setResourceURI(createChildReference(request, this, task.getId()).toString());
        resourceStatus.setStatus(task.getTaskState().toString());
        resourceStatus.setReadableStatus(getReadableState(task.getTaskState()));
        resourceStatus.setCreated(task.getScheduledAt() == null ? "n/a" : task.getScheduledAt().toString());
        resourceStatus.setLastRunResult(getLastRunResult(task));
        resourceStatus.setLastRunTime(task.getLastRun() == null ? "n/a" : task.getLastRun().toString());
        resourceStatus.setNextRunTime(task.getNextRun() == null ? "n/a" : task.getNextRun().toString());
        if (task.getScheduledAt() != null) {
          resourceStatus.setCreatedInMillis(task.getScheduledAt().getTime());
        }
        if (task.getLastRun() != null) {
          resourceStatus.setLastRunTimeInMillis(task.getLastRun().getTime());
        }
        if (task.getNextRun() != null) {
          resourceStatus.setNextRunTimeInMillis(task.getNextRun().getTime());
        }

        result = new ScheduledServiceResourceStatusResponse();
        result.setData(resourceStatus);

      }
      catch (NoSuchTaskException e) {
        getLogger().warn("Unable to locate task id:" + resource.getId(), e);
View Full Code Here

  @Override
  @GET
  public ScheduledServiceResourceStatusResponse get(Context context, Request request, Response response, Variant variant)
      throws ResourceException
  {
    ScheduledServiceResourceStatusResponse result = null;

    final String scheduledServiceId = getScheduledServiceId(request);

    try {
      ScheduledTask<?> task = getNexusScheduler().getTaskById(scheduledServiceId);

      task.runNow();

      ScheduledServiceBaseResource resource = getServiceRestModel(task);

      if (resource != null) {
        ScheduledServiceResourceStatus resourceStatus = new ScheduledServiceResourceStatus();
        resourceStatus.setResource(resource);
        resourceStatus.setResourceURI(createChildReference(request, this, task.getId()).toString());
        resourceStatus.setStatus(task.getTaskState().toString());
        resourceStatus.setReadableStatus(getReadableState(task.getTaskState()));
        resourceStatus.setCreated(task.getScheduledAt() == null ? "n/a" : task.getScheduledAt().toString());
        resourceStatus.setLastRunResult(TaskState.BROKEN.equals(task.getTaskState()) ? "Error" : "Ok");
        resourceStatus.setLastRunTime(task.getLastRun() == null ? "n/a" : task.getLastRun().toString());
        resourceStatus.setNextRunTime(task.getNextRun() == null ? "n/a" : task.getNextRun().toString());
        if (task.getScheduledAt() != null) {
          resourceStatus.setCreatedInMillis(task.getScheduledAt().getTime());
        }
        if (task.getLastRun() != null) {
          resourceStatus.setLastRunTimeInMillis(task.getLastRun().getTime());
        }
        if (task.getNextRun() != null) {
          resourceStatus.setNextRunTimeInMillis(task.getNextRun().getTime());
        }

        result = new ScheduledServiceResourceStatusResponse();
        result.setData(resourceStatus);
      }
      else {
        throw new ResourceException(Status.CLIENT_ERROR_NOT_FOUND, "Invalid schedule id ("
            + scheduledServiceId + "), can't load task.");
      }
View Full Code Here

  @POST
  public ScheduledServiceResourceStatusResponse post(Context context, Request request, Response response, Object payload)
      throws ResourceException
  {
    ScheduledServiceResourceResponse serviceRequest = (ScheduledServiceResourceResponse) payload;
    ScheduledServiceResourceStatusResponse result = null;

    if (serviceRequest != null) {
      ScheduledServiceBaseResource serviceResource = serviceRequest.getData();
      try {
        Schedule schedule = getModelSchedule(serviceRequest.getData());
        ScheduledTask<?> task = null;

        final NexusTask<?> nexusTask = getModelNexusTask(serviceResource, request);

        if (getLogger().isDebugEnabled()) {
          getLogger().debug("Creating task with type '" + nexusTask.getClass() + "': " + nexusTask.getName() + " (" +
              nexusTask.getId() + ")");
        }

        if (schedule != null) {
          task =
              getNexusScheduler().schedule(getModelName(serviceResource),
                  nexusTask, schedule);
        }
        else {
          task =
              getNexusScheduler().schedule(getModelName(serviceResource),
                  nexusTask, new ManualRunSchedule());
        }


        task.setEnabled(serviceResource.isEnabled());

        // Need to store the enabled flag update
        getNexusScheduler().updateSchedule(task);

        ScheduledServiceResourceStatus resourceStatus = new ScheduledServiceResourceStatus();
        resourceStatus.setResource(serviceResource);
        // Just need to update the id, as the incoming data is a POST w/ no id
        resourceStatus.getResource().setId(task.getId());
        resourceStatus.setResourceURI(createChildReference(request, this, task.getId()).toString());
        resourceStatus.setStatus(task.getTaskState().toString());
        resourceStatus.setReadableStatus(getReadableState(task.getTaskState()));
        resourceStatus.setCreated(task.getScheduledAt() == null ? "n/a" : task.getScheduledAt().toString());
        resourceStatus.setLastRunResult(TaskState.BROKEN.equals(task.getTaskState()) ? "Error" : "Ok");
        resourceStatus.setLastRunTime(task.getLastRun() == null ? "n/a" : task.getLastRun().toString());
        resourceStatus.setNextRunTime(task.getNextRun() == null ? "n/a" : task.getNextRun().toString());
        if (task.getScheduledAt() != null) {
          resourceStatus.setCreatedInMillis(task.getScheduledAt().getTime());
        }
        if (task.getLastRun() != null) {
          resourceStatus.setLastRunTimeInMillis(task.getLastRun().getTime());
        }
        if (task.getNextRun() != null) {
          resourceStatus.setNextRunTimeInMillis(task.getNextRun().getTime());
        }

        result = new ScheduledServiceResourceStatusResponse();
        result.setData(resourceStatus);
      }
      catch (RejectedExecutionException e) {
        getLogger().warn("Execution of task " + getModelName(serviceResource) + " rejected.");

        throw new ResourceException(Status.CLIENT_ERROR_CONFLICT, e.getMessage());
View Full Code Here

TOP

Related Classes of org.sonatype.nexus.rest.model.ScheduledServiceResourceStatusResponse

Copyright © 2018 www.massapicom. 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.