Method MeansNoVerdict
MeansNoVerdict(StatusCode)
Ob ein gRPC-Fehler des Verifiers heißt „das Dokument wurde nicht geurteilt"
(NoVerdict, Exitcode
NoVerdictExitCode) oder „der Lauf ist gescheitert" (Exitcode
1 aus dem Top-Level-Catch).
public static bool MeansNoVerdict(StatusCode status)
Parameters
statusStatusCode
Returns
Remarks
Die Grenze läuft nicht zwischen „harmlos" und „schlimm", sondern zwischen den zwei Fragen, die die Exitcodes auseinanderhalten: Sagt der Status etwas über das DOKUMENT oder über den LAUF?
-
Über das Dokument: Der Dienst hat den Request angenommen, angesehen und
abgelehnt —
InvalidArgument,FailedPrecondition,OutOfRangeund, bei diesem Dienst,Internal. Der häufigste echte Fall ist eine Datei, deren Format nicht zum gewählten RPC passt (irreführende Endung, übersteuertes--kind); welchen der Codes der Verifier dafür wählt, hält dieVerifyApiSuitefest. Geprüft wurde nichts — und genau dafür gibt es den dritten Ausgang. -
Über den Lauf:
Unavailable,DeadlineExceeded,Unauthenticated,PermissionDenied,ResourceExhausted,Cancelled,Unimplemented,Unknownund die übrigen. Ein nicht erreichbarer Dienst sagt nichts über die Datei; „nicht prüfbar" zu protokollieren, wo „nicht gefragt" richtig wäre, schickt den Leser in die falsche Richtung.
Internal ist die eine Zuordnung, die nicht aus der gRPC-Semantik
folgt, sondern aus diesem Dienst: Der Verifier ist ein Aufsatz auf die native
SAK, und was die an einem unlesbaren Container abbricht, kommt als
Internal heraus. Der Preis ist, dass auch ein echter Dienstfehler als
„kein Urteil" erscheint. Das ist die vertretbare Richtung: 3 behauptet
kein Urteil, sondern verneint eines, und WARUM steht in der Ausgabe — der
Status der Ablehnung hält die beiden Fälle auch dann auseinander, wenn der
Dienst keine Begründung mitschickt (RefusalReason(StatusCode, string)). 1
dagegen ließe den häufigsten Fall — die Datei ist nicht prüfbar — wie einen
Fehler des Aufrufwerkzeugs aussehen, und bei -o json fiele gar keine
parsebare Ausgabe an.