Nokia Networks Home

Nokia nmake Product Builder

Quick Links

Related Products

Tool Repository

[ tool index ]

sunburst.py

[sunburst]

Display targets and job times in a sunburst chart.

Download: buildlogrpts-20110510.tar.gz (zip)

Description

sunburst.py is a Python script that generates a sunburst view of a build. In a sunburst view, triggered targets or Makefiles appear as wedges distributed radially around wedges representing parent Makefiles. Interior wedges represent Makefiles and edge (or leaf) wedges represent triggered targets. The circle in the center of the diagram represents the top level Makefile. Wedges are colored according to their parent Makefile, so that sibling makefiles/targets share the same color.

Features of the sunburst view include:

The script outputs an HTML file that may be viewed in any Javascript/SVG compliant web browser. The actual HTML formatting is generated from a template file for easy customization.

Requirements

Usage and Options

sunburst.py [ --help ] [ -u URL ] [ -o OUTPUT ] [ -t TEMPLATE ] filename.xml

-h, --help
Show usage statement and list options
-u URL, --url=URL
Set weblog base url
-o OUTPUT, --output=OUTPUT
set output file name
-t TEMPLATE, --template=TEMPLATE
set template file name

Example Command Line

sunburst.py makelog.xml

Example Output

Sunburst Report: writing output to blexample_sunburst.html

Here is the generated web page: blexample_sunburst.html (png screen shot)

Variations

The following variations produce different style graphs and are included in the download package. They have the same requirements as sunburst.py.

Script Description

The logic for the report is defined in function SunburstReport.run() which calls mutually recursive functions process() and value() to build up a recursive data structure which is assigned to variable data. The values for elements corresponding to a Makefile recurse to lower level elements. Multivariate build data is stored for each leaf target element: stored data includes job duration, a URL fragment linking to detailed log data, and job exit code. The standard Python json library is used to convert the data to JSON notation for output as javascript. Finally, the HTML template is read in and variable parts are substituted into the template.

Last Update: Friday,12-Aug-2016 12:16:53 EDT