]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/log
thirdparty/openembedded/openembedded-core-contrib.git
9 years agoknotty: Fix row/column function return value issue
Richard Purdie [Fri, 18 Dec 2015 11:02:41 +0000 (11:02 +0000)] 
knotty: Fix row/column function return value issue

When the row handling was introduced, one of the callbacks was
missed resulting in:

TypeError: can only concatenate tuple (not "int") to tuple

Fix it.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agobuildinfohelper: Update for buildstats layout change
Richard Purdie [Thu, 17 Dec 2015 14:54:55 +0000 (14:54 +0000)] 
buildinfohelper: Update for buildstats layout change

This updates buildinfo helper for the recent buildstats layout change

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agofetch: use orig localpath when calling orig method
Christopher Larson [Thu, 10 Dec 2015 18:57:23 +0000 (23:57 +0500)] 
fetch: use orig localpath when calling orig method

When a mirror tarball is fetched, the original fetch method is called, which
unpacks the mirror tarball. After the original method is called, it checks the
localpath of the mirror tarball rather than the clone path, which isn't ideal,
particularly if the mirror tarball was removed due to being out of date. We
know the original fetch method will do what it needs to do to get its content
in the form it needs from the mirror tarball, so we can use its localpath
instead.

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Awais Belal <awais_belal@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agoutils: Improve traceback from better_exec internal errors
Richard Purdie [Tue, 15 Dec 2015 17:42:40 +0000 (17:42 +0000)] 
utils: Improve traceback from better_exec internal errors

If you break the internals of better_exec(), you get a very weird
error about tb_next not being a method of None. Fix this by checking
we can step back a trace level.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agoast/event/utils: Improve tracebacks to include file and line numbers more correctly
Richard Purdie [Tue, 15 Dec 2015 17:41:12 +0000 (17:41 +0000)] 
ast/event/utils: Improve tracebacks to include file and line numbers more correctly

Currently bitbake tracebacks can have places where the line numbers are
inaccurate and filenames may be missing. These changes start to try and
correct this.

The only way I could find to correct line numbers was to compile as a
python ast, tweak the line numbers then compile to bytecode. I'm open
to better ways of doing this if anyone knows of any.

This does mean passing a few more parameters into functions, and putting
more data into the data store about functions (i.e. their filenames
and line numbers) but the improvement in debugging is more than worthwhile).

Before:
----------------
ERROR: Execution of event handler 'run_buildstats' failed
Traceback (most recent call last):
  File "run_buildstats(e)", line 43, in run_buildstats(e=<bb.build.TaskStarted object at 0x7f7b7c57a590>)
NameError: global name 'notexist' is not defined

ERROR: Build of do_patch failed
ERROR: Traceback (most recent call last):
  File "/media/build1/poky/bitbake/lib/bb/build.py", line 560, in exec_task
    return _exec_task(fn, task, d, quieterr)
  File "/media/build1/poky/bitbake/lib/bb/build.py", line 497, in _exec_task
    event.fire(TaskStarted(task, logfn, flags, localdata), localdata)
  File "/media/build1/poky/bitbake/lib/bb/event.py", line 170, in fire
    fire_class_handlers(event, d)
  File "/media/build1/poky/bitbake/lib/bb/event.py", line 109, in fire_class_handlers
    execute_handler(name, handler, event, d)
  File "/media/build1/poky/bitbake/lib/bb/event.py", line 81, in execute_handler
    ret = handler(event)
  File "run_buildstats(e)", line 43, in run_buildstats
NameError: global name 'notexist' is not defined

----------------

After:
----------------
ERROR: Execution of event handler 'run_buildstats' failed
Traceback (most recent call last):
  File "/media/build1/poky/meta/classes/buildstats.bbclass", line 143, in run_buildstats(e=<bb.build.TaskStarted object at 0x7efe89284e10>):
         if isinstance(e, bb.build.TaskStarted):
    >        trigger = notexist
             pn = d.getVar("PN", True)
NameError: global name 'notexist' is not defined

ERROR: Build of do_package failed
ERROR: Traceback (most recent call last):
  File "/media/build1/poky/bitbake/lib/bb/build.py", line 560, in exec_task
    return _exec_task(fn, task, d, quieterr)
  File "/media/build1/poky/bitbake/lib/bb/build.py", line 497, in _exec_task
    event.fire(TaskStarted(task, logfn, flags, localdata), localdata)
  File "/media/build1/poky/bitbake/lib/bb/event.py", line 170, in fire
    fire_class_handlers(event, d)
  File "/media/build1/poky/bitbake/lib/bb/event.py", line 109, in fire_class_handlers
    execute_handler(name, handler, event, d)
  File "/media/build1/poky/bitbake/lib/bb/event.py", line 81, in execute_handler
    ret = handler(event)
  File "/media/build1/poky/meta/classes/buildstats.bbclass", line 143, in run_buildstats
    trigger = notexist
NameError: global name 'notexist' is not defined
----------------

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agorunqueue: Add support for <task>- syntax
Richard Purdie [Tue, 15 Dec 2015 16:42:18 +0000 (16:42 +0000)] 
runqueue: Add support for <task>- syntax

It can be useful to run all tasks up to but not including a specific task. The
main reason this was never added was the lack of a good syntax. This patch
uses the syntax <taskname>- to denote this behaviour which is simple, not
invasive and fits what we need from good syntax IMO, hence we can add this.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: tables Set a default order for the software recipes table
Belen Barros Pena [Mon, 14 Dec 2015 22:50:47 +0000 (22:50 +0000)] 
toaster: tables Set a default order for the software recipes table

Add default order by recipe name, so that the table content is sorted
when the page loads.

[YOCTO #8791]

Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: tests Remove symlinks from toasteruitest folder
Mihail Stanciu [Fri, 11 Dec 2015 10:01:59 +0000 (10:01 +0000)] 
toaster: tests Remove symlinks from toasteruitest folder

Remove symlinks in the UI tests folder as they are causing
problems for bitbake upstream.

[YOCTO #8787]

Signed-off-by: Mihail Stanciu <stanciux.mihail@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: rework checking of Django version
Ed Bartosh [Thu, 10 Dec 2015 03:56:43 +0000 (19:56 -0800)] 
toaster: rework checking of Django version

Checked django version considering information from
toaster-requirements.txt, e.g. if requirements file contains
line "Django>1.8,<1.9" toaster should be able to check that
requirement correctly.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: monkey patch Queryset
Ed Bartosh [Thu, 10 Dec 2015 03:56:42 +0000 (19:56 -0800)] 
toaster: monkey patch Queryset

Fixed 'database is locked' issue by monkey patching django QuerySet
methods.

The actual patching places were found by bisecting Django codebase.

This commit should be removed after Django is fixed if it's fixed
at all.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: removed extra calls of migrate
Ed Bartosh [Thu, 10 Dec 2015 03:56:41 +0000 (19:56 -0800)] 
toaster: removed extra calls of migrate

One manage.py migrate should be enough to apply migrations for
all applications. Extra calls just slow toaster script down.

Removed calls of migrate for orm and bldcontrol apps.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: work around 'database is locked' error
Ed Bartosh [Thu, 10 Dec 2015 03:56:40 +0000 (19:56 -0800)] 
toaster: work around 'database is locked' error

When sqlite can not cope with a stream of 'insert' queries it throws
'database is locked' exception.

Wrapping model.save in transaction.atomic context and repeating the call
should solve this issue.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: fixed format strings
Ed Bartosh [Thu, 10 Dec 2015 03:56:39 +0000 (19:56 -0800)] 
toaster: fixed format strings

Printing id as a number breaks toaster if object is not saved
yet as id/pk is None in this case.

Changed format spec to print id as a string in __str__
and __unicode__ methods of Build, Task and LayerVersion models.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: use OneToOneField instead of ForeignKey
Ed Bartosh [Thu, 10 Dec 2015 03:56:38 +0000 (19:56 -0800)] 
toaster: use OneToOneField instead of ForeignKey

Used OneToOneField to reference BuildRequest in BRBitbake model.

Fixed django warning:
WARNINGS: Setting unique=True on a ForeignKey has the same effect
          as using a OneToOneField.

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: Amend regex for MySQL database URLs
Elliot Smith [Thu, 10 Dec 2015 03:56:37 +0000 (19:56 -0800)] 
toaster: Amend regex for MySQL database URLs

The database URL detection doesn't admit a MySQL URL without a port.

As this is a common case (e.g. you would set the HOST to a mysql.sock
path if pointing at a local MySQL server, with no port setting),
amend the regex so it will correctly recognise paths, as well
as HOST:PORT URLs.

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: Remove compatible_layerversions() method
Elliot Smith [Thu, 10 Dec 2015 03:56:36 +0000 (19:56 -0800)] 
toaster: Remove compatible_layerversions() method

Remove compatible_layerversions() and replace calls to it with
calls to get_all_compatible_layer_versions().

The sorting done in compatible_layerversions() is not relevant,
and the code can be simplified by using get_all_compatible_layer_versions().

[YOCTO #8364]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: Check Django version against toaster-requirements.txt
Elliot Smith [Thu, 10 Dec 2015 03:56:35 +0000 (19:56 -0800)] 
toaster: Check Django version against toaster-requirements.txt

Instead of hard-coding the required Django version in the start
script, look it up from the toaster-requirements.txt file.

[YOCTO #8364]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: Update deprecated manage.py command
Elliot Smith [Thu, 10 Dec 2015 03:56:34 +0000 (19:56 -0800)] 
toaster: Update deprecated manage.py command

syncdb is deprecated in favour of migrate in Django 1.7:
https://docs.djangoproject.com/en/1.8/releases/1.7/#schema-migrations

Update to the "migrate" command in Toaster's start script.

[YOCTO #8364]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: Prevent deprecation warnings for RedirectView
Elliot Smith [Thu, 10 Dec 2015 03:56:33 +0000 (19:56 -0800)] 
toaster: Prevent deprecation warnings for RedirectView

The API for RedirectView is due to change in Django 1.9, which
means that Toaster generates deprecation warnings.

Set the "permanent" flag when constructing RedirectView instances
to prevent this warning.

[YOCTO #8364]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: Update API used to make runbuilds methods run in transactions
Elliot Smith [Thu, 10 Dec 2015 03:56:32 +0000 (19:56 -0800)] 
toaster: Update API used to make runbuilds methods run in transactions

runbuilds previously had its methods decorated with
transaction.commit_on_success, which is now deprecated. transaction.atomic
is an (almost) drop-in replacement for this, so use this instead.

[YOCTO #8364]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: rename get_query_set -> get_queryset
Ed Bartosh [Thu, 10 Dec 2015 03:56:31 +0000 (19:56 -0800)] 
toaster: rename get_query_set -> get_queryset

Renamed get_query_set to get_queryset as get_queryset causes
deprecation warning in Django 1.7 and is deprecated in Django 1.8

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: Start Django machinery for database access
Elliot Smith [Thu, 10 Dec 2015 03:56:30 +0000 (19:56 -0800)] 
toaster: Start Django machinery for database access

buildinfohelper, with the new import paths for our Django models
and Django 1.8, was not getting an active connection to the database.

In buildinfohelper, call django.setup() explicitly to make sure
that the database connection is ready and models can be queried
and saved.

[YOCTO #8364]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: Create default project with get_or_create* method
Elliot Smith [Thu, 10 Dec 2015 03:56:29 +0000 (19:56 -0800)] 
toaster: Create default project with get_or_create* method

Rather than maintain data as part of the migrations (as was
done for the default project previously), create the default
(cli builds) project on demand as a by-product of getting
it from the database.

[YOCTO #8364]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: Fix references to app paths
Ed Bartosh [Thu, 10 Dec 2015 03:56:28 +0000 (19:56 -0800)] 
toaster: Fix references to app paths

The buildinfohelper runs outside of Django, but still needs
access to our Django app classes.

Previously, the imports referenced the toaster.* app, which worked
fine. But in Django 1.8, this causes an error about the same
module being loaded multiple times from different paths.

Change the paths to our Django modules so they don't cause
this error to be thrown. We can do this as we've added our
application libraries to sys.path in the buildinfohelper anyway.

[YOCTO #8364]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: Remove South migrations
Ed Bartosh [Thu, 26 Nov 2015 18:04:06 +0000 (20:04 +0200)] 
toaster: Remove South migrations

South has been deprecated in favour of Django's own migration framework,
so remove the old South migrations and replace them with Django ones.

[YOCTO #8364]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: Upgrade to Django 1.8.6 and remove South
Elliot Smith [Thu, 10 Dec 2015 03:56:26 +0000 (19:56 -0800)] 
toaster: Upgrade to Django 1.8.6 and remove South

Upgrade Django to long-term support version.

Django now provides its own migration framework, so remove
requirement for South.

[YOCTO #8364]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoasterui: process SetBRBE event
Ed Bartosh [Wed, 9 Dec 2015 14:25:49 +0000 (14:25 +0000)] 
toasterui: process SetBRBE event

Currently BRBE is known to toasterui only when build is
started. It's passed to it with BuildStarted event. This is
too late as if build fails earilier than build starts toasterui
can not inform Toaster about the failure.

Set BRBE as soon as it's provided by Toaster.
This should make toasterui to be able to inform Toaster
about early build failures, e.g. failures during recipe parsing.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: trigger SetBRBE event
Ed Bartosh [Wed, 9 Dec 2015 14:25:48 +0000 (14:25 +0000)] 
toaster: trigger SetBRBE event

Triggered MetadataEvent "SetBRBE" when TOASTER_BRBE variable
is set on bitbake server. This should make buildinfohelper
aware of the build request id, which is used to properly
report build status and failures back to Toaster.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: implement BitbakeController.triggerEvent
Ed Bartosh [Wed, 9 Dec 2015 14:25:47 +0000 (14:25 +0000)] 
toaster: implement BitbakeController.triggerEvent

This API will be used to pass data from Toaster to
toaster_ui and buildinfohelper.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agoevent: Fix subprocess event error traceback failures
Richard Purdie [Wed, 9 Dec 2015 12:02:56 +0000 (12:02 +0000)] 
event: Fix subprocess event error traceback failures

If subprocess raises a CalledProcessError() error, e.g. from a call
like subprocess.check_call("false"), bitbake would try and pass the
object over IPC and fail, leading to an unusual error:

('__init__() takes at least 3 arguments (1 given)', <class 'subprocess.CalledProcessError'>, ())%

To avoid this, we turn the value into a string which prevents the
issues the IPC has trying to deal with the object (for the same reason
we deal with tracebacks here too).

[YOCTO #8752]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: toasterui Add ParseStarted/ParseProgress events to mask
brian avery [Tue, 17 Nov 2015 16:47:56 +0000 (16:47 +0000)] 
toaster: toasterui Add ParseStarted/ParseProgress events to mask

Toaster is not able to see ParseStarted and ParseProgress events
for command-line builds. This means it's not possible for Toaster
to detect failed builds, if the failure occurs at a point before
the BuildStarted event, as the build won't show up at all.

Add these events to the event mask, so that Toaster's toasterui
can detect and respond to them.

Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agoknotty: Enforce terminal line limit to stop crazy scrolling
Richard Purdie [Mon, 7 Dec 2015 18:26:57 +0000 (18:26 +0000)] 
knotty: Enforce terminal line limit to stop crazy scrolling

If there are more tasks running than there are lines on the terminal, the data
scrolls in ways the UI wasn't designed for. This patch adjusts the UI just to
show the processes which fit onto the number of rows in the terminal window.
You can see the total number running from the counter in the top left as usual
and this makes warning and errors messages scrolling from the top of the window
work as designed.

Ultimately, scrolling would be nice but is for another time, this fixes the
biggest UI issue on highly parallel machines.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agobitbake: rename REGEX, REGEX_URI, and GITTAGREGEX.
Alexander Kanavin [Fri, 4 Dec 2015 14:59:26 +0000 (14:59 +0000)] 
bitbake: rename REGEX, REGEX_URI, and GITTAGREGEX.

Rename REGEX to UPSTREAM_CHECK_REGEX, REGEX_URI to UPSTREAM_CHECK_URI, and
GITTAGREGEX to UPSTREAM_CHECK_GITTAGREGEX to better reflect their purpose
and to reflect a common namespace.

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: return back 'New project' button
Ed Bartosh [Mon, 7 Dec 2015 16:06:01 +0000 (16:06 +0000)] 
toaster: return back 'New project' button

The button was removed by mistake in merging modes patchset.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: tests Update UI tests to work with 2.0 changes
Mihail Stanciu [Mon, 7 Dec 2015 15:53:01 +0000 (15:53 +0000)] 
toaster: tests Update UI tests to work with 2.0 changes

Update tests that were referencing items removed in 2.0.

Update most xpath elements left to use IDs.

Signed-off-by: Mihail Stanciu <stanciux.mihail@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: tests Automated build-mode backend tests
Mihail Stanciu [Mon, 7 Dec 2015 15:53:00 +0000 (15:53 +0000)] 
toaster: tests Automated build-mode backend tests

Add tests to check various backend scenarios that
require UI interaction.

Add necessary files for above tests (the sqlite file
and the default config json).

Signed-off-by: Mihail Stanciu <stanciux.mihail@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: unset environment variables
Ed Bartosh [Wed, 2 Dec 2015 18:02:59 +0000 (10:02 -0800)] 
toaster: unset environment variables

Toaster script sets environment variables when it starts.
It makes sense to unset them when toaster stops as they can
cause other programs to behave incorrectly.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: get rid of complicated heuristics
Ed Bartosh [Wed, 2 Dec 2015 18:02:58 +0000 (10:02 -0800)] 
toaster: get rid of complicated heuristics

Removed buildinfohelper code which was trying to guess layer version of
the recipe using build request information. The code caused creation of
duplicated recipes as it resulted in layer version from layer index
instead of returning build layer version. As a result of this Toaster
UI was not showing any information about recipes.

Default approach used to find layer version seems to work much better as
it finds proper layer version. Now toaster will use it as the only
way to find layer version.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: remove SDKMACHINE from project variables
Ed Bartosh [Wed, 2 Dec 2015 18:02:57 +0000 (10:02 -0800)] 
toaster: remove SDKMACHINE from project variables

Removed SDKMACHINE from predefined set of variables
for the project as it causes bitbake build error:
   SDKMACHINE is set, but SDK_ARCH has not been changed as a result

This variable does not need to be predefined as it's not used by
toaster.

It's still possible to specify it in project configuration
if needed. SDK_ARCH variable should be set too to avoid above
mentioned build failure.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: stop using toaster-pre.conf
Ed Bartosh [Wed, 2 Dec 2015 18:02:56 +0000 (10:02 -0800)] 
toaster: stop using toaster-pre.conf

This file is not needed anymore as toaster UI doesn't
write variables to it. It sets them directly on bitbake
server.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: remove writeConfFile API
Ed Bartosh [Wed, 2 Dec 2015 18:02:55 +0000 (10:02 -0800)] 
toaster: remove writeConfFile API

This API is not used anymore as toaster doesn't write variables
to configuration files anymore. It sets variables through its
connection to bitbake server.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: set varibales on bitbake server
Ed Bartosh [Wed, 2 Dec 2015 18:02:54 +0000 (10:02 -0800)] 
toaster: set varibales on bitbake server

Set project variables using connection to bitbake server
instead of writing them to toaster configuration files.

This is a way to avoid rewriting configuration files before
and after every build, triggered by toaster UI.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: implement BitbakeController.getVariable
Ed Bartosh [Wed, 2 Dec 2015 18:02:53 +0000 (10:02 -0800)] 
toaster: implement BitbakeController.getVariable

Added new API to get value of bitbake variable from bitbake server.
The API will be used to update INHERIT variable instead of writing
it to the toaster configuration files.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: buildinfohelper Broaden the toaster created recipe data case
Michael Wood [Wed, 2 Dec 2015 18:02:52 +0000 (10:02 -0800)] 
toaster: buildinfohelper Broaden the toaster created recipe data case

When build information is the 'original' source of the information we
need to return the recipe that was created rather than the copy of the
recipe that is taken for keeping build history. We do this already for
command line triggered builds, but we also have this case for custom
images. We can simply check if the built_recipe exists instead of
special casing this.

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: do not create duplicate HelpText objects
Ed Bartosh [Wed, 2 Dec 2015 18:02:51 +0000 (10:02 -0800)] 
toaster: do not create duplicate HelpText objects

buildinfohelper code expects only one HelpText object per
build/variable/description.
Current code creates more than one such an object, which causes
toastergui to crash with this exception:
 MultipleObjectsReturned: get() returned more than one HelpText -- it returned 2!

Used git_or_create API to ensure that only one HelpText object is
created.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: remove usage of BUILD_MODE variable
Ed Bartosh [Wed, 2 Dec 2015 18:02:50 +0000 (10:02 -0800)] 
toaster: remove usage of BUILD_MODE variable

As both modes can be used at the same time we can't have any
difference in UI between modes.

Removed all conditional statements that used BUILD_MODE.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: do not terminate bb server
Ed Bartosh [Wed, 2 Dec 2015 18:02:49 +0000 (10:02 -0800)] 
toaster: do not terminate bb server

Toaster needs bb server to be running all the time due
to merged analysis and managed modes. Server gets restarted
before every build triggered by UI, but it shouldn't be
terminated as it will influence command line builds.

[YOCTO #8279]

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: remove stopBBServer API
Ed Bartosh [Wed, 2 Dec 2015 18:02:48 +0000 (10:02 -0800)] 
toaster: remove stopBBServer API

Removed stopBBServer API from build controller as toaster
doesn't stop bitbake server anymore. It's reused for both
types of builds: triggered by UI and started manually.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: reimplemented startBBServer method
Ed Bartosh [Wed, 2 Dec 2015 18:02:47 +0000 (10:02 -0800)] 
toaster: reimplemented startBBServer method

Rewritten LocalhostBEController.startBBServer to use
'toaster restart-bitbake' and read bitbake port number from
bitbake.lock.

Removed complicated logic of running oe-init-memres and looking for
bitbake port number in the logs.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: remove _setupBE function
Ed Bartosh [Wed, 2 Dec 2015 18:02:46 +0000 (10:02 -0800)] 
toaster: remove _setupBE function

This function is not needed as build environment is always created
because of the new way to run Toaster. It can be only sourced after
oe-init-build-env is sourced.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: implement 'toaster restart-bitbake'
Ed Bartosh [Wed, 2 Dec 2015 18:02:45 +0000 (10:02 -0800)] 
toaster: implement 'toaster restart-bitbake'

This implementation allows to have functionality of restarting
bitbake in toaster script. It can be used by toaster script and
build controllers.

[YOCTO #8279]

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: implement start_bitbake function
Ed Bartosh [Wed, 2 Dec 2015 18:02:44 +0000 (10:02 -0800)] 
toaster: implement start_bitbake function

Separated functionality of starting bitbake server and observer
processes.

This functionality will be used by build controllers to restart
bitbake processes.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: implement stop_bitbake function
Ed Bartosh [Wed, 2 Dec 2015 18:02:43 +0000 (10:02 -0800)] 
toaster: implement stop_bitbake function

Separated functionality of stopping bitbake server and observer
processes.

This functionality will be used by build controllers to restart
bitbake processes.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: update brbe and project attributes
Ed Bartosh [Wed, 2 Dec 2015 18:02:42 +0000 (10:02 -0800)] 
toaster: update brbe and project attributes

Updated attributes of buildinfohelper object as they can
be changed for every build. For example brbe is set by
runbuilds for every build triggered by Toaster UI.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: start 'manage.py runbuilds' in the script
Ed Bartosh [Wed, 2 Dec 2015 18:02:41 +0000 (10:02 -0800)] 
toaster: start 'manage.py runbuilds' in the script

Running runbuilds machinery in background allows Toaster to
start builds initiated by toaster UI.

Added runbuilds pid file to the list in webserverKillAll to
kill runbuilds the same way as runserver process.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: make runbuilds to loop
Ed Bartosh [Wed, 2 Dec 2015 18:02:40 +0000 (10:02 -0800)] 
toaster: make runbuilds to loop

Made runbuilds to loop to avoid having a loop in shell code and
initialize heavy Django init machinery every second.

Ignored exceptions to prevent exiting a loop.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: use parent of the build dir
Ed Bartosh [Wed, 2 Dec 2015 18:02:39 +0000 (10:02 -0800)] 
toaster: use parent of the build dir

Assigned TOASTER_DIR to the parent of the build directory.
This should fix local controller crash as it assumes that
TOASTER_DIR is a root of local poky and tries to clone it.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: check for toaster configuration later
Ed Bartosh [Wed, 2 Dec 2015 18:02:38 +0000 (10:02 -0800)] 
toaster: check for toaster configuration later

Moved check for toasterconf.json after check of build environment.
We'll need some variables from build environment to find toasterconf.json
better way.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: remove unused variable
Ed Bartosh [Wed, 2 Dec 2015 18:02:37 +0000 (10:02 -0800)] 
toaster: remove unused variable

Removed variable RUNNING as it's not used anymore
in the toaster script.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: change toasterconf.json logic to use TEMPLATECONF, like oe-setup-builddir
brian avery [Fri, 20 Nov 2015 18:29:34 +0000 (18:29 +0000)] 
toaster: change toasterconf.json logic to use TEMPLATECONF, like oe-setup-builddir

This changes the way we pick a toasterconf.json file so that it
matches the way oe-setup-builddir does it. We now base it on TEMPLATECONF
found in the .templateconf file.

Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: run bitbake the same way
Ed Bartosh [Wed, 2 Dec 2015 18:02:36 +0000 (10:02 -0800)] 
toaster: run bitbake the same way

Run bitbake in toaster script the same way as it's run
by localbuildcontroller.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: set DATABASE_URL in toaster script
Ed Bartosh [Wed, 2 Dec 2015 18:02:35 +0000 (10:02 -0800)] 
toaster: set DATABASE_URL in toaster script

Set environment variable DATABASE_URL in bitbake/bit/toaster
Variable value is obtained by running 'manage.py get-dburl'

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: implement get-dburl command
Ed Bartosh [Wed, 2 Dec 2015 18:02:34 +0000 (10:02 -0800)] 
toaster: implement get-dburl command

Implemented management command to call getDATABASE_URL API.
It will be used to get database url from toaster shell script
by running 'manage.py get-dburl'

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: don't allow to run toaster as a script
Ed Bartosh [Wed, 2 Dec 2015 18:02:33 +0000 (10:02 -0800)] 
toaster: don't allow to run toaster as a script

Removed support of starting toaster as a script.

Sourcing a toaster script becomes the only way to start it.
It's consistent with the way oe build system is started by sourcing
oe-init-build-env. It also returns user back to shell, so user can
continue running builds without having to open new terminal window.

[YOCTO #8279]

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agolib/bb/utils: improve edit_bblayers_conf() handling of bblayers.conf formatting
Paul Eggleton [Fri, 20 Nov 2015 04:11:16 +0000 (17:11 +1300)] 
lib/bb/utils: improve edit_bblayers_conf() handling of bblayers.conf formatting

Make the following improvements to edit_bblayers_conf():

* Support ~ in BBLAYERS entries
* Handle where BBLAYERS items are added over multiple lines with +=
  instead of one single long item

Also add some comments documenting the function arguments and return
values as well as a set of bitbake-selftest tests.

(This function is used by the bitbake-layers add, remove and
layerindex-fetch subcommands, as well as devtool when adding the
workspace layer).

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agolib/bb/utils: fix error in edit_metadata() when deleting first line
Paul Eggleton [Fri, 20 Nov 2015 04:11:15 +0000 (17:11 +1300)] 
lib/bb/utils: fix error in edit_metadata() when deleting first line

If you tried to delete the variable on the first line passed to
edit_metadata() this failed because the logic for trimming extra blank
lines didn't expect the list to be empty at that point - fix that bad
assumption.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agowget.py: parse only <a> tags
Alexander Kanavin [Fri, 4 Dec 2015 11:00:20 +0000 (13:00 +0200)] 
wget.py: parse only <a> tags

For two reasons:
1) The important one: we hit the following bug when doing upstream version checks
on some webpages:
https://bugs.launchpad.net/beautifulsoup/+bug/1471755

2) Also, documentation for beautifulsoup states that memory usage and
speed is improved that way.

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: toastergui tests Add generic test for ToasterTables widget
Michael Wood [Thu, 26 Nov 2015 16:44:35 +0000 (16:44 +0000)] 
toaster: toastergui tests Add generic test for ToasterTables widget

For each of the ToasterTables defined test:
 - Data returned
 - Search
 - Order by
 - Limit
 - Paginate
 - Filter

These tests test that the functions on all tables work, it does not
validate the content of the data in the tables themselves, this needs
to be done in table specific tests.

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: tables Fix invalid field name on NewCustomImagesTable
Michael Wood [Thu, 26 Nov 2015 16:44:34 +0000 (16:44 +0000)] 
toaster: tables Fix invalid field name on NewCustomImagesTable

Correct the field name in the NewCustomImagesTable as it is a Recipe
object it's self and not a container.

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: tables Add default_orderby field where it was missing or unset
Michael Wood [Thu, 26 Nov 2015 16:44:33 +0000 (16:44 +0000)] 
toaster: tables Add default_orderby field where it was missing or unset

This value is used to set the default ordering of the model that is used
for ToasterTables, it is picked up client side to set the ordering
indicator.

[YOCTO #8695]

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: CustomImageRecipe add search_allowed_fields to this model
Michael Wood [Thu, 26 Nov 2015 16:44:32 +0000 (16:44 +0000)] 
toaster: CustomImageRecipe add search_allowed_fields to this model

In order to search the model from the UI some fields must be nominated
as searchable.

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: machines table Fix missing layers information needed for filter
Michael Wood [Thu, 26 Nov 2015 16:44:31 +0000 (16:44 +0000)] 
toaster: machines table Fix missing layers information needed for filter

The current layers information wasn't being passed to the template for
the Select/Add button for the Compatible machines filter.

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: tablejs Make sure click handlers consume click event
Michael Wood [Thu, 26 Nov 2015 15:59:01 +0000 (15:59 +0000)] 
toaster: tablejs Make sure click handlers consume click event

Avoid the click event from propagating and causing strange side effects
in toaster tables.

[YOCTO #8527]
[YOCTO #8148]

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: projectpage Make sure build targets are space separated
Michael Wood [Thu, 26 Nov 2015 14:54:29 +0000 (14:54 +0000)] 
toaster: projectpage Make sure build targets are space separated

Make sure the build targets are space separated when building multiple
targets. Also fix error path now that YOCTO #7995 is resolved.

[YOCTO #8450]

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: builds pages Fix the download cooker log link
Belen Barros Pena [Tue, 10 Nov 2015 17:08:03 +0000 (17:08 +0000)] 
toaster: builds pages Fix the download cooker log link

The 'all builds' page was missing the download icon next to the outcome
icon, which allows you to download a build log from the 'all builds' page.

This patch brings it back. It also adds a check in the project builds page
to make sure the download icon only appears if the build generates a cooker
log, since builds that fail at the build request stage do not generate a
cooker log.

Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: project pages Link to image recipes table in notifications
Belen Barros Pena [Tue, 10 Nov 2015 17:08:02 +0000 (17:08 +0000)] 
toaster: project pages Link to image recipes table in notifications

The project created notifications and the 'Choosea recipe to build' link in
the project page are linking to the software recipes table. Changes them to
link to the image recipes table instead, which is bound to be more useful.

Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: tests: Re-write some cases to make them more maintainable
Ke Zou [Wed, 4 Nov 2015 14:32:22 +0000 (14:32 +0000)] 
toaster: tests: Re-write some cases to make them more maintainable

Signed-off-by: Ke Zou <ke.zou@windriver.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agodata_smart: Only support lowercase OVERRIDES
Richard Purdie [Sun, 11 Oct 2015 09:21:20 +0000 (10:21 +0100)] 
data_smart: Only support lowercase OVERRIDES

Our current OVERRIDES handling means we end up caching and checking for
a lot of possible override combinations which turn out to very unlikely.
A typical example is the SRC_URI variable where we have to check if
"URI" is an override. Having spent many hours working in this code, I've
realised all the actual overrides we use are lower case and our standard
variables are mostly uppercase.

This means we could gain quite some speed advantage if we write this
into the code, that overrides only consist of lowercase characters. This
patch shows how simple this is and the resulting speed gains are
significant. This is a significant change but tests show we don't appear
to have any users of capitals in overrides in any OE-Core metadata.

Before "time bitbake -p":

real 2m4.224s
user 7m32.312s
sys 0m7.116s

After "time bitbake -p":

real 1m26.009s
user 5m10.484s
sys 0m4.640s

This check could also be made conditional however I'm not seeing a need
to do that at present.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agofetch2: Remove crazy code in unpack
Richard Purdie [Tue, 10 Nov 2015 09:56:51 +0000 (09:56 +0000)] 
fetch2: Remove crazy code in unpack

This looks reasonable until you realise self.localpath is a function. Data
expansion of something which isn't a string is the original value so this
code just wastes CPU cycles and makes no sense. Remove it.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agoparse: Don't try to expand __base_depends/__depends
Richard Purdie [Tue, 10 Nov 2015 09:55:49 +0000 (09:55 +0000)] 
parse: Don't try to expand __base_depends/__depends

Trying to expand a variable which isn't a string doesn't make sense.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agocache: Don't try to expand __inherit_data
Richard Purdie [Tue, 10 Nov 2015 09:54:44 +0000 (09:54 +0000)] 
cache: Don't try to expand __inherit_data

Trying to expand a variable which isn't a string doesn't make sense.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: localhostbectrl Pass DATABASE_URL in via the process environment
Elliot Smith [Fri, 13 Nov 2015 15:28:07 +0000 (15:28 +0000)] 
toaster: localhostbectrl Pass DATABASE_URL in via the process environment

Instead of putting the DATABASE_URL as part of the command for launching
the bitbake observer process set it as part of environment.

This fixes two issues 1. Where the value isn't quoted and therefore will be
interpreted in the shell and 2. Anyone being able to see the value of
DATABASE_URL in the process tree.

[YOCTO #8669]

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: Remove the new-build-input button widget
Michael Wood [Fri, 13 Nov 2015 13:48:37 +0000 (13:48 +0000)] 
toaster: Remove the new-build-input button widget

The button required a lot of state maintenance to make sure it
showed up when the project was configured properly, showed correctly
according to the projects known to Toaster, displayed correctly
according to the mode Toaster was in, and was able to be
used to change the current project.

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: projecttopbar Use the project in context to get num builds
Michael Wood [Fri, 13 Nov 2015 13:48:36 +0000 (13:48 +0000)] 
toaster: projecttopbar Use the project in context to get num builds

Use the project in the template context rather than ajax request to get
the number of ended builds.

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: projectpage Disable/Enable build input if we have 0 layers
Michael Wood [Fri, 13 Nov 2015 13:48:35 +0000 (13:48 +0000)] 
toaster: projectpage Disable/Enable build input if we have 0 layers

If we've removed all the layers in the configuration, disable the build
button and build input.

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agotoaster: orm Fix get_number_of_builds to count all apart from IN_PROGRESS
Michael Wood [Fri, 13 Nov 2015 13:48:34 +0000 (13:48 +0000)] 
toaster: orm Fix get_number_of_builds to count all apart from IN_PROGRESS

The count of a project's builds should not include those which are
currently in progress.

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9 years agocodeparser: Only load the codeparser cache once
Richard Purdie [Wed, 11 Nov 2015 16:56:32 +0000 (08:56 -0800)] 
codeparser: Only load the codeparser cache once

The server state gets reset multiple times during startup and currently
we reload the codeparser cache each time. This is pointless and causes
unnecessary interaction time with bitbake.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10 years agotoasterui: Create per-build logs
Elliot Smith [Thu, 29 Oct 2015 11:59:44 +0000 (13:59 +0200)] 
toasterui: Create per-build logs

Rather than relying on bug 8411, which is conveniently creating
separate log files for each of our builds, create our own
log file for each build.

The log files are created in the same tmp directories that
bitbake users, but are timestamped to the millisecond to avoid
name collisions.

Each log file is opened on a ParseStarted event (for builds
triggered by Toaster) or BuildStarted event (for builds on the
command line: Toaster doesn't get the ParseStarted event
for command-line builds).

The log file is closed on the BuildCompleted event, or if the
build fails.

Because we start logging on ParseStarted for Toaster builds,
we're able to capture the "Build Configuration" section which
bitbake writes to output.

[YOCTO #8373]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10 years agobuild/utils: Add BB_TASK_IONICE_LEVEL support
Richard Purdie [Sat, 24 Oct 2015 10:19:06 +0000 (11:19 +0100)] 
build/utils: Add BB_TASK_IONICE_LEVEL support

Similarly to BB_TASK_NICE_LEVEL, add BB_TASK_IONICE_LEVEL which allows the ioprio
of tasks to be adjusted. This is in response to various qemu runtime timeouts
which have been witnessed on the autobuilder, seemingly due to IO starvation (we
already use NICE_LEVEL to adjust tasks). This has a fairly urgent need to deal
with certain 'random' failures we're seeing on the autobuilders in testing.

The format of the data in the variable is BB_TASK_IONICE_LEVEL = "<class>.<prio>".

For <class>, 2 is best effort (the default), 1 is real time and 3 is idle. You'd
need superuser privileges to use realtime. The <prio> value is a default of 4,
and can be set between 0 and 7 with 7 being lowest priority and 0 the highest.
The user can set this freely with normal privileges

Note that in order for this to take effect, you need the cfq scheduler selected
for the backing block device.

We could use nice wrapper functions for ioprio from modules like psutil however
that would complicate bitbake dependencies. This version has some magic numbers
but works on the main 32 and 64 bit x86 build architectures and can easily be
extended if ever needed. When we move to python 3.x, we can likely replace this
with standard calls.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10 years agocooker: Ensure BB_CONSOLE remains correct over server resets
Richard Purdie [Sun, 11 Oct 2015 09:22:26 +0000 (10:22 +0100)] 
cooker: Ensure BB_CONSOLE remains correct over server resets

The console log data is written to is created at console initialisation
time and does not change over reset events. This ensures the
BB_CONSOLELOG value is correct over such resets by preserving it.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10 years agobb/ui: Use getSetVariable command for BB_CONSOLELOG
Richard Purdie [Sun, 11 Oct 2015 09:12:42 +0000 (10:12 +0100)] 
bb/ui: Use getSetVariable command for BB_CONSOLELOG

Metadata can define BB_CONSOLELOG as containing ${DATETIME} and
this can get expanded to a different value each time the variable
is read. In the case of BB_CONSOLELOG, this behaviour is not
desireable.

The values of DATE/TIME are locked down at build time but this is too
late for the purposes of ensuring the system can figure out the real
value of BB_CONSOLELOG.

The best way to do this is to set the variable into the datastore, thereby
preserving its value.

[YOCTO #8411]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10 years agocommand: Add getSetVariable command
Richard Purdie [Sun, 11 Oct 2015 09:11:47 +0000 (10:11 +0100)] 
command: Add getSetVariable command

There are some use cases where we want to read a variable but also
set the variable to the value read, effectively locking in any
expansion of it. This adds such a command.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10 years agobitbake-user-manual: Added new description for BB_TASK_IONICE_LEVEL
Scott Rifenbark [Tue, 27 Oct 2015 16:15:10 +0000 (09:15 -0700)] 
bitbake-user-manual: Added new description for BB_TASK_IONICE_LEVEL

Added a new variable description here for this variable.

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10 years agobitbake-user-manual: Added BBTARGETS variable description.
Scott Rifenbark [Tue, 29 Sep 2015 19:35:41 +0000 (12:35 -0700)] 
bitbake-user-manual: Added BBTARGETS variable description.

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10 years agotoaster: templates Add meaningful title tags
Belen Barros Pena [Wed, 28 Oct 2015 14:22:05 +0000 (14:22 +0000)] 
toaster: templates Add meaningful title tags

Our title tags are all over the place, and have no relation to the page
content. This commit adds a meaningful title tag to each Toaster page.

Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10 years agotoaster: orm Fix restrictive LogMessage message length
Michael Wood [Thu, 22 Oct 2015 10:22:28 +0000 (11:22 +0100)] 
toaster: orm Fix restrictive LogMessage message length

Log messages can be quite long so use a TextField rather than a char
field with max length of 240. mySQL is especially picky about field
lengths and will cause an exception if the log is too long.

[YOCTO #8475]

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10 years agotoaster: Remove all navigation when not in build mode
Elliot Smith [Sat, 17 Oct 2015 17:45:53 +0000 (10:45 -0700)] 
toaster: Remove all navigation when not in build mode

The user is redirected to the all builds page or all projects
page from the landing page, regardless of mode.

In build mode, this makes sense; but in analysis mode, we are
restricting the view to just the cli builds project. This means
that "all projects" and "all builds" only contains items relating
to this one project.

Modify the landing page so it redirects to the project builds page
for the cli builds project when not in build mode. Also remove
navigation elements which are irrelevant when not in build mode.

[YOCTO #8514]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10 years agotoaster: Run tests in build mode
Elliot Smith [Sat, 17 Oct 2015 17:45:52 +0000 (10:45 -0700)] 
toaster: Run tests in build mode

Now that the UI content is conditional on whether BUILD_MODE
is active, modify the existing tests so that they run in
this mode by default.

[YOCTO #8514]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10 years agotoaster: Hide builds for non-cli projects in analysis mode
Elliot Smith [Sat, 17 Oct 2015 17:45:51 +0000 (10:45 -0700)] 
toaster: Hide builds for non-cli projects in analysis mode

The "latest builds" sections of the "all builds" page
show builds for all projects. This is not appropriate
for analysis mode, where we can only affect the command-line
builds project.

Modify the "latest builds" section to only show builds for
the command line builds project if in analysis mode.

Also rationalise where we get the queryset of latest builds from:
we have a _get_latest_builds() function which was being used
to get the latest builds in most places, but not all.

Also modify _get_latest_builds() to sort by started_on, rather
than primary key, as assuming that a higher primary key value equates
with later start time is incorrect.

[YOCTO #8514]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10 years agotoaster: Hide top bar buttons in analysis mode
Elliot Smith [Sat, 17 Oct 2015 17:45:50 +0000 (10:45 -0700)] 
toaster: Hide top bar buttons in analysis mode

The "new build" and "new project" buttons are irrelevant in
analysis mode, as you can't start a build or a project.

Hide these buttons if not in BUILD_MODE.

[YOCTO #8514]

Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>