toaster: add Image detail and multiple targets to dashboard

Filled in the Image section detail information and allow for multiple targets.
Each target has a separate section. Added license manifest display. Changed the
target of the license manifest link. Added Tasks failed in the build summary.
The target lists required filters to create sorted lists.

[YOCTO #4258]
[YOCTO #5936]

Signed-off-by: Farrell Wymore <farrell.wymore@windriver.com>
toaster: blocks for custom/highlighted navigation and breadcrumb links

Implement the navigation links as blocks so that each page can override and have
its respective link appear highlighted. Make the build breadcrumb a block so that
it is customizable to not be a link for the dashboard page. Reorder the page headers
to be consistent order for extends, projecttags, localbreadcrumb, nav-links.

[YOCTO #5916]
[YOCTO #4258]

Signed-off-by: David Reyna <David.Reyna@windriver.com>
toaster: insure _get_query returns distinct records

The '_get_query' can return duplicate records if a search term appears
multiple times in the same row, so the queryset must be made
distinct before returning.
This commit also removes the initial special case for configvars in
favor of this general solution.

[YOCTO #6012]

Signed-off-by: David Reyna <David.Reyna@windriver.com>
toaster: Fix typo in heading code

Fix typo in the code that handles the changes
in the h1 text in order to display the number of results
returned by a search.

[YOCTO #6001]

Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com>
toaster: show installed package name

[YOCTO #5922]

Implement changes that show the installed package name after the
official 'recipe-named' package name.  If the alias exists and
is different than the package name, then the alias is shown as a
'muted' string after the package name in the form 'as some-alias-name'.
This formatting appears in the included package pages in the elements:
* local breadcrumbs at the top of package included pages,
* <h1> title headings along with a help bubble that is not hovering,
and
* package lists where the help bubble appears when the mouse hovers
over the row.

The changes in detail in this patch per file are:
views.py
- added function that tests whether the package object's installed_name
should be shown,
- added function that appends package name with version and revision to
encapsulate package name formatting in one place and referred to as
package.fullpackagespec,
- changed package_built* and package_included* functions to use both
of the above new formatting functions, passing the formatted values to
templates, and
- adhered to django coding styles by renaming  module local
'get_package*' functions with "_" prefix.

package_detail_base.html
- added display of package aliases for included package page,
- refactored to use package.fullpackagespec, formatted by view function,
- added javascript function to format package alias with help, and
- removed trailing whitespace.

package_included_detail.html
- used javascript function above to format package alias, and
- refactored to use package.fullpackagespec.

package_included_dependencies.html
- used javascript function above to format package alias,
- refactored to use package.fullpackagespec,
- forced empty data cells following hover-help to draw borders
by appending space, and
- removed trailing whitespace.

package_included_reverse_dependencies.html
- use javascript function above to format package alias,
- refactor to use views fullpackagespe, and
- force empty data cells following hover-help to draw borders
by appending space.

package_built_detail.html
- refactored to use package.fullpackagespec, and
- removed trailing whitespace.

package_built_dependencies.html
- refactored to use package.fullpackagespec, and
- removed trailing whitespace.

projecttags.py
- removed unused filter to handle installed name
- removed extra spaces around "title = " in format_vpackage_namehelp

Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
toaster: add support for empty states in pages

Add support for empty states in the top build page,
the all packages page, and the all tasks page.

[YOCTO #4865]

Signed-off-by: David Reyna <David.Reyna@windriver.com>
toaster: added file types to the Outputs column in the build

The file types are displayed in the Outputs column in the build page. The file types
are derived from the target image filenames.

[YOCTO #5947]

Signed-off-by: Farrell Wymore <farrell.wymore@windriver.com>
Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
toaster: fix dirinfo empty dir expansion

[YOCTO 6036]

In the page that shows the directory layout for an image, if the
directory is empty, then the directory folder icon should be black and
the table row should not be 'expandable' on a mouse click.  That
behavior depends on the directory's child entry count calculated in the
view function controlling that page.

Two images in the database with the same directory path in the target
image, but one with path having entries and the other not having
any entries caused the path without entries to be clickable; the
query for a directory's count of entries, didn't filter on the image id,
only on the path.

Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
toaster: filter tasks with cache attempts for all attempts

Adjust the filter for task cache attempts to include all attempts except
SSTATE_NA.

[YOCTO #5923]

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
cooker: Only change self.data if it exists

With the change to more optimal default featureset behaviour, a race was
exposed by hob where the code may try and change self.data before it
exists. This change avoids that.

When the datastore is created, the cooker configuration is used so
data tracking is correctly handled regardless.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bin/bitbake/cooker: Ensure initial featureset is optimal

If the featureset didn't match the defaults, we'd pay the price of two
base configuration parses which showed up adversely in the performance
benchmarks. This also passes the feature set into the cooker creation so
in the common case we don't have to reset the server. This speeds up
both knotty and hob startup. If the featureset doesn't match, the system
will reset as before, this just streamlines the common case.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
prserv: Fix exit race issues

We shouldn't immediately remove the pid file when stopping the server, if we do, this
causes a traceback within the server itself which can then hang. Fix this by removing
the stale pid file as the last thing we do.

Also:

* don't printing a new "waiting" line every 0.5 seconds.
* make the loop more granular since the user can 'feel' the 0.5 seconds

[YOCTO #5984]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>