|
16 | 16 | import java.net.URISyntaxException; |
17 | 17 | import java.util.HashMap; |
18 | 18 | import java.util.HashSet; |
| 19 | +import java.util.List; |
19 | 20 | import java.util.Map; |
20 | 21 | import java.util.Set; |
21 | 22 |
|
|
28 | 29 | import com.ibm.microclimate.core.internal.MCUtil; |
29 | 30 | import com.ibm.microclimate.core.internal.MicroclimateApplication; |
30 | 31 | import com.ibm.microclimate.core.internal.console.OldSocketConsole; |
| 32 | +import com.ibm.microclimate.core.internal.console.ProjectLogInfo; |
31 | 33 | import com.ibm.microclimate.core.internal.console.SocketConsole; |
32 | 34 | import com.ibm.microclimate.core.internal.constants.MCConstants; |
33 | 35 | import com.ibm.microclimate.core.internal.constants.ProjectType; |
@@ -76,6 +78,7 @@ public class MicroclimateSocket { |
76 | 78 | EVENT_CONTAINER_LOGS = "container-logs", //$NON-NLS-1$ |
77 | 79 | EVENT_PROJECT_VALIDATED = "projectValidated", //$NON-NLS-1$ |
78 | 80 | EVENT_LOG_UPDATE = "log-update", //$NON-NLS-1$ |
| 81 | + EVENT_PROJECT_LOGS_LIST_CHANGED = "projectLogsListChanged", //$NON-NLS-1$ |
79 | 82 | EVENT_PROJECT_SETTINGS_CHANGED = "projectSettingsChanged"; //$NON-NLS-1$ |
80 | 83 |
|
81 | 84 | public MicroclimateSocket(MicroclimateConnection mcConnection) throws URISyntaxException { |
@@ -238,6 +241,19 @@ public void call(Object... arg0) { |
238 | 241 | } |
239 | 242 | } |
240 | 243 | }) |
| 244 | + .on(EVENT_PROJECT_LOGS_LIST_CHANGED, new Emitter.Listener() { |
| 245 | + @Override |
| 246 | + public void call(Object... arg0) { |
| 247 | + MCLogger.log(EVENT_PROJECT_LOGS_LIST_CHANGED + ": " + arg0[0].toString()); //$NON-NLS-1$ |
| 248 | + |
| 249 | + try { |
| 250 | + JSONObject event = new JSONObject(arg0[0].toString()); |
| 251 | + onProjectLogsListChanged(event); |
| 252 | + } catch (JSONException e) { |
| 253 | + MCLogger.logError("Error parsing JSON: " + arg0[0].toString(), e); //$NON-NLS-1$ |
| 254 | + } |
| 255 | + } |
| 256 | + }) |
241 | 257 | .on(EVENT_LOG_UPDATE, new Emitter.Listener() { |
242 | 258 | @Override |
243 | 259 | public void call(Object... arg0) { |
@@ -527,6 +543,31 @@ private void onLogUpdate(JSONObject event) throws JSONException { |
527 | 543 | } |
528 | 544 | } |
529 | 545 |
|
| 546 | + private void onProjectLogsListChanged(JSONObject event) throws JSONException { |
| 547 | + String projectID = event.getString(MCConstants.KEY_PROJECT_ID); |
| 548 | + MicroclimateApplication app = mcConnection.getAppByID(projectID); |
| 549 | + if (app == null) { |
| 550 | + // Likely a new project is being created |
| 551 | + mcConnection.refreshApps(projectID); |
| 552 | + MCUtil.updateConnection(mcConnection); |
| 553 | + return; |
| 554 | + } |
| 555 | + |
| 556 | + String type; |
| 557 | + if (event.has(MCConstants.KEY_LOG_BUILD)) { |
| 558 | + type = MCConstants.KEY_LOG_BUILD; |
| 559 | + JSONArray logs = event.getJSONArray(MCConstants.KEY_LOG_BUILD); |
| 560 | + List<ProjectLogInfo> logInfos = MicroclimateConnection.getLogs(logs, type); |
| 561 | + app.addLogInfos(logInfos); |
| 562 | + } |
| 563 | + if (event.has(MCConstants.KEY_LOG_APP)) { |
| 564 | + type = MCConstants.KEY_LOG_APP; |
| 565 | + JSONArray logs = event.getJSONArray(MCConstants.KEY_LOG_APP); |
| 566 | + List<ProjectLogInfo> logInfos = MicroclimateConnection.getLogs(logs, type); |
| 567 | + app.addLogInfos(logInfos); |
| 568 | + } |
| 569 | + } |
| 570 | + |
530 | 571 | private void onValidationEvent(JSONObject event) throws JSONException { |
531 | 572 | String projectID = event.getString(MCConstants.KEY_PROJECT_ID); |
532 | 573 | MicroclimateApplication app = mcConnection.getAppByID(projectID); |
|
0 commit comments