fetch2/git: Add sanity check to ensure we really did fetch the correct revisions

The fetcher made the rather bold assumption that if it fetched from the upstream,
the revisions were present and correct. These checks are fast and ensure that
really is the case. The avoids accidental network accessed and missing
branch configuration problems.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
hob: changes to INHERIT var should use "append" operation

Setting INHERIT var means to remove other operations made on INHERIT.
This is too intrusive, so we decided to use append for this case.

[YOCTO #5448]
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
toaster: exclude "set in documentation.conf" from variable history

That has no impact on the builds themselves, so we should just
remove that line from the variable history.

[YOCTO #5561]
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
fetch2/git: Ensure check is made in the correct directory

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
data: Ensure we add the contains keys in a particular order

If we don't sort the data, the values can reorder changing the
signatures meaning we get confused builds and significant cache
misses.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
toaster: Analysis API variablehistory update

This patch updates the Analysis REST API to expose
the variablehistory information. A UI tool can query
this API to get a picture on how a variable value got
to its final form.

The documentation for VariableHistory is updated on
Wiki https://wiki.yoctoproject.org/wiki/Analysis_REST_API_Contracts

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
toaster: remove Author field in SimpleUI

Removes a left-over Author field in the Simple UI
recipe page.

    [YOCTO #5449]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
toaster: move layer information reading code

In the processes of removing local system accesses
from toaster UI, we remove the layer data reading
code that was moved to toaster.bbclass, and
adapt the database writing code to read the data
from event sent by the toaster.bbclass

    [YOCTO #5604]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
toaster: update build stats reading

In the processes of removing local system accesses
from toaster UI, we remove the build stats
code that was moved to toaster.bbclass, and
adapt the database writing code to read the data
from BuildStatsList event sent by the toaster.bbclass

    [YOCTO #5604]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
toaster: change package storage model

Up until this patch, package information lived in two
places - one table for build packages and one table for
target installed packaged. This situation leads to
two problems: there is no direct link between a build
package and a installed package, and a lot of data is duplicated.

This change unifies all package types in a single table.
The SimpleUI remains the same for continuity sake,
but the REST API will be changed in a future patch.

The package dependencies and package files are now
kept in a single table.

Since we collect target installed package information at all times,
we need to expand it to supplement missing information if a
package is not actually built in the current build.

Small changes to the Simple UI reflect the updated database schema.

    [YOCTO #5565]
    [YOCTO #5269]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
toasterui: fix version numbers for no PE specified

PE is an optional field in recipes specifiying the epoch
for the recipe. The canonical form for the
full recipe version string is: PE:PV-PR

If no PE is specified, we shouldn't store the initial ":"
character, as it leads to inconsistency with how the
version string is used elsewhere. This patch drops the leading ":"

    [YOCTO #5459]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
toasterui: do not link non-image targets

In the Simple UI, builds table, targets that are images
have link to the list of installed packages.

There is no point in having links enabled for the non-image
targets, so we don't link in this case.

    [YOCTO #5366]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
toaster: update to Django 1.5

In order to remain up to date with the relevant technologies,
Toaster is updated with this patch to Django 1.5. This also
makes headways to allow usage of emerging
Django-related technologies.

Changes include the startup script Django version check, usage
of TemplateView instead of deprecated simple function to do
redirects, and update to the new form of the _url_ template tag.

Support for Django 1.4.5 is now deprecated.

    [YOCTO #5558]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
toaster: migrate orm models to South

As Toaster advances, database schema alteration
will force users to delete old versions and lose
all data collected.

In order to prevent this, and to allow database
updates to happen without having to delete old data,
we use South to handle migrations for the ORM
application which stores the Toaster data.

    [YOCTO #5559]

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
toaster: add pagination to the Simple UI

In an effort to make the Simple UI more usable and
reponsive, this patch adds pagination support for the
pages with lots of entries: Builds, Configuration and
Tasks.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
toaster: Add more information for tasks in Simple UI

This patch adds more information about Tasks in the Simple UI:
* all local file system information is not listed in a single
column, showing the common relationship
* adding the display for the location of the task source
* we display the work directory for each task

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
hob: after adding a layer, hob do not parse the configuration

Moved the parseConfiguration method before obtaining the machines and
other configurations from bitbake. If not, Hob doesn't see the new machines
added by the new layer.

[YOCTO #5632]
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>