Skip to content

Commit 997e28a

Browse files
committed
move command copy out of constructor responsabilities
1 parent e4be040 commit 997e28a

File tree

3 files changed

+31
-16
lines changed

3 files changed

+31
-16
lines changed

qDup/src/main/java/io/hyperfoil/tools/qdup/QDup.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import io.hyperfoil.tools.qdup.config.RunConfig;
88
import io.hyperfoil.tools.qdup.config.yaml.Parser;
99
import io.hyperfoil.tools.qdup.config.yaml.YamlFile;
10-
import io.hyperfoil.tools.yaup.AsciiArt;
1110
import io.hyperfoil.tools.yaup.StringUtil;
1211
import org.jboss.logging.Logger;
1312
import sun.misc.Signal;

qDup/src/main/java/io/hyperfoil/tools/qdup/Run.java

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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());

qDup/src/main/java/io/hyperfoil/tools/qdup/cmd/ScriptContext.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public String getContextId(){
135135
}
136136

137137
public ScriptContext(AbstractShell session, State state, Run run, SystemTimer timer, Cmd rootCmd, boolean checkExitCode){
138-
this(session,state,run,timer,rootCmd.deepCopy(),null,checkExitCode);
138+
this(session,state,run,timer,rootCmd,null,checkExitCode);
139139
}
140140
private ScriptContext(AbstractShell shell, State state, Run run, SystemTimer timer, Cmd rootCmd,Cmd setCurrentCmd, boolean checkExitCode){
141141
this.shell = shell;

0 commit comments

Comments
 (0)