Event information model for Toaster

From Yocto Project
Jump to navigationJump to search


This is the information we need for completing the tables of the Toaster database.

BUILD

uuid : DONE : unique task id
target : N/A : # OneToMany to the targets table
machine : DONE : # index into all the machines that we support ? # we can ask bitbake for the MACHINE variable
distro : DONE : # variable - DISTRO
distro_version : DONE : # variable - DISTRO_VERSION
started_on : DONE # use BuildStarted event
completed_on DONE # use BuildCompleted event
outcome : DONE # We can grab this at the end of all commands by checking the errors number or the return value.
number_of_errors DONE # total number of log events with level of ERROR (see knotty)
number_of_warnings DONE # total number of log events with level of WARNING (see knotty)
cpu_usage : N/A # it's in the build stats; we don't have a meaning
disk_io : N/A # it's in the build stats; we don't have a meaning
cooker_log_path : DONE # main cooker log - composed of all log events over the set log level (see knotty)
build_name : DONE # variable - BUILDNAME
bitbake_version : DONE # variable - BB_VERSION

! This has been removed for the moment -> output : N/A # list of generated files; downloads - please check how Hob does this


TASK

uuid : DONE -> generated at the beginning of each build.
order : DONE -> counted on each TaskStarted event
task_executed : DONE -> set to True for each TaskStarted event
outcome : DONE -> get from TaskFailed / TaskSucceeded
sstate_checksum : N/A
path_to_sstate_obj : N/A
recipe : DONE -> retrieved from event._package
task_name : DONE -> retrieved from event._task
  • index on recipe / task_name
source_url : N/A
log_file: DONE -> TaskFailed event reports this, need to do same for TaskSucceeded OR report it on TaskStarted
work_directory : DONE -> WORKDIR variable for recipe
script_type : N/A
file_path : N/A
line_number : N/A
py_stack_trace : N/A
disk_io : DONE -> gather from buildstats
cpu_usage : DONE -> gather from buildstats
elapsed_time : DONE -> difference between started and finished time
errors_no : N/A
warnings_no : N/A
error : N/A
warning : N/A
sstate_result : DONE -> get from result of setscene task execution (mapped using sstate_name of task as defined in the metadata)
diffsigs : N/A [drop this]

TASK DEPENDENCY

task : N/A
depends_on : N/A # still a task_id

TARGET

build : N/A # of build that generated the image
is_image : N/A

! TBC

ARTIFACT

build : N/A
target_id : N/A
file_name : N/A
file_size : N/A

PACKAGE IN IMAGE

package : N/A -> gather from buildhistory?
target : N/A -> gather from buildhistory?

PACKAGE

recipe : DONE -> gather from pkgdata # recipe that generated this package
name : DONE -> gather from pkgdata
version : DONE -> gather from pkgdata
size : DONE -> gather from pkgdata

PACKAGE DEPENDENCY

package : DONE -> gather from buildhistory?
depends_on : DONE -> gather from buildhistory?

FILELIST

package : DONE # id in the list of packages
complete_file_path : DONE -> pkgdata has this
file_size : DONE -> this will need to be gathered at package time. Perhaps pkgdata should be extended to reformat the file listing such that we can also include sizes.

RECIPE

  1. This information will need to be read in the same manner that hob reads it
name : N/A
version : N/A
layer : DONE -> determine from longest path match in BBLAYERS
summary : N/A
description : N/A
section : N/A  ?
license : N/A
licensing info: N/A ?
homepage : N/A  ?
bugtracker : N/A  ?
author : N/A # drop this, it's not consistently available
file_path : N/A  ?

RECIPE DEPENDENCY

recipe : DONE -> FK to recipe
depends_on : N/A -> determine from DEPENDS variable (see above)

LAYER

name : DONE -> just take the directory name
local_path : DONE -> get from BBLAYERS or look at how do_show_layers works in bitbake-layers
layer_index_url: DONE -> we may have to guess this based on the name if we must include it since this info is not stored explicitly anywhere

! TBC

BUILD_LAYER

build : DONE -> FK to build
layer : DONE -> FK to layer (auto-created if it doesn't exist)
branch : DONE -> will need to query git for this (as get_layers_branch_rev() in classes/base.bbclass does)
commit : DONE -> see above
priority : DONE -> look at how do_show_layers works in bitbake-layers

VARIABLE

build : DONE -> FK to build
variable_name : DONE -> need to run equivalent of bitbake -e
variable_value : DONE -> need to run equivalent of bitbake -e
file : DONE -> need to run equivalent of bitbake -e with history enabled # a single file name where the variable is set
changed : N/A # needs design clarification - it's not really practical to calculate this as a boolean
human_readable_name : DONE -> get from documentation.conf (will need updating)
description : N/A # Drop this, we will provide a link to the variable glossary in the manual based on the name

MACHINE

name : N/A -> MACHINE variable
description : DONE -> probably need to extract this from the machine .conf file as the OE layer index does