Commit Graph

1031 Commits

Author SHA1 Message Date
Sajith Sasidharan
c58cf56e83 Remove unused imports 2020-07-18 08:34:25 -04:00
Sajith Sasidharan
0f835e94f5 Merge 'origin/master' into 3254.status-status-nevow-to-twisted-web 2020-07-18 07:53:36 -04:00
Sajith Sasidharan
5c886b1b2d Format link to status page child node correctly
Some Nevow-ism accidentally escaped earlier: link to `/status/up-0`
and so on were actually rendered as `/up-0` and so on.
2020-07-17 13:21:53 -04:00
Sajith Sasidharan
2d19c383ca Rename a variable for clarity 2020-07-17 13:21:53 -04:00
Sajith Sasidharan
372cc00a25 Reject non-existent child nodes of /status
Requests on both `/status` and `/status/` will be served with the same
status page, but `/status//`, `/status///` and so on will be processed
further down, resulting in a 40x response.
2020-07-17 09:46:21 -04:00
Sajith Sasidharan
a13ec344b9 Correct usage of SlotsSequenceElement 2020-07-15 17:10:41 -04:00
Sajith Sasidharan
6969366370 Document, use, and test "join pathstring" method 2020-07-15 16:40:05 -04:00
Sajith Sasidharan
589e143a4a Add an empty renderer 2020-07-15 16:24:11 -04:00
Sajith Sasidharan
e6eb866cef Add missing "header" renderer
It does not do much here, but it is good to be consistent
2020-07-15 16:21:46 -04:00
Sajith Sasidharan
b5a465cc8d Format "all objects" table correctly 2020-07-15 16:20:36 -04:00
Sajith Sasidharan
07c24dbe59 Add a missing super() call 2020-07-15 16:14:10 -04:00
Sajith Sasidharan
69afd292c2 Use a different format for path
Seems that _join_pathstring() is the wrong thing to use here.
2020-07-15 13:43:50 -04:00
Sajith Sasidharan
f547509332 Use table headers correctly 2020-07-15 13:24:32 -04:00
Sajith Sasidharan
ddfe20c8ab Use SlotsSequenceElement correctly 2020-07-15 13:24:20 -04:00
Sajith Sasidharan
99ce9ff198 Correct argument to SlotsSequenceElement 2020-07-14 21:42:28 -04:00
Sajith Sasidharan
ef26d66e79 Use correct twisted web template directives 2020-07-14 20:50:12 -04:00
Sajith Sasidharan
b4b820ed7b Use a helper method to get monitor counter 2020-07-14 20:47:23 -04:00
Sajith Sasidharan
b49a3eaf3a Check for a non-standard property on request 2020-07-10 21:46:23 -04:00
Sajith Sasidharan
69ae9e6d32 Merge 'origin/master' into 3316.check-results-nevow-to-twisted-web 2020-07-10 16:33:06 -04:00
Sajith Sasidharan
427f99621f Do more null checks 2020-07-10 06:56:29 -04:00
Sajith Sasidharan
8331e7d8ec Remove now-unnecessary UploadResultsPage.render_UPLOAD 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
44ecfdad09 Make UploadResultsPage a Resource 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
62e803db25 Make UploadStatusPage a Resource 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
38fe7dd3f5 Remove unused import 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
f30dcc7ec6 Make Element the superclass of UploadResultsRendererMixin 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
9c14eec1e0 Avoid use of RateAndTimeMixin in UploadResultsRendererMixin 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
118ea4267c Render abbreviated rate and time values 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
c0d83def22 Document UploadResultsPage parameter 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
0af8df7203 Document UploadStatusPage 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
855668b188 Remove unused imports 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
a0655c18d6 Handle "t=upload" in UploadResultsPage POST handling 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
6b4d27bec1 Use twisted web template in UploadResultsRendererMixin 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
2ab7b15f8b Make UploadResultsPage a MultiFormatResource 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
71fd4f5d10 Use twisted template tags in upload results page template 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
e6f0f9d038 Make UploadStatusPage a MultiFormatResource 2020-07-09 16:05:31 -04:00
Sajith Sasidharan
d24babe873 Use twisted template tags in upload status page template 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
6379601722 Wrap renderer results in tags 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
de5d04ab79 Remove an extraneous directive
`t:data` is not really a Twisted template directive.  Added my
mistake, removing now.
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
a056f18ca9 Remove StorageStatus.renderHTTP
This was added to please the test suite. Pleased to remove it!
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
7126d3247c Prefix member variable with "_" 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
0d9ec2b206 Use slots to render storage stats table 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
9dd9d98b8c Give the suite the precise string it wants 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
56e2fa3f24 Use <t:transparent> to render node nickname and id
CI did not like the old way, but it passed in my system.  Odd.
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
0bd386384e Mark format_recovered as static method 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
bc8a86e106 Use Unicode strings to render space 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
0b4c235fbd Remove redundant None-checks on self.storage
When no storage is up, `storage_running()` renderer will return a big
honking `no storage server running` message, and no further renderers
will be invoked.  Therefore the extra defense is probably not
required.

(I tested this hypothesis.  The extra defense is not required, unless
there's something I have not seen.)
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
ee8e730727 Move renderSynchronously to test suite 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
92f6e4bfe5 Use explicit None-check on self.storage 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
affe10b3e9 Return result from renderHTTP
Bogus renderHTTP, but test failures are now down to three. We just
need to handle requests for JSON now.
2020-07-09 16:05:30 -04:00
Sajith Sasidharan
6b5e530cb3 Add a docstring 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
abb8834be1 Rename function for clarity 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
e67fa7cd95 Add docstrings to StorageStatusElement 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
62a997ce20 Use parentheses in import statement 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
1be736e4d1 Fix test_storage.WebStatus.test_no_server failure 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
8dd4029428 Use <t:transparent /> within table cells 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
6ccb9d29cb Use render_space methods to render space 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
dbc6b2afa0 Drop unused ctx argument from render_space methods 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
d5af7c0d2e Refactor so that test_util pass 2020-07-09 16:05:30 -04:00
Sajith Sasidharan
923219e54a Use right syntax for twisted.web.template tags 2020-07-09 16:05:29 -04:00
Sajith Sasidharan
42c3e276a3 Check storage server status before using it 2020-07-09 16:05:29 -04:00
Sajith Sasidharan
d1f17e1019 Second version of renderSynchronously 2020-07-09 16:05:29 -04:00
Sajith Sasidharan
805b880c2e Add missing flattenString import 2020-07-09 16:05:29 -04:00
Sajith Sasidharan
75488c4aff Add StorageStatus::renderSynchronously
Related to ticket:3247

test_storage.py wants a `StorageStatus::renderSynchronously()` method
and a `StorageStatus::renderHTTP()` method.  Let us begin with the
goofy first-cut.

Both these methods are not only wrong, but they will also not please
the test suite.  However error messages produced in CI can be shared,
and that way I can hopefully get unstuck.
2020-07-09 16:05:29 -04:00
Sajith Sasidharan
aad3557d2b Use twisted.web.template in web/storage.py
Related to ticket:3247.  Nevow usage has been removed, and generated
page looks the same as its former self, but tests are failing because
test_storage.py assumes that we're using nevow.
2020-07-09 16:05:29 -04:00
Sajith Sasidharan
b956d9a58c Decode name before null check
Make the diff against master a tad bit smaller.
2020-07-09 16:05:29 -04:00
Sajith Sasidharan
fccc331671 Make "Refresh" link work
This seems to be a subtle difference from nevow: with `href="."`,
rendered link target will be `/uri/`, so clicking "Refresh" will
result in an error message like so: "GET /uri requires uri=".

With `href=""`, the rendered link target will be `/uri/URI:...`, which
is what we need.
2020-07-09 16:05:29 -04:00
Sajith Sasidharan
378b20c51a Reject trailing empty path piece in URIs 2020-07-09 16:05:29 -04:00
Sajith Sasidharan
d3d0d02855 Reject URIs that contain empty segments 2020-07-09 16:05:29 -04:00
Sajith Sasidharan
5892eae580 Render self in DirectoryNodeHandler.getChild()
We need self.render_POST() etc. to be invoked when we have a request
such as "POST /uri/URI:DIR:..."; throwing an error here is probably
not the right thing to do.
2020-07-09 16:05:29 -04:00
Sajith Sasidharan
4dd6c86950 Use twisted web directives in web.operations.ReloadMixin 2020-07-09 16:05:28 -04:00
Sajith Sasidharan
54248f334e Use WebError, not RuntimeError, to indicate error
Several problems with using RuntimeError to signal error here:

- It dumps a rather unhelpful webpage at the user.
- The exception backtrace on Tahoe console is not quite necessary here.
- It really is not a runtime error: it is just an expected failure.
- But mainly, testing for RuntimeError is harder.
2020-07-09 14:35:14 -04:00
Sajith Sasidharan
51d6307b45 Fail better when timings data isn't available 2020-07-08 13:08:35 -04:00
Sajith Sasidharan
81216f18bf Remove some whitespace 2020-07-08 10:15:33 -04:00
Sajith Sasidharan
7757756a41 Use correct tag type 2020-07-07 20:45:30 -04:00
Sajith Sasidharan
0c4d24a2ac Avoid use of deferred within an Element
This causes the final HTML to be rendered funny, with a bunch of
"<Deferred current result=...>", which is clearly not what we want.
2020-07-07 20:24:56 -04:00
Sajith Sasidharan
7877d8a5cc Use an accessor 2020-07-07 19:55:14 -04:00
Sajith Sasidharan
e6eb387707 Remove status.RateAndTimeMixin
Both UploadResultsRenderer and DownloadResultsRenderer do not use
RateAndTimeMixin anymore: safe to remove it now.

Tests for methods formerly in RateAndTimeMixin have been moved to
test.web.test_util: specifically test_abbreviate_rate() and
test_abbreviate_time().
2020-07-06 17:11:30 -04:00
Sajith Sasidharan
4a47e8311f Merge 'origin/master' into 3288.status-download-nevow-to-twisted-web 2020-07-06 16:38:23 -04:00
Sajith Sasidharan
25f5e659fc
Merge pull request #721 from sajith/3287.status-upload-nevow-to-twisted-web
Replace nevow with twisted.web.template in status.UploadStatusPage

Fixes: ticket:3287
2020-07-06 16:20:40 -04:00
Sajith Sasidharan
61aef4caef
Merge pull request #690 from sajith/3247.storage-py-neovw-to-twt
Use twisted.web.template in web/storage.py

Fixes: ticket:3247
2020-07-06 16:18:34 -04:00
Sajith Sasidharan
f9e864c51c Use simpler syntax to update map 2020-06-24 08:15:18 -04:00
Sajith Sasidharan
88d3fa7415 Remove now-unnecessary UploadResultsPage.render_UPLOAD 2020-06-23 21:54:23 -04:00
Sajith Sasidharan
dfbb8e7743 Make UploadResultsPage a Resource 2020-06-23 21:53:39 -04:00
Sajith Sasidharan
6ab7f26faf Make UploadStatusPage a Resource 2020-06-23 21:28:31 -04:00
Sajith Sasidharan
00e852c465 Make DownloadStatus an object
PythonTwoRegressions.test_new_style_classes would be unhappy without
this.
2020-06-23 20:54:49 -04:00
Sajith Sasidharan
36ecd8f384 Use render_GET()
Implementing `render_METHOD()` is preferred over overriding render()
2020-06-23 20:54:49 -04:00
Sajith Sasidharan
b14c0a0495 Make DownloadStatusPage a Resource
No need of this being a MultiFormatResource, because it renders just
HTML.
2020-06-23 20:54:49 -04:00
Sajith Sasidharan
982ad8942e Comment about nevow.url usage in web.operations.OphandleTable 2020-06-18 18:30:18 -04:00
Sajith Sasidharan
2d2e8a5872 Add comments to web.operations.OphandleTable 2020-06-18 18:29:39 -04:00
Sajith Sasidharan
bbee23b493 Rename a parameter for clarity
"context" is nevow terminology, whereas these are really requests.
2020-06-18 18:29:39 -04:00
Sajith Sasidharan
5ec78641db Make web.operations.OphandleTable a twisted web Resource 2020-06-18 18:29:27 -04:00
Sajith Sasidharan
6f8af688dd Rearrange imports 2020-06-18 18:01:18 -04:00
Sajith Sasidharan
e121cc0a84 Use the right names
Missed this in testing because this code was not reached in testing.
2020-06-17 22:09:50 -04:00
Sajith Sasidharan
4f213e93be Remove an unused variable 2020-06-17 22:04:08 -04:00
Sajith Sasidharan
0483fc91c1 Remove unused import 2020-06-17 22:04:08 -04:00
Sajith Sasidharan
c3440ce213 Use a helper to query monitor counters 2020-06-17 21:53:11 -04:00
Sajith Sasidharan
47f9147e16 Rename a class for consistency's sake 2020-06-17 21:46:40 -04:00
Sajith Sasidharan
fe1b0cb7ed Rename class variables 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
22977352bb Document parameters of ResultsRenderer classes 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
79be795566 Remove unused want_json() 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
23a51117d2 Rename r to check_results 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
fae4f44404 Prefer req to ctx 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
cdb3747470 Remove nevow imports 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
de99912641 Replace ctx references with req references 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
2e60408bf6 Wrap counters in <span> tags
Unless the rendered page contains strings of the form "Objects
Checked: <span>n</span>" etc, test_POST_DIRURL_deepcheck will not
pass.
2020-06-17 21:18:14 -04:00
Sajith Sasidharan
33ddac879c Remove unused code 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
8094b3144d Use SlotsSequenceElement to render all objects 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
4e594b09bf Use SlotsSequenceElement to render corrupt shares 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
46cb3b6bc3 Use SlotsSequenceElement to render servers with corrupt shares 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
c41bca24f5 Use SlotsSequenceElement to render deep check results problems 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
bbd6bde478 Use SlotsSequenceElement to render remaining corrupt shares
This was previously not implemented; leaving it as such.
2020-06-17 21:18:14 -04:00
Sajith Sasidharan
19f6ec7102 Use SlotsSequenceElement to render servers with corrupt shares
This was previously not implemented; leaving it as such.
2020-06-17 21:18:14 -04:00
Sajith Sasidharan
e0c686bb92 Use SlotsSequenceElement to render post-repair problems 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
f168dcd19c Use SlotsSequenceElement to render pre-repair problems 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
c7aa789a22 Fix "class has no children attribute" error 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
cfb1560d15 Render "all objects" table using SlotsSequenceElement 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
3783349ea7 Add span tags to "deep check and repair results" template
Tests expect <span> tags around these numbers, let us add those.
2020-06-17 21:18:14 -04:00
Sajith Sasidharan
048840ac99 Stringify numbers 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
0d1269264a Stringify numbers in DeepCheckResultsRenderer 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
7237fef630 Add property client to CheckAndRepairResultsRendererElement 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
19db5fb312 Update "deep check and repair results" template 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
e4efcdd925 Make DeepCheckAndRepairResultsRenderer a MultiFormatResource 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
842b2b6be5 Use twisted tags in "deep check and repair results" template 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
27e5ce090a Update deep check results template 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
c33c0a884d Make DeepCheckResultsRenderer a MultiFormatResource 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
9dcaa104c5 Use twisted tags in deep check results template 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
0eea108123 Make CheckAndRepairResultsRenderer a MultiFormatResource 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
d9005fcccc Use twisted tags in check and repair results template 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
80e9f48551 Add line breaks in a comment 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
6f1601aeeb Stringify numbers before wrapping them up in tags 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
d2540b89d3 Use twisted web tags in ResultsBase 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
8e37bb1ebb Make ResultsBase a base class of CheckResultsRendererElement 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
fea4e516f3 Make CheckResultsRenderer a MultiFormatResource 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
9d104f5893 Use twisted tags in check results template file 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
cbc414725c Use "output" as format argument
Nearly everywhere else the query argument for output format is "t";
but here "t" is used for operations, and "output" is used for output
format.

The test suite will fail without this.
2020-06-17 21:18:14 -04:00
Sajith Sasidharan
c15001269f Avoid using a Python keyword as a renderer name 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
3901559e34 Make LiteralCheckResultsRenderer a MultiFormatResource 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
ebf23a4f0e Use twisted web tags in literal check results template 2020-06-17 21:18:14 -04:00
Sajith Sasidharan
950d111793 Use POST target paths without pre-existing query arguments
`action="."` on `/uri/URI:DIR2:$DIRCAP` will render as `/uri/`, which
is not the result we want.
2020-06-17 21:16:38 -04:00
Sajith Sasidharan
55170dcd2b Rearrange imports 2020-06-17 15:45:08 -04:00
Sajith Sasidharan
7a23c8ed6c
Merge pull request #724 from sajith/3312.webui-directory-fix
Fix for "the webapi does not allow empty pathname components"

Fixes: ticket:3312
2020-06-17 10:55:21 -04:00
Sajith Sasidharan
4fa2e6ad97 Use twisted web directives in web.operations.ReloadMixin 2020-06-02 11:56:59 -04:00
Sajith Sasidharan
dd14da4a55 Decode name before null check
Make the diff against master a tad bit smaller.
2020-05-29 21:48:04 -04:00
Sajith Sasidharan
dce73f7c2f Make "Refresh" link work
This seems to be a subtle difference from nevow: with `href="."`,
rendered link target will be `/uri/`, so clicking "Refresh" will
result in an error message like so: "GET /uri requires uri=".

With `href=""`, the rendered link target will be `/uri/URI:...`, which
is what we need.
2020-05-29 21:44:10 -04:00
Sajith Sasidharan
31eba00d0f Reject trailing empty path piece in URIs 2020-05-29 21:38:43 -04:00
Sajith Sasidharan
0633623ecc Reject URIs that contain empty segments 2020-05-29 21:38:43 -04:00
Sajith Sasidharan
b6e00d09f9 Render self in DirectoryNodeHandler.getChild()
We need self.render_POST() etc. to be invoked when we have a request
such as "POST /uri/URI:DIR:..."; throwing an error here is probably
not the right thing to do.
2020-05-29 09:22:15 -04:00
Sajith Sasidharan
d3f43d31d9 Remove unused import 2020-05-23 06:17:06 -04:00
Sajith Sasidharan
93d015e468 Document status.Status 2020-05-22 22:24:09 -04:00
Sajith Sasidharan
a6e32135e8 Update status page child route handler and table renderers
Drop nevow-isms and use twisted.web's way of doing things.
2020-05-22 22:15:45 -04:00