~ubuntu-branches/ubuntu/natty/eucalyptus/natty

« back to all changes in this revision

Viewing changes to clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/HeartbeatHandler.java

  • Committer: Bazaar Package Importer
  • Author(s): Dave Walker (Daviey), Dave Walker (Daviey)
  • Date: 2011-02-15 10:16:03 UTC
  • mfrom: (1.1.48 upstream)
  • Revision ID: james.westby@ubuntu.com-20110215101603-5q6ds5md3sd4cydv
Tags: 2.0.1+bzr1255-0ubuntu1
[ Dave Walker (Daviey) ]
* New upstream snapshot of minor point release, 2.0.1 (r1255).
  - Fixes FTBFS, (LP: #687970)
  - Stop unauthenticated users being able to reset user password. (LP: #675372).
* Switch from dhcp3-server to isc-dhcp-server as the new default. (LP: #711590)
  - debian/:
    + control: eucalyptus-cc, drop Recommends on dhcp3-server and add 
      isc-dhcp-server as the new default.
    + eucalyptus.conf: Use different dhcpd binary name.
    + patches/{18-priv_security.patch|08-ubuntu-default-networking.patch},
      updated rootwrap to use different dhpcd binary.
* Refreshed 06-UEC-webinterface.patch, dropping hunks now applied upstream.
* Updated standards version to 3.9.1, no changes required.
* debian/control: Updated VCS location.
* debian/source/include-binaries: Included newer favicon, overiding shipped.
* debian/{local/registration}/Makefile: Introduced a stanza for, for 
  re-arranging of Linker flags, resolving FTBFS. Added -Wall.
* debian/*: The binary resulting jars have been updated from *-2.0.0 to
  *-2.0.1.  References updated as appropriate.

Show diffs side-by-side

added added

removed removed

Lines of Context:
99
99
import com.eucalyptus.component.ServiceRegistrationException;
100
100
import com.eucalyptus.component.event.StartComponentEvent;
101
101
import com.eucalyptus.component.event.StopComponentEvent;
 
102
import com.eucalyptus.config.BogoConfig;
102
103
import com.eucalyptus.config.ComponentConfiguration;
103
104
import com.eucalyptus.config.RemoteConfiguration;
 
105
import com.eucalyptus.context.Contexts;
104
106
import com.eucalyptus.event.EventVetoedException;
105
107
import com.eucalyptus.event.ListenerRegistry;
106
108
import com.eucalyptus.http.MappingHttpRequest;
165
167
      try {
166
168
        final Component comp = safeLookupComponent( component.getComponent( ) );
167
169
        URI uri = comp.getUri( localAddr.getHostName( ), 8773 );
168
 
        ServiceConfiguration config = new ComponentConfiguration( comp.getName( ), uri.getHost( ), 8773, uri.getPath( ) ) {
169
 
          @Override
170
 
          public com.eucalyptus.bootstrap.Component getComponent( ) {
171
 
            return comp.getPeer( );
172
 
          }
173
 
 
174
 
          @Override
175
 
          public Boolean isLocal( ) {
176
 
            return true;
177
 
          }
178
 
          
179
 
        };
 
170
        ServiceConfiguration config = new BogoConfig( comp.getPeer( ), comp.getName( ), uri.getHost( ), 8773, uri.getPath( ) );        
180
171
        System.setProperty( "euca." + component.getComponent( ) + ".name", component.getName( ) );
181
172
        comp.buildService( config );
182
173
        initializedComponents.add( component.getComponent( ) );
257
248
    
258
249
    @Override
259
250
    public void messageReceived( ChannelHandlerContext ctx, MessageEvent e ) throws Exception {
260
 
      if ( e.getMessage( ) instanceof HttpRequest && HttpMethod.GET.equals( ( ( HttpRequest ) e.getMessage( ) ).getMethod( ) ) ) {
261
 
        HttpRequest request = ( HttpRequest ) e.getMessage( );
262
 
        HttpResponse response = new DefaultHttpResponse( request.getProtocolVersion( ), HttpResponseStatus.OK );
263
 
        String resp = "";
264
 
        for ( Component c : Components.list( ) ) {
265
 
          resp += String.format( "name=%-20.20s enabled=%-10.10s local=%-10.10s initialized=%-10.10s\n", c.getName( ), c.isEnabled( ), c.isLocal( ),
266
 
                                 c.isInitialized( ) );
 
251
      if ( e.getMessage( ) instanceof MappingHttpRequest && HttpMethod.GET.equals( ( ( MappingHttpRequest ) e.getMessage( ) ).getMethod( ) ) ) {
 
252
        MappingHttpRequest request = ( MappingHttpRequest ) e.getMessage( );
 
253
        try {
 
254
          HttpResponse response = new DefaultHttpResponse( request.getProtocolVersion( ), HttpResponseStatus.OK );
 
255
          String resp = "";
 
256
          for ( Component c : Components.list( ) ) {
 
257
            resp += String.format( "name=%-20.20s enabled=%-10.10s local=%-10.10s initialized=%-10.10s\n", c.getName( ), c.isEnabled( ), c.isLocal( ),
 
258
                                   c.isInitialized( ) );
 
259
          }
 
260
          ChannelBuffer buf = ChannelBuffers.copiedBuffer( resp.getBytes( ) );
 
261
          response.setContent( buf );
 
262
          response.addHeader( HttpHeaders.Names.CONTENT_LENGTH, String.valueOf( buf.readableBytes( ) ) );
 
263
          response.addHeader( HttpHeaders.Names.CONTENT_TYPE, "text/plain; charset=UTF-8" );
 
264
          ChannelFuture writeFuture = ctx.getChannel( ).write( response );
 
265
          writeFuture.addListener( ChannelFutureListener.CLOSE );
 
266
        } finally {
 
267
          Contexts.clear( request.getCorrelationId( ) );
267
268
        }
268
 
        ChannelBuffer buf = ChannelBuffers.copiedBuffer( resp.getBytes( ) );
269
 
        response.setContent( buf );
270
 
        response.addHeader( HttpHeaders.Names.CONTENT_LENGTH, String.valueOf( buf.readableBytes( ) ) );
271
 
        response.addHeader( HttpHeaders.Names.CONTENT_TYPE, "text/plain; charset=UTF-8" );
272
 
        ChannelFuture writeFuture = ctx.getChannel( ).write( response );
273
 
        writeFuture.addListener( ChannelFutureListener.CLOSE );
274
269
      } else {
275
270
        ctx.sendUpstream( e );
276
271
      }
295
290
    Object message = ( ( MessageEvent ) e ).getMessage( );
296
291
    if ( message instanceof MappingHttpRequest ) {
297
292
      MappingHttpRequest request = ( ( MappingHttpRequest ) message );
298
 
      if ( HttpMethod.GET.equals( request.getMethod( ) ) ) {
299
 
        handleGet( ctx, request );
300
 
      } else if ( !initialized.get( ) && pending.compareAndSet( false, true ) ) {
301
 
        try {
302
 
          handleInitialize( ctx, request );
303
 
        } catch ( Exception ex ) {
304
 
          LOG.error( ex, ex );
305
 
          throw ex;
306
 
        } finally {
307
 
          pending.set( false );
 
293
      try {
 
294
        if ( HttpMethod.GET.equals( request.getMethod( ) ) ) {
 
295
          handleGet( ctx, request );
 
296
        } else if ( !initialized.get( ) && pending.compareAndSet( false, true ) ) {
 
297
          try {
 
298
            handleInitialize( ctx, request );
 
299
          } catch ( Exception ex ) {
 
300
            LOG.error( ex, ex );
 
301
            throw ex;
 
302
          } finally {
 
303
            pending.set( false );
 
304
          }
 
305
        } else if ( initialized.get( ) && request.getMessage( ) instanceof HeartbeatType ) {
 
306
          handleHeartbeat( request );
 
307
        } else {
 
308
          ChannelFuture writeFuture = ctx.getChannel( ).write( new DefaultHttpResponse( request.getProtocolVersion( ), HttpResponseStatus.NOT_ACCEPTABLE ) );
 
309
          writeFuture.addListener( ChannelFutureListener.CLOSE );
308
310
        }
309
 
      } else if ( initialized.get( ) && request.getMessage( ) instanceof HeartbeatType ) {
310
 
        handleHeartbeat( request );
311
 
      } else {
312
 
        ChannelFuture writeFuture = ctx.getChannel( ).write( new DefaultHttpResponse( request.getProtocolVersion( ), HttpResponseStatus.NOT_ACCEPTABLE ) );
313
 
        writeFuture.addListener( ChannelFutureListener.CLOSE );
 
311
      } finally {
 
312
        Contexts.clear( request.getCorrelationId( ) );
314
313
      }
315
314
    } else {
316
315
      super.messageReceived( ctx, e );