Author: heshan
Date: Fri Mar  8 18:39:46 2013
New Revision: 1454489

URL: http://svn.apache.org/r1454489
Log:
AIRAVATA-202 Adding notifications. 

Added:
    
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/notification/events/EC2ProviderEvent.java
Modified:
    
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/notification/listeners/LoggingListener.java
    
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/EC2Provider.java

Added: 
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/notification/events/EC2ProviderEvent.java
URL: 
http://svn.apache.org/viewvc/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/notification/events/EC2ProviderEvent.java?rev=1454489&view=auto
==============================================================================
--- 
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/notification/events/EC2ProviderEvent.java
 (added)
+++ 
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/notification/events/EC2ProviderEvent.java
 Fri Mar  8 18:39:46 2013
@@ -0,0 +1,14 @@
+package org.apache.airavata.gfac.notification.events;
+
+public class EC2ProviderEvent extends GFacEvent {
+    String statusMessage;
+
+    public EC2ProviderEvent(String message){
+        this.eventType = EC2ProviderEvent.class.getSimpleName();
+        statusMessage = message;
+    }
+
+    public String getStatusMessage() {
+        return statusMessage;
+    }
+}

Modified: 
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/notification/listeners/LoggingListener.java
URL: 
http://svn.apache.org/viewvc/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/notification/listeners/LoggingListener.java?rev=1454489&r1=1454488&r2=1454489&view=diff
==============================================================================
--- 
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/notification/listeners/LoggingListener.java
 (original)
+++ 
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/notification/listeners/LoggingListener.java
 Fri Mar  8 18:39:46 2013
@@ -54,4 +54,9 @@ public class LoggingListener {
         log.info("Job status has changed ...");
         log.info(event.getStatusMessage());
     }
+
+    @Subscribe
+    public void logStatusChangeEvent(EC2ProviderEvent event){
+        log.info(event.getStatusMessage());
+    }
 }

Modified: 
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/EC2Provider.java
URL: 
http://svn.apache.org/viewvc/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/EC2Provider.java?rev=1454489&r1=1454488&r2=1454489&view=diff
==============================================================================
--- 
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/EC2Provider.java
 (original)
+++ 
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/EC2Provider.java
 Fri Mar  8 18:39:46 2013
@@ -41,6 +41,7 @@ import com.sshtools.j2ssh.transport.publ
 import com.sshtools.j2ssh.util.Base64;
 import org.apache.airavata.gfac.context.AmazonSecurityContext;
 import org.apache.airavata.gfac.context.JobExecutionContext;
+import org.apache.airavata.gfac.notification.events.EC2ProviderEvent;
 import org.apache.airavata.gfac.provider.GFacProvider;
 import org.apache.airavata.gfac.provider.GFacProviderException;
 import org.bouncycastle.openssl.PEMWriter;
@@ -60,15 +61,15 @@ public class EC2Provider implements GFac
 
     public static final int SLEEP_TIME_SECOND = 120;
 
-    public static final String KEY_PAIR_NAME = "gfac";
-
-    public static final String KEY_PAIR_FILE = "ec2_rsa";
-
     public static final int SOCKET_TIMEOUT = 30000;
 
     public static final int SSH_PORT = 22;
 
-    private static final String privateKeyFilePath = 
System.getProperty("user.home") + "/.ssh/" + KEY_PAIR_FILE;
+    public static final String KEY_PAIR_NAME = "gfac";
+
+    public static final String KEY_PAIR_FILE = "ec2_rsa";
+
+    private static final String PRIVATE_KEY_FILE_PATH = 
System.getProperty("user.home") + "/.ssh/" + KEY_PAIR_FILE;
 
     private Instance instance = null;
 
@@ -136,9 +137,9 @@ public class EC2Provider implements GFac
             // Initialize the authentication data.
             PublicKeyAuthenticationClient publicKeyAuth = new 
PublicKeyAuthenticationClient();
             publicKeyAuth.setUsername("ec2-user");
-            SshPrivateKeyFile file = SshPrivateKeyFile.parse(new 
File("/home/heshan/ec2_keys/ec2key.pem"));
+            SshPrivateKeyFile file = SshPrivateKeyFile.parse(new 
File(PRIVATE_KEY_FILE_PATH));
             SshPrivateKey privateKey = file.toPrivateKey("");
-            publicKeyAuth.setKey( privateKey );
+            publicKeyAuth.setKey(privateKey);
 
             // Authenticate
             int result = sshClient.authenticate( publicKeyAuth );
@@ -243,8 +244,7 @@ public class EC2Provider implements GFac
                             " is not valid");
             }
 
-            //TODO send out instance id
-            
//execContext.getNotificationService().sendResourceMappingNotifications(this.instance.getPublicDnsName(),
 "EC2 Instance " + this.instance.getInstanceId() + " is running with public 
name " + this.instance.getPublicDnsName(), this.instance.getInstanceId());
+            jobExecutionContext.getNotificationService().publish(new 
EC2ProviderEvent("EC2 Instance " + this.instance.getInstanceId() + " is running 
with public name " + this.instance.getPublicDnsName()));
 
         } catch (Exception e) {
             throw new GFacProviderException("Invalid 
Request",e,jobExecutionContext);
@@ -271,8 +271,8 @@ public class EC2Provider implements GFac
 
             // notify the status
             for (Instance ins: instances) {
-                // TODO
-                //executionContext.getNotificationService().info("EC2 Instance 
" +ins.getInstanceId() + " is " + ins.getState().getName().toString());
+                jobExecutionContext.getNotificationService().publish(new 
EC2ProviderEvent("EC2 Instance " +
+                        ins.getInstanceId() + " is " + 
ins.getState().getName()));
             }
 
             try {
@@ -296,8 +296,8 @@ public class EC2Provider implements GFac
             AmazonServiceException, AmazonClientException, IOException {
         boolean newKey = false;
 
-        File privateKeyFile = new File(privateKeyFilePath);
-        File publicKeyFile = new File(privateKeyFilePath + ".pub");
+        File privateKeyFile = new File(PRIVATE_KEY_FILE_PATH);
+        File publicKeyFile = new File(PRIVATE_KEY_FILE_PATH + ".pub");
 
         /* Check if Key-pair already created on the server */
         if (!privateKeyFile.exists()) {
@@ -316,7 +316,7 @@ public class EC2Provider implements GFac
 
             // Store Public Key.
             try {
-                fos = new FileOutputStream(privateKeyFilePath + ".pub");
+                fos = new FileOutputStream(PRIVATE_KEY_FILE_PATH + ".pub");
                 fos.write(Base64.encodeBytes(keypair.getPublic().getEncoded(), 
true).getBytes());
             } catch (IOException ioe) {
                 throw ioe;
@@ -333,7 +333,7 @@ public class EC2Provider implements GFac
 
             // Store Private Key.
             try {
-                fos = new FileOutputStream(privateKeyFilePath);
+                fos = new FileOutputStream(PRIVATE_KEY_FILE_PATH);
                 StringWriter stringWriter = new StringWriter();
 
                 /* Write in PEM format (openssl support) */


Reply via email to