/** * Determines whether a component is associated with the "target" installer or not. * @param component a component (not null) * @return true if it is associated with the "target" installer, false otherwise */ public static boolean isTarget( Component component ) { return Constants.TARGET_INSTALLER.equalsIgnoreCase( component.getInstallerName()); }
/** * Finds the installer name for a given component. * @param component a component * @return the installer name (potentially retrieved from an extended component) */ public static String findComponentInstaller( Component component ) { String installer = null; for( Component c : findAllExtendedComponents( component )) { installer = c.getInstallerName(); if( installer != null ) break; } return installer; }
/** * Validates the recipes of a component. * @param applicationFilesDirectory the application's directory * @param component the component * @return a non-null list of errors */ public static List<ModelError> validateComponentRecipes( File applicationFilesDirectory, Component component ) { List<ModelError> result; if( "puppet".equalsIgnoreCase( component.getInstallerName())) result = validatePuppetComponent( applicationFilesDirectory, component ); else if( "script".equalsIgnoreCase( component.getInstallerName())) result = validateScriptComponent( applicationFilesDirectory, component ); else result = Collections.emptyList(); return result; }
/** * Verifies a new VM model can be created according to a given context. * @param executionContext * @param component * @throws CommandException */ public static void verify( CommandExecutionContext executionContext, Component component ) throws CommandException { if( executionContext != null && Constants.TARGET_INSTALLER.equalsIgnoreCase( component.getInstallerName()) && executionContext.getMaxVm() > 0 && executionContext.getMaxVm() <= executionContext.getGlobalVmNumber().get() && executionContext.isStrictMaxVm()) throw new CommandException( "The maximum number of VM created by the autonomic has been reached." ); }
if( ! Utils.isEmptyOrWhitespaces( component.getInstallerName())) { p = new BlockProperty( file, ParsingConstants.PROPERTY_COMPONENT_INSTALLER, component.getInstallerName()); blockComponent.getInnerBlocks().add( p );
@Test public void test_simpleInstaller() throws Exception { File f = TestUtils.findTestFile( "/configurations/valid/simple-installer.graph" ); FromGraphDefinition fromDef = new FromGraphDefinition( f.getParentFile()); Graphs graphs = fromDef.buildGraphs( f ); Assert.assertEquals( 0, fromDef.getErrors().size()); Assert.assertEquals( "my-own-installer", graphs.getRootComponents().iterator().next().getInstallerName()); }
@Test public void testLoadApplication_Mongo() throws Exception { File directory = TestUtils.findTestFile( "/applications/mongo" ); ApplicationLoadResult result = RuntimeModelIo.loadApplication( directory ); Assert.assertNotNull( result ); Assert.assertNotNull( result.applicationTemplate ); Assert.assertEquals( 0, result.applicationTemplate.externalExports.size()); Assert.assertEquals( 2, result.loadErrors.size()); for( RoboconfError error : result.loadErrors ) Assert.assertEquals( ErrorCode.PROJ_NO_RESOURCE_DIRECTORY, error.getErrorCode()); Assert.assertEquals( "Mongo", result.applicationTemplate.getName()); Assert.assertNotNull( result.applicationTemplate.getGraphs()); Graphs g = result.applicationTemplate.getGraphs(); Assert.assertEquals( 1, g.getRootComponents().size()); Component vmComponent = g.getRootComponents().iterator().next(); Assert.assertEquals( "VM", vmComponent.getName()); Assert.assertEquals( "target", vmComponent.getInstallerName()); Assert.assertEquals( 0, vmComponent.getFacets().size()); Collection<Component> children = ComponentHelpers.findAllChildren( vmComponent ); Assert.assertEquals( 1, children.size()); Component childComponent = children.iterator().next(); Assert.assertEquals( "puppet", childComponent.getInstallerName()); Assert.assertEquals( 0, childComponent.getChildren().size()); Assert.assertEquals( 2, childComponent.exportedVariables.size()); Assert.assertNull( childComponent.exportedVariables.get( "Mongo.ip" )); Assert.assertEquals( "27017", ComponentHelpers.findAllExportedVariables( childComponent ).get( "Mongo.port" )); Assert.assertEquals( 2, childComponent.importedVariables.size()); Assert.assertTrue( childComponent.importedVariables.containsKey( "Mongo.ip" )); Assert.assertTrue( childComponent.importedVariables.containsKey( "Mongo.port" )); }
Assert.assertEquals( "target", vmComponent.getInstallerName()); Assert.assertEquals( 0, vmComponent.getFacets().size()); Assert.assertEquals( "logger", childComponent.getInstallerName()); Assert.assertEquals( 0, childComponent.getChildren().size());
Assert.assertNotNull( readComponent.getName(), originalComponent ); Assert.assertEquals( readComponent.getExtendedComponent(), originalComponent.getExtendedComponent()); Assert.assertEquals( readComponent.getInstallerName(), originalComponent.getInstallerName()); Assert.assertEquals( readComponent.exportedVariables.size(), originalComponent.exportedVariables.size()); Assert.assertEquals( readComponent.importedVariables.size(), originalComponent.importedVariables.size());
Assert.assertEquals( "puppet", childComponent.getInstallerName()); Assert.assertEquals( 0, children.size()); Assert.assertEquals( "puppet", childComponent.getInstallerName()); Assert.assertEquals( 0, children.size()); Assert.assertEquals( "puppet", childComponent.getInstallerName()); Assert.assertEquals( 0, children.size()); Assert.assertEquals( 0, exportedVariables.size());
@Test public void testChain() { Component c = new Component( "c" ); Component comp = new Component().name( "ins" ).installerName( "my-installer" ); comp.extendComponent( c ); Assert.assertEquals( "ins", comp.getName()); Assert.assertEquals( "my-installer", comp.getInstallerName()); Assert.assertEquals( c, comp.getExtendedComponent()); }
Assert.assertEquals( "target", vmComponent.getInstallerName()); Assert.assertEquals( 3, vmComponent.getChildren().size()); Assert.assertEquals( "puppet", childComponent.getInstallerName()); Assert.assertEquals( 0, children.size()); Assert.assertEquals( "puppet", childComponent.getInstallerName()); Assert.assertEquals( 0, children.size()); Assert.assertEquals( "puppet", childComponent.getInstallerName()); Assert.assertEquals( 0, children.size()); Assert.assertEquals( 0, exportedVariables.size());