public String [ ] plan ( String aam , String uniqueOfferingsTosca ) throws ParsingException , IOException { log . info ( "Planning for aam: \n" + aam ) ; //Get offerings log . info ( "Getting Offeing Step: Start" ) ; Map < String , Pair < NodeTemplate , String > > offerings = parseOfferings ( uniqueOfferingsTosca ) ; // getOfferingsFromDiscoverer(); log . info ( "Getting Offeing Step: Complete" ) ; log . info ( "\nNot deployable offering have been filtered!" ) ; log . info ( "\nDeployable offerings have location: " + deployableProviders ) ; log . info ( "Got " + offerings . size ( ) + " offerings from discoverer:" ) ; //Matchmake log . info ( "Matchmaking Step: Start" ) ; Matchmaker mm = new Matchmaker ( ) ; Map < String , HashSet < String > > matchingOfferings = mm . match ( ToscaSerializer . fromTOSCA ( aam ) , offerings ) ; log . info ( "Matchmaking Step: Complete" ) ; //Optimize String mmOutput = "" ; try { mmOutput = generateMMOutput2 ( matchingOfferings , offerings ) ; } catch ( JsonProcessingException e ) { log . error ( "Error preparing matchmaker output for optimization" , e ) ; } for ( String s : matchingOfferings . keySet ( ) ) { log . info ( "Module " + s + "has matching offerings: " + matchingOfferings . get ( s ) ) ; } log . info ( "Optimization Step: Start" ) ; log . info ( "Calling optimizer with suitable offerings: \n" + mmOutput ) ; Optimizer optimizer = new Optimizer ( ) ; String [ ] outputPlans = optimizer . optimize ( aam , mmOutput ) ; log . info ( "Optimzer result: " + Arrays . asList ( outputPlans ) ) ; log . info ( "Optimization Step: Complete" ) ; return outputPlans ; }
Makes plans starting from the AAM and a String containing the TOSCA of the offerings available to generate the plans