@@ -173,9 +173,24 @@ boolean ensureLogger(){
173173 } catch (FileNotFoundException e ) {
174174
175175 }
176- fileHandler .setAppend (false );
176+
177+ //this means we can have two appenders to the same file :)
178+ //one for context and one for run :)
179+
180+ // org.jboss.logmanager.handlers.FileHandler rootFile = new org.jboss.logmanager.handlers.FileHandler();
181+ // rootFile.setAppend(true);
182+ // rootFile.setAutoFlush(true);
183+ // rootFile.setFormatter(new PatternFormatter("%d{HH:mm:ss,SSS} %m%n"));
184+ // rootFile.setEnabled(true);
185+ //
186+ // ConsoleHandler consoleHandler = new ConsoleHandler(rootFile.getFormatter());
187+ //
188+ // org.jboss.logmanager.Logger.getLogger("io.hyperfoil.tools.qdup").addHandler(rootFile);
189+ // org.jboss.logmanager.Logger.getLogger("io.hyperfoil.tools.qdup").addHandler(consoleHandler);
190+
191+ fileHandler .setAppend (true );//changed from false to avoid overriding
177192 fileHandler .setAutoFlush (true );//was false
178- PatternFormatter formatter = new PatternFormatter ("%d{HH:mm:ss,SSS} %X{role} %X{host} %X{script} %X{scriptId} %c %-5p %m%n" );
193+ PatternFormatter formatter = new PatternFormatter ("%d{HH:mm:ss,SSS} [ %X{role}: %X{script}: %X{scriptId}@ %X{host}] %c %-5p %m%n" );
179194 fileHandler .setFormatter (formatter );
180195 internalRunLogger = org .jboss .logmanager .Logger .getLogger (getLoggerName ());
181196
@@ -184,7 +199,6 @@ boolean ensureLogger(){
184199 internalStateLogger = org .jboss .logmanager .Logger .getLogger (internalRunLogger .getName () + ".state" );
185200 //internalStateLogger.setParent(org.jboss.logmanager.Logger.getGlobal());//was commented out //disallowed
186201
187-
188202 internalRunLogger .addHandler (fileHandler );
189203 fileHandler .setEnabled (true );
190204 runLogger = Logger .getLogger (internalRunLogger .getName ());
@@ -765,7 +779,7 @@ private boolean queueSetupScripts(){
765779 scriptState ,
766780 this ,
767781 profiles .get (name ),
768- setup ,
782+ setupCopy ,
769783 (Boolean )config .getGlobals ().getSetting ("check-exit-code" ,false )
770784 );
771785 scriptContext .setRoleName (role .getName ());
@@ -813,21 +827,23 @@ private boolean queueRunScripts(){
813827 if (!role .getRun ().isEmpty ()) {
814828 for (ScriptCmd script : role .getRun ()) {
815829 for (Host host : role .getHosts (config )) {
830+ ScriptCmd scriptCopy = (ScriptCmd ) script .deepCopy ();
816831 State hostState = config .getState ().getChild (host .getHostName (), State .HOST_PREFIX );
817- State scriptState = hostState .getChild (script .getName ()).getChild ("id=" + script .getUid ());
818- String profileName = script .getName () + "-" + script .getUid () + "@" + host ;
832+ State scriptState = hostState .getChild (scriptCopy .getName ()).getChild ("id=" + scriptCopy .getUid ());
833+ String profileName = scriptCopy .getName () + "-" + scriptCopy .getUid () + "@" + host ;
819834 SystemTimer timer = profiles .get (profileName );
820835 profiles .getProperties (profileName ).set ("host" ,host .getShortHostName ());
821836 profiles .getProperties (profileName ).set ("role" ,role .getName ());
822- profiles .getProperties (profileName ).set ("script" ,script .getName ());
823- profiles .getProperties (profileName ).set ("scriptId" ,script .getUid ());
837+ profiles .getProperties (profileName ).set ("script" ,scriptCopy .getName ());
838+ profiles .getProperties (profileName ).set ("scriptId" ,scriptCopy .getUid ());
824839 Env env = role .hasEnvironment (host ) ? role .getEnv (host ) : new Env ();
825840 if (!role .getName ().equals (RunConfigBuilder .ALL_ROLE ) && allRole !=null && allRole .hasEnvironment (host )){
826841 env .merge (allRole .getEnv (host ));
827842 }
828843 String setupCommand = env .getDiff ().getCommand ();
829844 connectSessions .add (() -> {
830- String name = script .getName ()+":" +script .getUid ()+"@" +host .getShortHostName ()+"." +Cmd .populateStateVariables (config .getGlobals ().getSettings ().getString (RunConfig .TRACE_NAME ),null ,getConfig ().getState (),getCoordinator (),Json .fromMap (getTimestamps ()));
845+
846+ String name = scriptCopy .getName ()+":" +scriptCopy .getUid ()+"@" +host .getShortHostName ()+"." +Cmd .populateStateVariables (config .getGlobals ().getSettings ().getString (RunConfig .TRACE_NAME ),null ,getConfig ().getState (),getCoordinator (),Json .fromMap (getTimestamps ()));
831847 timer .start ("connect:" + host .toString ());
832848 AbstractShell shell = AbstractShell .getShell (
833849 host ,
@@ -846,7 +862,7 @@ private boolean queueRunScripts(){
846862 scriptState ,
847863 this ,
848864 timer ,
849- script ,
865+ scriptCopy ,
850866 (Boolean )config .getGlobals ().getSetting ("check-exit-code" ,false )
851867 );
852868 scriptContext .setRoleName (role .getName ());
@@ -937,22 +953,22 @@ private boolean queueCleanupScripts(){
937953 );
938954 shell .setName (name );
939955 if ( shell .isReady () ) {
940- Cmd cleanupCopy = cleanup .deepCopy ();
956+ Script cleanupCopy = ( Script ) cleanup .deepCopy ();
941957 State hostState = config .getState ().getChild (host .getHostName (), State .HOST_PREFIX );
942- State scriptState = hostState .getChild (cleanup .getName ()).getChild ("id=" + cleanupCopy .getUid ());
958+ State scriptState = hostState .getChild (cleanupCopy .getName ()).getChild ("id=" + cleanupCopy .getUid ());
943959
944960 String profileName = roleName + "-cleanup@" + host .getShortHostName ();
945961 profiles .getProperties (profileName ).set ("role" ,role .getName ());
946962 profiles .getProperties (profileName ).set ("host" ,host .getShortHostName ());
947- profiles .getProperties (profileName ).set ("script" ,cleanup .getName ());
963+ profiles .getProperties (profileName ).set ("script" ,cleanupCopy .getName ());
948964 profiles .getProperties (profileName ).set ("scriptId" ,cleanupCopy .getUid ());
949965 //session.setDelay(SuffixStream.NO_DELAY);
950966 ScriptContext scriptContext = new ScriptContext (
951967 shell ,
952968 scriptState ,
953969 this ,
954970 profiles .get (profileName ),
955- cleanup ,
971+ cleanupCopy ,
956972 (Boolean )config .getGlobals ().getSetting ("check-exit-code" ,false )
957973 );
958974 scriptContext .setRoleName (role .getName ());
0 commit comments