Add a unique, immutable broker run ID to each run, in addition to the
adapter run ID that may not always be available, and is not guaranteed to be unique.
Use inter-thread channels for threads to notify other threads those other threads have work to do. Event adding thread notifies event processing thread that there are new events, and the event processing thread notifies the report page generation thread that a new run has finished. In addition, the reporting thread reports after a while whether there are any new runs or not, so that the page time stamp gets updated.
13 files changed
+345
-192
17828919
→
bdad79d4
modified ci-broker.md
@@ -230,7 +230,7 @@ when I run cibtool --db ci-broker.db event list
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -871,4 +871,7 @@ then stdout is exactly ""
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
modified src/adapter.rs
@@ -18,6 +18,7 @@ use std::{
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -50,15 +51,21 @@ impl Adapter {
|
|
|
|
|
|
| - | |
| + | |
|
|
| + | |
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -99,6 +106,7 @@ impl Adapter {
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -113,6 +121,7 @@ impl Adapter {
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -204,18 +213,22 @@ pub enum AdapterError {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -223,6 +236,12 @@ mod test {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -250,8 +269,9 @@ echo '{"response":"finished","result":"success"}'
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -271,8 +291,9 @@ echo '{"response":"finished","result":"failure"}'
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -299,8 +320,9 @@ exit 1
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -320,8 +342,9 @@ kill -9 $BASHPID
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -345,8 +368,9 @@ kill -9 $BASHPID
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -368,8 +392,9 @@ kill -9 $BASHPID
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -390,8 +415,9 @@ echo '{"response":"finished","result":"success","bad":"field"}'
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -414,8 +440,9 @@ echo '{"response":"finished","result":"success"}'
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -442,8 +469,9 @@ echo '{"response":"finished","result":"success"}'
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -462,8 +490,9 @@ echo '{"response":"finished","result":"success"}'
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -490,8 +519,9 @@ echo '{"response":"finished","result":"success"}'
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -522,8 +552,9 @@ echo '{"response":"finished","result":"success"}'
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
modified src/bin/cib.rs
@@ -19,6 +19,7 @@ use radicle_ci_broker::{
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -111,7 +112,9 @@ struct InsertCmd {}
|
|
|
|
|
|
| + | |
|
|
| + | |
|
|
|
|
|
@@ -146,7 +149,14 @@ impl QueuedCmd {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| + | |
| + | |
|
|
|
|
|
@@ -167,7 +177,11 @@ struct ProcessEventsCmd {}
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
|
| + | |
|
|
|
|
|
@@ -188,7 +202,7 @@ impl ProcessEventsCmd {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -204,6 +218,8 @@ impl ProcessEventsCmd {
|
|
|
|
|
|
| + | |
| + | |
|
|
|
|
|
modified src/bin/cibtool.rs
@@ -30,6 +30,7 @@ use radicle_ci_broker::{
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -551,9 +552,9 @@ enum RunSubCmd {
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -617,7 +618,10 @@ impl AddRun {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -628,7 +632,7 @@ impl AddRun {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -638,6 +642,9 @@ impl AddRun {
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -645,16 +652,22 @@ impl ListRuns {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -717,7 +730,10 @@ impl ReportCmd {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified src/broker.rs
@@ -17,7 +17,7 @@ use radicle::prelude::RepoId;
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -68,7 +68,7 @@ impl Broker {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -99,12 +99,13 @@ impl Broker {
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -122,14 +123,7 @@ impl Broker {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
modified src/db.rs
@@ -60,7 +60,7 @@ impl Db {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -294,7 +294,7 @@ impl Db {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -304,7 +304,7 @@ impl Db {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -354,7 +354,7 @@ impl Db {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -387,13 +387,27 @@ impl Db {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -411,6 +425,31 @@ impl Db {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -584,12 +623,12 @@ pub enum DbError {
|
|
|
|
|
|
| - | |
| - | |
| - | |
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -679,14 +718,14 @@ impl DbError {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified src/lib.rs
@@ -11,6 +11,7 @@ pub mod config;
|
|
|
|
|
|
| + | |
|
|
|
|
|
modified src/msg.rs
@@ -77,6 +77,13 @@ impl fmt::Display for RunId {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
added src/notif.rs
@@ -0,0 +1,47 @@
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
modified src/pages.rs
@@ -11,8 +11,8 @@ use std::{
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -27,6 +27,7 @@ use crate::{
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -86,16 +87,7 @@ impl PageBuilder {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -197,8 +189,25 @@ impl PageData {
|
|
|
|
|
|
| + | |
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -359,16 +368,6 @@ impl PageData {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -382,14 +381,29 @@ impl PageData {
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
| - | |
| - | |
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -455,56 +469,25 @@ impl PageData {
|
|
|
|
|
|
| - | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
|
|
|
|
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
| + | |
|
|
|
|
|
@@ -518,71 +501,67 @@ impl StatusPage {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| + | |
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -592,16 +571,6 @@ impl StatusPage {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
modified src/queueadd.rs
@@ -7,6 +7,7 @@ use log::{debug, info};
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -14,6 +15,7 @@ pub struct QueueAdderBuilder {
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -22,9 +24,15 @@ impl QueueAdderBuilder {
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -45,6 +53,7 @@ pub struct QueueAdder {
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -76,7 +85,7 @@ impl QueueAdder {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -85,11 +94,17 @@ impl QueueAdder {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -105,4 +120,7 @@ pub enum AdderError {
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
modified src/queueproc.rs
@@ -2,28 +2,25 @@
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| - | |
| + | |
|
|
|
|
|
|
| + | |
|
|
|
|
| - | |
| - | |
|
|
|
|
|
|
|
|
| + | |
| + | |
|
|
|
|
|
@@ -32,9 +29,21 @@ impl QueueProcessorBuilder {
|
|
|
|
|
|
| + | |
| + | |
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -50,6 +59,8 @@ pub struct QueueProcessor {
|
|
|
|
|
|
| + | |
| + | |
|
|
|
|
|
@@ -58,19 +69,14 @@ impl QueueProcessor {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -128,10 +134,6 @@ impl QueueProcessor {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -151,6 +153,9 @@ pub enum QueueError {
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
|
|
|
|
modified src/run.rs
@@ -9,6 +9,7 @@ use crate::msg::{Revision, RunId, RunResult};
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -23,6 +24,7 @@ impl Run {
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -54,6 +56,11 @@ impl Run {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|