Skip to content
Browse files

Merge commit '1a187e64fa29d21e015fa4b034602a'

Baseline for testing HA

Conflicts:
	clc/modules/storage-san
  • Loading branch information...
2 parents b2a2e07 + 1a187e6 commit c9d43c064223ecf8478e7236d24420fc5b7775c0 @viglesiasce viglesiasce committed May 4, 2012
View
3 clc/.classpath
@@ -36,9 +36,6 @@
<classpathentry kind="src" output="modules/www/build" path="modules/www/src/main/java"/>
<classpathentry kind="src" path="modules/www/conf/reports"/>
<classpathentry kind="src" path="modules/www/conf/www"/>
- <classpathentry kind="con" path="GROOVY_SUPPORT"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry exported="true" kind="con" path="GROOVY_DSL_SUPPORT"/>
<classpathentry kind="lib" path="lib/activemq-core-5.4.1.jar"/>
<classpathentry kind="lib" path="lib/ant-1.7.jar"/>
<classpathentry kind="lib" path="lib/antlr-3.0.1.jar"/>
View
2 clc/Makefile
@@ -13,7 +13,7 @@ test: deps build-test
deps/cloud-lib.tar.gz:
@mkdir -p deps
- cd ${TOP}/clc/deps/ && wget -q http://mirror.eucalyptus/dependencies/${VERSION}/cloud-lib.tar.gz
+ cd ${TOP}/clc/deps/ && curl -q http://mirror.eucalyptus/dependencies/${VERSION}/cloud-lib.tar.gz > cloud-lib.tar.gz
lib/bcprov.jar:
@mkdir -p lib
View
25 clc/modules/cluster-manager/src/main/java/com/eucalyptus/blockstorage/SnapshotManager.java
@@ -64,6 +64,10 @@
package com.eucalyptus.blockstorage;
+import static com.eucalyptus.cloud.ImageMetadata.State.available;
+import static com.eucalyptus.cloud.ImageMetadata.State.pending;
+import static com.eucalyptus.images.Images.inState;
+import java.util.EnumSet;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.concurrent.Callable;
@@ -87,13 +91,15 @@
import com.eucalyptus.entities.EntityWrapper;
import com.eucalyptus.entities.TransactionException;
import com.eucalyptus.entities.Transactions;
+import com.eucalyptus.images.Images;
import com.eucalyptus.records.Logs;
import com.eucalyptus.system.Threads;
import com.eucalyptus.util.EucalyptusCloudException;
import com.eucalyptus.util.Exceptions;
import com.eucalyptus.util.RestrictedTypes;
import com.eucalyptus.util.async.AsyncRequests;
import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
import com.google.common.base.Supplier;
import com.google.common.collect.Iterables;
import edu.ucsb.eucalyptus.msgs.CreateSnapshotResponseType;
@@ -152,7 +158,7 @@ public Snapshot get( ) {
private static Snapshot startCreateSnapshot( final Volume vol, final Snapshot snap ) throws EucalyptusCloudException, DuplicateMetadataException {
return Snapshots.startCreateSnapshot( vol, snap );
}
-
+
public DeleteSnapshotResponseType delete( final DeleteSnapshotType request ) throws EucalyptusCloudException {
final DeleteSnapshotResponseType reply = ( DeleteSnapshotResponseType ) request.getReply( );
final Context ctx = Contexts.lookup( );
@@ -167,6 +173,8 @@ public boolean apply( Snapshot snap ) {
} else if ( !RestrictedTypes.filterPrivileged( ).apply( snap ) ) {
throw Exceptions.toUndeclared( "Not authorized to delete snapshot " + request.getSnapshotId( ) + " by " + ctx.getUser( ).getName( ),
new EucalyptusCloudException( ) );
+ } else if ( isReservedSnapshot( request.getSnapshotId( ) ) ) {
+ throw Exceptions.toUndeclared( "Snapshot " + request.getSnapshotId( ) + " is in use, deletion not permitted", new EucalyptusCloudException( ) );
} else {
Snapshots.fireDeleteEvent( snap );
final ServiceConfiguration sc = Topology.lookup( Storage.class, Partitions.lookupByName( snap.getPartition( ) ) );
@@ -255,4 +263,19 @@ public DescribeSnapshotAttributeResponseType describeSnapshotAttribute( Describe
DescribeSnapshotAttributeResponseType reply = request.getReply( );
return reply;
}
+
+ private boolean isReservedSnapshot( final String snapshotId ) {
+ return Predicates.or( ImageSnapshotReservation.INSTANCE ).apply( snapshotId );
+ }
+
+ private enum ImageSnapshotReservation implements Predicate<String> {
+ INSTANCE;
+
+ @Override
+ public boolean apply( final String identifier ) {
+ return Iterables.any(
+ Entities.query(Images.exampleBlockStorageWithSnapshotId(identifier), true),
+ inState(EnumSet.of( pending, available ) ) );
+ }
+ }
}
View
12 clc/modules/cluster-manager/src/main/java/com/eucalyptus/blockstorage/Snapshots.java
@@ -63,9 +63,12 @@
package com.eucalyptus.blockstorage;
+import static java.util.Collections.unmodifiableSet;
+import static java.util.EnumSet.of;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
+import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -93,7 +96,6 @@
import com.eucalyptus.event.Listeners;
import com.eucalyptus.records.Logs;
import com.eucalyptus.reporting.event.StorageEvent;
-import com.eucalyptus.reporting.event.StorageEvent.EventType;
import com.eucalyptus.system.Threads;
import com.eucalyptus.util.Callback;
import com.eucalyptus.util.EucalyptusCloudException;
@@ -112,8 +114,9 @@
import edu.ucsb.eucalyptus.msgs.StorageSnapshot;
public class Snapshots {
- private static Logger LOG = Logger.getLogger( Snapshots.class );
- private static final long SNAPSHOT_STATE_TIMEOUT = 2 * 60 * 60 * 1000L;
+ private static Logger LOG = Logger.getLogger( Snapshots.class );
+ private static final long SNAPSHOT_STATE_TIMEOUT = 2 * 60 * 60 * 1000L;
+ private static final Set<State> SNAPSHOT_TIMEOUT_STATES = unmodifiableSet(of(State.NIHIL, State.GENERATING));
public static class SnapshotUpdateEvent implements EventListener<ClockTick>, Callable<Boolean> {
private static final AtomicBoolean ready = new AtomicBoolean( true );
@@ -196,7 +199,8 @@ public Snapshot apply( final String input ) {
buf.append( " storage-snapshot " )
.append( storageSnapshot.getStatus( ) ).append( "=>" ).append( entity.getState( ) ).append( " " )
.append( storageSnapshot.getProgress( ) ).append( " " );
- } else if ( State.GENERATING.equals( entity.getState( ) ) && entity.lastUpdateMillis( ) > SNAPSHOT_STATE_TIMEOUT ) {
+ } else if ( SNAPSHOT_TIMEOUT_STATES.contains( entity.getState( ) ) &&
+ entity.lastUpdateMillis( ) > SNAPSHOT_STATE_TIMEOUT ) {
Entities.delete( entity );
} else {
if ( State.EXTANT.equals( entity.getState( ) ) ) {
View
21 clc/modules/cluster-manager/src/main/java/com/eucalyptus/images/Images.java
@@ -4,8 +4,8 @@
import static org.hamcrest.Matchers.notNullValue;
import java.util.Collection;
import java.util.List;
+import java.util.Set;
import java.util.concurrent.ExecutionException;
-import java.util.zip.Adler32;
import org.apache.log4j.Logger;
import org.hibernate.criterion.Example;
import org.hibernate.exception.ConstraintViolationException;
@@ -285,7 +285,16 @@ public DeviceMapping apply( BlockDeviceMappingItemType input ) {
}
};
}
-
+
+ public static <T extends ImageInfo> Predicate<T> inState( final Set<ImageMetadata.State> states ) {
+ return new Predicate<T>() {
+ @Override
+ public boolean apply( final T imageInfo ) {
+ return states.contains( imageInfo.getState() );
+ }
+ };
+ }
+
public static Function<ImageInfo, ImageDetails> TO_IMAGE_DETAILS = new Function<ImageInfo, ImageDetails>( ) {
@Override
@@ -363,7 +372,13 @@ public static MachineImageInfo exampleMachineWithImageId( final String imageId )
public static BlockStorageImageInfo exampleBlockStorageWithImageId( final String imageId ) {
return new BlockStorageImageInfo( imageId );
}
-
+
+ public static BlockStorageImageInfo exampleBlockStorageWithSnapshotId( final String snapshotId ) {
+ final BlockStorageImageInfo info = new BlockStorageImageInfo();
+ info.setSnapshotId( snapshotId );
+ return info;
+ }
+
public static KernelImageInfo exampleKernelWithImageId( final String imageId ) {
return new KernelImageInfo( imageId );
}
View
16 clc/modules/cluster-manager/src/main/java/com/eucalyptus/vm/VmInstance.java
@@ -156,11 +156,11 @@
@Cache( usage = CacheConcurrencyStrategy.TRANSACTIONAL )
public class VmInstance extends UserMetadata<VmState> implements VmInstanceMetadata {
private static final long serialVersionUID = 1L;
-
- @Transient
- private static Logger LOG = Logger.getLogger( VmInstance.class );
- @Transient
- public static String DEFAULT_TYPE = "m1.small";
+
+ private static final Logger LOG = Logger.getLogger( VmInstance.class );
+ public static final String DEFAULT_TYPE = "m1.small";
+ public static final String ROOT_DEVICE_TYPE_EBS = "ebs";
+
@Embedded
private VmNetworkConfig networkConfig;
@Embedded
@@ -1677,7 +1677,11 @@ public RunningInstancesItemType apply( final VmInstance v ) {
runningInstance.setPlacement( input.getPlacement( ).getPartitionName( ) );
runningInstance.setLaunchTime( input.getLaunchRecord( ).getLaunchTime( ) );
-
+
+ if ( input.isBlockStorage( ) ) {
+ runningInstance.setRootDeviceType( ROOT_DEVICE_TYPE_EBS );
+ }
+
if ( input.getBootRecord( ).hasPersistentVolumes( ) ) {
for ( final VmVolumeAttachment attachedVol : input.getBootRecord( ).getPersistentVolumes( ) ) {
runningInstance.getBlockDevices( ).add( new InstanceBlockDeviceMapping( attachedVol.getDevice( ), attachedVol.getVolumeId( ),
View
21 clc/modules/msgs/src/main/java/com/eucalyptus/crypto/util/WSSecurity.java
@@ -101,7 +101,11 @@
import org.w3c.dom.Text;
import com.eucalyptus.auth.login.SecurityContext;
import com.eucalyptus.binding.HoldMe;
+import com.eucalyptus.component.auth.SystemCredentials;
+import com.eucalyptus.component.id.Eucalyptus;
+import com.eucalyptus.records.Logs;
import com.eucalyptus.ws.StackConfiguration;
+import com.eucalyptus.ws.WebServicesException;
public class WSSecurity {
private static Logger LOG = Logger.getLogger( WSSecurity.class );
@@ -129,6 +133,23 @@ public static CertificateFactory getCertificateFactory( ) {
private static boolean useBc = false;
+ public static X509Certificate verifyWSSec( final SOAPEnvelope envelope ) throws Exception {
+
+ final Element secNode = WSSecurity.getSecurityElement( envelope );
+ final XMLSignature sig = WSSecurity.getXMLSignature( secNode );
+ String sigValue = new String( sig.getSignatureValue( ) );
+ SecurityContext.enqueueSignature( sigValue );
+ X509Certificate cert = null;
+ try {
+ cert = WSSecurity.verifySignature( secNode, sig );
+ Logs.exhaust( ).debug( cert );
+ } catch ( Exception ex ) {
+ Logs.exhaust( ).error( ex , ex );
+ throw new WebServicesException( "Authentication failed: " + ex.getMessage( ), ex );
+ }
+
+ return cert;
+ }
public static X509Certificate verifySignature( final Element securityNode, final XMLSignature sig )
throws WSSecurityException, XMLSignatureException, XMLSecurityException {
View
18 clc/modules/msgs/src/main/java/com/eucalyptus/ws/handlers/InternalWsSecHandler.java
@@ -114,20 +114,12 @@ public void incomingMessage( MessageEvent event ) throws Exception {
if ( o instanceof MappingHttpRequest ) {
final MappingHttpMessage httpRequest = ( MappingHttpMessage ) o;
final SOAPEnvelope envelope = httpRequest.getSoapEnvelope( );
- final Element secNode = WSSecurity.getSecurityElement( envelope );
- final XMLSignature sig = WSSecurity.getXMLSignature( secNode );
- String sigValue = new String( sig.getSignatureValue( ) );
- SecurityContext.enqueueSignature( sigValue );
- try {
- X509Certificate cert = WSSecurity.verifySignature( secNode, sig );
- Logs.exhaust( ).debug( cert );
- if ( cert == null || !cert.equals( SystemCredentials.lookup( Eucalyptus.class ).getCertificate( ) ) ) {
- throw new WebServicesException( "Authentication failed: The following certificate is not trusted:\n " + cert );
- }
- } catch ( Exception ex ) {
- Logs.exhaust( ).error( ex , ex );
- throw new WebServicesException( "Authentication failed: " + ex.getMessage( ), ex );
+
+ X509Certificate cert = WSSecurity.verifyWSSec( envelope );
+ if ( cert == null || !cert.equals( SystemCredentials.lookup( Eucalyptus.class ).getCertificate( ) ) ) {
+ throw new WebServicesException( "Authentication failed: The following certificate is not trusted:\n " + cert );
}
+
Contexts.lookup( ( ( MappingHttpMessage ) o ).getCorrelationId( ) ).setUser( Principals.systemUser() );
}
}
View
30 clc/modules/postgresql/conf/scripts/setup_db.groovy
@@ -103,6 +103,8 @@ public class PostgresqlBootstrapper extends Bootstrapper.Simple implements Datab
private static String PG_BIN = PG_HOME + "bin/pg_ctl"
private static String PG_START = "start"
private static String PG_STOP = "stop"
+ private static String PG_STATUS = "status"
+ private static String PG_MODE = "-mf"
private static String PG_PORT_OPTS2 = "-o -h0.0.0.0/0 -p8777 -i"
private static String PG_DB_OPT = "-D"
private static String PG_INITDB = PG_HOME + "bin/initdb"
@@ -250,7 +252,7 @@ ${hostOrHostSSL}\tall\tall\t::/0\tpassword
private void initPGCONF() throws Exception {
try {
final Map<String,String> requiredProperties = [
- max_connections: '1000',
+ max_connections: '8192',
unix_socket_directory: "'" + SubDirectory.DB.getChildPath( EUCA_DB_DIR ) + "'",
ssl: PG_USE_SSL ? 'on' : 'off',
ssl_ciphers: '\'AES128-SHA:AES256-SHA\''
@@ -364,6 +366,7 @@ ${hostOrHostSSL}\tall\tall\t::/0\tpassword
int value = runProcess([
PG_BIN,
PG_STOP,
+ PG_MODE,
PG_DB_OPT + SubDirectory.DB.getChildPath(EUCA_DB_DIR)
])
if (value != 0) {
@@ -400,7 +403,6 @@ ${hostOrHostSSL}\tall\tall\t::/0\tpassword
@Override
public boolean load( ) throws Exception {
- LOG.debug("The load method is being executed")
if ( isRunning( ) ) {
return true
}
@@ -442,20 +444,17 @@ ${hostOrHostSSL}\tall\tall\t::/0\tpassword
}
public boolean isRunning() {
- for ( int x = 0; x < PG_MAX_RETRY; x++ ) {
- try {
- File pidFile = SubDirectory.DB.getChildFile( EUCA_DB_DIR, "postmaster.pid" )
- if ( pidFile.size() > 0 ) {
- LOG.debug("Found the postmaster.pid file")
- return true
- }
- } catch (Exception e) {
- LOG.debug("The postmaster.pid file was not found")
- sleep(1000)
- }
- }
+ int value = runProcess([
+ PG_BIN,
+ PG_STATUS,
+ PG_DB_OPT + SubDirectory.DB.getChildPath(EUCA_DB_DIR)
+ ])
+
+ if (value != 0) {
+ return false
+ }
- return false
+ return true
}
public void hup( ) {
@@ -476,6 +475,7 @@ ${hostOrHostSSL}\tall\tall\t::/0\tpassword
int value = runProcess([
PG_BIN,
PG_STOP,
+ PG_MODE,
PG_DB_OPT + SubDirectory.DB.getChildPath(EUCA_DB_DIR)
])
if( value != 0 ) {
View
2 clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/WalrusManager.java
@@ -218,7 +218,7 @@
public class WalrusManager {
private static Logger LOG = Logger.getLogger(WalrusManager.class);
-
+
private StorageManager storageManager;
private WalrusImageManager walrusImageManager;
private static WalrusStatistics walrusStatistics = null;
View
35 ...dules/wsstack/src/main/java/com/eucalyptus/ws/handlers/wssecurity/BrokerWsSecHandler.java
@@ -1,27 +1,56 @@
package com.eucalyptus.ws.handlers.wssecurity;
+import java.security.cert.X509Certificate;
+import java.util.Collection;
+import javax.naming.AuthenticationException;
+import javax.xml.ws.WebServiceException;
+import org.apache.axiom.soap.SOAPEnvelope;
import org.jboss.netty.channel.ChannelHandler;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.MessageEvent;
import com.eucalyptus.auth.Accounts;
import com.eucalyptus.auth.principal.User;
+import com.eucalyptus.component.Partition;
+import com.eucalyptus.component.Partitions;
+import com.eucalyptus.component.id.Eucalyptus;
import com.eucalyptus.context.Contexts;
+import com.eucalyptus.crypto.util.WSSecurity;
import com.eucalyptus.http.MappingHttpMessage;
import com.eucalyptus.ws.handlers.MessageStackHandler;
+import com.eucalyptus.ws.handlers.WsSecHandler;
+import com.eucalyptus.ws.util.CredentialProxy;
+import com.google.common.collect.Lists;
+
public class BrokerWsSecHandler extends MessageStackHandler implements ChannelHandler {
@Override
public void incomingMessage( MessageEvent event ) throws Exception {
final Object o = event.getMessage( );
if ( o instanceof MappingHttpMessage ) {
- //FIXME: temporary work around for ws-security issues in the broker
- User admin = Accounts.lookupSystemAdmin( );
- Contexts.lookup( ( ( MappingHttpMessage ) o ).getCorrelationId( ) ).setUser( admin );
+ final MappingHttpMessage httpRequest = ( MappingHttpMessage ) o;
+ final SOAPEnvelope envelope = httpRequest.getSoapEnvelope( );
+
+ X509Certificate cert = WSSecurity.verifyWSSec(envelope);
+ boolean found = false;
+ // accept any CC's cert for now, but ideally VB would
+ // want to only accept requests from the paired CC
+ for (Partition part : Partitions.list()) {
+ if (cert.equals(part.getCertificate())) {
+ found = true;
+ break;
+ }
+ }
+ if( !found ) {
+ throw new WebServiceException("Authentication failure: cert is not trusted");
+ }
+ User admin = Accounts.lookupSystemAdmin( );
+ Contexts.lookup( ( ( MappingHttpMessage ) o ).getCorrelationId( ) ).setUser( admin );
}
}
@Override
public void outgoingMessage( ChannelHandlerContext ctx, MessageEvent event ) throws Exception {}
}
+
View
1 clc/modules/www/test-gwt/src/com/eucalyptus/webui/client
View
1 clc/modules/www/test-gwt/src/com/eucalyptus/webui/client
@@ -0,0 +1 @@
+../../../../../src/main/java/com/eucalyptus/webui/client
View
1 clc/modules/www/test-gwt/src/com/eucalyptus/webui/public
View
1 clc/modules/www/test-gwt/src/com/eucalyptus/webui/public
@@ -0,0 +1 @@
+../../../../../src/main/java/com/eucalyptus/webui/public
View
1 clc/modules/www/test-gwt/src/com/eucalyptus/webui/shared
View
1 clc/modules/www/test-gwt/src/com/eucalyptus/webui/shared
@@ -0,0 +1 @@
+../../../../../src/main/java/com/eucalyptus/webui/shared/
View
332 project/.cproject
@@ -35,176 +35,176 @@
</folderInfo>
</configuration>
</storageModule>
- <storageModule moduleId="scannerConfiguration">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="makefileGenerator">
- <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <scannerConfigBuildInfo instanceId="0.625509877">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="makefileGenerator">
- <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- </scannerConfigBuildInfo>
- </storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="project.null.1594171582" name="project"/>
</storageModule>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <scannerConfigBuildInfo instanceId="0.625509877">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="makefileGenerator">
+ <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+ <buildOutputProvider>
+ <openAction enabled="true" filePath=""/>
+ <parser enabled="true"/>
+ </buildOutputProvider>
+ <scannerInfoProvider id="specsFile">
+ <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
+ <parser enabled="true"/>
+ </scannerInfoProvider>
+ </profile>
+ </scannerConfigBuildInfo>
+ </storageModule>
</cproject>

0 comments on commit c9d43c0

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