All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Jackson <ian.jackson@eu.citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>,
	Ian Campbell <ian.campbell@citrix.com>
Subject: [OSSTEST PATCH 1/9] README.dev: Document the blessings
Date: Thu, 17 Dec 2015 17:06:00 +0000	[thread overview]
Message-ID: <1450371968-27997-1-git-send-email-ian.jackson@eu.citrix.com> (raw)

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
 README.dev |  101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 101 insertions(+)

diff --git a/README.dev b/README.dev
index 65ec111..879af60 100644
--- a/README.dev
+++ b/README.dev
@@ -232,3 +232,104 @@ probably are after a reboot) by looking for processes relating to the
 lists flight,job combinations and then:
 
 $ ./mg-hosts previoustasks --clear
+
+
+Flight blessings and the blessed-* host flags
+=============================================
+
+Both flights and hosts have a `blessing'.
+
+Blessings are used:
+
+ * To avoid accidentally tools operating on flights which are in the
+   wrong phase of their existence.
+
+ * To control which automatic archaeologists will look at which
+   flights.  (Archeaology tools take arguments to control which
+   blessings they will consider.)
+
+ * To control which hosts are considered suitable for use with which
+   flight.  (Flights with blessing `foo' use only hosts which have
+   flag `blessed-foo'.)
+
+Each flight has a `blessing' and an `intended blessing'.  The
+`intended blessing' is what the flight is going to be blessed as when
+its execution has completed.  The intended blessing controls host
+allocation.
+
+(Normally the `intended blessing' is the same as the bless argument to
+sg-execute-flight aka the -B argument to mg-execute-flight.)
+
+These are the principal (intended) blessings:
+
+ * `real': Flights which are fully production runs.  They use only
+   clean working trees with no `funny' environment variables, and
+   versions of osstest intended for production.  The data from such
+   flights is used, where applicable, to control production push gate
+   decisions, etc.
+
+   `blessed-real' hosts are fully production-ready.
+
+ * `play': Playground.  Flights may use weird software, dirty working
+   trees, strange environment variables, and so on.  It does not make
+   sense to point archaeology tools at such flights.
+
+   `blessed-play' hosts may be partially or completely nonfunctional,
+   or strange in some way.  For this reason `play' flights should not
+   normally use the automatic host allocator.
+
+ * `adhoc': Special-purpose flights.  They should be run with software
+   nearly as clean as `real': the version of the software used may not
+   be a branch intended for-production, but any enhancements or
+   modifications should not leave false or misleading information in
+   the history database.
+
+   `blessed-adhoc' hosts are just as good as `blessed-real' ones.
+
+   The `adhoc' blessing exists mostly to protect the main production
+   workflow from unintentional violations (for example, unexpectedly
+   buggy historical flight data).
+
+ * `commission-<something>': Flights used for testing that a
+   particular subset of the hosts are working properly.  The hosts to
+   be tested should be blessed `commission-whatever' during
+   commissioning, and that blessing removed and replaced with `real'
+   when the hosts are ready.
+
+ * `real-bisect' and `adhoc-bisect': These are found only as the
+   blessing of finished flights.  (This is achieved by passing *-adhoc
+   to sg-execute-flight.)  This allows the archaeologist tools to
+   distinguish full flights from bisection steps.
+
+   The corresponding intended blessing (as found in the `intended'
+   column of the flights table) is `real'.  So the hosts used by the
+   automatic host allocator are those flagged `blessed-real' or
+   `blessed-adhoc' - there are no separate blessed-*-bisect hostflags.
+
+There are also blessings for unfinished flights:
+
+ * `constructing': The flight metadata (jobs, runvars, etc.) is still
+   being populated.  The tools for flight construction (and flight
+   construct editing) generally insist that they operate only on
+   flights in this state.
+
+ * `running': At least one of the jobs in this flight has started.
+   Flight execution software will generally (perhaps via standard
+   library calls) mark a flight `running' if they find it
+   `constructing', and refuse to operate on other flights.
+
+ * `broken': Something went catastrophically wrong.
+
+Note that osstest is generally `crash-only software': nothing will
+`clean up' a crashed flight and set its blessing to `broken'.  Flights
+which were in progress once upon a time but never completed, because
+they crashed, are simply left with whatever blessing they had at the
+time.
+
+There is a special exception to the tools' flight status checks: any
+flight whose blessing contains `play' can be operated on out of order.
+
+Flights blessings can be manually changed with cs-flight-bless.  Eg
+  ./cs-flight-bless FLIGHT broken-real real
+updates FLIGHT to be marked `broken' rather than `real'.  This can be
+useful if a flight's data is misleading to the archaeologists.
-- 
1.7.10.4

             reply	other threads:[~2015-12-17 17:06 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-17 17:06 Ian Jackson [this message]
2015-12-17 17:06 ` [OSSTEST PATCH 2/9] mg-schema-test-database: Provide some timeouts which are better for testing Ian Jackson
2015-12-17 17:19   ` Ian Campbell
2015-12-17 17:06 ` [OSSTEST PATCH 3/9] mg-schema-test-database: Wipe previous local plan data Ian Jackson
2015-12-17 17:22   ` Ian Campbell
2015-12-17 17:37     ` Ian Jackson
2015-12-17 17:42       ` Ian Campbell
2015-12-17 17:50         ` Ian Jackson
2015-12-17 18:11           ` Ian Campbell
2015-12-17 17:06 ` [OSSTEST PATCH 4/9] mg-schema-test-database: Borrow shares properly Ian Jackson
2015-12-17 17:26   ` Ian Campbell
2015-12-17 17:43     ` Ian Jackson
2015-12-17 18:08       ` Ian Campbell
2015-12-17 17:06 ` [OSSTEST PATCH 5/9] ms-planner: Improve an error message Ian Jackson
2015-12-17 17:26   ` Ian Campbell
2015-12-17 17:06 ` [OSSTEST PATCH 6/9] db_retry: Suppress an "exiting via last" warning Ian Jackson
2015-12-17 17:31   ` Ian Campbell
2015-12-17 17:48     ` Ian Jackson
2015-12-17 18:10       ` Ian Campbell
2015-12-17 18:38         ` Ian Jackson
2015-12-18 11:14           ` Ian Campbell
2015-12-18 14:39             ` Ian Jackson
2015-12-17 17:06 ` [OSSTEST PATCH 7/9] Executive DB retry: Avoid an undefined warning Ian Jackson
2015-12-17 17:31   ` Ian Campbell
2015-12-17 17:06 ` [OSSTEST PATCH 8/9] mg-allocate: Better error handling when no candidates Ian Jackson
2015-12-17 17:33   ` Ian Campbell
2015-12-17 17:06 ` [OSSTEST PATCH 9/9] mg-allocate: In planner mode, pre-check the arguments Ian Jackson
2015-12-17 17:33   ` Ian Campbell
2015-12-17 17:18 ` [OSSTEST PATCH 1/9] README.dev: Document the blessings Ian Campbell
2015-12-17 17:59   ` Ian Jackson
2015-12-17 18:12     ` Ian Campbell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1450371968-27997-1-git-send-email-ian.jackson@eu.citrix.com \
    --to=ian.jackson@eu.citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.