~kirkland/eucalyptus/label-metadata

« back to all changes in this revision

Viewing changes to clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/ConsoleOutputCallback.java

  • Committer: graziano obertelli
  • Date: 2009-01-07 03:32:35 UTC
  • Revision ID: graziano@cs.ucsb.edu-20090107033235-oxhuexp18v8hg0pw
Tags: 1.4
from CVS

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package edu.ucsb.eucalyptus.cloud.cluster;
 
2
 
 
3
import edu.ucsb.eucalyptus.msgs.*;
 
4
import edu.ucsb.eucalyptus.transport.client.Client;
 
5
import edu.ucsb.eucalyptus.util.Messaging;
 
6
import org.apache.log4j.Logger;
 
7
import org.bouncycastle.util.encoders.Base64;
 
8
 
 
9
import java.util.Date;
 
10
 
 
11
public class ConsoleOutputCallback extends QueuedEventCallback<GetConsoleOutputType> {
 
12
 
 
13
  private static Logger LOG = Logger.getLogger( ConsoleOutputCallback.class );
 
14
 
 
15
  private Cluster parent;
 
16
 
 
17
  public ConsoleOutputCallback( final Cluster parent ) {
 
18
    this.parent = parent;
 
19
  }
 
20
 
 
21
  public void process( final Client cluster, final GetConsoleOutputType msg ) throws Exception {
 
22
    GetConsoleOutputResponseType reply = ( GetConsoleOutputResponseType ) cluster.send( msg );
 
23
    VmInstance vm = VmInstances.getInstance().lookup( msg.getInstanceId() );
 
24
    String output = new String( Base64.decode( reply.getOutput().getBytes() ) );
 
25
    if ( !"EMPTY".equals( output ) )
 
26
      vm.getConsoleOutput().append( output );
 
27
    reply.setInstanceId( msg.getInstanceId() );
 
28
    reply.setTimestamp( new Date() );
 
29
    reply.setOutput( new String( Base64.encode( vm.getConsoleOutput().toString().getBytes() ) ) );
 
30
    Messaging.dispatch( "vm://ReplyQueue", reply );
 
31
  }
 
32
 
 
33
}