Serge Bazanski | 7762831 | 2023-02-15 23:33:22 +0100 | [diff] [blame^] | 1 | {{ template "base.html" .Base }} |
| 2 | <h2>Machine {{ .Machine.ID }}</h2> |
| 3 | |
| 4 | {{ $sessions := .Sessions }} |
| 5 | |
| 6 | <table> |
| 7 | <tr> |
| 8 | <td><b>Machine ID</b></td> |
| 9 | <td class="mono">{{ .Machine.ID }}</td> |
| 10 | </tr> |
| 11 | <tr> |
| 12 | <td><b>Created</b></td> |
| 13 | <td>{{ .Machine.Created }}</td> |
| 14 | </tr> |
| 15 | <tr> |
| 16 | <td><b>Active Backoffs</b></td> |
| 17 | <td>{{ len .Machine.ActiveBackoffs }}</td> |
| 18 | </tr> |
| 19 | <tr> |
| 20 | <td><b>Active Work</b></td> |
| 21 | <td>{{ len .Machine.Work }}</td> |
| 22 | </tr> |
| 23 | </table> |
| 24 | |
| 25 | <div class="vsplit"> |
| 26 | <div class="column"> |
| 27 | <h2>Tags</h2> |
| 28 | {{ range $name, $tag := .Machine.Tags }} |
| 29 | <table> |
| 30 | <tr> |
| 31 | <th colspan="2"> |
| 32 | {{ template "fragment_tag.html" $tag }} |
| 33 | </th> |
| 34 | </tr> |
| 35 | {{ range $tag.Fields }} |
| 36 | <tr> |
| 37 | <td> |
| 38 | <b>{{ .Type.NativeName }}:</b> |
| 39 | </td> |
| 40 | <td class="mono"> |
| 41 | {{ .HumanValue }} |
| 42 | </td> |
| 43 | </tr> |
| 44 | {{ end }} |
| 45 | </table> |
| 46 | {{ else }} |
| 47 | <i>No tags.</i> |
| 48 | {{ end }} |
| 49 | <h2>Work</h2> |
| 50 | {{ range $name, $work := .Machine.Work }} |
| 51 | <table> |
| 52 | <tr> |
| 53 | <th colspan="3"> |
| 54 | <b>{{ $work.Process }}</b> |
| 55 | </th> |
| 56 | </tr> |
| 57 | <tr> |
| 58 | <td><b>Process:</b></td> |
| 59 | <td class="mono" colspan="2"> |
| 60 | {{ $work.Process }} |
| 61 | </td> |
| 62 | </tr> |
| 63 | {{ $sessionOrErr := index $sessions $name }} |
| 64 | {{ if ne $sessionOrErr.Error "" }} |
| 65 | <tr> |
| 66 | <td colspan="3" class="error"> |
| 67 | Could not retrieve session information: {{ $sessionOrErr.Error }} |
| 68 | </td> |
| 69 | </tr> |
| 70 | {{ else }} |
| 71 | {{ $session := $sessionOrErr.Session }} |
| 72 | <tr> |
| 73 | <td rowspan="5" style="vertical-align: top;"><b>Session</b></td> |
| 74 | <td><b>ID:</b></td> |
| 75 | <td class="mono" colspan="2"> |
| 76 | <a href="/session/{{ $session.SessionID }}">{{ $session.SessionID }}</a> |
| 77 | </td> |
| 78 | </tr> |
| 79 | <tr> |
| 80 | <td><b>Component:</b></td> |
| 81 | <td class="mono">{{ $session.SessionComponentName }}</td> |
| 82 | </tr> |
| 83 | <tr> |
| 84 | <td><b>Runtime:</b></td> |
| 85 | <td class="mono">{{ $session.SessionRuntimeInfo }}</td> |
| 86 | </tr> |
| 87 | <tr> |
| 88 | <td><b>Created At:</b></td> |
| 89 | <td>{{ $session.SessionCreatedAt }}</td> |
| 90 | </tr> |
| 91 | <tr> |
| 92 | <td><b>Liveness:</b></td> |
| 93 | <td>Interval {{ $session.SessionIntervalSeconds }}s, deadline {{ $session.SessionDeadline }}</td> |
| 94 | </tr> |
| 95 | {{ end }} |
| 96 | </table> |
| 97 | {{ else }} |
| 98 | <i>No active work.</i> |
| 99 | {{ end }} |
| 100 | <h2>Backoffs</h2> |
| 101 | <h3>Active</h3> |
| 102 | {{ range $name, $backoff := .Machine.ActiveBackoffs }} |
| 103 | <table> |
| 104 | <tr> |
| 105 | <th colspan="2"> |
| 106 | <b>{{ $backoff.Process }}</b> |
| 107 | </th> |
| 108 | </tr> |
| 109 | <tr> |
| 110 | <td><b>Process:</b></td> |
| 111 | <td class="mono">{{ $backoff.Process }}</td> |
| 112 | </tr> |
| 113 | <tr> |
| 114 | <td><b>Until:</b></td> |
| 115 | <td class="mono">{{ $backoff.Until }}</td> |
| 116 | </tr> |
| 117 | <tr> |
| 118 | <td><b>Cause:</b></td> |
| 119 | <td class="mono">{{ $backoff.Cause }}</td> |
| 120 | </tr> |
| 121 | </table> |
| 122 | {{ else }} |
| 123 | <i>No active backoffs.</i> |
| 124 | {{ end }} |
| 125 | <h3>Expired</h3> |
| 126 | {{ range $name, $backoff := .Machine.ExpiredBackoffs }} |
| 127 | <table style="opacity: 0.4"> |
| 128 | <tr> |
| 129 | <th colspan="2"> |
| 130 | <b>{{ $backoff.Process }}</b> |
| 131 | </th> |
| 132 | </tr> |
| 133 | <tr> |
| 134 | <td><b>Process:</b></td> |
| 135 | <td class="mono">{{ $backoff.Process }}</td> |
| 136 | </tr> |
| 137 | <tr> |
| 138 | <td><b>Until:</b></td> |
| 139 | <td class="mono">{{ $backoff.Until }}</td> |
| 140 | </tr> |
| 141 | <tr> |
| 142 | <td><b>Cause:</b></td> |
| 143 | <td class="mono">{{ $backoff.Cause }}</td> |
| 144 | </tr> |
| 145 | </table> |
| 146 | {{ else }} |
| 147 | <i>No expired backoffs.</i> |
| 148 | {{ end }} |
| 149 | </div> |
| 150 | <div class="column"> |
| 151 | <h2>Work History</h2> |
| 152 | {{ if ne .HistoryError "" }} |
| 153 | <b class="error">Unavailable: {{ .HistoryError }}</b> |
| 154 | {{ else }} |
| 155 | <i>Note: reverse chronological order.</i> |
| 156 | <table> |
| 157 | <tr> |
| 158 | <th>Time</th> |
| 159 | <th>Process</th> |
| 160 | <th>Event</th> |
| 161 | </tr> |
| 162 | {{ range .History }} |
| 163 | <tr class="Event{{.Event}}"> |
| 164 | <td>{{ .Timestamp }}</td> |
| 165 | <td><b>{{ .Process }}</b></td> |
| 166 | {{ if eq .Event "Failed" }} |
| 167 | <td>{{ .Event }}: <span class="mono">{{ .FailedCause.String }}</span></td> |
| 168 | {{ else }} |
| 169 | <td>{{ .Event }}</td> |
| 170 | {{ end }} |
| 171 | </tr> |
| 172 | {{ end }} |
| 173 | </table> |
| 174 | {{ end }} |
| 175 | </div> |
| 176 | </div> |