107 lines
3.1 KiB
ReStructuredText
107 lines
3.1 KiB
ReStructuredText
:title:Introduction
|
|
|
|
Turbo Hipster
|
|
=============
|
|
|
|
Turbo Hipster is a gearman worker designed to run tests using zuul
|
|
as the gearman client. It is primarily aimed at running openstack
|
|
continuous integration tests but can be used to automate any tests
|
|
with zuul.
|
|
|
|
Overview
|
|
--------
|
|
|
|
The zuul server receives jobs from a trigger requesting particular
|
|
jobs/tests to be ran. Turbo Hipster is able to provide a worker for
|
|
each of those jobs or a subset and report the success/failure back to
|
|
zuul. zuul will then collate responses from multiple workers and
|
|
build a report.
|
|
|
|
Typical workflow diagram
|
|
------------------------
|
|
|
|
.. graphviz::
|
|
|
|
digraph overview {
|
|
subgraph cluster_1 {
|
|
label = "Gerrit"
|
|
style = filled;
|
|
color = lightgrey;
|
|
node [style=filled,color=white];
|
|
|
|
g000 [shape=Mdiamond label="start"];
|
|
g001 [shape=box, label="receive event"];
|
|
g002 [shape=box, label="notify listeners"];
|
|
|
|
g000 -> g001;
|
|
g001 -> g002;
|
|
g002 -> g001;
|
|
}
|
|
|
|
subgraph cluster_2 {
|
|
label = "Zuul pipeline";
|
|
color = blue
|
|
node [style=filled];
|
|
|
|
z000 [shape=Mdiamond label="start"];
|
|
z001 [shape=box, label="register gearman server"];
|
|
z002 [shape=box, label="register launchers"];
|
|
z003 [shape=box, label="listen for events"];
|
|
z004 [shape=box, label="receive event"];
|
|
z005 [shape=box, label="request jobs"];
|
|
z006 [shape=box, label="receive response"];
|
|
z007 [shape=box, label="send report"];
|
|
|
|
z000 -> z001 -> z002 -> z003 -> z004 -> z005;
|
|
z006 -> z007;
|
|
|
|
}
|
|
|
|
subgraph cluster_3 {
|
|
label = "Gearman";
|
|
style = filled;
|
|
color = lightgrey;
|
|
node [style=filled,color=white];
|
|
|
|
gm001 [shape=box, label="receive job method"];
|
|
gm002 [shape=box, label="request worker do method"];
|
|
gm003 [shape=box, label="receive results"];
|
|
gm004 [shape=box, label="return results"];
|
|
|
|
gms000 [label="register client"];
|
|
gms001 [label="register worker"];
|
|
gms002 [label="register method"];
|
|
|
|
gm001 -> gm002;
|
|
gm003 -> gm004;
|
|
}
|
|
|
|
subgraph cluster_4 {
|
|
label = "Turbo Hipster";
|
|
color = blue
|
|
node [style=filled];
|
|
|
|
th000 [shape=Mdiamond label="start"];
|
|
th001 [shape=box, label="register as worker"];
|
|
th002 [shape=box, label="find available tasks"];
|
|
th003 [shape=box, label="register available job methods"];
|
|
|
|
ths001 [shape=box, label="receive method request"];
|
|
ths002 [shape=box, label="run task"];
|
|
ths003 [shape=box, label="send results"];
|
|
|
|
th000 -> th001 -> th002 -> th003;
|
|
ths001 -> ths002 -> ths003;
|
|
}
|
|
|
|
z001 -> gms000;
|
|
z005 -> gm001;
|
|
gm004 -> z006;
|
|
z003 -> g002 [dir=both, style=dotted];
|
|
th001 -> gms001;
|
|
th003 -> gms002;
|
|
gm002 -> ths001;
|
|
ths003 -> gm003;
|
|
|
|
}
|