diff --git a/extra/mason/server/server.factor b/extra/mason/server/server.factor index 1b00c16576..4bec806b82 100644 --- a/extra/mason/server/server.factor +++ b/extra/mason/server/server.factor @@ -78,6 +78,9 @@ counter "COUNTER" { [ [ [ clean-git-id>> ] [ release-git-id>> ] bi = not ] filter ] tri ; +: os/cpu ( builder -- string ) + [ os>> ] [ cpu>> ] bi "/" glue ; + : mason-db ( -- db ) "resource:mason.db" ; : with-mason-db ( quot -- ) diff --git a/extra/mason/server/watchdog/authors.txt b/extra/mason/server/watchdog/authors.txt new file mode 100644 index 0000000000..1901f27a24 --- /dev/null +++ b/extra/mason/server/watchdog/authors.txt @@ -0,0 +1 @@ +Slava Pestov diff --git a/extra/mason/server/watchdog/watchdog.factor b/extra/mason/server/watchdog/watchdog.factor new file mode 100644 index 0000000000..9a312407c9 --- /dev/null +++ b/extra/mason/server/watchdog/watchdog.factor @@ -0,0 +1,36 @@ +! Copyright (C) 2010 Slava Pestov. +! See http://factorcode.org/license.txt for BSD license. +USING: kernel math mason.email mason.server math.parser sequences +xml.syntax xml.writer ; +IN: mason.server.watchdog + +: crashed-builder-body ( crashed-builders -- string content-type ) + [ os/cpu [XML
  • <->
  • XML] ] map + + +

    Machines which have not sent a heartbeat for several hours:

    + + Dashboard + + + XML> xml>string + "text/html" ; + +: s ( n before after -- string ) + pick 1 > [ "s" append ] when + [ number>string ] 2dip surround ; + +: crashed-builder-subject ( crashed-builders -- string ) + length "Take note: " " crashed build machine" s ; + +: send-crashed-builder-email ( crashed-builders -- ) + [ crashed-builder-body ] + [ crashed-builder-subject ] bi + mason-email ; + +: check-builders ( -- ) + [ + funny-builders 2drop + [ send-crashed-builder-email ] unless-empty + ] with-mason-db ; diff --git a/extra/webapps/mason/dashboard/dashboard.factor b/extra/webapps/mason/dashboard/dashboard.factor index 2bd92879cb..82002778f3 100644 --- a/extra/webapps/mason/dashboard/dashboard.factor +++ b/extra/webapps/mason/dashboard/dashboard.factor @@ -6,7 +6,7 @@ IN: webapps.mason.downloads : builder-list ( seq -- xml ) [ - [ package-url ] [ [ os>> ] [ cpu>> ] bi "/" glue ] bi + [ package-url ] [ os/cpu ] bi [XML
  • ><->
  • XML] ] map [ [XML

    No machines.

    XML] ]