TestDetailView.java revision 11bd063f741c3bcfc59cadfed4abc65686df10ef
1aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhanipackage autotest.tko; 2aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 3aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport autotest.common.JsonRpcCallback; 4aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport autotest.common.Utils; 5aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport autotest.common.ui.DetailView; 6aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport autotest.common.ui.NotifyManager; 7aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport autotest.common.ui.RealHyperlink; 8aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 9aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.http.client.Request; 10aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.http.client.RequestBuilder; 11aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.http.client.RequestCallback; 12aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.http.client.RequestException; 13aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.http.client.Response; 14aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.json.client.JSONNumber; 15aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.json.client.JSONObject; 16aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.json.client.JSONValue; 17aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.user.client.ui.Composite; 18aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.user.client.ui.DisclosureEvent; 19aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.user.client.ui.DisclosureHandler; 20aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.user.client.ui.DisclosurePanel; 21aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.user.client.ui.FlexTable; 22aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.user.client.ui.FlowPanel; 23aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.user.client.ui.HTML; 24aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.user.client.ui.Label; 25aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.user.client.ui.Panel; 26aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport com.google.gwt.user.client.ui.RootPanel; 27aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 28aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport java.util.ArrayList; 29aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport java.util.Arrays; 30aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport java.util.Collections; 31aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniimport java.util.List; 32aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 33aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhaniclass TestDetailView extends DetailView { 34aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private static final int NO_TEST_ID = -1; 35aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 36aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private int testId = NO_TEST_ID; 37aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private String jobTag; 38aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private List<LogFileViewer> logFileViewers = new ArrayList<LogFileViewer>(); 39aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private RealHyperlink logLink = new RealHyperlink("(view all logs)"); 40aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 41aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private Panel logPanel; 42aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 43aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private class LogFileViewer extends Composite implements DisclosureHandler, RequestCallback { 44aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private static final String FAILED_TEXT = "Failed to retrieve log"; 45aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private DisclosurePanel panel; 46aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private String logFilePath; 47aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 48aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani public LogFileViewer(String logFilePath, String logFileName) { 49aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani this.logFilePath = logFilePath; 50aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani panel = new DisclosurePanel(logFileName); 51aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani panel.addEventHandler(this); 52aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani panel.addStyleName("log-file-panel"); 53aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani initWidget(panel); 54aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 55aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 56aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani public void onOpen(DisclosureEvent event) { 57aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, getLogUrl()); 58aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani try { 59aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani builder.sendRequest("", this); 60aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani setStatusText("Loading..."); 61aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } catch (RequestException exc) { 62aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani onRequestFailure(); 63aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 64aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 65aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 66aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private String getLogUrl() { 67aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani return Utils.getLogsURL(jobTag + "/" + logFilePath); 68aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 69aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 70aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private void setLogText(String text) { 71aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani panel.clear(); 72aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani Label label = new Label(text); 73aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani label.setStyleName("log-file-text"); 74aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani panel.add(label); 75aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 76aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 77aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private void setStatusText(String status) { 78aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani panel.clear(); 79aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani panel.add(new HTML("<i>" + status + "</i>")); 80aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 81aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 82aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani public void onClose(DisclosureEvent event) {} 83aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 84aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani public void onError(Request request, Throwable exception) { 85aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani onRequestFailure(); 86aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 87aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 88aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private void onRequestFailure() { 89aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani setStatusText(FAILED_TEXT); 90aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 91aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 92aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani public void onResponseReceived(Request request, Response response) { 93aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani if (response.getStatusCode() != 200) { 94aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani onRequestFailure(); 95aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani return; 96aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 97aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 98aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani String logText = response.getText(); 99aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani if (logText.equals("")) { 100aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani setStatusText("Log file is empty"); 101aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } else { 102aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani setLogText(logText); 103aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 104aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 105aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 106aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 107aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private static class AttributeTable extends Composite { 108aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private DisclosurePanel container = new DisclosurePanel("Test attributes"); 109aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private FlexTable table = new FlexTable(); 110aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 111aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani public AttributeTable(JSONObject attributes) { 112aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani processAttributes(attributes); 113aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani setupTableStyle(); 114aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani container.add(table); 115aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani initWidget(container); 116aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 117aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 118aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private void processAttributes(JSONObject attributes) { 119aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani if (attributes.size() == 0) { 120aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani table.setText(0, 0, "No test attributes"); 121aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani return; 122aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 123aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 124aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani List<String> sortedKeys = new ArrayList<String>(attributes.keySet()); 125aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani Collections.sort(sortedKeys); 126aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani for (String key : sortedKeys) { 127aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani String value = Utils.jsonToString(attributes.get(key)); 128aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani int row = table.getRowCount(); 129aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani table.setText(row, 0, key); 130aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani table.setText(row, 1, value); 131aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 132aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 133aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 134aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private void setupTableStyle() { 135aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani container.addStyleName("test-attributes"); 136aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 137aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 138aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 139aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani @Override 140aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani public void initialize() { 141aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani super.initialize(); 142aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 143aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani logPanel = new FlowPanel(); 144aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani RootPanel.get("td_log_files").add(logPanel); 145aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 146aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani logLink.setOpensNewWindow(true); 147aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani RootPanel.get("td_view_logs_link").add(logLink); 148aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 149aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 150aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private void addLogViewers(String testName) { 151aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani logPanel.clear(); 152aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani addLogFileViewer(testName + "/debug/stdout", "Test stdout"); 153aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani addLogFileViewer(testName + "/debug/stderr", "Test stderr"); 154aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani addLogFileViewer("status.log", "Job status log"); 155aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani addLogFileViewer("debug/autoserv.stdout", "Job autoserv stdout"); 156aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani addLogFileViewer("debug/autoserv.stderr", "Job autoserv stderr"); 157aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 158aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 159aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani private void addLogFileViewer(String logPath, String logName) { 160aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani LogFileViewer viewer = new LogFileViewer(logPath, logName); 161aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani logFileViewers.add(viewer); 162aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani logPanel.add(viewer); 163aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 164aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 165aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani @Override 166aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani protected void fetchData() { 167aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani JSONObject params = new JSONObject(); 168aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani params.put("test_idx", new JSONNumber(testId)); 169aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani rpcProxy.rpcCall("get_detailed_test_views", params, new JsonRpcCallback() { 170aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani @Override 171aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani public void onSuccess(JSONValue result) { 172aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani JSONObject test; 173aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani try { 174aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani test = Utils.getSingleValueFromArray(result.isArray()).isObject(); 175aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 176aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani catch (IllegalArgumentException exc) { 177aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani NotifyManager.getInstance().showError("No such job found"); 178aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani resetPage(); 179aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani return; 180aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 181aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 182aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani showTest(test); 183aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 184aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 185aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani @Override 186aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani public void onError(JSONObject errorObject) { 187aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani super.onError(errorObject); 188aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani resetPage(); 189aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 190aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani }); 191aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 192aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 193aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani @Override 194aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani protected void setObjectId(String id) { 195aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani try { 196aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani testId = Integer.parseInt(id); 197aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 198aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani catch (NumberFormatException exc) { 199aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani throw new IllegalArgumentException(); 200aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 201aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 202aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 203aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani @Override 204aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani protected String getObjectId() { 205aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani if (testId == NO_TEST_ID) { 206aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani return NO_OBJECT; 207aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 208aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani return Integer.toString(testId); 209aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 210aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 211aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani @Override 212aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani protected String getDataElementId() { 213aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani return "td_data"; 214aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 215aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 216aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani @Override 217aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani protected String getFetchControlsElementId() { 218aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani return "td_fetch_controls"; 219aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 220aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 221aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani @Override 222aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani protected String getNoObjectText() { 223aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani return "No test selected"; 224aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 225aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 226aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani @Override 227aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani protected String getTitleElementId() { 228aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani return "td_title"; 229aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 230aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 231aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani @Override 232aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani public String getElementId() { 233aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani return "test_detail_view"; 234aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 235aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 236aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani @Override 237aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani public void display() { 238aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani super.display(); 239aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani CommonPanel.getPanel().setConditionVisible(false); 240aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 241aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 242aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani protected void showTest(JSONObject test) { 243aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani String testName = test.get("test_name").isString().stringValue(); 244aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani jobTag = test.get("job_tag").isString().stringValue(); 245aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 246aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani showText(testName, "td_test"); 247aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani showText(jobTag, "td_job_tag"); 248aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani showField(test, "job_name", "td_job_name"); 249aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani showField(test, "status", "td_status"); 250aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani showField(test, "reason", "td_reason"); 251aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani showField(test, "test_started_time", "td_test_started"); 252aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani showField(test, "test_finished_time", "td_test_finished"); 253aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani showField(test, "hostname", "td_hostname"); 254aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani showField(test, "platform", "td_platform"); 255aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani showField(test, "kernel", "td_kernel"); 256aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 257aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani String[] labels = Utils.JSONtoStrings(test.get("labels").isArray()); 258aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani String labelList = Utils.joinStrings(", ", Arrays.asList(labels)); 259aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani if (labelList.equals("")) { 260aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani labelList = "none"; 261aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 262aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani showText(labelList, "td_test_labels"); 263aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 264aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani JSONObject attributes = test.get("attributes").isObject(); 265aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani RootPanel attributePanel = RootPanel.get("td_attributes"); 266aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani attributePanel.clear(); 267aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani attributePanel.add(new AttributeTable(attributes)); 268aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 269aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani logLink.setHref(Utils.getLogsURL(jobTag)); 270aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani addLogViewers(testName); 271aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani 272aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani displayObjectData("Test " + testName + " (job " + jobTag + ")"); 273aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani } 274aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani} 275aed24eee7ddfc93f1436b0c1679431bd286879b4Venkatarama Avadhani