Diagnostics command » History » Version 3
Tom Clegg, 06/18/2021 02:57 PM
1 | 1 | Tom Clegg | h1. Diagnostics command |
---|---|---|---|
2 | |||
3 | Initial work is on #17609 |
||
4 | |||
5 | "arvados-client diagnostics" |
||
6 | |||
7 | Current level of functionality: |
||
8 | 2 | Tom Clegg | * reveal common problems that can be hard to notice/recognize, especially for someone who is new to installing arvados (e.g., invalid TLS certificate for websocket, which breaks workbench but presents no error message) |
9 | 1 | Tom Clegg | * produce output that can be shared with others to help with troubleshooting |
10 | |||
11 | 2 | Tom Clegg | Desired/requested features: |
12 | 1 | Tom Clegg | * download data using s3 protocol |
13 | * run config-check (if cluster config file is accessible) |
||
14 | * check all health endpoints (if cluster config file is accessible) |
||
15 | * make internal/external client recognition mandatory (or at least default to expecting one) |
||
16 | * enable debug/trace mode for a single test number |
||
17 | * more verbose errors/explanations |
||
18 | * for each service, report version currently running |
||
19 | * for each service, report version currently installed ("/proc/self/exe -version"?) |
||
20 | * for each service, report md5/timestamp of config file that is currently being used (not necessarily same as one currently on disk) |
||
21 | * for each service, report md5/timestamp of config file on disk |
||
22 | 2 | Tom Clegg | * check Ruby command-line tools (arv) are installed and working |
23 | * check Python command-line tools (like arv-put) are installed and working |
||
24 | * check Docker is installed on current host, and is usable by arv-keepdocker |
||
25 | * check arvados-cwl-runner is installed and working (run a workflow) |
||
26 | * set up a user account with "arv user setup" |
||
27 | * test that webshell actually works (currently just tries connecting, but this probably doesn't reveal pam config problems) |
||
28 | |||
29 | Undesired features that really belong elsewhere: |
||
30 | * check for problems in config file (this should be done in config-check instead) |
||
31 | 3 | Tom Clegg | |
32 | Internal (code) updates wanted: |
||
33 | * (from #17609#note-18, re big runtests() func) I think we will need to split this up sooner or later. I'm thinking one big section to do the initial staging setup (current user, scratch project/collection) and then something more modular for an ever-growing set of test funcs that are independent of one another. Not sure whether I should do it right now, or put it on the todo list. Something like this might work, with minimal repetition: <pre><code class="go"> |
||
34 | type testenv struct { |
||
35 | project arvados.Group |
||
36 | collection arvados.Collection |
||
37 | } |
||
38 | |||
39 | var _ = addtest(1234, "testing some stuff", func(env *testenv) error { ... }) |
||
40 | </code></pre> |