You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ad...@apache.org on 2017/04/13 18:47:53 UTC
[5/6] airavata git commit: Adding environment setup task
implementation
Adding environment setup task implementation
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/fbc0351e
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/fbc0351e
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/fbc0351e
Branch: refs/heads/feature-workload-mgmt
Commit: fbc0351eb06cc369692cb45fcd90e0227ff851e4
Parents: a20405b
Author: Ajinkya Dhamnaskar <ad...@apache.org>
Authored: Thu Apr 13 14:37:44 2017 -0400
Committer: Ajinkya Dhamnaskar <ad...@apache.org>
Committed: Thu Apr 13 14:37:44 2017 -0400
----------------------------------------------------------------------
.../envsetup/handler/EnvironmentSetupTask.java | 75 ++++++++++++++++++++
1 file changed, 75 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/fbc0351e/modules/worker/task-envsetup/src/main/java/org/apache/airavata/worker/task/envsetup/handler/EnvironmentSetupTask.java
----------------------------------------------------------------------
diff --git a/modules/worker/task-envsetup/src/main/java/org/apache/airavata/worker/task/envsetup/handler/EnvironmentSetupTask.java b/modules/worker/task-envsetup/src/main/java/org/apache/airavata/worker/task/envsetup/handler/EnvironmentSetupTask.java
new file mode 100644
index 0000000..390b5e2
--- /dev/null
+++ b/modules/worker/task-envsetup/src/main/java/org/apache/airavata/worker/task/envsetup/handler/EnvironmentSetupTask.java
@@ -0,0 +1,75 @@
+/*
+ *
+ * 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.worker.task.envsetup.handler;
+
+import org.apache.airavata.model.commons.ErrorModel;
+import org.apache.airavata.model.status.TaskState;
+import org.apache.airavata.model.status.TaskStatus;
+import org.apache.airavata.model.task.TaskTypes;
+import org.apache.airavata.worker.core.cluster.RemoteCluster;
+import org.apache.airavata.worker.core.context.TaskContext;
+import org.apache.airavata.worker.core.exceptions.WorkerException;
+import org.apache.airavata.worker.core.task.Task;
+import org.apache.airavata.worker.core.task.TaskException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Arrays;
+import java.util.Map;
+
+public class EnvironmentSetupTask implements Task {
+
+ private static final Logger log = LoggerFactory.getLogger(EnvironmentSetupTask.class);
+ @Override
+ public void init(Map<String, String> propertyMap) throws TaskException {
+
+ }
+
+ @Override
+ public TaskStatus execute(TaskContext taskContext) {
+ TaskStatus status = new TaskStatus(TaskState.COMPLETED);
+ try {
+ RemoteCluster remoteCluster = taskContext.getParentProcessContext().getJobSubmissionRemoteCluster();
+ remoteCluster.makeDirectory(taskContext.getParentProcessContext().getWorkingDir());
+ status.setReason("Successfully created environment");
+ } catch (WorkerException e) {
+ String msg = "Error while environment setup";
+ log.error(msg, e);
+ status.setState(TaskState.FAILED);
+ status.setReason(msg);
+ ErrorModel errorModel = new ErrorModel();
+ errorModel.setActualErrorMessage(e.getMessage());
+ errorModel.setUserFriendlyMessage(msg);
+ taskContext.getTaskModel().setTaskErrors(Arrays.asList(errorModel));
+ }
+ return status;
+ }
+
+ @Override
+ public TaskStatus recover(TaskContext taskContext) {
+ return execute(taskContext);
+ }
+
+ @Override
+ public TaskTypes getType() {
+ return TaskTypes.ENV_SETUP;
+ }
+}