History log of /external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b852bce914dc3ae05b26f3655bfb437ffed001be 07-Apr-2010 jamesren <jamesren@592f7852-d20e-0410-864c-8624ca9c26a4> Adding the GWT framework for the Test Planner.

This adds a new application to the GWT frontend, but does not link to it
from the other frontends yet. I don't anticipate anyone to be using this
just yet. Once the project reaches the point where I can release a working
prototype, I will create user documentation for it and send an announcement.

Signed-off-by: James Ren <jamesren@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4378 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
b9c6617bdc063b3b4aa760a0a45190ee069139fd 13-Nov-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Modify DynamicTableSelectionListener so that when select "none" is clicked, only deselect items matching the current filters. This turned out to be considerably trickier than i thought, because in order to do this properly and efficiently, it has to work like this: when "none" is clicked, make an RPC call for all the currently filtered items that fall within the currently selected set. We do this by making a new request to the table's active DataSource with the current filtering params plus a list of selected item IDs. There are two problems here:

1) Not all tables show DB objects -- in particular, the host detail view table when "show verifies/repairs/cleanups" is selected, and the TKO table view when grouping is active. For these tables, there's no way to filter on selected items by ID. Fortunately, these tables also happen to not be prone to the original issue, because they can't be filtered. So I added some code to only apply this new logic to tables that have active user-controlled filters. This is pretty ugly from a design point of view, but I had to take a practical approach -- it works, the code is clean, and I couldn't think of any workable alternatives.

2) The DataSource interface was poorly designed such that an RpcDataSource was stateful (and mutated every time a new request was made), so there was no way to make a new request on a DataSource without messing up its state and therefore potentially messing up the table using it. To get around this, I redesigned the interface to use a separate Query objects. Now, both the DataSource and the Query objects are immutable, and making a separate query for the "select none" operation is easy. (This actually also encouraged a change to DynamicTable to be much more efficient by avoiding many unnecessary get_num_*() calls.)

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3941 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
5f0ca29fe6e34b4e5c256f6331e6767ab2b67c16 17-Sep-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Fix URL encoding of CSV export link.

Signed-off-by: James Ren <jamesren@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3736 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
c0ac3a79cceec87873257a8b6d41d19c9fb02ec6 08-Jul-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> add the option to include verify/repair/cleanups in the job table on the host detail page.
* added RPC get_host_queue_entries_and_special_tasks, which returns both HQEs and SpecialTasks for a host in a carefully interleaved manner.
* added appropriate frontend unit tests
* added support to HostDetailView to include these entries, but have them not be selectable. this required changes to SelectionManager. I also added a utility method to Utils for opening a new window, and changed all sites that do that to call the new method.

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3385 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
37059dfb50063124bce014d3217e3610499d917f 08-May-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> CSV support for TKO table view.
* make RpcDataSource record the last RPC call params, since that's much easier than reconstructing it as I was doing for SpreadsheetVIew
* make TableDecorator support an Export CSV link, and make TableView use it
* add onExportCsv to Table View, plus some minor refactorings there that happened along the way
* generalize CSV code from SpreadsheetView and extract to TkoUtils
* add new CsvEncoder classes for table view
* change logic to decide which CsvEncoder to use -- simply dispatching off of method name isn't good enough, since both spreadsheet and table views use get_status_counts
* add new unit tests for the three kinds of table view

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3096 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
3af93f9e93f65dad8d8e5b808d67320c2da958d5 21-Mar-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> fix some unused code eclipse warnings that had been disabled but should've been enabled

Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2920 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
e5ae165c706c465f08a732a361ea0aa5d75075ea 12-Feb-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Widespread cleanup of graphing code, based on notes I took during the original review of the code that never got implemented.

Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2781 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
f248952e42ea33c34e41a49817e50f98c65c2716 24-Oct-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Add feature to make spreadsheet header fields from combinations of machine labels. The user can create as many different machine-label-based fields as she wishes. For each field, she can enter a list of labels to be included. The field will then group on each combination of those labels.

-added new HeaderField abstract class with two implementations - SimpleHeaderField for normal fields and MachineLabelField for the new machine label fields
-made HeaderSelect capable of creating MachineLabelFields. In single header mode, selecting "Machine labels..." creates one, and deselecting it destroys it. In multiple header mode, each time "Machine labels..." is selected a new machine labels field is created, and deselecting one destroys it.
-made HeaderSelect display text boxes for each MachineLabelField for the user to input the label list.
-created HeaderSelect.addQueryParameters, moved fixed value logic into it (from SpreadsheetView.java), and put logic for machine label header in it.
-made TestGroupDataSource accept raw query parameters, and updated SpreadsheetDataProcessor to pass it through.
-modified SpreadsheetView to use HeaderFields throughout. Eventually other code (such as TableView) should be made to use them.
-added capability for ConditionTestSet to accept raw condition pieces. Eventually it will only work this way and I'll get rid of the field setting logic, since that's been moved to SimpleHeaderField.
-added ExtendedListBox class containing a bunch of utilities for ListBoxes that I've wanted for a long time. Several other parts of the code (DoubleListSelector, some of the graphing stuff) should be changes to use these utilities eventually.
-added ChangeListener support to DoubleListSelector
-made rpc interface accept a new "machine_label_headers" parameters, and added logic to tko_rpc_utils.py to construct SQL for machine label headers
-modified TestView manager to support a join into host labels



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2331 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
8a6eb0cf5777dded2354408e8007d9223e813c92 01-Oct-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> add support for showing only the latest test run per cell in spreadsheet mode. this involved some extensive refactorings on both the client and server which then made the actual change quite simple.

Refactorings:
-refactored group querying code in TempManager to be much more general (it's no longer oriented around fetching COUNT(*)). it also now returns dicts instead of raw rows.
-refactored much of the logic from the group-related RPCs into GroupDataProcessor, which now handles almost all the work, again in a more general fashion
-made group RPCs always return a sample test index with each group; this allows the client to drill down to single-test groups without having to make an extra query to get the test index (it also makes the latest test feature easier to implement)
-refactor TestSet to support a new getTestIndex method for single test sets
-added new SingleTestSet class for single test sets, and made TestSet creation code use this instead of ConditionTestSet
-made ConditionTestSet always be for multiple tests
-changed drilldown code to use TestSet.getTestIndex() to avoid making an extra RPC call (in both spreadsheet and table views)
-got rid fo TkoUtils.getTestId, which is no longer needed since test IDs are passed down with the groups

New features:
-added get_latest_tests RPC to get the latest test per group, but still return information in the same format as get_status_counts
-added "show only latest test per cell" to spreadsheet view, made it control the RPC that gets called, and added history support for it

About the get_latest_tests RPC - it uses two rather simple SQL queries and some processing in Python. I tried six different ways of computing this information, some using a single SQL query to do everything and some doing everything in Python, and this approach was by far the fastest.

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@2216 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
e732ee7d450b11261c82df0950fde8e02f839b26 23-Sep-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> -added capability to have site-specific urlconfs in TKO Django server
-added ClassFactory and SiteClassFactory to autotest.tko package to allow site-specific modifications to TKO. made some changes to the AFE [Site]ClassFactory files (reducing visibility)
-added get_detailed_test_views RPC which includes information about labels and attributes associated with a test
-made changes to model_logic.py to make fewer assumptions about models. these were basically bugs in model_logic.py that weren't exposed until i started doing fancier queries on TKO models.
-made list_objects capable of accepting a field list
-changed JsonRpcProxy to contain base URLs instead of full RPC urls; this way, other components (graphing, jlog) can use them (and i made graphing use this URL, which fixes a bug in the embedded URL generation)
-added RealHyperlink widget to common.ui package, representing a plain old hyperlink to another page (as opposed to Hyperlink and SimpleHyperlink, which are intended to be handling by the GWT code). this eases dynamic updates of the link href and allows setting visibility, styles, and all the other good stuff that comes along with using Widgets.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2191 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
6b5a72c12b84e0e8f15839c641bbc718fe52cbd7 22-Sep-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> The new code for building condition strings was potentially buggy when using multiple selection.


git-svn-id: http://test.kernel.org/svn/autotest/trunk@2181 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
64aeecdec485192241e5377b3fa5ac7cf57a0c12 19-Sep-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> -add feature to filter on test attributes in TKO
-new server arguments "include_attributes_where" and "exclude_attributes_where" for filtering on test attributes
-refactor joining code in TKO models.py to support test attributes joining
-add new UI to CommonPanel.java to filter on test attributes. some of the UI code was written in a general way so that in the future it could be merged with some of the graphing UI code.
-modified TestSets and code that uses them to fix two bugs - first, TestSets didn't contain all the relevant filtering information (only the SQL clause), and second, the SQL clause would build up incorrectly during drilldown



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2177 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
d50ffb4b0ef514fb969d53b82e23ab41d4d3812e 04-Sep-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> -add easy invalidation functionality
-add "show invalidated tests" option to common panel, disabled by default
-made client submit "exclude_labels" option to exclude invalid tests. this required somewhat widespread changes because it means the global condition is no longer just a SQL string but now a collection of parameters
-add "invalidate tests" option to spreadsheet/table context menu, and button to test detail view. it's really just a shortcut to add the "invalidated" label.
-added logic to the server to handle "exclude_labels" option. it was done in this generic way because in the future i plan to add a UI to exclude any label or labels.
-force test label names to be unique
-fix a bug in logic to determine all labels assigned to a set of tests
-got rid of auto-refresh when changing between spreadsheet and table after the condition had changed

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@2099 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
0c31bc5ef2ecdf8edf19468e1a373520110f5bc6 08-Aug-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Make query controls collapsible in spreadsheet and table views. This should help enable better use of screen real estate, especially in spreadsheet view.


git-svn-id: http://test.kernel.org/svn/autotest/trunk@1965 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java
35444864c7b6f49865a7e17aa0052987b72e4728 08-Aug-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Initial checkin of new TKO interface.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1959 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TkoUtils.java