Skip to content
Snippets Groups Projects
Commit 48bbc12b authored by René Schöne's avatar René Schöne
Browse files

fixing bugs

- make StartStrategy non-optional
- copy-paste-bugs in parser
- check for hasReportStrategy when printing details
parent 77b91075
No related branches found
No related tags found
No related merge requests found
......@@ -192,7 +192,7 @@ aspect Printing {
}
return "<Name: " + getName() +
", StartStrategy: " + getStartStrategy().details() +
", ReportStrategy: " + getReportStrategy().details() +
(hasReportStrategy() ? ", ReportStrategy: " + getReportStrategy().details() : "") +
", Status: " + getStatus() +
", NextCommand: " + getNextCommand() +
", Deps: " + sj.toString() +
......
......@@ -44,21 +44,21 @@ Component component =
;
Component component_body =
COMMA START USING start_strategy.s component_body.c {: c.setStartStrategy(s); return c; :}
COMMA START USING start_strategy.s component_body.c {: c.setStartStrategy(s); return c; :}
| COMMA REPORT USING report_strategy.r component_body.c {: c.setReportStrategy(r); return c; :}
| COMMA STATUS TEXT.s AFTER INTEGER.i SEC component_body.c {: c.setAutoSetStatus(new AutoSetStatus(s, Integer.parseInt(i))); return c; :}
| COMMA START AFTER REQS component_body.c {: c.setStartAsUp(true); return c; :}
| COMMA START AFTER REQS component_body.c {: c.setStartAsUp(true); return c; :}
| {: Component c = new Component(); c.setStartStrategy(new ManualStartStrategy()); return c; :}
;
StartStrategy start_strategy =
DOCKER_COMPOSE TEXT.dc component_body.c {: return new DockerComposeStartStrategy().setName(dc); :}
DOCKER_COMPOSE TEXT.dc {: return new DockerComposeStartStrategy().setName(dc); :}
| SCRIPT TEXT.cmd {: return new ScriptStartStrategy().setCommand(cmd); :}
| SCRIPT TEXT.cmd IN TEXT.cwd {: return new ScriptStartStrategy().setCommand(cmd).setCwd(cwd); :}
;
ReportStrategy report_strategy =
MQTT TEXT.topic component_body.c {: return new MqttReportStrategy().setTopicPrefix(topic); :}
MQTT TEXT.topic {: return new MqttReportStrategy().setTopicPrefix(topic); :}
;
StringList string_list =
......
Coordinator ::= Component* ParsedPrecedenceRelation* ; // /NextComponentToStart:Component/ ;
Component ::= <Name:String> [StartStrategy] [ReportStrategy] <Status:String> [AutoSetStatus] <StartAsUp:boolean> /<NextCommand:String>/ ;
Component ::= <Name:String> StartStrategy [ReportStrategy] <Status:String> [AutoSetStatus] <StartAsUp:boolean> /<NextCommand:String>/ ;
rel Component.Predecessor* <-> Component.Successor* ;
abstract StartStrategy ;
......
......@@ -120,13 +120,13 @@ public class MainCoordinator implements Callable<Integer> {
if (alreadyRunning.contains(comp)) {
comp.setStatus("up");
if (comp.hasAutoSetStatus() && !comp.getStartAsUp()) {
schduleAutoSetStatus(comp);
scheduleAutoSetStatus(comp);
}
}
if (!alreadyRunning.contains(comp) && !comp.getStartAsUp()) {
comp.getStartStrategy().start();
if (comp.hasAutoSetStatus()) {
schduleAutoSetStatus(comp);
scheduleAutoSetStatus(comp);
}
}
}
......@@ -135,7 +135,7 @@ public class MainCoordinator implements Callable<Integer> {
return 0;
}
private void schduleAutoSetStatus(Component comp) {
private void scheduleAutoSetStatus(Component comp) {
executor.schedule(() -> {
System.out.println("Setting status of " + comp.getName() + " to " + comp.getAutoSetStatus().getStatus());
comp.setStatus(comp.getAutoSetStatus().getStatus());
......@@ -143,7 +143,8 @@ public class MainCoordinator implements Callable<Integer> {
}
private void printStatus(String message) {
String content = message.contains("detail") ? coordinator.details() : coordinator.prettyPrint();
String content = message.contains("detail") ?
("Model-Status (detailed):\n" + coordinator.details()) : ("Model-Status:\n" + coordinator.prettyPrint());
System.out.println(content);
if (mainHandler != null) {
mainHandler.publish(TOPIC_STATUS, content.getBytes(StandardCharsets.UTF_8));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment