Event information model for Toaster: Difference between revisions
From Yocto Project
Jump to navigationJump to search
PaulEggleton (talk | contribs) (Add builds information) |
m (moved Web Hob Event information to Event information model for Toaster: Project name change.) |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[Category: | [[Category:Toaster]] | ||
This is the information we need for completing the tables of the | This is the information we need for completing the tables of the Toaster database. | ||
==== | ==== BUILD ==== | ||
:uuid : <span style="color: green">DONE</span> : unique task id | :uuid : <span style="color: green">DONE</span> : unique task id | ||
Line 10: | Line 10: | ||
:distro : <span style="color: green">DONE</span> : # variable - DISTRO | :distro : <span style="color: green">DONE</span> : # variable - DISTRO | ||
:distro_version : <span style="color: green">DONE</span> : # variable - DISTRO_VERSION | :distro_version : <span style="color: green">DONE</span> : # variable - DISTRO_VERSION | ||
:started_on : <span style="color: green">DONE</span> # use BuildStarted event | :started_on : <span style="color: green">DONE</span> # use BuildStarted event | ||
:completed_on <span style="color: green">DONE</span> # use BuildCompleted event | :completed_on <span style="color: green">DONE</span> # use BuildCompleted event | ||
Line 21: | Line 17: | ||
:cpu_usage : <span style="color: red">N/A</span> # it's in the build stats; we don't have a meaning | :cpu_usage : <span style="color: red">N/A</span> # it's in the build stats; we don't have a meaning | ||
:disk_io : <span style="color: red">N/A</span> # it's in the build stats; we don't have a meaning | :disk_io : <span style="color: red">N/A</span> # it's in the build stats; we don't have a meaning | ||
: | :cooker_log_path : <span style="color: green">DONE</span> # main cooker log - composed of all log events over the set log level (see knotty) | ||
:build_name : <span style="color: green">DONE</span> # variable - BUILDNAME | :build_name : <span style="color: green">DONE</span> # variable - BUILDNAME | ||
:bitbake_version : <span style="color: green">DONE</span> # variable - BB_VERSION | :bitbake_version : <span style="color: green">DONE</span> # variable - BB_VERSION | ||
! This has been removed for the moment -> output : <span style="color: red">N/A</span> # list of generated files; downloads - please check how Hob does this | |||
==== | |||
==== TASK ==== | |||
:uuid : <span style="color: green">DONE</span> -> generated at the beginning of each build. | :uuid : <span style="color: green">DONE</span> -> generated at the beginning of each build. | ||
:order : <span style="color: green">DONE</span> -> counted on each TaskStarted event | :order : <span style="color: green">DONE</span> -> counted on each TaskStarted event | ||
:task_executed : <span style="color: green">DONE</span> -> set to True for each TaskStarted event | :task_executed : <span style="color: green">DONE</span> -> set to True for each TaskStarted event | ||
:outcome : <span style="color: green">DONE</span> | :outcome : <span style="color: green">DONE</span> -> get from TaskFailed / TaskSucceeded | ||
:sstate_checksum : <span style="color: red">N/A</span> | :sstate_checksum : <span style="color: red">N/A</span> | ||
:path_to_sstate_obj : <span style="color: red">N/A</span> | :path_to_sstate_obj : <span style="color: red">N/A</span> | ||
Line 38: | Line 34: | ||
:task_name : <span style="color: green">DONE</span> -> retrieved from event._task | :task_name : <span style="color: green">DONE</span> -> retrieved from event._task | ||
*index on recipe / task_name | *index on recipe / task_name | ||
:source_url : <span style="color: red">N/A</span> | :source_url : <span style="color: red">N/A</span> | ||
:log_file: <span style="color: red"> | :log_file: <span style="color: red">DONE</span> -> TaskFailed event reports this, need to do same for TaskSucceeded OR report it on TaskStarted | ||
:work_directory : <span style="color: | :work_directory : <span style="color: green">DONE</span> -> WORKDIR variable for recipe | ||
:script_type : <span style="color: red">N/A</span> | :script_type : <span style="color: red">N/A</span> | ||
:file_path : <span style="color: red">N/A</span> | :file_path : <span style="color: red">N/A</span> | ||
:line_number : <span style="color: red">N/A</span> | :line_number : <span style="color: red">N/A</span> | ||
:py_stack_trace : <span style="color: red">N/A</span> | :py_stack_trace : <span style="color: red">N/A</span> | ||
:disk_io : <span style="color: | :disk_io : <span style="color: green">DONE</span> -> gather from buildstats | ||
:cpu_usage : <span style="color: | :cpu_usage : <span style="color: green">DONE</span> -> gather from buildstats | ||
:elapsed_time : <span style="color: green">DONE</span> -> difference between started and finished time | :elapsed_time : <span style="color: green">DONE</span> -> difference between started and finished time | ||
:errors_no : <span style="color: red">N/A</span> | :errors_no : <span style="color: red">N/A</span> | ||
:warnings_no : <span style="color: red">N/A</span> | :warnings_no : <span style="color: red">N/A</span> | ||
:error : <span style="color: red">N/A</span> | :error : <span style="color: red">N/A</span> | ||
:warning : <span style="color: red">N/A</span> | :warning : <span style="color: red">N/A</span> | ||
:sstate_result : <span style="color: | :sstate_result : <span style="color: green">DONE</span> -> get from result of setscene task execution (mapped using sstate_name of task as defined in the metadata) | ||
:diffsigs : <span style="color: red">N/A</span> | :diffsigs : <span style="color: red">N/A</span> [drop this] | ||
==== TASK DEPENDENCY ==== | ==== TASK DEPENDENCY ==== | ||
: | :task : <span style="color: red">N/A</span> | ||
:depends_on : <span style="color: red">N/A</span> # still a task_id | :depends_on : <span style="color: red">N/A</span> # still a task_id | ||
==== | ==== TARGET ==== | ||
: | :build : <span style="color: red">N/A</span> # of build that generated the image | ||
:is_image : <span style="color: red">N/A</span> | :is_image : <span style="color: red">N/A</span> | ||
! TBC | |||
==== | ==== ARTIFACT ==== | ||
: | :build : <span style="color: red">N/A</span> | ||
:target_id : <span style="color: red">N/A</span> | :target_id : <span style="color: red">N/A</span> | ||
:file_name : <span style="color: red">N/A</span> | :file_name : <span style="color: red">N/A</span> | ||
:file_size : <span style="color: red">N/A</span> | :file_size : <span style="color: red">N/A</span> | ||
==== | ==== PACKAGE IN IMAGE ==== | ||
: | :package : <span style="color: green">N/A</span> -> gather from buildhistory? | ||
: | :target : <span style="color: green">N/A</span> -> gather from buildhistory? | ||
==== | ==== PACKAGE ==== | ||
: | :recipe : <span style="color: green">DONE</span> -> gather from pkgdata # recipe that generated this package | ||
:name : <span style="color: green">DONE</span> -> gather from pkgdata | |||
:name : <span style="color: | :version : <span style="color: green">DONE</span> -> gather from pkgdata | ||
:version : <span style="color: | :size : <span style="color: green">DONE</span> -> gather from pkgdata | ||
:size : <span style="color: | |||
==== PACKAGE | ==== PACKAGE DEPENDENCY ==== | ||
: | :package : <span style="color: green">DONE</span> -> gather from buildhistory? | ||
:depends_on : <span style="color: | :depends_on : <span style="color: green">DONE</span> -> gather from buildhistory? | ||
==== FILELIST ==== | ==== FILELIST ==== | ||
: | :package : <span style="color: green">DONE</span> # id in the list of packages | ||
: | :complete_file_path : <span style="color: green">DONE</span> -> pkgdata has this | ||
: | :file_size : <span style="color: green">DONE</span> -> 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 ==== | ||
# This information will need to be read in the same manner that hob reads it | |||
:name : <span style="color: red">N/A</span> | :name : <span style="color: red">N/A</span> | ||
:version : <span style="color: red">N/A</span> | :version : <span style="color: red">N/A</span> | ||
:layer : <span style="color: | :layer : <span style="color: green">DONE</span> -> determine from longest path match in BBLAYERS | ||
:summary : <span style="color: red">N/A</span> | :summary : <span style="color: red">N/A</span> | ||
:description : <span style="color: red">N/A</span> | :description : <span style="color: red">N/A</span> | ||
Line 101: | Line 97: | ||
:homepage : <span style="color: red">N/A</span> ? | :homepage : <span style="color: red">N/A</span> ? | ||
:bugtracker : <span style="color: red">N/A</span> ? | :bugtracker : <span style="color: red">N/A</span> ? | ||
:author : <span style="color: red">N/A</span> | :author : <span style="color: red">N/A</span> # drop this, it's not consistently available | ||
:file_path : <span style="color: red">N/A</span> ? | :file_path : <span style="color: red">N/A</span> ? | ||
==== RECIPE DEPENDENCY ==== | ==== RECIPE DEPENDENCY ==== | ||
: | :recipe : <span style="color: green">DONE</span> -> FK to recipe | ||
: | :depends_on : <span style="color: green">N/A</span> -> determine from DEPENDS variable (see above) | ||
==== LAYER ==== | |||
:name : <span style="color: green">DONE</span> -> just take the directory name | |||
:local_path : <span style="color: green">DONE</span> -> get from BBLAYERS or look at how do_show_layers works in bitbake-layers | |||
:layer_index_url: <span style="color: green">DONE</span> -> 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 : <span style="color: green">DONE</span> -> FK to build | ||
: | :layer : <span style="color: green">DONE</span> -> FK to layer (auto-created if it doesn't exist) | ||
: | :branch : <span style="color: green">DONE</span> -> will need to query git for this (as get_layers_branch_rev() in classes/base.bbclass does) | ||
: | :commit : <span style="color: green">DONE</span> -> see above | ||
: | :priority : <span style="color: green">DONE</span> -> look at how do_show_layers works in bitbake-layers | ||
==== | ==== VARIABLE ==== | ||
: | :build : <span style="color: green">DONE</span> -> FK to build | ||
:variable_name : <span style="color: | :variable_name : <span style="color: green">DONE</span> -> need to run equivalent of bitbake -e | ||
:variable_value : <span style="color: | :variable_value : <span style="color: green">DONE</span> -> need to run equivalent of bitbake -e | ||
:file : <span style="color: | :file : <span style="color: green">DONE</span> -> need to run equivalent of bitbake -e with history enabled # a single file name where the variable is set | ||
:changed : <span style="color: red">N/A</span> | :changed : <span style="color: red">N/A</span> # needs design clarification - it's not really practical to calculate this as a boolean | ||
:human_readable_name : <span style="color: | :human_readable_name : <span style="color: green">DONE</span> -> get from documentation.conf (will need updating) | ||
:description : <span style="color: red">N/A</span> | :description : <span style="color: red">N/A</span> # Drop this, we will provide a link to the variable glossary in the manual based on the name | ||
==== | ==== MACHINE ==== | ||
:name : <span style="color: red">N/A</span> | :name : <span style="color: red">N/A</span> -> MACHINE variable | ||
:description : <span style="color: | :description : <span style="color: green">DONE</span> -> probably need to extract this from the machine .conf file as the OE layer index does |
Latest revision as of 13:19, 15 October 2013
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
- 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