ref 8819: Extend The Algorithms Importer to Manage Many Processes as Black Boxes
https://support.d4science.org/issues/8819 Updated the support for Processes as Black Boxes git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/statistical-algorithms-importer@151031 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
6244c81883
commit
3e2f0eaa0b
|
@ -61,6 +61,12 @@ public class ProjectInfoPanel extends ContentPanel {
|
||||||
algorithmName.setAllowBlank(false);
|
algorithmName.setAllowBlank(false);
|
||||||
algorithmName.addValidator(
|
algorithmName.addValidator(
|
||||||
new RegExValidator("^[a-zA-Z0-9_]*$", "Attention only characters a-z,A-Z,0-9 are allowed"));
|
new RegExValidator("^[a-zA-Z0-9_]*$", "Attention only characters a-z,A-Z,0-9 are allowed"));
|
||||||
|
algorithmName.addValidator(
|
||||||
|
new RegExValidator("^((?!(TEST|test|Test)).)*$", "Attention the words that contain TEST are invalid names"));
|
||||||
|
|
||||||
|
algorithmName.addValidator(new MaxLengthValidator(100));
|
||||||
|
|
||||||
|
|
||||||
algorithmName.setEmptyText("Enter name...");
|
algorithmName.setEmptyText("Enter name...");
|
||||||
algorithmName.addChangeHandler(new ChangeHandler() {
|
algorithmName.addChangeHandler(new ChangeHandler() {
|
||||||
|
|
||||||
|
@ -79,6 +85,8 @@ public class ProjectInfoPanel extends ContentPanel {
|
||||||
algorithmDescription.setAllowBlank(false);
|
algorithmDescription.setAllowBlank(false);
|
||||||
algorithmDescription.setEmptyText("Enter description...");
|
algorithmDescription.setEmptyText("Enter description...");
|
||||||
algorithmDescription.addValidator(new RegExValidator("^[^\"]*$", "Attention character \" is not allowed"));
|
algorithmDescription.addValidator(new RegExValidator("^[^\"]*$", "Attention character \" is not allowed"));
|
||||||
|
algorithmDescription.addValidator(new RegExValidator("^[^|]*$", "Attention character | is not allowed"));
|
||||||
|
|
||||||
FieldLabel descriptionLabel = new FieldLabel(algorithmDescription, "Description");
|
FieldLabel descriptionLabel = new FieldLabel(algorithmDescription, "Description");
|
||||||
descriptionLabel.setLabelWidth(LABAEL_WIDTH);
|
descriptionLabel.setLabelWidth(LABAEL_WIDTH);
|
||||||
|
|
||||||
|
@ -86,7 +94,10 @@ public class ProjectInfoPanel extends ContentPanel {
|
||||||
algorithmCategory = new TextField();
|
algorithmCategory = new TextField();
|
||||||
algorithmCategory.setAllowBlank(false);
|
algorithmCategory.setAllowBlank(false);
|
||||||
algorithmCategory.setEmptyText("Enter description...");
|
algorithmCategory.setEmptyText("Enter description...");
|
||||||
algorithmCategory.addValidator(new RegExValidator("^[^\"]*$", "Attention character \" is not allowed"));
|
algorithmCategory.addValidator(
|
||||||
|
new RegExValidator("^[a-zA-Z0-9_]*$", "Attention only characters a-z,A-Z,0-9 are allowed"));
|
||||||
|
algorithmCategory.addValidator(
|
||||||
|
new RegExValidator("^((?!(TEST|test|Test)).)*$", "Attention the words that contain TEST are invalid names"));
|
||||||
algorithmCategory.addValidator(new MaxLengthValidator(32));
|
algorithmCategory.addValidator(new MaxLengthValidator(32));
|
||||||
FieldLabel categoryLabel = new FieldLabel(algorithmCategory, "Category");
|
FieldLabel categoryLabel = new FieldLabel(algorithmCategory, "Category");
|
||||||
categoryLabel.setLabelWidth(LABAEL_WIDTH);
|
categoryLabel.setLabelWidth(LABAEL_WIDTH);
|
||||||
|
|
|
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.poolmanager.DataMinerPoolManager;
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.social.AlgorithmNotification;
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.social.AlgorithmNotification;
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.social.Recipient;
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.social.Recipient;
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.storage.DeploySave;
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.storage.DeploySave;
|
||||||
|
@ -16,29 +17,27 @@ import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Giancarlo Panichi
|
* @author Giancarlo Panichi
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class ProjectDeploy {
|
public class ProjectDeploy {
|
||||||
private static Logger logger = LoggerFactory.getLogger(ProjectDeploy.class);
|
private static Logger logger = LoggerFactory.getLogger(ProjectDeploy.class);
|
||||||
|
|
||||||
|
|
||||||
private ServiceCredentials serviceCredentials;
|
private ServiceCredentials serviceCredentials;
|
||||||
private Project project;
|
private Project project;
|
||||||
private ArrayList<Recipient> recipients;
|
private ArrayList<Recipient> recipients;
|
||||||
private HttpServletRequest httpServletRequest;
|
private HttpServletRequest httpServletRequest;
|
||||||
|
|
||||||
public ProjectDeploy(HttpServletRequest httpServletRequest,
|
public ProjectDeploy(HttpServletRequest httpServletRequest, ServiceCredentials serviceCredentials, Project project,
|
||||||
ServiceCredentials serviceCredentials, Project project,
|
|
||||||
ArrayList<Recipient> recipients) {
|
ArrayList<Recipient> recipients) {
|
||||||
this.serviceCredentials = serviceCredentials;
|
this.serviceCredentials = serviceCredentials;
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.recipients = recipients;
|
this.recipients = recipients;
|
||||||
this.httpServletRequest = httpServletRequest;
|
this.httpServletRequest = httpServletRequest;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deploy() throws StatAlgoImporterServiceException{
|
public void deploy() throws StatAlgoImporterServiceException{
|
||||||
InfoGenerator infoGenerator=new InfoGenerator(project, serviceCredentials);
|
InfoGenerator infoGenerator=new InfoGenerator(project, serviceCredentials);
|
||||||
InfoData infoData=infoGenerator.readInfo();
|
InfoData infoData=infoGenerator.readInfo();
|
||||||
|
@ -47,14 +46,19 @@ public class ProjectDeploy {
|
||||||
deploySave.save();
|
deploySave.save();
|
||||||
logger.debug("Send notify");
|
logger.debug("Send notify");
|
||||||
sendNotify(deploySave.getInfoText());
|
sendNotify(deploySave.getInfoText());
|
||||||
|
logger.debug("CodeJarAdminCopy for PoolManager: "+deploySave.getCodeJarAdminCopy());
|
||||||
|
DataMinerPoolManager poolManager=new DataMinerPoolManager(serviceCredentials);
|
||||||
|
String operationId=poolManager.deployAlgorithm(infoData, deploySave.getCodeJarAdminCopy());
|
||||||
|
logger.debug("Deploy operationId: "+operationId);
|
||||||
|
String deployStatus=poolManager.monitorAlgorithmDeploy(operationId);
|
||||||
|
logger.debug("Deploy status: "+deployStatus);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendNotify(String body){
|
private void sendNotify(String body) {
|
||||||
AlgorithmNotification notify = new AlgorithmNotification(httpServletRequest,
|
AlgorithmNotification notify = new AlgorithmNotification(httpServletRequest, serviceCredentials, recipients,
|
||||||
serviceCredentials, recipients, body);
|
body);
|
||||||
notify.run();
|
notify.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,8 +107,9 @@ public class InformationSystemUtils {
|
||||||
logger.debug("Retrieve DataMiner Pool Manager resource in scope: " + scope);
|
logger.debug("Retrieve DataMiner Pool Manager resource in scope: " + scope);
|
||||||
|
|
||||||
SimpleQuery query = ICFactory.queryFor(GCoreEndpoint.class);
|
SimpleQuery query = ICFactory.queryFor(GCoreEndpoint.class);
|
||||||
query.addCondition("$resource/Profile/SecondaryType/text() eq '" + Constants.POOL_MANAGER_CATEGORY + "'")
|
|
||||||
.addCondition("$resource/Profile/Name/text() eq '" + Constants.POOL_MANAGER_NAME + "'")
|
query.addCondition("$resource/Profile/ServiceClass/text() eq '" + Constants.POOL_MANAGER_SERVICE_CLASS + "'")
|
||||||
|
.addCondition("$resource/Profile/ServiceName/text() eq '" + Constants.POOL_MANAGER_SERVICE_NAME + "'")
|
||||||
.setResult("$resource");
|
.setResult("$resource");
|
||||||
|
|
||||||
DiscoveryClient<GCoreEndpoint> client = ICFactory.clientFor(GCoreEndpoint.class);
|
DiscoveryClient<GCoreEndpoint> client = ICFactory.clientFor(GCoreEndpoint.class);
|
||||||
|
|
|
@ -0,0 +1,155 @@
|
||||||
|
package org.gcube.portlets.user.statisticalalgorithmsimporter.server.poolmanager;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.is.InformationSystemUtils;
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.util.ServiceCredentials;
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.info.InfoData;
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Giancarlo Panichi
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class DataMinerPoolManager {
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(DataMinerPoolManager.class);
|
||||||
|
private String serverUrl;
|
||||||
|
private ServiceCredentials serviceCredentials;
|
||||||
|
|
||||||
|
public DataMinerPoolManager(ServiceCredentials serviceCredentials) throws StatAlgoImporterServiceException {
|
||||||
|
this.serviceCredentials=serviceCredentials;
|
||||||
|
serverUrl = InformationSystemUtils.retrieveDataMinerPoolManager(serviceCredentials.getScope());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String deployAlgorithm(InfoData infoData,
|
||||||
|
ItemDescription codeJarAdminCopy) throws StatAlgoImporterServiceException {
|
||||||
|
String operationId = sendRequest(infoData, codeJarAdminCopy, serverUrl);
|
||||||
|
return operationId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String monitorAlgorithmDeploy(String operationId) throws StatAlgoImporterServiceException {
|
||||||
|
String deployStatus = deployStatus(serverUrl, operationId);
|
||||||
|
return deployStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private String sendRequest(InfoData infoData,
|
||||||
|
ItemDescription codeJarAdminCopy, String serverUrl) throws StatAlgoImporterServiceException {
|
||||||
|
logger.info("Send request to DataMinerPoolManager: " + serverUrl);
|
||||||
|
/*
|
||||||
|
* http://node2-d-d4s.d4science.org:8080/dataminer-pool-manager-2.0.0-
|
||||||
|
* SNAPSHOT/api/algorithm/stage?
|
||||||
|
* gcube-token=708e7eb8-11a7-4e9a-816b-c9ed7e7e99fe-98187548
|
||||||
|
* &algorithmPackageURL=http://data.d4science.org/
|
||||||
|
* dENQTTMxdjNZcGRpK0NHd2pvU0owMFFzN0VWemw3Zy9HbWJQNStIS0N6Yz0
|
||||||
|
* &category=ICHTHYOP_MODEL
|
||||||
|
*/
|
||||||
|
|
||||||
|
try {
|
||||||
|
String requestUrl = serverUrl + "/algorithm/stage?gcube-token=" + serviceCredentials.getToken()
|
||||||
|
+ "&algorithmPackageURL=" + codeJarAdminCopy.getPublicLink()
|
||||||
|
+ "&algorithm_type=transducers&category=" + infoData.getAlgorithmCategory();
|
||||||
|
logger.debug("DataMinerPoolManager request=" + requestUrl);
|
||||||
|
|
||||||
|
// String authString = user + ":" + password;
|
||||||
|
// logger.debug("auth string: " + authString);
|
||||||
|
// byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
|
||||||
|
// String encoded = new String(authEncBytes);
|
||||||
|
// logger.debug("Base64 encoded auth string: " + encoded);
|
||||||
|
|
||||||
|
URL urlObj = new URL(requestUrl);
|
||||||
|
HttpURLConnection connection = (HttpURLConnection) urlObj.openConnection();
|
||||||
|
connection.setRequestMethod("GET");
|
||||||
|
connection.setDoOutput(true);
|
||||||
|
// connection.setRequestProperty("Authorization", "Basic " +
|
||||||
|
// encoded);
|
||||||
|
InputStream is = connection.getInputStream();
|
||||||
|
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
|
||||||
|
String line = null;
|
||||||
|
StringBuffer operationId = new StringBuffer();
|
||||||
|
logger.info("DataMinerPoolManager response: ");
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
logger.info(line);
|
||||||
|
operationId.append(line);
|
||||||
|
}
|
||||||
|
|
||||||
|
return operationId.toString();
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
logger.error("DataMinerPoolManager URL seems to be invalid: " + e.getLocalizedMessage(), e);
|
||||||
|
throw new StatAlgoImporterServiceException(
|
||||||
|
"DataMinerPoolManager URL seems to be invalid: " + e.getLocalizedMessage(), e);
|
||||||
|
} catch (IOException e) {
|
||||||
|
logger.error("DataMinerPoolManager error occured in request: " + e.getLocalizedMessage(), e);
|
||||||
|
throw new StatAlgoImporterServiceException(
|
||||||
|
"DataMinerPoolManager error occured in request: " + e.getLocalizedMessage(), e);
|
||||||
|
|
||||||
|
} catch (Throwable e) {
|
||||||
|
logger.error("DataMinerPoolManager error occured: " + e.getLocalizedMessage(), e);
|
||||||
|
throw new StatAlgoImporterServiceException("DataMinerPoolManager error occured: " + e.getLocalizedMessage(),
|
||||||
|
e);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String deployStatus(String serverUrl, String operationId)
|
||||||
|
throws StatAlgoImporterServiceException {
|
||||||
|
logger.info("Send monitor request to DataMinerPoolManager: " + serverUrl);
|
||||||
|
/*
|
||||||
|
* http://node2-d-d4s.d4science.org:8080/dataminer-pool-manager-2.0.0-
|
||||||
|
* SNAPSHOT/api/log?
|
||||||
|
* gcube-token=708e7eb8-11a7-4e9a-816b-c9ed7e7e99fe-98187548
|
||||||
|
* &logUrl=426c8e35-a624-4710-b612-c90929c32c27
|
||||||
|
*/
|
||||||
|
|
||||||
|
try {
|
||||||
|
String requestUrl = serverUrl + "/log?gcube-token=" + serviceCredentials.getToken() + "&logUrl="
|
||||||
|
+ operationId;
|
||||||
|
logger.debug("DataMinerPoolManager monitor request=" + requestUrl);
|
||||||
|
|
||||||
|
URL urlObj = new URL(requestUrl);
|
||||||
|
HttpURLConnection connection = (HttpURLConnection) urlObj.openConnection();
|
||||||
|
connection.setRequestMethod("GET");
|
||||||
|
connection.setDoOutput(true);
|
||||||
|
|
||||||
|
InputStream is = connection.getInputStream();
|
||||||
|
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
|
||||||
|
String line = null;
|
||||||
|
StringBuffer operationStatus = new StringBuffer();
|
||||||
|
logger.info("DataMinerPoolManager response: ");
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
logger.info(line);
|
||||||
|
operationStatus.append(line);
|
||||||
|
}
|
||||||
|
|
||||||
|
return operationStatus.toString();
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
logger.error("DataMinerPoolManager monitor URL seems to be invalid: " + e.getLocalizedMessage(), e);
|
||||||
|
throw new StatAlgoImporterServiceException(
|
||||||
|
"DataMinerPoolManager monitor URL seems to be invalid: " + e.getLocalizedMessage(), e);
|
||||||
|
} catch (IOException e) {
|
||||||
|
logger.error("DataMinerPoolManager error occured in monitor request: " + e.getLocalizedMessage(), e);
|
||||||
|
throw new StatAlgoImporterServiceException(
|
||||||
|
"DataMinerPoolManager error occured in monitor request: " + e.getLocalizedMessage(), e);
|
||||||
|
|
||||||
|
} catch (Throwable e) {
|
||||||
|
logger.error("DataMinerPoolManager monitor error occured: " + e.getLocalizedMessage(), e);
|
||||||
|
throw new StatAlgoImporterServiceException(
|
||||||
|
"DataMinerPoolManager monitor error occured: " + e.getLocalizedMessage(), e);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,35 +0,0 @@
|
||||||
package org.gcube.portlets.user.statisticalalgorithmsimporter.server.poolmanager;
|
|
||||||
|
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.is.InformationSystemUtils;
|
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.util.ServiceCredentials;
|
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Giancarlo Panichi
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class PoolManager {
|
|
||||||
private static Logger logger = LoggerFactory.getLogger(PoolManager.class);
|
|
||||||
|
|
||||||
private ServiceCredentials serviceCredentials;
|
|
||||||
|
|
||||||
public PoolManager(ServiceCredentials serviceCredentials) {
|
|
||||||
this.serviceCredentials=serviceCredentials;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void deployAlgorithm() throws StatAlgoImporterServiceException{
|
|
||||||
retrievePoolManagerURI();
|
|
||||||
}
|
|
||||||
|
|
||||||
private String retrievePoolManagerURI() throws StatAlgoImporterServiceException {
|
|
||||||
String poolManagerURI=InformationSystemUtils.retrieveDataMinerPoolManager(serviceCredentials.getScope());
|
|
||||||
logger.debug("PoolManagerURI: "+poolManagerURI);
|
|
||||||
return poolManagerURI;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -39,12 +39,15 @@ public class DeploySave {
|
||||||
private Project project;
|
private Project project;
|
||||||
private InfoData infoData;
|
private InfoData infoData;
|
||||||
private String infoText;
|
private String infoText;
|
||||||
|
private ItemDescription codeJarAdminCopy;
|
||||||
|
|
||||||
|
|
||||||
public DeploySave(ServiceCredentials serviceCredentials, Project project, InfoData infoData) {
|
public DeploySave(ServiceCredentials serviceCredentials, Project project, InfoData infoData) {
|
||||||
this.serviceCredentials = serviceCredentials;
|
this.serviceCredentials = serviceCredentials;
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.infoData = infoData;
|
this.infoData = infoData;
|
||||||
this.infoText = null;
|
this.infoText = null;
|
||||||
|
this.codeJarAdminCopy=null;
|
||||||
filesStorage = new FilesStorage();
|
filesStorage = new FilesStorage();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -58,7 +61,6 @@ public class DeploySave {
|
||||||
WorkspaceItem codeJarItem = filesStorage.createItemOnWorkspaceHowAdmin(ADMIN_USER, codeJarInputStream,
|
WorkspaceItem codeJarItem = filesStorage.createItemOnWorkspaceHowAdmin(ADMIN_USER, codeJarInputStream,
|
||||||
codeJar.getName(), CODE_JAR_DESCRIPTION, CODE_JAR_MIMETYPE, DESTINATION_FOLDER);
|
codeJar.getName(), CODE_JAR_DESCRIPTION, CODE_JAR_MIMETYPE, DESTINATION_FOLDER);
|
||||||
|
|
||||||
ItemDescription codeJarAdminCopy;
|
|
||||||
try {
|
try {
|
||||||
codeJarAdminCopy = new ItemDescription(codeJarItem.getId(), codeJarItem.getName(),
|
codeJarAdminCopy = new ItemDescription(codeJarItem.getId(), codeJarItem.getName(),
|
||||||
codeJarItem.getOwner().getPortalLogin(), codeJarItem.getPath(), codeJarItem.getType().name());
|
codeJarItem.getOwner().getPortalLogin(), codeJarItem.getPath(), codeJarItem.getType().name());
|
||||||
|
@ -69,8 +71,7 @@ public class DeploySave {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
createInfoText(codeJarAdminCopy);
|
createInfoText();
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
int codeJarNamelenght = codeJar.getName().length();
|
int codeJarNamelenght = codeJar.getName().length();
|
||||||
|
@ -98,7 +99,7 @@ public class DeploySave {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createInfoText(ItemDescription codeJarAdminCopy) {
|
private void createInfoText() {
|
||||||
infoText = "Username: " + serviceCredentials.getUserName() + "\nFull Name: " + serviceCredentials.getFullName()
|
infoText = "Username: " + serviceCredentials.getUserName() + "\nFull Name: " + serviceCredentials.getFullName()
|
||||||
+ "\nEmail: " + serviceCredentials.getEmail() + "\n\nin VRE: " + serviceCredentials.getScope()
|
+ "\nEmail: " + serviceCredentials.getEmail() + "\n\nin VRE: " + serviceCredentials.getScope()
|
||||||
+ "\n\nhas requested to publish the algorithm: " + "\nLanguage: " + infoData.getLanguage()
|
+ "\n\nhas requested to publish the algorithm: " + "\nLanguage: " + infoData.getLanguage()
|
||||||
|
@ -117,4 +118,10 @@ public class DeploySave {
|
||||||
return infoText;
|
return infoText;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ItemDescription getCodeJarAdminCopy() {
|
||||||
|
return codeJarAdminCopy;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,8 +35,8 @@ public class Constants {
|
||||||
public static final String SAI_NAME = "SAIProfile";
|
public static final String SAI_NAME = "SAIProfile";
|
||||||
public static final String SAI_CATEGORY = "SAI";
|
public static final String SAI_CATEGORY = "SAI";
|
||||||
|
|
||||||
public static final String POOL_MANAGER_NAME = "dataminer-pool-manager";
|
public static final String POOL_MANAGER_SERVICE_NAME = "dataminer-pool-manager";
|
||||||
public static final String POOL_MANAGER_CATEGORY = "DataAnalysis";
|
public static final String POOL_MANAGER_SERVICE_CLASS = "DataAnalysis";
|
||||||
|
|
||||||
// Main Generator
|
// Main Generator
|
||||||
public static final String PRE_INSTALLED = "Pre-Installed";
|
public static final String PRE_INSTALLED = "Pre-Installed";
|
||||||
|
|
Loading…
Reference in New Issue