You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2014/02/04 21:57:31 UTC
git commit: fixing a build error
Updated Branches:
refs/heads/master 45df543e9 -> 43524f063
fixing a build error
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/43524f06
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/43524f06
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/43524f06
Branch: refs/heads/master
Commit: 43524f0639fce6a9da0b43f489f78ba9c8aa0855
Parents: 45df543
Author: lahiru <la...@apache.org>
Authored: Tue Feb 4 15:57:24 2014 -0500
Committer: lahiru <la...@apache.org>
Committed: Tue Feb 4 15:57:24 2014 -0500
----------------------------------------------------------------------
.../orchestrator/core/AbstractOrchestrator.java | 170 -------------------
.../orchestrator/core/HangedJobWorker.java | 2 +-
.../orchestrator/core/NewJobWorker.java | 2 +-
.../orchestrator/core/Orchestrator.java | 2 +-
.../core/OrchestratorConfiguration.java | 20 ++-
.../core/utils/OrchestratorUtils.java | 2 +-
.../cpi/impl/SimpleOrchestratorImpl.java | 1 -
7 files changed, 19 insertions(+), 180 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/43524f06/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/AbstractOrchestrator.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/AbstractOrchestrator.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/AbstractOrchestrator.java
deleted file mode 100644
index 7fe21ed..0000000
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/AbstractOrchestrator.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.airavata.orchestrator.core;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.UUID;
-
-import org.apache.airavata.client.AiravataAPIFactory;
-import org.apache.airavata.client.api.AiravataAPI;
-import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
-import org.apache.airavata.common.exception.AiravataConfigurationException;
-import org.apache.airavata.orchestrator.core.context.OrchestratorContext;
-import org.apache.airavata.orchestrator.core.exception.OrchestratorException;
-import org.apache.airavata.orchestrator.core.gfac.GFACInstance;
-import org.apache.airavata.orchestrator.core.model.ExperimentRequest;
-import org.apache.airavata.orchestrator.core.utils.OrchestratorConstants;
-import org.apache.airavata.orchestrator.core.utils.OrchestratorUtils;
-import org.apache.airavata.registry.api.AiravataRegistry2;
-import org.apache.airavata.registry.api.AiravataRegistryFactory;
-import org.apache.airavata.registry.api.AiravataUser;
-import org.apache.airavata.registry.api.Gateway;
-import org.apache.airavata.registry.api.exception.RegistryException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public abstract class AbstractOrchestrator implements Orchestrator{
- private final static Logger logger = LoggerFactory.getLogger(AbstractOrchestrator.class);
- protected AiravataRegistry2 airavataRegistry;
- protected AiravataAPI airavataAPI;
- protected OrchestratorContext orchestratorContext;
- protected OrchestratorConfiguration orchestratorConfiguration;
-
- private String registryURL;
- private String gatewayName;
- private String airavataUserName;
-
- public String getRegistryURL() {
- return registryURL;
- }
-
- public void setRegistryURL(String registryURL) {
- this.registryURL = registryURL;
- }
-
- public String getGatewayName() {
- return gatewayName;
- }
-
- public void setGatewayName(String gatewayName) {
- this.gatewayName = gatewayName;
- }
- public String getAiravataUserName() {
- return airavataUserName;
- }
-
- public void setAiravataUserName(String airavataUserName) {
- this.airavataUserName = airavataUserName;
- }
- public boolean initialize() throws OrchestratorException {
- try {
- /* Initializing the OrchestratorConfiguration object */
- orchestratorConfiguration = OrchestratorUtils.loadOrchestratorConfiguration();
- setGatewayProperties();
- /* initializing the Orchestratorcontext object */
- airavataRegistry = AiravataRegistryFactory.getRegistry(new Gateway(getGatewayName()), new AiravataUser(getAiravataUserName()));
- // todo move this code to gfac service mode Jobsubmitter,
- // todo this is ugly, SHOULD fix these isEmbedded mode code from Orchestrator
- if (!orchestratorConfiguration.isEmbeddedMode()) {
- Map<String, Integer> gfacNodeList = airavataRegistry.getGFACNodeList();
- if (gfacNodeList.size() == 0) {
- String error = "No GFAC instances available in the system, Can't initialize Orchestrator";
- logger.error(error);
- throw new OrchestratorException(error);
- }
- Set<String> uriList = gfacNodeList.keySet();
- Iterator<String> iterator = uriList.iterator();
- List<GFACInstance> gfacInstanceList = new ArrayList<GFACInstance>();
- while (iterator.hasNext()) {
- String uri = iterator.next();
- Integer integer = gfacNodeList.get(uri);
- gfacInstanceList.add(new GFACInstance(uri, integer));
- }
- }
- orchestratorContext = new OrchestratorContext();
- orchestratorContext.setOrchestratorConfiguration(orchestratorConfiguration);
- orchestratorConfiguration.setAiravataAPI(getAiravataAPI());
- orchestratorContext.setRegistry(airavataRegistry);
- } catch (RegistryException e) {
- logger.error("Failed to initializing Orchestrator");
- OrchestratorException orchestratorException = new OrchestratorException(e);
- throw orchestratorException;
- } catch (AiravataConfigurationException e) {
- logger.error("Failed to initializing Orchestrator");
- OrchestratorException orchestratorException = new OrchestratorException(e);
- throw orchestratorException;
- } catch (IOException e) {
- logger.error("Failed to initializing Orchestrator - Error parsing orchestrator.properties");
- OrchestratorException orchestratorException = new OrchestratorException(e);
- throw orchestratorException;
- }
- return true;
- }
-
- //get the registry URL and the credentials from the property file
- protected void setGatewayProperties() {
- InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(OrchestratorConstants.AIRAVATA_PROPERTIES);
- Properties properties = new Properties();
- try {
- properties.load(inputStream);
- } catch (IOException e) {
- e.printStackTrace();
- }
- setAiravataUserName(properties.getProperty("system.user"));
- setGatewayName(properties.getProperty("system.gateway"));
- setRegistryURL(properties.getProperty("airavata.server.url"));
- }
- //todo decide whether to return an error or do what
- //FIXME: (MEP) as posted on dev list, I think this should return a JobRequest with the experimentID set. This would simplify some of the validation in EmbeddedGFACJobSubmitter's launcGfacWithJobRequest--just throw the job away if the JobRequest is incomplete or malformed.
- public String createExperiment(ExperimentRequest request) throws OrchestratorException {
- //todo use a consistent method to create the experiment ID
- //FIXME: (MEP) Should you trust the user to do this? What if the same experimentID is sent twice by the same gateway?
- String experimentID = request.getUserExperimentID();
- if(experimentID == null){
- experimentID = UUID.randomUUID().toString();
- }
- try {
- airavataRegistry.storeExperiment(request.getSubmitterUserName(), experimentID, null, null);
- } catch (RegistryException e) {
- //todo put more meaningful error message
- logger.error("Failed to create experiment for the request from " + request.getSubmitterUserName());
- throw new OrchestratorException(e);
- }
- return experimentID;
- }
- private AiravataAPI getAiravataAPI() {
- if (airavataAPI == null) {
- try {
- airavataAPI = AiravataAPIFactory.getAPI(getGatewayName(), getAiravataUserName());
- } catch (AiravataAPIInvocationException e) {
- logger.error("Unable to create Airavata API", e);
- }
- }
- return airavataAPI;
- }
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/43524f06/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/HangedJobWorker.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/HangedJobWorker.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/HangedJobWorker.java
index 4214f06..b3d2878 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/HangedJobWorker.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/HangedJobWorker.java
@@ -47,7 +47,7 @@ public class HangedJobWorker implements Runnable{
public HangedJobWorker(OrchestratorContext orchestratorContext) throws OrchestratorException {
this.orchestratorContext = orchestratorContext;
try {
- String submitterClass = this.orchestratorContext.getOrchestratorConfiguration().getSubmitterClass();
+ String submitterClass = this.orchestratorContext.getOrchestratorConfiguration().getNewJobSubmitterClass();
//FIXME: (MEP) Do you want to use the same submit interval for hung jobs as newly submitted jobs? Suggest separate parameters.
submitInterval = this.orchestratorContext.getOrchestratorConfiguration().getSubmitterInterval();
//FIXME: (MEP) It is possible that you want to have a different JobSubmitter for hung jobs and for new jobs, so the property file needs to have separate name/value pairs for these.
http://git-wip-us.apache.org/repos/asf/airavata/blob/43524f06/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/NewJobWorker.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/NewJobWorker.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/NewJobWorker.java
index 0e4a2c2..1b22702 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/NewJobWorker.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/NewJobWorker.java
@@ -47,7 +47,7 @@ public class NewJobWorker implements Runnable {
public NewJobWorker(OrchestratorContext orchestratorContext) throws OrchestratorException {
this.orchestratorContext = orchestratorContext;
try {
- String submitterClass = this.orchestratorContext.getOrchestratorConfiguration().getSubmitterClass();
+ String submitterClass = this.orchestratorContext.getOrchestratorConfiguration().getNewJobSubmitterClass();
submitInterval = this.orchestratorContext.getOrchestratorConfiguration().getSubmitterInterval();
Class<? extends JobSubmitter> aClass = Class.forName(submitterClass.trim()).asSubclass(JobSubmitter.class);
jobSubmitter = aClass.newInstance();
http://git-wip-us.apache.org/repos/asf/airavata/blob/43524f06/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/Orchestrator.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/Orchestrator.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/Orchestrator.java
index 489295f..0a4f913 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/Orchestrator.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/Orchestrator.java
@@ -67,7 +67,7 @@ public interface Orchestrator {
* @return
* @throws OrchestratorException
*/
- boolean cancelExperiment(String experimentID)throws OrchestratorException;
+ boolean terminateExperiment(String experimentID)throws OrchestratorException;
/**
* This is like a cron job which runs continuously and take available jobs to
http://git-wip-us.apache.org/repos/asf/airavata/blob/43524f06/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/OrchestratorConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/OrchestratorConfiguration.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/OrchestratorConfiguration.java
index 2bcc70e..c35dacf 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/OrchestratorConfiguration.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/OrchestratorConfiguration.java
@@ -30,7 +30,9 @@ import java.net.URL;
*/
public class OrchestratorConfiguration {
- private String submitterClass;
+ private String newJobSubmitterClass;
+
+ private String hangedJobSubmitterClass;
private int submitterInterval = 1000;
@@ -61,8 +63,8 @@ public class OrchestratorConfiguration {
this.brokerURL = brokerURL;
}
- public String getSubmitterClass() {
- return submitterClass;
+ public String getNewJobSubmitterClass() {
+ return newJobSubmitterClass;
}
public int getSubmitterInterval() {
@@ -73,8 +75,8 @@ public class OrchestratorConfiguration {
return threadPoolSize;
}
- public void setSubmitterClass(String submitterClass) {
- this.submitterClass = submitterClass;
+ public void setNewJobSubmitterClass(String newJobSubmitterClass) {
+ this.newJobSubmitterClass = newJobSubmitterClass;
}
public void setSubmitterInterval(int submitterInterval) {
@@ -100,4 +102,12 @@ public class OrchestratorConfiguration {
public void setAiravataAPI(AiravataAPI airavataAPI) {
this.airavataAPI = airavataAPI;
}
+
+ public String getHangedJobSubmitterClass() {
+ return hangedJobSubmitterClass;
+ }
+
+ public void setHangedJobSubmitterClass(String hangedJobSubmitterClass) {
+ this.hangedJobSubmitterClass = hangedJobSubmitterClass;
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/43524f06/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
index 0fd767f..4930684 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/utils/OrchestratorUtils.java
@@ -49,7 +49,7 @@ public class OrchestratorUtils {
OrchestratorConfiguration orchestratorConfiguration = new OrchestratorConfiguration();
Properties orchestratorProps = new Properties();
orchestratorProps.load(resource.openStream());
- orchestratorConfiguration.setSubmitterClass((String) orchestratorProps.get(OrchestratorConstants.JOB_SUBMITTER));
+ orchestratorConfiguration.setNewJobSubmitterClass((String) orchestratorProps.get(OrchestratorConstants.JOB_SUBMITTER));
orchestratorConfiguration.setSubmitterInterval(Integer.parseInt((String)orchestratorProps.get(OrchestratorConstants.SUBMIT_INTERVAL)));
orchestratorConfiguration.setThreadPoolSize(Integer.parseInt((String)orchestratorProps.get(OrchestratorConstants.THREAD_POOL_SIZE)));
orchestratorConfiguration.setStartSubmitter(Boolean.valueOf(orchestratorProps.getProperty(OrchestratorConstants.START_SUBMITTER)));
http://git-wip-us.apache.org/repos/asf/airavata/blob/43524f06/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
index c654722..43c4baa 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
@@ -24,7 +24,6 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import org.apache.airavata.common.utils.AiravataJobState;
-import org.apache.airavata.orchestrator.core.AbstractOrchestrator;
import org.apache.airavata.orchestrator.core.HangedJobWorker;
import org.apache.airavata.orchestrator.core.NewJobWorker;
import org.apache.airavata.orchestrator.core.exception.OrchestratorException;