Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Merge commit '1a187e64fa29d21e015fa4b034602a'

Baseline for testing HA

Conflicts:
	clc/modules/storage-san
  • Loading branch information...
commit c9d43c064223ecf8478e7236d24420fc5b7775c0 2 parents b2a2e07 + 1a187e6
Vic Iglesias viglesiasce authored

Showing 18 changed files with 304 additions and 219 deletions. Show diff stats Hide diff stats

  1. +0 3  clc/.classpath
  2. +1 1  clc/Makefile
  3. +24 1 clc/modules/cluster-manager/src/main/java/com/eucalyptus/blockstorage/SnapshotManager.java
  4. +8 4 clc/modules/cluster-manager/src/main/java/com/eucalyptus/blockstorage/Snapshots.java
  5. +18 3 clc/modules/cluster-manager/src/main/java/com/eucalyptus/images/Images.java
  6. +10 6 clc/modules/cluster-manager/src/main/java/com/eucalyptus/vm/VmInstance.java
  7. +21 0 clc/modules/msgs/src/main/java/com/eucalyptus/crypto/util/WSSecurity.java
  8. +5 13 clc/modules/msgs/src/main/java/com/eucalyptus/ws/handlers/InternalWsSecHandler.java
  9. +15 15 clc/modules/postgresql/conf/scripts/setup_db.groovy
  10. +1 1  clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/WalrusManager.java
  11. +32 3 clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/wssecurity/BrokerWsSecHandler.java
  12. +0 1  clc/modules/www/test-gwt/src/com/eucalyptus/webui/client
  13. +1 0  clc/modules/www/test-gwt/src/com/eucalyptus/webui/client
  14. +0 1  clc/modules/www/test-gwt/src/com/eucalyptus/webui/public
  15. +1 0  clc/modules/www/test-gwt/src/com/eucalyptus/webui/public
  16. +0 1  clc/modules/www/test-gwt/src/com/eucalyptus/webui/shared
  17. +1 0  clc/modules/www/test-gwt/src/com/eucalyptus/webui/shared
  18. +166 166 project/.cproject
3  clc/.classpath
@@ -36,9 +36,6 @@
36 36 <classpathentry kind="src" output="modules/www/build" path="modules/www/src/main/java"/>
37 37 <classpathentry kind="src" path="modules/www/conf/reports"/>
38 38 <classpathentry kind="src" path="modules/www/conf/www"/>
39   - <classpathentry kind="con" path="GROOVY_SUPPORT"/>
40   - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
41   - <classpathentry exported="true" kind="con" path="GROOVY_DSL_SUPPORT"/>
42 39 <classpathentry kind="lib" path="lib/activemq-core-5.4.1.jar"/>
43 40 <classpathentry kind="lib" path="lib/ant-1.7.jar"/>
44 41 <classpathentry kind="lib" path="lib/antlr-3.0.1.jar"/>
2  clc/Makefile
@@ -13,7 +13,7 @@ test: deps build-test
13 13
14 14 deps/cloud-lib.tar.gz:
15 15 @mkdir -p deps
16   - cd ${TOP}/clc/deps/ && wget -q http://mirror.eucalyptus/dependencies/${VERSION}/cloud-lib.tar.gz
  16 + cd ${TOP}/clc/deps/ && curl -q http://mirror.eucalyptus/dependencies/${VERSION}/cloud-lib.tar.gz > cloud-lib.tar.gz
17 17
18 18 lib/bcprov.jar:
19 19 @mkdir -p lib
25 clc/modules/cluster-manager/src/main/java/com/eucalyptus/blockstorage/SnapshotManager.java
@@ -64,6 +64,10 @@
64 64
65 65 package com.eucalyptus.blockstorage;
66 66
  67 +import static com.eucalyptus.cloud.ImageMetadata.State.available;
  68 +import static com.eucalyptus.cloud.ImageMetadata.State.pending;
  69 +import static com.eucalyptus.images.Images.inState;
  70 +import java.util.EnumSet;
67 71 import java.util.List;
68 72 import java.util.NoSuchElementException;
69 73 import java.util.concurrent.Callable;
@@ -87,6 +91,7 @@
87 91 import com.eucalyptus.entities.EntityWrapper;
88 92 import com.eucalyptus.entities.TransactionException;
89 93 import com.eucalyptus.entities.Transactions;
  94 +import com.eucalyptus.images.Images;
90 95 import com.eucalyptus.records.Logs;
91 96 import com.eucalyptus.system.Threads;
92 97 import com.eucalyptus.util.EucalyptusCloudException;
@@ -94,6 +99,7 @@
94 99 import com.eucalyptus.util.RestrictedTypes;
95 100 import com.eucalyptus.util.async.AsyncRequests;
96 101 import com.google.common.base.Predicate;
  102 +import com.google.common.base.Predicates;
97 103 import com.google.common.base.Supplier;
98 104 import com.google.common.collect.Iterables;
99 105 import edu.ucsb.eucalyptus.msgs.CreateSnapshotResponseType;
@@ -152,7 +158,7 @@ public Snapshot get( ) {
152 158 private static Snapshot startCreateSnapshot( final Volume vol, final Snapshot snap ) throws EucalyptusCloudException, DuplicateMetadataException {
153 159 return Snapshots.startCreateSnapshot( vol, snap );
154 160 }
155   -
  161 +
156 162 public DeleteSnapshotResponseType delete( final DeleteSnapshotType request ) throws EucalyptusCloudException {
157 163 final DeleteSnapshotResponseType reply = ( DeleteSnapshotResponseType ) request.getReply( );
158 164 final Context ctx = Contexts.lookup( );
@@ -167,6 +173,8 @@ public boolean apply( Snapshot snap ) {
167 173 } else if ( !RestrictedTypes.filterPrivileged( ).apply( snap ) ) {
168 174 throw Exceptions.toUndeclared( "Not authorized to delete snapshot " + request.getSnapshotId( ) + " by " + ctx.getUser( ).getName( ),
169 175 new EucalyptusCloudException( ) );
  176 + } else if ( isReservedSnapshot( request.getSnapshotId( ) ) ) {
  177 + throw Exceptions.toUndeclared( "Snapshot " + request.getSnapshotId( ) + " is in use, deletion not permitted", new EucalyptusCloudException( ) );
170 178 } else {
171 179 Snapshots.fireDeleteEvent( snap );
172 180 final ServiceConfiguration sc = Topology.lookup( Storage.class, Partitions.lookupByName( snap.getPartition( ) ) );
@@ -255,4 +263,19 @@ public DescribeSnapshotAttributeResponseType describeSnapshotAttribute( Describe
255 263 DescribeSnapshotAttributeResponseType reply = request.getReply( );
256 264 return reply;
257 265 }
  266 +
  267 + private boolean isReservedSnapshot( final String snapshotId ) {
  268 + return Predicates.or( ImageSnapshotReservation.INSTANCE ).apply( snapshotId );
  269 + }
  270 +
  271 + private enum ImageSnapshotReservation implements Predicate<String> {
  272 + INSTANCE;
  273 +
  274 + @Override
  275 + public boolean apply( final String identifier ) {
  276 + return Iterables.any(
  277 + Entities.query(Images.exampleBlockStorageWithSnapshotId(identifier), true),
  278 + inState(EnumSet.of( pending, available ) ) );
  279 + }
  280 + }
258 281 }
12 clc/modules/cluster-manager/src/main/java/com/eucalyptus/blockstorage/Snapshots.java
@@ -63,9 +63,12 @@
63 63
64 64 package com.eucalyptus.blockstorage;
65 65
  66 +import static java.util.Collections.unmodifiableSet;
  67 +import static java.util.EnumSet.of;
66 68 import java.util.List;
67 69 import java.util.Map;
68 70 import java.util.NoSuchElementException;
  71 +import java.util.Set;
69 72 import java.util.concurrent.Callable;
70 73 import java.util.concurrent.ExecutionException;
71 74 import java.util.concurrent.atomic.AtomicBoolean;
@@ -93,7 +96,6 @@
93 96 import com.eucalyptus.event.Listeners;
94 97 import com.eucalyptus.records.Logs;
95 98 import com.eucalyptus.reporting.event.StorageEvent;
96   -import com.eucalyptus.reporting.event.StorageEvent.EventType;
97 99 import com.eucalyptus.system.Threads;
98 100 import com.eucalyptus.util.Callback;
99 101 import com.eucalyptus.util.EucalyptusCloudException;
@@ -112,8 +114,9 @@
112 114 import edu.ucsb.eucalyptus.msgs.StorageSnapshot;
113 115
114 116 public class Snapshots {
115   - private static Logger LOG = Logger.getLogger( Snapshots.class );
116   - private static final long SNAPSHOT_STATE_TIMEOUT = 2 * 60 * 60 * 1000L;
  117 + private static Logger LOG = Logger.getLogger( Snapshots.class );
  118 + private static final long SNAPSHOT_STATE_TIMEOUT = 2 * 60 * 60 * 1000L;
  119 + private static final Set<State> SNAPSHOT_TIMEOUT_STATES = unmodifiableSet(of(State.NIHIL, State.GENERATING));
117 120
118 121 public static class SnapshotUpdateEvent implements EventListener<ClockTick>, Callable<Boolean> {
119 122 private static final AtomicBoolean ready = new AtomicBoolean( true );
@@ -196,7 +199,8 @@ public Snapshot apply( final String input ) {
196 199 buf.append( " storage-snapshot " )
197 200 .append( storageSnapshot.getStatus( ) ).append( "=>" ).append( entity.getState( ) ).append( " " )
198 201 .append( storageSnapshot.getProgress( ) ).append( " " );
199   - } else if ( State.GENERATING.equals( entity.getState( ) ) && entity.lastUpdateMillis( ) > SNAPSHOT_STATE_TIMEOUT ) {
  202 + } else if ( SNAPSHOT_TIMEOUT_STATES.contains( entity.getState( ) ) &&
  203 + entity.lastUpdateMillis( ) > SNAPSHOT_STATE_TIMEOUT ) {
200 204 Entities.delete( entity );
201 205 } else {
202 206 if ( State.EXTANT.equals( entity.getState( ) ) ) {
21 clc/modules/cluster-manager/src/main/java/com/eucalyptus/images/Images.java
@@ -4,8 +4,8 @@
4 4 import static org.hamcrest.Matchers.notNullValue;
5 5 import java.util.Collection;
6 6 import java.util.List;
  7 +import java.util.Set;
7 8 import java.util.concurrent.ExecutionException;
8   -import java.util.zip.Adler32;
9 9 import org.apache.log4j.Logger;
10 10 import org.hibernate.criterion.Example;
11 11 import org.hibernate.exception.ConstraintViolationException;
@@ -285,7 +285,16 @@ public DeviceMapping apply( BlockDeviceMappingItemType input ) {
285 285 }
286 286 };
287 287 }
288   -
  288 +
  289 + public static <T extends ImageInfo> Predicate<T> inState( final Set<ImageMetadata.State> states ) {
  290 + return new Predicate<T>() {
  291 + @Override
  292 + public boolean apply( final T imageInfo ) {
  293 + return states.contains( imageInfo.getState() );
  294 + }
  295 + };
  296 + }
  297 +
289 298 public static Function<ImageInfo, ImageDetails> TO_IMAGE_DETAILS = new Function<ImageInfo, ImageDetails>( ) {
290 299
291 300 @Override
@@ -363,7 +372,13 @@ public static MachineImageInfo exampleMachineWithImageId( final String imageId )
363 372 public static BlockStorageImageInfo exampleBlockStorageWithImageId( final String imageId ) {
364 373 return new BlockStorageImageInfo( imageId );
365 374 }
366   -
  375 +
  376 + public static BlockStorageImageInfo exampleBlockStorageWithSnapshotId( final String snapshotId ) {
  377 + final BlockStorageImageInfo info = new BlockStorageImageInfo();
  378 + info.setSnapshotId( snapshotId );
  379 + return info;
  380 + }
  381 +
367 382 public static KernelImageInfo exampleKernelWithImageId( final String imageId ) {
368 383 return new KernelImageInfo( imageId );
369 384 }
16 clc/modules/cluster-manager/src/main/java/com/eucalyptus/vm/VmInstance.java
@@ -156,11 +156,11 @@
156 156 @Cache( usage = CacheConcurrencyStrategy.TRANSACTIONAL )
157 157 public class VmInstance extends UserMetadata<VmState> implements VmInstanceMetadata {
158 158 private static final long serialVersionUID = 1L;
159   -
160   - @Transient
161   - private static Logger LOG = Logger.getLogger( VmInstance.class );
162   - @Transient
163   - public static String DEFAULT_TYPE = "m1.small";
  159 +
  160 + private static final Logger LOG = Logger.getLogger( VmInstance.class );
  161 + public static final String DEFAULT_TYPE = "m1.small";
  162 + public static final String ROOT_DEVICE_TYPE_EBS = "ebs";
  163 +
164 164 @Embedded
165 165 private VmNetworkConfig networkConfig;
166 166 @Embedded
@@ -1677,7 +1677,11 @@ public RunningInstancesItemType apply( final VmInstance v ) {
1677 1677 runningInstance.setPlacement( input.getPlacement( ).getPartitionName( ) );
1678 1678
1679 1679 runningInstance.setLaunchTime( input.getLaunchRecord( ).getLaunchTime( ) );
1680   -
  1680 +
  1681 + if ( input.isBlockStorage( ) ) {
  1682 + runningInstance.setRootDeviceType( ROOT_DEVICE_TYPE_EBS );
  1683 + }
  1684 +
1681 1685 if ( input.getBootRecord( ).hasPersistentVolumes( ) ) {
1682 1686 for ( final VmVolumeAttachment attachedVol : input.getBootRecord( ).getPersistentVolumes( ) ) {
1683 1687 runningInstance.getBlockDevices( ).add( new InstanceBlockDeviceMapping( attachedVol.getDevice( ), attachedVol.getVolumeId( ),
21 clc/modules/msgs/src/main/java/com/eucalyptus/crypto/util/WSSecurity.java
@@ -101,7 +101,11 @@
101 101 import org.w3c.dom.Text;
102 102 import com.eucalyptus.auth.login.SecurityContext;
103 103 import com.eucalyptus.binding.HoldMe;
  104 +import com.eucalyptus.component.auth.SystemCredentials;
  105 +import com.eucalyptus.component.id.Eucalyptus;
  106 +import com.eucalyptus.records.Logs;
104 107 import com.eucalyptus.ws.StackConfiguration;
  108 +import com.eucalyptus.ws.WebServicesException;
105 109
106 110 public class WSSecurity {
107 111 private static Logger LOG = Logger.getLogger( WSSecurity.class );
@@ -129,6 +133,23 @@ public static CertificateFactory getCertificateFactory( ) {
129 133
130 134 private static boolean useBc = false;
131 135
  136 + public static X509Certificate verifyWSSec( final SOAPEnvelope envelope ) throws Exception {
  137 +
  138 + final Element secNode = WSSecurity.getSecurityElement( envelope );
  139 + final XMLSignature sig = WSSecurity.getXMLSignature( secNode );
  140 + String sigValue = new String( sig.getSignatureValue( ) );
  141 + SecurityContext.enqueueSignature( sigValue );
  142 + X509Certificate cert = null;
  143 + try {
  144 + cert = WSSecurity.verifySignature( secNode, sig );
  145 + Logs.exhaust( ).debug( cert );
  146 + } catch ( Exception ex ) {
  147 + Logs.exhaust( ).error( ex , ex );
  148 + throw new WebServicesException( "Authentication failed: " + ex.getMessage( ), ex );
  149 + }
  150 +
  151 + return cert;
  152 + }
132 153
133 154 public static X509Certificate verifySignature( final Element securityNode, final XMLSignature sig )
134 155 throws WSSecurityException, XMLSignatureException, XMLSecurityException {
18 clc/modules/msgs/src/main/java/com/eucalyptus/ws/handlers/InternalWsSecHandler.java
@@ -114,20 +114,12 @@ public void incomingMessage( MessageEvent event ) throws Exception {
114 114 if ( o instanceof MappingHttpRequest ) {
115 115 final MappingHttpMessage httpRequest = ( MappingHttpMessage ) o;
116 116 final SOAPEnvelope envelope = httpRequest.getSoapEnvelope( );
117   - final Element secNode = WSSecurity.getSecurityElement( envelope );
118   - final XMLSignature sig = WSSecurity.getXMLSignature( secNode );
119   - String sigValue = new String( sig.getSignatureValue( ) );
120   - SecurityContext.enqueueSignature( sigValue );
121   - try {
122   - X509Certificate cert = WSSecurity.verifySignature( secNode, sig );
123   - Logs.exhaust( ).debug( cert );
124   - if ( cert == null || !cert.equals( SystemCredentials.lookup( Eucalyptus.class ).getCertificate( ) ) ) {
125   - throw new WebServicesException( "Authentication failed: The following certificate is not trusted:\n " + cert );
126   - }
127   - } catch ( Exception ex ) {
128   - Logs.exhaust( ).error( ex , ex );
129   - throw new WebServicesException( "Authentication failed: " + ex.getMessage( ), ex );
  117 +
  118 + X509Certificate cert = WSSecurity.verifyWSSec( envelope );
  119 + if ( cert == null || !cert.equals( SystemCredentials.lookup( Eucalyptus.class ).getCertificate( ) ) ) {
  120 + throw new WebServicesException( "Authentication failed: The following certificate is not trusted:\n " + cert );
130 121 }
  122 +
131 123 Contexts.lookup( ( ( MappingHttpMessage ) o ).getCorrelationId( ) ).setUser( Principals.systemUser() );
132 124 }
133 125 }
30 clc/modules/postgresql/conf/scripts/setup_db.groovy
@@ -103,6 +103,8 @@ public class PostgresqlBootstrapper extends Bootstrapper.Simple implements Datab
103 103 private static String PG_BIN = PG_HOME + "bin/pg_ctl"
104 104 private static String PG_START = "start"
105 105 private static String PG_STOP = "stop"
  106 + private static String PG_STATUS = "status"
  107 + private static String PG_MODE = "-mf"
106 108 private static String PG_PORT_OPTS2 = "-o -h0.0.0.0/0 -p8777 -i"
107 109 private static String PG_DB_OPT = "-D"
108 110 private static String PG_INITDB = PG_HOME + "bin/initdb"
@@ -250,7 +252,7 @@ ${hostOrHostSSL}\tall\tall\t::/0\tpassword
250 252 private void initPGCONF() throws Exception {
251 253 try {
252 254 final Map<String,String> requiredProperties = [
253   - max_connections: '1000',
  255 + max_connections: '8192',
254 256 unix_socket_directory: "'" + SubDirectory.DB.getChildPath( EUCA_DB_DIR ) + "'",
255 257 ssl: PG_USE_SSL ? 'on' : 'off',
256 258 ssl_ciphers: '\'AES128-SHA:AES256-SHA\''
@@ -364,6 +366,7 @@ ${hostOrHostSSL}\tall\tall\t::/0\tpassword
364 366 int value = runProcess([
365 367 PG_BIN,
366 368 PG_STOP,
  369 + PG_MODE,
367 370 PG_DB_OPT + SubDirectory.DB.getChildPath(EUCA_DB_DIR)
368 371 ])
369 372 if (value != 0) {
@@ -400,7 +403,6 @@ ${hostOrHostSSL}\tall\tall\t::/0\tpassword
400 403
401 404 @Override
402 405 public boolean load( ) throws Exception {
403   - LOG.debug("The load method is being executed")
404 406 if ( isRunning( ) ) {
405 407 return true
406 408 }
@@ -442,20 +444,17 @@ ${hostOrHostSSL}\tall\tall\t::/0\tpassword
442 444 }
443 445
444 446 public boolean isRunning() {
445   - for ( int x = 0; x < PG_MAX_RETRY; x++ ) {
446   - try {
447   - File pidFile = SubDirectory.DB.getChildFile( EUCA_DB_DIR, "postmaster.pid" )
448   - if ( pidFile.size() > 0 ) {
449   - LOG.debug("Found the postmaster.pid file")
450   - return true
451   - }
452   - } catch (Exception e) {
453   - LOG.debug("The postmaster.pid file was not found")
454   - sleep(1000)
455   - }
456   - }
  447 + int value = runProcess([
  448 + PG_BIN,
  449 + PG_STATUS,
  450 + PG_DB_OPT + SubDirectory.DB.getChildPath(EUCA_DB_DIR)
  451 + ])
  452 +
  453 + if (value != 0) {
  454 + return false
  455 + }
457 456
458   - return false
  457 + return true
459 458 }
460 459
461 460 public void hup( ) {
@@ -476,6 +475,7 @@ ${hostOrHostSSL}\tall\tall\t::/0\tpassword
476 475 int value = runProcess([
477 476 PG_BIN,
478 477 PG_STOP,
  478 + PG_MODE,
479 479 PG_DB_OPT + SubDirectory.DB.getChildPath(EUCA_DB_DIR)
480 480 ])
481 481 if( value != 0 ) {
2  clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/WalrusManager.java
@@ -218,7 +218,7 @@
218 218
219 219 public class WalrusManager {
220 220 private static Logger LOG = Logger.getLogger(WalrusManager.class);
221   -
  221 +
222 222 private StorageManager storageManager;
223 223 private WalrusImageManager walrusImageManager;
224 224 private static WalrusStatistics walrusStatistics = null;
35 clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/wssecurity/BrokerWsSecHandler.java
... ... @@ -1,13 +1,26 @@
1 1 package com.eucalyptus.ws.handlers.wssecurity;
2 2
  3 +import java.security.cert.X509Certificate;
  4 +import java.util.Collection;
  5 +import javax.naming.AuthenticationException;
  6 +import javax.xml.ws.WebServiceException;
  7 +import org.apache.axiom.soap.SOAPEnvelope;
3 8 import org.jboss.netty.channel.ChannelHandler;
4 9 import org.jboss.netty.channel.ChannelHandlerContext;
5 10 import org.jboss.netty.channel.MessageEvent;
6 11 import com.eucalyptus.auth.Accounts;
7 12 import com.eucalyptus.auth.principal.User;
  13 +import com.eucalyptus.component.Partition;
  14 +import com.eucalyptus.component.Partitions;
  15 +import com.eucalyptus.component.id.Eucalyptus;
8 16 import com.eucalyptus.context.Contexts;
  17 +import com.eucalyptus.crypto.util.WSSecurity;
9 18 import com.eucalyptus.http.MappingHttpMessage;
10 19 import com.eucalyptus.ws.handlers.MessageStackHandler;
  20 +import com.eucalyptus.ws.handlers.WsSecHandler;
  21 +import com.eucalyptus.ws.util.CredentialProxy;
  22 +import com.google.common.collect.Lists;
  23 +
11 24
12 25 public class BrokerWsSecHandler extends MessageStackHandler implements ChannelHandler {
13 26
@@ -15,9 +28,24 @@
15 28 public void incomingMessage( MessageEvent event ) throws Exception {
16 29 final Object o = event.getMessage( );
17 30 if ( o instanceof MappingHttpMessage ) {
18   - //FIXME: temporary work around for ws-security issues in the broker
19   - User admin = Accounts.lookupSystemAdmin( );
20   - Contexts.lookup( ( ( MappingHttpMessage ) o ).getCorrelationId( ) ).setUser( admin );
  31 + final MappingHttpMessage httpRequest = ( MappingHttpMessage ) o;
  32 + final SOAPEnvelope envelope = httpRequest.getSoapEnvelope( );
  33 +
  34 + X509Certificate cert = WSSecurity.verifyWSSec(envelope);
  35 + boolean found = false;
  36 + // accept any CC's cert for now, but ideally VB would
  37 + // want to only accept requests from the paired CC
  38 + for (Partition part : Partitions.list()) {
  39 + if (cert.equals(part.getCertificate())) {
  40 + found = true;
  41 + break;
  42 + }
  43 + }
  44 + if( !found ) {
  45 + throw new WebServiceException("Authentication failure: cert is not trusted");
  46 + }
  47 + User admin = Accounts.lookupSystemAdmin( );
  48 + Contexts.lookup( ( ( MappingHttpMessage ) o ).getCorrelationId( ) ).setUser( admin );
21 49 }
22 50 }
23 51
@@ -25,3 +53,4 @@ public void incomingMessage( MessageEvent event ) throws Exception {
25 53 public void outgoingMessage( ChannelHandlerContext ctx, MessageEvent event ) throws Exception {}
26 54
27 55 }
  56 +
1  clc/modules/www/test-gwt/src/com/eucalyptus/webui/client
1  clc/modules/www/test-gwt/src/com/eucalyptus/webui/client
... ... @@ -0,0 +1 @@
  1 +../../../../../src/main/java/com/eucalyptus/webui/client
1  clc/modules/www/test-gwt/src/com/eucalyptus/webui/public
1  clc/modules/www/test-gwt/src/com/eucalyptus/webui/public
... ... @@ -0,0 +1 @@
  1 +../../../../../src/main/java/com/eucalyptus/webui/public
1  clc/modules/www/test-gwt/src/com/eucalyptus/webui/shared
1  clc/modules/www/test-gwt/src/com/eucalyptus/webui/shared
... ... @@ -0,0 +1 @@
  1 +../../../../../src/main/java/com/eucalyptus/webui/shared/
332 project/.cproject
@@ -35,176 +35,176 @@
35 35 </folderInfo>
36 36 </configuration>
37 37 </storageModule>
38   - <storageModule moduleId="scannerConfiguration">
39   - <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
40   - <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
41   - <buildOutputProvider>
42   - <openAction enabled="true" filePath=""/>
43   - <parser enabled="true"/>
44   - </buildOutputProvider>
45   - <scannerInfoProvider id="specsFile">
46   - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
47   - <parser enabled="true"/>
48   - </scannerInfoProvider>
49   - </profile>
50   - <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
51   - <buildOutputProvider>
52   - <openAction enabled="true" filePath=""/>
53   - <parser enabled="true"/>
54   - </buildOutputProvider>
55   - <scannerInfoProvider id="makefileGenerator">
56   - <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
57   - <parser enabled="true"/>
58   - </scannerInfoProvider>
59   - </profile>
60   - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
61   - <buildOutputProvider>
62   - <openAction enabled="true" filePath=""/>
63   - <parser enabled="true"/>
64   - </buildOutputProvider>
65   - <scannerInfoProvider id="specsFile">
66   - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
67   - <parser enabled="true"/>
68   - </scannerInfoProvider>
69   - </profile>
70   - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
71   - <buildOutputProvider>
72   - <openAction enabled="true" filePath=""/>
73   - <parser enabled="true"/>
74   - </buildOutputProvider>
75   - <scannerInfoProvider id="specsFile">
76   - <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
77   - <parser enabled="true"/>
78   - </scannerInfoProvider>
79   - </profile>
80   - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
81   - <buildOutputProvider>
82   - <openAction enabled="true" filePath=""/>
83   - <parser enabled="true"/>
84   - </buildOutputProvider>
85   - <scannerInfoProvider id="specsFile">
86   - <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
87   - <parser enabled="true"/>
88   - </scannerInfoProvider>
89   - </profile>
90   - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
91   - <buildOutputProvider>
92   - <openAction enabled="true" filePath=""/>
93   - <parser enabled="true"/>
94   - </buildOutputProvider>
95   - <scannerInfoProvider id="specsFile">
96   - <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
97   - <parser enabled="true"/>
98   - </scannerInfoProvider>
99   - </profile>
100   - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
101   - <buildOutputProvider>
102   - <openAction enabled="true" filePath=""/>
103   - <parser enabled="true"/>
104   - </buildOutputProvider>
105   - <scannerInfoProvider id="specsFile">
106   - <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
107   - <parser enabled="true"/>
108   - </scannerInfoProvider>
109   - </profile>
110   - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
111   - <buildOutputProvider>
112   - <openAction enabled="true" filePath=""/>
113   - <parser enabled="true"/>
114   - </buildOutputProvider>
115   - <scannerInfoProvider id="specsFile">
116   - <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
117   - <parser enabled="true"/>
118   - </scannerInfoProvider>
119   - </profile>
120   - <scannerConfigBuildInfo instanceId="0.625509877">
121   - <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
122   - <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
123   - <buildOutputProvider>
124   - <openAction enabled="true" filePath=""/>
125   - <parser enabled="true"/>
126   - </buildOutputProvider>
127   - <scannerInfoProvider id="specsFile">
128   - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
129   - <parser enabled="true"/>
130   - </scannerInfoProvider>
131   - </profile>
132   - <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
133   - <buildOutputProvider>
134   - <openAction enabled="true" filePath=""/>
135   - <parser enabled="true"/>
136   - </buildOutputProvider>
137   - <scannerInfoProvider id="makefileGenerator">
138   - <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
139   - <parser enabled="true"/>
140   - </scannerInfoProvider>
141   - </profile>
142   - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
143   - <buildOutputProvider>
144   - <openAction enabled="true" filePath=""/>
145   - <parser enabled="true"/>
146   - </buildOutputProvider>
147   - <scannerInfoProvider id="specsFile">
148   - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
149   - <parser enabled="true"/>
150   - </scannerInfoProvider>
151   - </profile>
152   - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
153   - <buildOutputProvider>
154   - <openAction enabled="true" filePath=""/>
155   - <parser enabled="true"/>
156   - </buildOutputProvider>
157   - <scannerInfoProvider id="specsFile">
158   - <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
159   - <parser enabled="true"/>
160   - </scannerInfoProvider>
161   - </profile>
162   - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
163   - <buildOutputProvider>
164   - <openAction enabled="true" filePath=""/>
165   - <parser enabled="true"/>
166   - </buildOutputProvider>
167   - <scannerInfoProvider id="specsFile">
168   - <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
169   - <parser enabled="true"/>
170   - </scannerInfoProvider>
171   - </profile>
172   - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
173   - <buildOutputProvider>
174   - <openAction enabled="true" filePath=""/>
175   - <parser enabled="true"/>
176   - </buildOutputProvider>
177   - <scannerInfoProvider id="specsFile">
178   - <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
179   - <parser enabled="true"/>
180   - </scannerInfoProvider>
181   - </profile>
182   - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
183   - <buildOutputProvider>
184   - <openAction enabled="true" filePath=""/>
185   - <parser enabled="true"/>
186   - </buildOutputProvider>
187   - <scannerInfoProvider id="specsFile">
188   - <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
189   - <parser enabled="true"/>
190   - </scannerInfoProvider>
191   - </profile>
192   - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
193   - <buildOutputProvider>
194   - <openAction enabled="true" filePath=""/>
195   - <parser enabled="true"/>
196   - </buildOutputProvider>
197   - <scannerInfoProvider id="specsFile">
198   - <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
199   - <parser enabled="true"/>
200   - </scannerInfoProvider>
201   - </profile>
202   - </scannerConfigBuildInfo>
203   - </storageModule>
204 38 <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
205 39 </cconfiguration>
206 40 </storageModule>
207 41 <storageModule moduleId="cdtBuildSystem" version="4.0.0">
208 42 <project id="project.null.1594171582" name="project"/>
209 43 </storageModule>
  44 + <storageModule moduleId="scannerConfiguration">
  45 + <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
  46 + <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
  47 + <buildOutputProvider>
  48 + <openAction enabled="true" filePath=""/>
  49 + <parser enabled="true"/>
  50 + </buildOutputProvider>
  51 + <scannerInfoProvider id="specsFile">
  52 + <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
  53 + <parser enabled="true"/>
  54 + </scannerInfoProvider>
  55 + </profile>
  56 + <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
  57 + <buildOutputProvider>
  58 + <openAction enabled="true" filePath=""/>
  59 + <parser enabled="true"/>
  60 + </buildOutputProvider>
  61 + <scannerInfoProvider id="makefileGenerator">
  62 + <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
  63 + <parser enabled="true"/>
  64 + </scannerInfoProvider>
  65 + </profile>
  66 + <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
  67 + <buildOutputProvider>
  68 + <openAction enabled="true" filePath=""/>
  69 + <parser enabled="true"/>
  70 + </buildOutputProvider>
  71 + <scannerInfoProvider id="specsFile">
  72 + <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
  73 + <parser enabled="true"/>
  74 + </scannerInfoProvider>
  75 + </profile>
  76 + <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
  77 + <buildOutputProvider>
  78 + <openAction enabled="true" filePath=""/>
  79 + <parser enabled="true"/>
  80 + </buildOutputProvider>
  81 + <scannerInfoProvider id="specsFile">
  82 + <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
  83 + <parser enabled="true"/>
  84 + </scannerInfoProvider>
  85 + </profile>
  86 + <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
  87 + <buildOutputProvider>
  88 + <openAction enabled="true" filePath=""/>
  89 + <parser enabled="true"/>
  90 + </buildOutputProvider>
  91 + <scannerInfoProvider id="specsFile">
  92 + <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
  93 + <parser enabled="true"/>
  94 + </scannerInfoProvider>
  95 + </profile>
  96 + <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
  97 + <buildOutputProvider>
  98 + <openAction enabled="true" filePath=""/>
  99 + <parser enabled="true"/>
  100 + </buildOutputProvider>
  101 + <scannerInfoProvider id="specsFile">
  102 + <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
  103 + <parser enabled="true"/>
  104 + </scannerInfoProvider>
  105 + </profile>
  106 + <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
  107 + <buildOutputProvider>
  108 + <openAction enabled="true" filePath=""/>
  109 + <parser enabled="true"/>
  110 + </buildOutputProvider>
  111 + <scannerInfoProvider id="specsFile">
  112 + <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
  113 + <parser enabled="true"/>
  114 + </scannerInfoProvider>
  115 + </profile>
  116 + <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
  117 + <buildOutputProvider>
  118 + <openAction enabled="true" filePath=""/>
  119 + <parser enabled="true"/>
  120 + </buildOutputProvider>
  121 + <scannerInfoProvider id="specsFile">
  122 + <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
  123 + <parser enabled="true"/>
  124 + </scannerInfoProvider>
  125 + </profile>
  126 + <scannerConfigBuildInfo instanceId="0.625509877">
  127 + <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
  128 + <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
  129 + <buildOutputProvider>
  130 + <openAction enabled="true" filePath=""/>
  131 + <parser enabled="true"/>
  132 + </buildOutputProvider>
  133 + <scannerInfoProvider id="specsFile">
  134 + <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
  135 + <parser enabled="true"/>
  136 + </scannerInfoProvider>
  137 + </profile>
  138 + <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
  139 + <buildOutputProvider>
  140 + <openAction enabled="true" filePath=""/>
  141 + <parser enabled="true"/>
  142 + </buildOutputProvider>
  143 + <scannerInfoProvider id="makefileGenerator">
  144 + <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
  145 + <parser enabled="true"/>
  146 + </scannerInfoProvider>
  147 + </profile>
  148 + <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
  149 + <buildOutputProvider>
  150 + <openAction enabled="true" filePath=""/>
  151 + <parser enabled="true"/>
  152 + </buildOutputProvider>
  153 + <scannerInfoProvider id="specsFile">
  154 + <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
  155 + <parser enabled="true"/>
  156 + </scannerInfoProvider>
  157 + </profile>
  158 + <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
  159 + <buildOutputProvider>
  160 + <openAction enabled="true" filePath=""/>
  161 + <parser enabled="true"/>
  162 + </buildOutputProvider>
  163 + <scannerInfoProvider id="specsFile">
  164 + <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
  165 + <parser enabled="true"/>
  166 + </scannerInfoProvider>
  167 + </profile>
  168 + <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
  169 + <buildOutputProvider>
  170 + <openAction enabled="true" filePath=""/>
  171 + <parser enabled="true"/>
  172 + </buildOutputProvider>
  173 + <scannerInfoProvider id="specsFile">
  174 + <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
  175 + <parser enabled="true"/>
  176 + </scannerInfoProvider>
  177 + </profile>
  178 + <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
  179 + <buildOutputProvider>
  180 + <openAction enabled="true" filePath=""/>
  181 + <parser enabled="true"/>
  182 + </buildOutputProvider>
  183 + <scannerInfoProvider id="specsFile">
  184 + <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
  185 + <parser enabled="true"/>
  186 + </scannerInfoProvider>
  187 + </profile>
  188 + <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
  189 + <buildOutputProvider>
  190 + <openAction enabled="true" filePath=""/>
  191 + <parser enabled="true"/>
  192 + </buildOutputProvider>
  193 + <scannerInfoProvider id="specsFile">
  194 + <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
  195 + <parser enabled="true"/>
  196 + </scannerInfoProvider>
  197 + </profile>
  198 + <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
  199 + <buildOutputProvider>
  200 + <openAction enabled="true" filePath=""/>
  201 + <parser enabled="true"/>
  202 + </buildOutputProvider>
  203 + <scannerInfoProvider id="specsFile">
  204 + <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
  205 + <parser enabled="true"/>
  206 + </scannerInfoProvider>
  207 + </profile>
  208 + </scannerConfigBuildInfo>
  209 + </storageModule>
210 210 </cproject>

0 comments on commit c9d43c0

Please sign in to comment.
Something went wrong with that request. Please try again.