~ccheney/ubuntu/lucid/eucalyptus/lucid-sru

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Soren Hansen
  • Date: 2009-02-11 02:45:39 UTC
  • Revision ID: james.westby@ubuntu.com-20090211024539-0jhzbpg3hk6nu1yg
Tags: upstream-1.5~bzr139
ImportĀ upstreamĀ versionĀ 1.5~bzr139

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.cloud.*;
 
4
import edu.ucsb.eucalyptus.msgs.*;
 
5
import edu.ucsb.eucalyptus.transport.client.Client;
 
6
import org.apache.log4j.Logger;
 
7
import org.apache.axis2.AxisFault;
 
8
 
 
9
import java.util.NoSuchElementException;
 
10
 
 
11
public class StopNetworkCallback extends QueuedEventCallback<StopNetworkType> {
 
12
 
 
13
  private static Logger LOG = Logger.getLogger( StopNetworkCallback.class );
 
14
 
 
15
  private NetworkToken token;
 
16
 
 
17
  public StopNetworkCallback( final NetworkToken networkToken ) {
 
18
    this.token = networkToken;
 
19
  }
 
20
 
 
21
  public void process( final Client clusterClient, final StopNetworkType msg ) throws Exception {
 
22
    LOG.debug( "Sending stopNetwork for " + token.getName() + " on cluster " + token.getCluster() );
 
23
    try {
 
24
      for ( VmInstance v : VmInstances.getInstance().listValues() ) {
 
25
        if ( v.getNetworkNames().contains( token.getName() ) && v.getPlacement().equals( token.getCluster() ) ) return;
 
26
      }
 
27
 
 
28
      StopNetworkResponseType reply = ( StopNetworkResponseType ) clusterClient.send( msg );
 
29
      try {
 
30
        Network net = Networks.getInstance().lookup( token.getName() );
 
31
        Cluster cluster = Clusters.getInstance().lookup( token.getCluster() );
 
32
        LOG.debug( "Releasing network token back to cluster: " + token );
 
33
        cluster.getState().releaseNetworkAllocation( token );
 
34
        LOG.debug( "Removing network token: " + token );
 
35
        net.removeToken( token.getCluster() );
 
36
      } catch ( NoSuchElementException e1 ) {
 
37
        LOG.error( e1 );
 
38
      }
 
39
    } catch ( AxisFault axisFault ) {
 
40
      LOG.error( axisFault );
 
41
      LOG.debug( axisFault, axisFault );
 
42
    }
 
43
  }
 
44
 
 
45
}