Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve SchedulerClient compliance with Scheduler API #2736

Merged
merged 12 commits into from Dec 30, 2016
Expand Up @@ -36,6 +36,18 @@
*/
package org.ow2.proactive_grid_cloud_portal.common;

import org.jboss.resteasy.annotations.GZIP;
import org.jboss.resteasy.annotations.providers.multipart.MultipartForm;
import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
import org.ow2.proactive.scheduler.common.SortSpecifierContainer;
import org.ow2.proactive_grid_cloud_portal.common.dto.LoginForm;
import org.ow2.proactive_grid_cloud_portal.scheduler.dto.*;
import org.ow2.proactive_grid_cloud_portal.scheduler.exception.*;

import javax.security.auth.login.LoginException;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.PathSegment;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
Expand All @@ -46,51 +58,6 @@
import java.util.Map;
import java.util.Set;

import javax.security.auth.login.LoginException;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.NotFoundException;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.PathSegment;

import org.jboss.resteasy.annotations.GZIP;
import org.jboss.resteasy.annotations.providers.multipart.MultipartForm;
import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
import org.ow2.proactive.scheduler.common.SortSpecifierContainer;
import org.ow2.proactive_grid_cloud_portal.common.dto.LoginForm;
import org.ow2.proactive_grid_cloud_portal.scheduler.dto.JobIdData;
import org.ow2.proactive_grid_cloud_portal.scheduler.dto.JobInfoData;
import org.ow2.proactive_grid_cloud_portal.scheduler.dto.JobResultData;
import org.ow2.proactive_grid_cloud_portal.scheduler.dto.JobStateData;
import org.ow2.proactive_grid_cloud_portal.scheduler.dto.JobUsageData;
import org.ow2.proactive_grid_cloud_portal.scheduler.dto.JobValidationData;
import org.ow2.proactive_grid_cloud_portal.scheduler.dto.RestMapPage;
import org.ow2.proactive_grid_cloud_portal.scheduler.dto.RestPage;
import org.ow2.proactive_grid_cloud_portal.scheduler.dto.SchedulerStatusData;
import org.ow2.proactive_grid_cloud_portal.scheduler.dto.SchedulerUserData;
import org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskResultData;
import org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskStateData;
import org.ow2.proactive_grid_cloud_portal.scheduler.dto.UserJobData;
import org.ow2.proactive_grid_cloud_portal.scheduler.exception.JobAlreadyFinishedRestException;
import org.ow2.proactive_grid_cloud_portal.scheduler.exception.JobCreationRestException;
import org.ow2.proactive_grid_cloud_portal.scheduler.exception.LogForwardingRestException;
import org.ow2.proactive_grid_cloud_portal.scheduler.exception.NotConnectedRestException;
import org.ow2.proactive_grid_cloud_portal.scheduler.exception.PermissionRestException;
import org.ow2.proactive_grid_cloud_portal.scheduler.exception.SchedulerRestException;
import org.ow2.proactive_grid_cloud_portal.scheduler.exception.SubmissionClosedRestException;
import org.ow2.proactive_grid_cloud_portal.scheduler.exception.UnknownJobRestException;
import org.ow2.proactive_grid_cloud_portal.scheduler.exception.UnknownTaskRestException;

@Path("/scheduler/")
public interface SchedulerRestInterface {

Expand Down Expand Up @@ -1613,6 +1580,14 @@ List<SchedulerUserData> getUsers(@HeaderParam("sessionid") final String sessionI
List<String> userspaceURIs(@HeaderParam("sessionid") String sessionId)
throws NotConnectedRestException, PermissionRestException;


@GET
@Path("globalspace")
@Produces("application/json")
List<String> globalspaceURIs(@HeaderParam("sessionid") String sessionId)
throws NotConnectedRestException, PermissionRestException;


/**
* Users having jobs in the scheduler
*
Expand Down
Expand Up @@ -37,7 +37,7 @@

package org.ow2.proactive_grid_cloud_portal.scheduler.dto;

public class JobInfoData {
public class JobInfoData implements java.io.Serializable {

private long startTime;
private long inErrorTime;
Expand Down
Expand Up @@ -37,17 +37,23 @@

package org.ow2.proactive_grid_cloud_portal.scheduler.dto;

import java.util.Map;

import javax.xml.bind.annotation.XmlRootElement;
import java.util.Map;


@XmlRootElement
public class JobResultData {

private JobIdData id;

private JobInfoData jobInfo;

private Map<String, TaskResultData> allResults;

private Map<String, TaskResultData> preciousResults;

private Map<String, TaskResultData> exceptionResults;

public JobIdData getId() {
return id;
}
Expand All @@ -64,8 +70,32 @@ public void setAllResults(Map<String, TaskResultData> allResults) {
this.allResults = allResults;
}

public JobInfoData getJobInfo() {
return jobInfo;
}

public void setJobInfo(JobInfoData jobInfo) {
this.jobInfo = jobInfo;
}

public Map<String, TaskResultData> getPreciousResults() {
return preciousResults;
}

public void setPreciousResults(Map<String, TaskResultData> preciousResults) {
this.preciousResults = preciousResults;
}

public Map<String, TaskResultData> getExceptionResults() {
return exceptionResults;
}

public void setExceptionResults(Map<String, TaskResultData> exceptionResults) {
this.exceptionResults = exceptionResults;
}

@Override
public String toString() {
return "JobResultData{" + "id=" + id + ", allResults=" + allResults + '}';
return "JobResultData{" + "id=" + id + ", allResults=" + allResults + ", preciousResults=" + preciousResults + ", exceptionResults=" + exceptionResults + ", jobInfo=" + jobInfo + '}';
}
}
@@ -0,0 +1,66 @@
/*
* *
* ProActive Parallel Suite(TM): The Java(TM) library for
* Parallel, Distributed, Multi-Core Computing for
* Enterprise Grids & Clouds
*
* Copyright (C) 1997-2015 INRIA/University of
* Nice-Sophia Antipolis/ActiveEon
* Contact: proactive@ow2.org or contact@activeeon.com
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation; version 3 of
* the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
* If needed, contact us to obtain a release under GPL Version 2 or 3
* or a different license than the AGPL.
*
* Initial developer(s): The ProActive Team
* http://proactive.inria.fr/team_members.htm
* Contributor(s):
*
* * $$ACTIVEEON_INITIAL_DEV$$
*/
package org.ow2.proactive_grid_cloud_portal.scheduler.dto;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class TaskLogsData {

private String stdoutLogs;
private String stderrLogs;

public String getStdoutLogs() {
return stdoutLogs;
}

public void setStdoutLogs(String stdoutLogs) {
this.stdoutLogs = stdoutLogs;
}

public String getStderrLogs() {
return stderrLogs;
}

public void setStderrLogs(String stderrLogs) {
this.stderrLogs = stderrLogs;
}


@Override
public String toString() {
return "TaskLogsData{" + "stdoutLogs=" + stdoutLogs + ", stdoutLogs=" + stderrLogs + '}';
}
}
Expand Up @@ -46,10 +46,19 @@
public class TaskResultData {

private TaskIdData id;

private byte[] serializedValue;

private byte[] serializedException;

private String exceptionMessage;

private Map<String, String> metadata;

private Map<String, byte[]> propagatedVariables;

private TaskLogsData output;

public TaskIdData getId() {
return id;
}
Expand All @@ -66,6 +75,14 @@ public void setSerializedValue(byte[] serializedValue) {
this.serializedValue = serializedValue;
}

public byte[] getSerializedException() {
return serializedException;
}

public void setSerializedException(byte[] serializedException) {
this.serializedException = serializedException;
}

public Map<String, String> getMetadata() {
return metadata;
}
Expand All @@ -74,8 +91,32 @@ public void setMetadata(Map<String, String> metadata) {
this.metadata = metadata;
}

public String getExceptionMessage() {
return exceptionMessage;
}

public void setExceptionMessage(String exceptionMessage) {
this.exceptionMessage = exceptionMessage;
}

public Map<String, byte[]> getPropagatedVariables() {
return propagatedVariables;
}

public void setPropagatedVariables(Map<String, byte[]> propagatedVariables) {
this.propagatedVariables = propagatedVariables;
}

public TaskLogsData getOutput() {
return output;
}

public void setOutput(TaskLogsData output) {
this.output = output;
}

@Override
public String toString() {
return "TaskResultData{" + "id=" + id + ", serializedValue=" + Arrays.toString(serializedValue) + ", metadata=" + metadata + '}';
return "TaskResultData{" + "id=" + id + ", serializedValue=" + Arrays.toString(serializedValue) + ", serializedException=" + Arrays.toString(serializedException) + ", exception=" + exceptionMessage + ", metadata=" + metadata + ", output=" + output + '}';
}
}
@@ -0,0 +1,42 @@
/*
* *
* ProActive Parallel Suite(TM): The Java(TM) library for
* Parallel, Distributed, Multi-Core Computing for
* Enterprise Grids & Clouds
*
* Copyright (C) 1997-2015 INRIA/University of
* Nice-Sophia Antipolis/ActiveEon
* Contact: proactive@ow2.org or contact@activeeon.com
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation; version 3 of
* the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
* If needed, contact us to obtain a release under GPL Version 2 or 3
* or a different license than the AGPL.
*
* Initial developer(s): The ProActive Team
* http://proactive.inria.fr/team_members.htm
* Contributor(s):
*
* * $$ACTIVEEON_INITIAL_DEV$$
*/
package org.ow2.proactive_grid_cloud_portal.scheduler.exception;

public class TaskRestException extends RestException {

public TaskRestException(String message) {
super(message);
}
}
Expand Up @@ -34,8 +34,6 @@
*/
package org.ow2.proactive.scheduler.rest;

import java.util.List;

import org.ow2.proactive.scheduler.common.SchedulerEvent;
import org.ow2.proactive.scheduler.common.SchedulerEventListener;
import org.ow2.proactive.scheduler.common.SchedulerState;
Expand Down Expand Up @@ -63,11 +61,6 @@ public boolean changePolicy(String arg0) throws NotConnectedException, Permissio
throw newUnsupportedOperationException();
}

@Override
public List<String> getGlobalSpaceURIs() throws NotConnectedException, PermissionException {
throw newUnsupportedOperationException();
}

@Override
public SchedulerState getState() throws NotConnectedException, PermissionException {
throw newUnsupportedOperationException();
Expand All @@ -90,18 +83,6 @@ public TaskResult getTaskResultFromIncarnation(String arg0, String arg1, int arg
throw newUnsupportedOperationException();
}

@Override
public boolean killTask(JobId arg0, String arg1) throws NotConnectedException, UnknownJobException,
UnknownTaskException, PermissionException {
throw new UnsupportedOperationException();
}

@Override
public boolean killTask(String arg0, String arg1) throws NotConnectedException, UnknownJobException,
UnknownTaskException, PermissionException {
throw new UnsupportedOperationException();
}

@Override
public void listenJobLogs(JobId arg0, AppenderProvider arg1) throws NotConnectedException,
UnknownJobException, PermissionException {
Expand Down