Added files with the design changes

Project: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/commit/1932e865
Tree: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/tree/1932e865
Diff: http://git-wip-us.apache.org/repos/asf/airavata-sandbox/diff/1932e865

Branch: refs/heads/master
Commit: 1932e865684d2f57b20eb5ca15fe38ba7185a56f
Parents: 39613cd
Author: Abhishek Jain <[email protected]>
Authored: Thu Oct 27 17:46:01 2016 -0400
Committer: Suresh Marru <[email protected]>
Committed: Fri Oct 28 10:50:48 2016 -0400

----------------------------------------------------------------------
 .../AuroraMarathonIntegration/README.md         |  67 ++
 .../AuroraMarathonIntegration/pom.xml           |  44 ++
 .../auroraClient/AuroraJobSchedulerI.java       |  45 ++
 .../auroraClient/AuroraJobSchedulerImpl.java    | 239 +++++++
 .../marathonClient/MarathonJobSchedulerI.java   |  51 ++
 .../MarathonJobSchedulerImpl.java               | 318 ++++++++++
 .../bigDataInjections/AuroraInjectorImpl.java   | 101 +++
 .../bigDataInjections/BigDataInjectorI.java     |  32 +
 .../bigDataInjections/MarathonInjectorImpl.java |  72 +++
 .../drivers/auroraDriver/AuroraAdminDriver.java |  98 +++
 .../auroraExceptions/AuroraException.java       |  36 ++
 .../marathonExceptions/MarathonException.java   |  36 ++
 .../cloud/util/auroraUtilities/AuroraUtilI.java |  31 +
 .../util/auroraUtilities/AuroraUtilImpl.java    |  63 ++
 .../util/marathonUtilities/MarathonUtilI.java   |  33 +
 .../marathonUtilities/MarathonUtilImpl.java     |  64 ++
 .../gfac/gfac-core/pom.xml                      | 190 ++++++
 .../authentication/GSIAuthenticationInfo.java   |  43 ++
 .../authentication/SSHKeyAuthentication.java    |  90 +++
 .../SSHPasswordAuthentication.java              |  42 ++
 .../Design Changes in Airavata/gfac/pom.xml     |  47 ++
 .../orchestrator/NULL                           |   1 +
 .../orchestrator/orchestrator-core/pom.xml      | 103 +++
 .../core/OrchestratorConfiguration.java         | 122 ++++
 .../core/utils/OrchestratorConstants.java       |  77 +++
 .../core/utils/OrchestratorUtils.java           | 327 ++++++++++
 .../cpi/impl/SimpleOrchestratorImpl.java        | 625 +++++++++++++++++++
 .../orchestrator/pom.xml                        |  45 ++
 28 files changed, 3042 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in Airavata/AuroraMarathonIntegration/README.md
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/README.md b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/README.md
new file mode 100644
index 0000000..e940146
--- /dev/null
+++ b/gsoc2016/Design Changes in Airavata/AuroraMarathonIntegration/README.md   
@@ -0,0 +1,67 @@
+#AURORA MARATHON INTEGRATION
+
+#Requirements:
+1. Apache Aurora
+2. Apache Mesos
+3. Marathon
+
+#Installation:
+##Please follow the link to set up Apache Aurora and Apache Mesos
+1. http://mesos.apache.org/gettingstarted/ OR 
https://open.mesosphere.com/getting-started/install/
+2. http://aurora.apache.org/documentation/latest/operations/installation/
+
+#Usage:
+
+```Options:
+-o = create/kill
+-n = name of the job
+-r = amount of RAM
+-c = CPU count
+-d = disk space
+-k = name of the task to be killed
+-i = executable/image
+```
+#Example:
+To create and launch:
+```
+java -jar AuroraMarathonIntegration-0.17-SNAPSHOT.jar -o create -r 1024 -n 
batik -c 2.0 -d 1000 -i gouravr/dacapo:tag9
+```
+To kill:
+```
+java -jar AuroraMarathonIntegration-0.17-SNAPSHOT.jar -o kill -n batik
+```
+
+To update:
+```
+java -jar AuroraMarathonIntegration-0.17-SNAPSHOT.jar -o update -n batik
+```
+
+To retrieve update information:
+```
+java -jar AuroraMarathonIntegration-0.17-SNAPSHOT.jar -o update-info -n batik
+```
+
+To pause an update:
+```
+java -jar AuroraMarathonIntegration-0.17-SNAPSHOT.jar -o update-pause -n batik
+```
+
+To list the update progress:
+```
+java -jar AuroraMarathonIntegration-0.17-SNAPSHOT.jar -o update-list -n batik
+```
+
+To abort an update:
+```
+java -jar AuroraMarathonIntegration-0.17-SNAPSHOT.jar -o update-abort -n batik
+```
+
+To resume an update:
+```
+java -jar AuroraMarathonIntegration-0.17-SNAPSHOT.jar -o update-resume -n batik
+```
+
+To restart a job:
+```
+java -jar AuroraMarathonIntegration-0.17-SNAPSHOT.jar -o restart -n batik
+```

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in Airavata/AuroraMarathonIntegration/pom.xml
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/pom.xml b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/pom.xml
new file mode 100644
index 0000000..04b0a67
--- /dev/null
+++ b/gsoc2016/Design Changes in Airavata/AuroraMarathonIntegration/pom.xml     
@@ -0,0 +1,44 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+               <groupId>org.apache.airavata</groupId>
+               <artifactId>airavata-cloud</artifactId>
+               <version>0.17-SNAPSHOT</version>
+               <relativePath>../pom.xml</relativePath>
+       </parent>
+
+       <artifactId>AuroraMarathonIntegration</artifactId>
+  <groupId>org.apache.airavata.cloud.drivers.auroraDriver</groupId>
+       <packaging>jar</packaging>
+       <version>0.17-SNAPSHOT</version>
+       <name>Airavata Aurora Marathon Integration</name>
+       <url>http://airavata.apache.org/</url>
+
+
+       <build>
+               <directory>target</directory>
+               <outputDirectory>target/classes</outputDirectory>
+               <finalName>${project.artifactId}-${project.version}</finalName>
+               <sourceDirectory>src/main/java</sourceDirectory>
+               <plugins>
+                       <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <configuration>
+            <archive>
+                <manifest>
+                    
<mainClass>org.apache.airavata.cloud.drivers.auroraDriver.AuroraAdminDriver</mainClass>
+                </manifest>
+            </archive>
+        </configuration>
+    </plugin>
+               </plugins>
+       </build>
+
+       <properties>
+                       
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+                       
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+       </properties>
+
+</project>

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/aurora/auroraClient/AuroraJobSchedulerI.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/aurora/auroraClient/AuroraJobSchedulerI.java
 b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/aurora/auroraClient/AuroraJobSchedulerI.java
new file mode 100644
index 0000000..092d0aa
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/aurora/auroraClient/AuroraJobSchedulerI.java
      
@@ -0,0 +1,45 @@
+/*
+ *
+ * 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.cloud.bigDataClientSideServices.aurora.auroraClient;
+
+import org.apache.airavata.cloud.exceptions.auroraExceptions.AuroraException;
+
+public interface AuroraJobSchedulerI {
+
+
+  public void auroraJobCommand(String info, String command) throws 
AuroraException;
+       public void jobUpdateList(String info) throws AuroraException;
+       public void jobUpdateAbort(String info) throws AuroraException;
+       public void jobUpdateResume(String info) throws AuroraException;
+       public void jobUpdatePause(String info) throws AuroraException;
+       public void jobUpdateInfo(String info) throws AuroraException;
+       public void jobUpdate(String update) throws AuroraException;
+       public void jobRestart(String restart) throws AuroraException;
+       public void jobKill(String kill) throws AuroraException;
+       public void jobLaunch(String name) throws AuroraException;
+       public void configCreate(String name, String ram, String cpu, String 
disk, String image) throws AuroraException;
+  public void jobDiff(String key, String config) throws AuroraException;
+  public void configList(String config) throws AuroraException;
+  public void jobInspect(String key, String config) throws AuroraException;
+  public void clusterQuota(String key) throws AuroraException;
+  public void openWebUI(String key) throws AuroraException;
+}

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/aurora/auroraClient/AuroraJobSchedulerImpl.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/aurora/auroraClient/AuroraJobSchedulerImpl.java
 b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/aurora/auroraClient/AuroraJobSchedulerImpl.java
new file mode 100644
index 0000000..b905ccb
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/aurora/auroraClient/AuroraJobSchedulerImpl.java
   
@@ -0,0 +1,239 @@
+/*
+ *
+ * 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.cloud.bigDataClientSideServices.aurora.auroraClient;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import org.apache.airavata.cloud.exceptions.auroraExceptions.AuroraException;
+import org.apache.airavata.cloud.util.auroraUtilities.AuroraUtilImpl;
+import org.apache.airavata.cloud.util.auroraUtilities.AuroraUtilI;
+
+public class AuroraJobSchedulerImpl implements AuroraJobSchedulerI {
+       AuroraUtilI util = new AuroraUtilImpl();
+
+
+       public void auroraJobCommand(String info, String command) throws 
AuroraException{
+               try{
+                       String completeCommandToRunProcess = "aurora task run 
example/benchmarks/devel/"+info+" "+command;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new AuroraException("Exception occured while 
passing the command.\n"+ex.toString());
+               }
+       }
+       public void jobUpdateList(String info) throws AuroraException{
+               try{
+                       String completeCommandToRunProcess = "aurora update 
list example/benchmarks/devel/"+info;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+
+                       throw new AuroraException("Exception occured while 
listing the update.\n"+ex.toString());
+               }
+       }
+       public void jobUpdateAbort(String info) throws AuroraException{
+               try{
+                       String completeCommandToRunProcess = "aurora abort 
pause example/benchmarks/devel/"+info;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+
+                       throw new AuroraException("Exception occured while 
aborting the update.\n"+ex.toString());
+               }
+       }
+       public void jobUpdateResume(String info) throws AuroraException{
+               try{
+                       String completeCommandToRunProcess ="aurora update 
resume example/benchmarks/devel/"+info;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+
+                       throw new AuroraException("Exception occured while 
resuming the update.\n"+ex.toString());
+               }
+       }
+       public void jobUpdatePause(String info) throws AuroraException{
+               try{
+                       String completeCommandToRunProcess = "aurora update 
pause example/benchmarks/devel/"+info;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+
+                       throw new AuroraException("Exception occured while 
pausing the update.\n"+ex.toString());
+               }
+       }
+       public void jobUpdateInfo(String info) throws AuroraException{
+               try{
+                       String completeCommandToRunProcess = "aurora update 
info example/benchmarks/devel/"+info;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+
+                       throw new AuroraException("Exception occured while 
retrieving the update info."+ex.toString());
+               }
+       }
+
+       public void jobUpdate(String update) throws AuroraException{
+               try{
+                       String completeCommandToRunProcess = "aurora update 
start example/benchmarks/devel/"+update+" "+update+".aurora";
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+
+                       throw new AuroraException("Exception occured while 
updating the job.\n"+ex.toString());
+               }
+       }
+       public void jobRestart(String restart) throws AuroraException{
+               try{
+                       String completeCommandToRunProcess = "aurora job 
restart example/benchmarks/devel/"+restart;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new AuroraException("Exception occured while 
restarting the job.\n"+ex.toString());
+               }
+       }
+
+       public void jobKill(String kill) throws AuroraException{
+               try{
+                       String completeCommandToRunProcess = "aurora job 
killall example/benchmarks/devel/"+kill;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new AuroraException("Exception occured while 
killing the job.\n"+ex.toString());
+               }
+       }
+       public void jobLaunch(String name) throws AuroraException{
+               try{
+                       String completeCommandToRunProcess = "aurora job create 
example/benchmarks/devel/"+name+" "+name+".aurora";
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new AuroraException("Exception occured while 
launching the job.\n"+ex.toString());
+               }
+       }
+       public void configCreate(String name, String ram, String cpu, String 
disk, String image) throws AuroraException{
+       try {
+               String config = "import hashlib\n"+name+"= Process(name = 
'"+name+"', cmdline = 'java -jar /dacapo-9.12-bach.jar "+name+" -s 
small')\n"+name+"_task = SequentialTask(processes = [ "+name+"], resources = 
Resources(cpu = "+cpu+", ram = "+ram+"*MB, disk="+disk+"*MB))\njobs = [ 
Job(cluster = 'example', environment = 'devel', role = 'benchmarks', name = 
'"+name+"', task = "+name+"_task, instances =1 , container = Container(docker = 
Docker(image = '"+image+"')))]\n";
+               File file = new File(name+".aurora");
+
+               if (!file.exists()) {
+                       file.createNewFile();
+               }
+
+               FileWriter fw = new FileWriter(file.getAbsoluteFile());
+               BufferedWriter bw = new BufferedWriter(fw);
+               bw.write(config);
+               bw.close();
+
+               }catch (IOException ex) {
+                       throw new AuroraException("IO Exception occured while 
creating the configuration file.\n"+ex.toString());
+               }catch (Exception ex) {
+                       throw new AuroraException("Exception occured while 
creating the configuration file.\n"+ex.toString());
+               }
+       }
+
+
+       public void jobDiff(String key, String config) throws AuroraException{
+               try{
+                       String completeCommandToRunProcess = "aurora job diff 
"+key+" "+config;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new AuroraException("Exception occured while 
retrieving the job difference.\n"+ex.toString());
+               }
+       }
+
+       public void configList(String config) throws AuroraException{
+               try{
+                       String completeCommandToRunProcess = "aurora config 
list "+config;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new AuroraException("Exception occured while 
retrieving the list of jobs.\n"+ex.toString());
+               }
+       }
+
+       public void jobInspect(String key, String config) throws 
AuroraException{
+               try{
+                       String completeCommandToRunProcess = "aurora job 
inspect "+key+" "+config;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new AuroraException("Exception occured while 
inspecting the job.\n"+ex.toString());
+               }
+       }
+
+       public void clusterQuota(String key) throws AuroraException{
+               try{
+                       String completeCommandToRunProcess = "aurora quota get 
"+key;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new AuroraException("Exception occured while 
retrieving the production quota of the cluster.\n"+ex.toString());
+               }
+       }
+
+       public void openWebUI(String key) throws AuroraException{
+               try{
+                       String completeCommandToRunProcess = "aurora job open 
"+key;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new AuroraException("Exception occured while 
opening the browser.\n"+ex.toString());
+               }
+       }
+}

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/marathon/marathonClient/MarathonJobSchedulerI.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/marathon/marathonClient/MarathonJobSchedulerI.java
 b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/marathon/marathonClient/MarathonJobSchedulerI.java
new file mode 100644
index 0000000..dc90582
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/marathon/marathonClient/MarathonJobSchedulerI.java
        
@@ -0,0 +1,51 @@
+/*
+ *
+ * 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.cloud.bigDataClientSideServices.marathon.marathonClient;
+
+import 
org.apache.airavata.cloud.exceptions.marathonExceptions.MarathonException;
+
+public interface MarathonJobSchedulerI {
+
+       public void jobKill(String kill, String address) throws 
MarathonException;
+       public void jobLaunch(String name, String address) throws 
MarathonException;
+       public void configCreate(String name, String ram, String cpu, String 
disk, String image, String command) throws MarathonException;
+       public void jobList(String address) throws MarathonException;
+       public void jobListById(String address, String id) throws 
MarathonException;
+       public void jobListByName(String address, String name) throws 
MarathonException;
+       public void jobDelete(String address, String appid) throws 
MarathonException;
+       public void runningJobs(String address, String appid) throws 
MarathonException;
+       public void createGroups(String address, String json) throws 
MarathonException;
+       public void groups(String address) throws MarathonException;
+       public void groupsId(String address, String groupid) throws 
MarathonException;
+       public void jobDeleteId(String address, String appid, String taskid) 
throws MarathonException;
+       public void deleteDeployment(String address, String id) throws 
MarathonException;
+       public void deploymentList(String address) throws MarathonException;
+       public void deleteGroups(String address, String id) throws 
MarathonException;
+       public void eventsList(String address) throws MarathonException;
+       public void eventSubscriptionList(String address) throws 
MarathonException;
+       public void launchQueue(String address) throws MarathonException;
+       public void deleteMarathonLeader(String address) throws 
MarathonException;
+       public void marathonLeader(String address) throws MarathonException;
+       public void marathonInfo(String address) throws MarathonException;
+
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/marathon/marathonClient/MarathonJobSchedulerImpl.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/marathon/marathonClient/MarathonJobSchedulerImpl.java
 b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/marathon/marathonClient/MarathonJobSchedulerImpl.java
new file mode 100644
index 0000000..db166b7
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataClientSideServices/marathon/marathonClient/MarathonJobSchedulerImpl.java
     
@@ -0,0 +1,318 @@
+/*
+ *
+ * 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.cloud.bigDataClientSideServices.marathon.marathonClient;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import 
org.apache.airavata.cloud.exceptions.marathonExceptions.MarathonException;
+import org.apache.airavata.cloud.util.marathonUtilities.MarathonUtilImpl;
+import org.apache.airavata.cloud.util.marathonUtilities.MarathonUtilI;
+
+public class MarathonJobSchedulerImpl implements MarathonJobSchedulerI {
+       MarathonUtilI util = new MarathonUtilImpl();
+
+
+       public void jobKill(String name, String address) throws 
MarathonException{
+               try{
+
+                       String completeCommandToRunProcess = "curl -X DELETE 
"+address+""+name;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
launching the job.\n"+ex.toString());
+               }
+       }
+       public void jobLaunch(String name, String address) throws 
MarathonException{
+               try{
+
+                       String completeCommandToRunProcess = "curl -X POST 
"+address+"/v2/apps -d @"+name+" -H Content-type: application/json";
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
launching the job.\n"+ex.toString());
+               }
+       }
+       public void configCreate(String name, String ram, String cpu, String 
disk, String image, String command) throws MarathonException{
+       try {
+               String config = "'id': "+name+",'cmd': \""+command+"\", 
\"container\": {\"type\": \"DOCKER\", \"docker\": {\"image\": 
\"danielpan/dacapo\", \"forcePullImage\": 
bool(1)}},\"constraints\":[[\"hostname\",\"UNIQUE\"]],\"cpus\": float("+cpu+"), 
\"mem\": "+ram+"), \"disk\": "+disk+", \"instances\": 1";
+               File file = new File(name+".json");
+
+               if (!file.exists()) {
+                       file.createNewFile();
+               }
+
+               FileWriter fw = new FileWriter(file.getAbsoluteFile());
+               BufferedWriter bw = new BufferedWriter(fw);
+               bw.write(config);
+               bw.close();
+
+               }catch (IOException ex) {
+                       throw new MarathonException("IO Exception occured while 
creating the configuration file.\n"+ex.toString());
+               }catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
creating the configuration file.\n"+ex.toString());
+               }
+       }
+
+       public void jobList(String address) throws MarathonException{
+               try{
+
+                       String completeCommandToRunProcess = "curl GET 
"+address+"/v2/apps";
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
retrieving the list jobs.\n"+ex.toString());
+               }
+       }
+
+       public void jobListById(String address, String id) throws 
MarathonException{
+               try{
+
+                       String completeCommandToRunProcess ="curl GET 
"+address+"/v2/apps/"+id;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
retrieving the list jobs.\n"+ex.toString());
+               }
+       }
+       public void jobListByName(String address, String name) throws 
MarathonException{
+               try{
+
+                       String completeCommandToRunProcess = "curl GET 
"+address+"/v2/apps/"+name;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
retrieving the list jobs.\n"+ex.toString());
+               }
+       }
+
+       public void jobDelete(String address, String appid) throws 
MarathonException{
+               try{
+
+                       String completeCommandToRunProcess = "curl DELETE 
"+address+"/v2/apps/"+appid+"/tasks";
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
retrieving the list jobs.\n"+ex.toString());
+               }
+       }
+
+       public void runningJobs(String address, String appid) throws 
MarathonException{
+               try{
+
+                       String completeCommandToRunProcess = "curl GET 
"+address+"/v2/apps/"+appid+"/tasks";
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
retrieving the list jobs.\n"+ex.toString());
+               }
+       }
+
+       public void createGroups(String address, String json) throws 
MarathonException{
+               try{
+
+                       String completeCommandToRunProcess = "curl -X POST -H 
\"Content-type: application/json\" "+address+"/v2/groups/"+json;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
creating the group.\n"+ex.toString());
+               }
+       }
+
+       public void groups(String address) throws MarathonException{
+               try{
+
+                       String completeCommandToRunProcess = "curl GET 
"+address+"/v2/groups/";
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
retrieving the list of groups.\n"+ex.toString());
+               }
+       }
+
+       public void groupsId(String address, String groupid) throws 
MarathonException{
+                       try{
+
+                               String completeCommandToRunProcess = "curl GET 
"+address+"/v2/groups/"+groupid;
+                               BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                               util.printLog(stdout);
+                       }
+
+                       catch (Exception ex) {
+                               throw new MarathonException("Exception occured 
while retrieving the list of groups.\n"+ex.toString());
+                       }
+               }
+               public void jobDeleteId(String address, String appid, String 
taskid) throws MarathonException{
+                       try{
+
+                               String completeCommandToRunProcess = "curl 
DELETE "+address+"/v2/apps/"+appid+"/"+taskid;
+                               BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                               util.printLog(stdout);
+                       }
+
+                       catch (Exception ex) {
+                               throw new MarathonException("Exception occured 
while retrieving the list jobs.\n"+ex.toString());
+                       }
+               }
+
+               public void deleteDeployment(String address, String id) throws 
MarathonException{
+               try{
+
+                       String completeCommandToRunProcess = "curl -X DELETE 
"+address+"/v2/deployments/"+id;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
deleting the deployment.\n"+ex.toString());
+               }
+       }
+       public void deploymentList(String address) throws MarathonException{
+               try{
+
+                       String completeCommandToRunProcess = "curl GET 
"+address+"/v2/deployments/";
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
retrieving the list of deployment.\n"+ex.toString());
+               }
+       }
+
+       public void deleteGroups(String address, String id) throws 
MarathonException{
+               try{
+
+                       String completeCommandToRunProcess = "curl -X DELETE 
"+address+"/v2/groups/"+id;
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
deleting the group.\n"+ex.toString());
+               }
+       }
+
+       public void launchQueue(String address) throws MarathonException{
+               try{
+
+                       String completeCommandToRunProcess = "curl GET 
"+address+"/v2/queue";
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
retrieving the launch queue.\n"+ex.toString());
+               }
+       }
+       public void eventSubscriptionList(String address) throws 
MarathonException{
+               try{
+
+
+                       String completeCommandToRunProcess = "curl GET 
"+address+"/v2/eventSubscriptions";
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
retrieving the list of event subscriptions.\n"+ex.toString());
+               }
+       }
+       public void eventsList(String address) throws MarathonException{
+               try{
+
+                       String completeCommandToRunProcess = "curl GET 
"+address+"/v2/events";
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
retrieving the list of events.\n"+ex.toString());
+               }
+       }
+
+       public void deleteMarathonLeader(String address) throws 
MarathonException{
+               try{
+
+                       String completeCommandToRunProcess = "curl -X DELETE 
"+address+"/v2/leader";
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
retrieving the launch queue.\n"+ex.toString());
+               }
+       }
+       public void marathonLeader(String address) throws MarathonException{
+               try{
+
+
+                       String completeCommandToRunProcess = "curl GET 
"+address+"/v2/leader";
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
retrieving the leader information.\n"+ex.toString());
+               }
+       }
+       public void marathonInfo(String address) throws MarathonException{
+               try{
+
+
+                       String completeCommandToRunProcess = "curl GET 
"+address+"/v2/info";
+                       BufferedReader stdout = 
util.executeProcess(completeCommandToRunProcess);
+                       util.printLog(stdout);
+               }
+
+               catch (Exception ex) {
+                       throw new MarathonException("Exception occured while 
retrieving the marathon information.\n"+ex.toString());
+               }
+       }
+
+
+
+
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataInjections/AuroraInjectorImpl.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataInjections/AuroraInjectorImpl.java
 b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataInjections/AuroraInjectorImpl.java
new file mode 100644
index 0000000..109fb99
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataInjections/AuroraInjectorImpl.java
   
@@ -0,0 +1,101 @@
+/*
+ *
+ * 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.cloud.bigDataInjections;
+
+import java.util.Map;
+import java.util.List;
+
+
+import 
org.apache.airavata.cloud.bigDataClientSideServices.aurora.auroraClient.AuroraJobSchedulerI;
+import 
org.apache.airavata.cloud.bigDataClientSideServices.aurora.auroraClient.AuroraJobSchedulerImpl;
+import org.apache.airavata.cloud.exceptions.auroraExceptions.AuroraException;
+
+
+public class AuroraInjectorImpl implements BigDataInjectorI {
+    private AuroraJobSchedulerI auroraJS = null;
+
+    public AuroraInjectorImpl(AuroraJobSchedulerI auroraJSIn) {
+       auroraJS = auroraJSIn;
+    }
+
+
+    public void executeTheBigDataClientSideCommand(Map<String, List<String>> 
commandLineOptions) {
+
+
+       String commandName = commandLineOptions.get("o").get(0);
+       String RamSize, JobName, CpuCount, DiskSize, Image;
+
+               switch(commandName)
+               {
+                       case "kill" :
+                               try {
+                                       
auroraJS.jobKill(commandLineOptions.get("n").get(0));
+                               } catch(AuroraException ex){
+                               } break;
+                       case "restart" :
+                               try {
+                                       
auroraJS.jobRestart(commandLineOptions.get("n").get(0));
+                               } catch (AuroraException ex) {
+                               } break;
+                       case "update" :
+                               try {
+                                       
auroraJS.jobUpdate(commandLineOptions.get("n").get(0));
+                               } catch(AuroraException ex){
+                               } break;
+                       case "update-info" :
+                               try {
+                                       
auroraJS.jobUpdateInfo(commandLineOptions.get("n").get(0));
+                               } catch(AuroraException ex){
+                               } break;
+                       case "update-pause" :
+                               try {
+                                       
auroraJS.jobUpdatePause(commandLineOptions.get("n").get(0));
+                               } catch(AuroraException ex){
+                               } break;
+      case "inspect" :
+                               try {
+                                       
auroraJS.jobInspect(commandLineOptions.get("n").get(0), 
commandLineOptions.get("k").get(0));
+                               } catch(AuroraException ex){
+                               } break;
+                       case "quota" :
+                               try {
+                                       
auroraJS.clusterQuota(commandLineOptions.get("k").get(0));
+                               } catch(AuroraException ex){
+                               } break;
+                       case "create" :
+                               JobName = commandLineOptions.get("n").get(0);
+                               RamSize = commandLineOptions.get("r").get(0);
+                               CpuCount = commandLineOptions.get("c").get(0);
+                               DiskSize = commandLineOptions.get("d").get(0);
+                               Image = commandLineOptions.get("i").get(0);
+                               try {
+                                       
auroraJS.configCreate(JobName,RamSize,CpuCount,DiskSize,Image);
+                               } catch (AuroraException ex) {}
+                               try {
+                                       auroraJS.jobLaunch(JobName);
+                               } catch (AuroraException ex) {
+                               } break;
+                       default :
+                               System.out.println("Improper option\nOptions 
available:\n1) create\n2) kill\n3) restart\n4) update\n 5) update-info\n6) 
update-pause\n");
+               }
+    } // end of public void executeTheBigDataCommand
+} // end of public class AuroraInjectorImpl

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataInjections/BigDataInjectorI.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataInjections/BigDataInjectorI.java
 b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataInjections/BigDataInjectorI.java
new file mode 100644
index 0000000..a4f2d42
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataInjections/BigDataInjectorI.java
     
@@ -0,0 +1,32 @@
+/*
+ *
+ * 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.cloud.bigDataInjections;
+
+import java.util.Map;
+import java.util.List;
+
+
+public interface BigDataInjectorI {
+
+    // TODO: this interface should throw an exception
+    public void executeTheBigDataClientSideCommand(Map<String, List<String>> 
commandLineOptions);
+}

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataInjections/MarathonInjectorImpl.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataInjections/MarathonInjectorImpl.java
 b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataInjections/MarathonInjectorImpl.java
new file mode 100644
index 0000000..f85a5c2
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/bigDataInjections/MarathonInjectorImpl.java
 
@@ -0,0 +1,72 @@
+/*
+ *
+ * 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.cloud.bigDataInjections;
+
+import java.util.Map;
+import java.util.List;
+
+
+import 
org.apache.airavata.cloud.bigDataClientSideServices.marathon.marathonClient.MarathonJobSchedulerI;
+import 
org.apache.airavata.cloud.bigDataClientSideServices.marathon.marathonClient.MarathonJobSchedulerImpl;
+import 
org.apache.airavata.cloud.exceptions.marathonExceptions.MarathonException;
+
+
+public class MarathonInjectorImpl implements BigDataInjectorI {
+    private MarathonJobSchedulerI marathonJS = null;
+
+    public MarathonInjectorImpl(MarathonJobSchedulerI marathonJSIn) {
+       marathonJS = marathonJSIn;
+    }
+
+
+    public void executeTheBigDataClientSideCommand(Map<String, List<String>> 
commandLineOptions) {
+
+
+       String commandName = commandLineOptions.get("o").get(0);
+       String RamSize, JobName, CpuCount, DiskSize, Image, Command;
+
+               switch(commandName)
+               {
+                       case "kill" :
+                               try {
+                                       
marathonJS.jobKill(commandLineOptions.get("n").get(0),commandLineOptions.get("a").get(0));
+                               } catch(MarathonException ex){
+                               } break;
+                       case "create" :
+                               JobName = commandLineOptions.get("n").get(0);
+                               RamSize = commandLineOptions.get("r").get(0);
+                               CpuCount = commandLineOptions.get("c").get(0);
+                               DiskSize = commandLineOptions.get("d").get(0);
+                               Image = commandLineOptions.get("i").get(0);
+                               Command = commandLineOptions.get("a").get(0);
+                               try {
+                                       
marathonJS.configCreate(JobName,RamSize,CpuCount,DiskSize,Image, Command);
+                               } catch (MarathonException ex) {}
+                               try {
+                                       
marathonJS.jobLaunch(JobName,commandLineOptions.get("a").get(0));
+                               } catch (MarathonException ex) {
+                               } break;
+                       default :
+                               System.out.println("Improper option\nOptions 
available:\n1) create\n2) kill\n");
+               }
+    } // end of public void executeTheBigDataCommand
+} // end of public class AuroraInjectorImpl

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/drivers/auroraDriver/AuroraAdminDriver.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/drivers/auroraDriver/AuroraAdminDriver.java
 b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/drivers/auroraDriver/AuroraAdminDriver.java
new file mode 100644
index 0000000..0685bcd
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/drivers/auroraDriver/AuroraAdminDriver.java
 
@@ -0,0 +1,98 @@
+/*
+ *
+ * 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.cloud.drivers.auroraDriver;
+
+// TODO: need javadoc documentation at the top of each method
+
+// TODO: individually import the types
+import java.util.*;
+
+import org.apache.airavata.cloud.exceptions.auroraExceptions.AuroraException;
+import 
org.apache.airavata.cloud.bigDataClientSideServices.aurora.auroraClient.AuroraJobSchedulerI;
+import 
org.apache.airavata.cloud.bigDataClientSideServices.aurora.auroraClient.AuroraJobSchedulerImpl;
+import org.apache.airavata.cloud.bigDataInjections.AuroraInjectorImpl;
+import org.apache.airavata.cloud.bigDataInjections.BigDataInjectorI;
+
+
+import 
org.apache.airavata.cloud.exceptions.marathonExceptions.MarathonException;
+import 
org.apache.airavata.cloud.bigDataClientSideServices.marathon.marathonClient.MarathonJobSchedulerI;
+import 
org.apache.airavata.cloud.bigDataClientSideServices.marathon.marathonClient.MarathonJobSchedulerImpl;
+import org.apache.airavata.cloud.bigDataInjections.MarathonInjectorImpl;
+
+public class AuroraAdminDriver{
+       public static void main(String[] args) {
+
+           // TODO: do command line validation
+
+           // Processing of the command line arguments should be moved to a 
different method
+
+
+
+           // This code to add command line arguments is based on Apache 
Commons
+
+           // TODO: explain why this Map data structure is needed
+               Map<String, List<String>> params = new HashMap<>();
+
+               // TODO: explain what is the purpose of this List
+               List<String> options = null;
+               for (int i = 0; i < args.length; i++) {
+                       final String a = args[i];
+                       if (a.charAt(0) == '-') {
+                               if (a.length() < 2) {
+                                   // TOOD: need more details in the error 
statement
+                                   System.err.println("Error at argument " + 
a);
+                                   return;
+                               }
+                               // TODO: explain the purpose of this ArrayList
+                               options = new ArrayList<>();
+                               params.put(a.substring(1), options);
+                       }
+                       // TODO: explain when this "else" branch is taken
+                       else if (options != null) {
+                               options.add(a);
+                       }
+                       else {
+
+                               System.err.println("Illegal parameter 
\n[USAGE]\nOptions:\n1) -o\tcreate, kill, restart, update, update-info, 
update-pause\n2) -n\tname of the job\n 3) -r\tamount of RAM\n 4) -c\tCPU 
count\n 5) -d\tdisk space\n 6) -k\tname of the task to be killed\n 7) 
-i\texecutable/image\n ");
+                               return;
+                       }
+
+
+               }// end of for (int i=0; ...
+
+               // use the code below to decide between injecting Aurora, 
Marathon, etc. as injections
+
+               AuroraJobSchedulerI auroraJS = new AuroraJobSchedulerImpl();
+               BigDataInjectorI auroraInjector = new 
AuroraInjectorImpl(auroraJS);
+               auroraInjector.executeTheBigDataClientSideCommand(params);
+
+
+
+               // UNCOMMENT NEXT 3 LINES TO USE MARATHON and comment the 3 
lines above to shut AURORA off.
+               /*MarathonJobSchedulerI marathonJS = new 
MarathonJobSchedulerImpl();
+               BigDataInjectorI marathonInjector = new 
MarathonInjectorImpl(marathonJS);
+               marathonInjector.executeTheBigDataClientSideCommand(params);*/
+
+
+
+       } // end of public static void main
+} // end of class

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/exceptions/auroraExceptions/AuroraException.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/exceptions/auroraExceptions/AuroraException.java
 b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/exceptions/auroraExceptions/AuroraException.java
new file mode 100644
index 0000000..cb823d9
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/exceptions/auroraExceptions/AuroraException.java
    
@@ -0,0 +1,36 @@
+/*
+ *
+ * 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.cloud.exceptions.auroraExceptions;
+
+public class AuroraException extends Exception {
+    private String exceptionMsg;
+    public AuroraException(){
+       exceptionMsg="";
+    }
+    public AuroraException(String exceptionMsgIn){
+       exceptionMsg=exceptionMsgIn;;
+    }
+
+    public String toString(){
+       return  this.exceptionMsg;
+    }
+ }

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/exceptions/marathonExceptions/MarathonException.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/exceptions/marathonExceptions/MarathonException.java
 b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/exceptions/marathonExceptions/MarathonException.java
new file mode 100644
index 0000000..d6010cc
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/exceptions/marathonExceptions/MarathonException.java
        
@@ -0,0 +1,36 @@
+/*
+ *
+ * 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.cloud.exceptions.marathonExceptions;
+
+public class MarathonException extends Exception {
+    private String exceptionMsg;
+    public MarathonException(){
+       exceptionMsg="";
+    }
+    public MarathonException(String exceptionMsgIn){
+       exceptionMsg=exceptionMsgIn;;
+    }
+
+    public String toString(){
+       return  this.exceptionMsg;
+    }
+ }

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/auroraUtilities/AuroraUtilI.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/auroraUtilities/AuroraUtilI.java
 b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/auroraUtilities/AuroraUtilI.java
new file mode 100644
index 0000000..b545bef
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/auroraUtilities/AuroraUtilI.java
       
@@ -0,0 +1,31 @@
+/*
+ *
+ * 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.cloud.util.auroraUtilities;
+
+import java.io.BufferedReader;
+
+import org.apache.airavata.cloud.exceptions.auroraExceptions.AuroraException;
+
+public interface AuroraUtilI{
+  public void printLog(BufferedReader stdout) throws AuroraException;
+  public BufferedReader executeProcess(String commandToRunProcess) throws 
AuroraException;
+}

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/auroraUtilities/AuroraUtilImpl.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/auroraUtilities/AuroraUtilImpl.java
 b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/auroraUtilities/AuroraUtilImpl.java
new file mode 100644
index 0000000..dd81285
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/auroraUtilities/AuroraUtilImpl.java
    
@@ -0,0 +1,63 @@
+/*
+ *
+ * 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.cloud.util.auroraUtilities;
+
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import org.apache.airavata.cloud.exceptions.auroraExceptions.AuroraException;
+
+public class AuroraUtilImpl implements AuroraUtilI{
+  public void printLog(BufferedReader stdout) throws AuroraException
+  {
+    try{
+      String line;
+      line = stdout.readLine();
+      while (line != null) {
+          System.out.println(line);
+          line = stdout.readLine();
+        }
+      }
+      catch (IOException ex) {
+                       throw new AuroraException("IO Exception occured while 
passing the command.\n"+ex.toString());
+               }
+  }
+
+  public BufferedReader executeProcess(String commandToRunProcess) throws 
AuroraException
+  {
+       BufferedReader stdout = null;
+       try{
+               Process auroraJob = 
Runtime.getRuntime().exec(commandToRunProcess);
+               auroraJob.waitFor();
+               stdout = new BufferedReader(new 
InputStreamReader(auroraJob.getInputStream()));
+       }
+       catch(Exception ex)
+       {
+               throw new AuroraException("Exception occured while passing the 
command.\n"+ex.toString());
+
+       }
+       return stdout;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/marathonUtilities/MarathonUtilI.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/marathonUtilities/MarathonUtilI.java
 b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/marathonUtilities/MarathonUtilI.java
new file mode 100644
index 0000000..00b850a
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/marathonUtilities/MarathonUtilI.java
   
@@ -0,0 +1,33 @@
+/*
+ *
+ * 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.cloud.util.marathonUtilities;
+
+import java.io.BufferedReader;
+
+import 
org.apache.airavata.cloud.exceptions.marathonExceptions.MarathonException;
+
+public interface MarathonUtilI{
+
+  public void printLog(BufferedReader stdout) throws MarathonException;
+  public BufferedReader executeProcess(String commandToRunProcess) throws 
MarathonException;
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/marathonUtilities/MarathonUtilImpl.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/marathonUtilities/MarathonUtilImpl.java
 b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/marathonUtilities/MarathonUtilImpl.java
new file mode 100644
index 0000000..3bf0aea
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/AuroraMarathonIntegration/src/main/java/org/apache/airavata/cloud/util/marathonUtilities/MarathonUtilImpl.java
        
@@ -0,0 +1,64 @@
+/*
+ *
+ * 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.cloud.util.marathonUtilities;
+
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import 
org.apache.airavata.cloud.exceptions.marathonExceptions.MarathonException;
+
+public class MarathonUtilImpl implements MarathonUtilI{
+
+  public void printLog(BufferedReader stdout) throws MarathonException
+  {
+    try{
+      String line;
+      line = stdout.readLine();
+      while (line != null) {
+          System.out.println(line);
+          line = stdout.readLine();
+        }
+      }
+      catch (IOException ex) {
+                       throw new MarathonException("IO Exception occured while 
passing the command.\n"+ex.toString());
+               }
+  }
+
+  public BufferedReader executeProcess(String commandToRunProcess) throws 
MarathonException
+  {
+       BufferedReader stdout = null;
+       try{
+               Process marathonJob = 
Runtime.getRuntime().exec(commandToRunProcess);
+               marathonJob.waitFor();
+               stdout = new BufferedReader(new 
InputStreamReader(marathonJob.getInputStream()));
+       }
+       catch(Exception ex)
+       {
+               throw new MarathonException("Exception occured while passing 
the command.\n"+ex.toString());
+
+       }
+       return stdout;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in Airavata/gfac/gfac-core/pom.xml
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in Airavata/gfac/gfac-core/pom.xml 
b/gsoc2016/Design Changes in Airavata/gfac/gfac-core/pom.xml
new file mode 100644
index 0000000..69253d2
--- /dev/null
+++ b/gsoc2016/Design Changes in Airavata/gfac/gfac-core/pom.xml        
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    <parent>
+        <groupId>org.apache.airavata</groupId>
+        <artifactId>airavata-gfac</artifactId>
+        <version>0.17-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>airavata-gfac-core</artifactId>
+    <name>Airavata GFac Core</name>
+    <description>The core GFAC functionality independent from any webservice 
implementation.</description>
+    <url>http://airavata.apache.org/</url>
+
+    <dependencies>
+        <!-- Logging -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+
+        <!-- GFAC schemas -->
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-registry-cpi</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-registry-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.xmlbeans</groupId>
+            <artifactId>xmlbeans</artifactId>
+            <version>${xmlbeans.version}</version>
+        </dependency>
+        <!-- Credential Store -->
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-credential-store</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-messaging-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <!-- Configuration file read-->
+        <dependency>
+            <groupId>org.yaml</groupId>
+            <artifactId>snakeyaml</artifactId>
+            <version>${snakeyaml.version}</version>
+        </dependency>
+
+        <!-- Test -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+            <version>6.1.1</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-server-configuration</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-client-configuration</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- Guava -->
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>12.0</version>
+        </dependency>
+        <!-- gsi-ssh api dependencies -->
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-data-models</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <!-- this is the dependency for amqp implementation -->
+        <!-- zookeeper dependencies -->
+        <dependency>
+            <groupId>org.apache.curator</groupId>
+            <artifactId>curator-framework</artifactId>
+            <version>${curator.version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>xmlbeans-maven-plugin</artifactId>
+                <version>2.3.3</version>
+                <executions>
+                    <execution>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>xmlbeans</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <inherited>true</inherited>
+                <configuration>
+                    <schemaDirectory>src/main/resources</schemaDirectory>
+                    <xmlConfigs>
+                        <xmlConfig 
implementation="java.io.File">src/main/resources/gsissh-schemas.xsdconfig</xmlConfig>
+                    </xmlConfigs>
+                    
<sourceGenerationDirectory>src/main/java</sourceGenerationDirectory>
+                    
<outputJar>target/generated/${project.artifactId}-${project.version}.jar</outputJar>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <skip>false</skip>
+                    <forkMode>always</forkMode>
+                    <failIfNoTests>false</failIfNoTests>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>com.mycila</groupId>
+                <artifactId>license-maven-plugin</artifactId>
+                <version>3.0.rc1</version>
+                <configuration>
+                    <header>src/main/resources/apache-license.txt</header>
+                    <excludes>
+                        <exclude>**/README</exclude>
+                        <exclude>src/test/resources/**</exclude>
+                        <exclude>src/main/resources/**</exclude>
+                    </excludes>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>process-sources</phase>
+                        <goals>
+                            <goal>format</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/GSIAuthenticationInfo.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/GSIAuthenticationInfo.java
 b/gsoc2016/Design Changes in 
Airavata/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/GSIAuthenticationInfo.java
new file mode 100644
index 0000000..37752f1
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/GSIAuthenticationInfo.java
  
@@ -0,0 +1,43 @@
+/**
+ *
+ * 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.gfac.core.authentication;
+
+import org.ietf.jgss.GSSCredential;
+
+import java.util.Properties;
+
+/**
+ * Authentication data. Could be MyProxy user name, password, could be 
GSSCredentials
+ * or could be SSH keys.
+ */
+public abstract class GSIAuthenticationInfo implements AuthenticationInfo {
+
+    public Properties properties = new Properties();
+
+    public abstract GSSCredential getCredentials() throws SecurityException;
+
+    public Properties getProperties() {
+        return properties;
+    }
+
+    public void setProperties(Properties propertiesIn) {
+        properties = propertiesIn;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHKeyAuthentication.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHKeyAuthentication.java
 b/gsoc2016/Design Changes in 
Airavata/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHKeyAuthentication.java
new file mode 100644
index 0000000..fae1f32
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHKeyAuthentication.java
   
@@ -0,0 +1,90 @@
+/**
+ *
+ * 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.gfac.core.authentication;
+
+/**
+ * User: AmilaJ ([email protected])
+ * Date: 10/4/13
+ * Time: 2:39 PM
+ */
+
+/**
+ * Abstracts out common methods for SSH key authentication.
+ */
+public class SSHKeyAuthentication implements AuthenticationInfo {
+
+       private String userName;
+       private byte[] privateKey;
+       private byte[] publicKey;
+       private String passphrase;
+       private String knownHostsFilePath;
+       private String strictHostKeyChecking; // yes or no
+
+       public SSHKeyAuthentication() {
+       }
+
+       public String getUserName() {
+               return userName;
+       }
+
+       public void setUserName(String userNameIn) {
+               this.userName = userNameIn;
+       }
+
+       public byte[] getPrivateKey() {
+               return privateKey;
+       }
+
+       public void setPrivateKey(byte[] privateKeyIn) {
+               this.privateKey = privateKeyIn;
+       }
+
+       public byte[] getPublicKey() {
+               return publicKey;
+       }
+
+       public void setPublicKey(byte[] publicKeyIn) {
+               this.publicKey = publicKeyIn;
+       }
+
+       public String getPassphrase() {
+               return passphrase;
+       }
+
+       public void setPassphrase(String passphraseIn) {
+               this.passphrase = passphraseIn;
+       }
+
+       public String getKnownHostsFilePath() {
+               return knownHostsFilePath;
+       }
+
+       public void setKnownHostsFilePath(String knownHostsFilePathIn) {
+               this.knownHostsFilePath = knownHostsFilePathIn;
+       }
+
+       public String getStrictHostKeyChecking() {
+               return strictHostKeyChecking;
+       }
+
+       public void setStrictHostKeyChecking(String strictHostKeyCheckingIn) {
+               this.strictHostKeyChecking = strictHostKeyCheckingIn;
+       }
+}

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in 
Airavata/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHPasswordAuthentication.java
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHPasswordAuthentication.java
 b/gsoc2016/Design Changes in 
Airavata/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHPasswordAuthentication.java
new file mode 100644
index 0000000..b3f64e4
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHPasswordAuthentication.java
      
@@ -0,0 +1,42 @@
+/**
+ *
+ * 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.gfac.core.authentication;
+
+/**
+ * Password authentication for vanilla SSH.
+ */
+public class SSHPasswordAuthentication implements AuthenticationInfo {
+
+       private String userName;
+       private String password;
+
+       public SSHPasswordAuthentication(String userNameIn, String passwordIn) {
+               this.userName = userNameIn;
+               this.password = passwordIn;
+       }
+
+       public String getUserName() {
+               return userName;
+       }
+
+       public String getPassword() {
+               return password;
+       }
+}

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in Airavata/gfac/pom.xml
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in Airavata/gfac/pom.xml b/gsoc2016/Design 
Changes in Airavata/gfac/pom.xml
new file mode 100644
index 0000000..c0d4ace
--- /dev/null
+++ b/gsoc2016/Design Changes in Airavata/gfac/pom.xml  
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--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. -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+
+    <parent>
+        <groupId>org.apache.airavata</groupId>
+        <artifactId>airavata</artifactId>
+        <version>0.17-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>airavata-gfac</artifactId>
+    <packaging>pom</packaging>
+    <name>Airavata GFac</name>
+    <url>http://airavata.apache.org/</url>
+
+    <profiles>
+        <profile>
+            <id>default</id>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+            <modules>
+                <module>gfac-service</module>
+                <module>gfac-client</module>
+                <module>gfac-core</module>
+                <module>gfac-impl</module>
+                <!--<module>gfac-bes</module>-->
+                <module>gfac-application-specific-handlers</module>
+            </modules>
+        </profile>
+    </profiles>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    </properties>
+</project>

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in Airavata/orchestrator/NULL
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in Airavata/orchestrator/NULL 
b/gsoc2016/Design Changes in Airavata/orchestrator/NULL
new file mode 100644
index 0000000..6c7ca83
--- /dev/null
+++ b/gsoc2016/Design Changes in Airavata/orchestrator/NULL     
@@ -0,0 +1 @@
+Device 0 (VID=18d1 and PID=4ee1) is a Google Inc (for LG Electronics/Samsung) 
Nexus 4/10 (MTP).

http://git-wip-us.apache.org/repos/asf/airavata-sandbox/blob/1932e865/gsoc2016/Design
 Changes in Airavata/orchestrator/orchestrator-core/pom.xml
----------------------------------------------------------------------
diff --git a/gsoc2016/Design Changes in 
Airavata/orchestrator/orchestrator-core/pom.xml b/gsoc2016/Design Changes in 
Airavata/orchestrator/orchestrator-core/pom.xml
new file mode 100644
index 0000000..ee0d23a
--- /dev/null
+++ b/gsoc2016/Design Changes in 
Airavata/orchestrator/orchestrator-core/pom.xml        
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--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. -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+
+
+    <parent>
+        <groupId>org.apache.airavata</groupId>
+        <artifactId>orchestrator</artifactId>
+        <version>0.17-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>airavata-orchestrator-core</artifactId>
+    <packaging>jar</packaging>
+    <name>Airavata Orchestrator Core</name>
+    <url>http://airavata.apache.org/</url>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <version>1.7.5</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-registry-cpi</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-registry-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-commons</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-gfac-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-gfac-client</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-data-models</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-model-utils</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derby</artifactId>
+            <version>${derby.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derbyclient</artifactId>
+            <version>${derby.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derbynet</artifactId>
+            <version>${derby.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+            <version>6.1.1</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-server-configuration</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+</project>

Reply via email to