Commit Graph

8462 Commits

Author SHA1 Message Date
Itamar Turner-Trauring
69c4dbf2b5 Fix tests and point to future work. 2022-07-05 17:17:38 -04:00
Itamar Turner-Trauring
6e3ca256b9 Some refactoring to handle edge cases better, in progress. 2022-07-05 15:36:21 -04:00
Itamar Turner-Trauring
3270d24c45 Slight simplification. 2022-07-05 11:30:48 -04:00
Itamar Turner-Trauring
1e6864ac01 Typo. 2022-07-05 11:30:01 -04:00
Itamar Turner-Trauring
97d0ba23eb Switch to hypothesis-based test. 2022-07-05 11:21:46 -04:00
Itamar Turner-Trauring
249f431849 Use MonkeyPatch instead of MockPatch, since we're not mocking. 2022-07-05 11:14:52 -04:00
Itamar Turner-Trauring
f2acf71998 Document next steps: NURL generation. 2022-06-30 15:58:52 -04:00
Itamar Turner-Trauring
70dfc44841 Fix for 3905. 2022-06-30 15:45:30 -04:00
Itamar Turner-Trauring
3db6080f6d Make the factories a class-level attribute. 2022-06-30 15:18:22 -04:00
Itamar Turner-Trauring
1798966f03 Store the tub on the subclass, since we'll want it (or rather its Listeners) for
NURL construction.
2022-06-30 14:53:37 -04:00
Itamar Turner-Trauring
d1bdce9682 A nicer API. 2022-06-30 14:26:36 -04:00
Itamar Turner-Trauring
03c515191e Better docs. 2022-06-30 14:21:43 -04:00
Itamar Turner-Trauring
451e68795c Lints, better explanation. 2022-06-30 13:54:58 -04:00
Itamar Turner-Trauring
bee46fae93 Resource limits on the client side. 2022-06-30 13:48:33 -04:00
Itamar Turner-Trauring
ab80c0f0a1 Set some length limits on various queries lengths. 2022-06-30 13:35:30 -04:00
Itamar Turner-Trauring
0e8f2aa702 More memory usage reductions. 2022-06-29 13:58:05 -04:00
Itamar Turner-Trauring
520456bdc0 Add streaming to CBOR results. 2022-06-29 11:26:25 -04:00
Itamar Turner-Trauring
efe9575d28 Nicer testing infrastructure so you don't have to switch back and forth between
sync and async test APIs.
2022-06-29 11:25:28 -04:00
Itamar Turner-Trauring
6dd2b2d583 More streaming, with tests passing again. 2022-06-27 17:00:24 -04:00
Itamar Turner-Trauring
06eca79263 Minimal streaming implementation. 2022-06-27 14:12:17 -04:00
Itamar Turner-Trauring
bfd54dc6ea Switch to newer attrs API, for consistency across the module. 2022-06-27 11:30:49 -04:00
Itamar Turner-Trauring
1154371d22 Clarifying comments. 2022-06-23 12:51:07 -04:00
Itamar Turner-Trauring
01d8cc7ab6 Put the attribute on the correct object. 2022-06-23 12:49:07 -04:00
Itamar Turner-Trauring
eb1e48bcc3 Add a timeout. 2022-06-23 12:47:33 -04:00
Itamar Turner-Trauring
0c99a9f7b0 Make it more accurate. 2022-06-23 12:44:17 -04:00
Itamar Turner-Trauring
d70f583172 More cleanups. 2022-06-23 12:43:46 -04:00
Itamar Turner-Trauring
026d63cd6a Fix some mypy warnings. 2022-06-23 12:41:47 -04:00
Itamar Turner-Trauring
d86f8519dc Simplify implementation. 2022-06-23 12:41:01 -04:00
Itamar Turner-Trauring
04156db74e Delay Negotiation.connectionMade so we don't create unnecessary timeouts. 2022-06-23 12:32:43 -04:00
Itamar Turner-Trauring
1579530895 Add working HTTP support. 2022-06-23 07:59:43 -04:00
Itamar Turner-Trauring
c5724c1d0a Clarify. 2022-06-22 14:20:42 -04:00
Itamar Turner-Trauring
7577d1e24c Sketch of HTTP support, still untested WIP. 2022-06-22 14:19:29 -04:00
Itamar Turner-Trauring
7910867be6 It actually works(?!) now. 2022-06-22 10:23:23 -04:00
Itamar Turner-Trauring
e1daa192fb Sketch of protocol switcher experiment. 2022-06-21 17:20:08 -04:00
Itamar Turner-Trauring
d37f187c07 Lint fix. 2022-06-08 13:56:23 -04:00
Itamar Turner-Trauring
db42651355 Be more consistent and just always write to the request in read_range. 2022-06-08 13:55:47 -04:00
Itamar Turner-Trauring
00381bc24f Correction now that it does more than what it did before. 2022-06-08 13:52:45 -04:00
Itamar Turner-Trauring
c3a304e1cc Lint and mypy fixes. 2022-06-06 11:04:34 -04:00
Itamar Turner-Trauring
85774ced95 Run shared tests on mutables too, with appropriate fixes to the tests and the server. 2022-06-06 10:57:19 -04:00
Itamar Turner-Trauring
e6efb62fd1 Refactor immutable tests so they can shared with mutables. 2022-06-06 10:25:06 -04:00
Itamar Turner-Trauring
797f34aec3 More tests. 2022-06-06 09:59:12 -04:00
Itamar Turner-Trauring
3e67d2d789 More tests. 2022-06-06 09:50:36 -04:00
Itamar Turner-Trauring
f1384096fa First unit test for mutables. 2022-06-03 13:46:23 -04:00
Itamar Turner-Trauring
fd306b9a61 Share more code across mutable and immutable reads. 2022-06-01 13:54:54 -04:00
Itamar Turner-Trauring
2313195c2b Reduce duplication. 2022-05-20 11:43:42 -04:00
Itamar Turner-Trauring
63624eedec Reduce code duplication. 2022-05-20 11:33:02 -04:00
Itamar Turner-Trauring
12927d50ba Type annotation improvements. 2022-05-20 11:10:18 -04:00
Itamar Turner-Trauring
8c8ea4927f Switch to public API. 2022-05-20 11:07:55 -04:00
Itamar Turner-Trauring
d209065a6e Fix type issue, and modernize slightly. 2022-05-16 11:22:44 -04:00
Itamar Turner-Trauring
a54b443f9d It's not an immutable client anymore. 2022-05-12 09:44:30 -04:00
Itamar Turner-Trauring
f3cf13154d Setup HTTP lease APIs for immutables too. 2022-05-11 12:00:27 -04:00
Itamar Turner-Trauring
b8735c79da Fix docstring. 2022-05-11 11:50:29 -04:00
Itamar Turner-Trauring
821bac3ddf Test another lease edge case. 2022-05-11 11:50:01 -04:00
Itamar Turner-Trauring
17fc9d0064 Merge branch '3891-mutable-http-protocol-part-2' into 3893-mutable-http-protocol-part-3 2022-05-11 11:22:03 -04:00
Itamar Turner-Trauring
457db8f992 Get rid of the "no such storage index" edge case, since it's not really necessary. 2022-05-11 11:17:57 -04:00
Itamar Turner-Trauring
4b62ec082b Match Foolscap behavior for slot_readv of unknown storage index. 2022-05-11 11:11:24 -04:00
Itamar Turner-Trauring
6d412a017c Type annotation. 2022-05-11 11:00:46 -04:00
Itamar Turner-Trauring
07e16b80b5 Better name. 2022-05-11 11:00:05 -04:00
Itamar Turner-Trauring
6f5a0e43eb Implement advise_corrupt_share for mutables. 2022-05-11 10:41:36 -04:00
Itamar Turner-Trauring
b3fed56c00 Move Foolscap compatibility to a better place. 2022-05-05 12:11:09 -04:00
Itamar Turner-Trauring
2833bec80e Unit test the new storage server backend API. 2022-05-05 12:04:45 -04:00
Itamar Turner-Trauring
06029d2878 Another end-to-end test passing (albeit with ugly implementation). 2022-05-04 11:25:13 -04:00
Itamar Turner-Trauring
852162ba06 More accurate docs. 2022-05-04 11:03:35 -04:00
Itamar Turner-Trauring
c1ce74f88d Ability to list shares, enabling more of IStorageClient to run over HTTP. 2022-05-04 11:03:14 -04:00
Itamar Turner-Trauring
5ce204ed8d Make queries run in parallel. 2022-04-28 12:18:58 -04:00
Itamar Turner-Trauring
b8b1d7515a We can at least be efficient when possible. 2022-04-28 11:59:50 -04:00
Itamar Turner-Trauring
76d0cfb770 Correct comment. 2022-04-28 11:49:21 -04:00
Itamar Turner-Trauring
e16eb6dddf Better type definitions. 2022-04-28 11:48:59 -04:00
Itamar Turner-Trauring
72c59b5f1a Unused import. 2022-04-19 15:09:02 -04:00
Itamar Turner-Trauring
f03feb0595 TODOs for later. 2022-04-19 15:08:07 -04:00
Itamar Turner-Trauring
21c3c50e37 Basic mutable read support. 2022-04-19 15:07:57 -04:00
Itamar Turner-Trauring
f5c4513cd3 A little closer to serialization and deserialization working correctly, with
some tests passing.
2022-04-19 14:46:13 -04:00
Itamar Turner-Trauring
898fe0bc0e Closer to running end-to-end mutable tests. 2022-04-19 13:18:31 -04:00
Itamar Turner-Trauring
b0d547ee53 Progress on implementing client side of mutable writes. 2022-04-18 14:56:20 -04:00
Itamar Turner-Trauring
24548dee0b Sketch of read/write APIs interface for mutables on client side. 2022-04-15 09:56:06 -04:00
Itamar Turner-Trauring
186aa9abc4 Make the utility reusable. 2022-04-15 09:32:15 -04:00
Itamar Turner-Trauring
58bd381202 Switch to newer attrs API. 2022-04-15 09:19:30 -04:00
Itamar Turner-Trauring
fc2807cccc Sketch of server-side read-test-write endpoint. 2022-04-15 09:08:16 -04:00
Jean-Paul Calderone
c0a84ececa
Merge pull request #1191 from tahoe-lafs/3526.test_invite-no-mock
Remove mock usage from test_invite

Fixes: ticket:3526
2022-04-14 12:50:17 -04:00
Itamar Turner-Trauring
4e0f912a10 Comply with license. 2022-04-14 11:52:20 -04:00
Itamar Turner-Trauring
9db5a397e1 Minor type annotation improvements. 2022-04-14 11:45:47 -04:00
Itamar Turner-Trauring
2bc8cdf852 Drop Python 2. 2022-04-14 11:40:19 -04:00
Itamar Turner-Trauring
5349f35a0b Merge remote-tracking branch 'origin/master' into 3875-http-storage-furls 2022-04-14 11:39:21 -04:00
Jean-Paul Calderone
f34e01649d some more fixes for mypy 2022-04-13 18:35:18 -04:00
Jean-Paul Calderone
03674bd452 use Tuple for type alias
__future__.annotations only fixes py37/generic builtins in annotations syntax,
not arbitrary expressions
2022-04-13 16:01:32 -04:00
Jean-Paul Calderone
38e1e93a75 factor the duplicate client logic out 2022-04-13 15:42:10 -04:00
Jean-Paul Calderone
ec5be01f38 more completely annotate types in the wormholetesting module 2022-04-13 14:50:38 -04:00
Jean-Paul Calderone
10f79ce8aa Use __future__.annotations in test_invite for generic builtins too 2022-04-13 14:39:52 -04:00
Jean-Paul Calderone
0f61a1dab9 Factor some duplication out of the test methods 2022-04-12 14:33:11 -04:00
Jean-Paul Calderone
71b5cd9e0d rewrite comment annotations with syntax 2022-04-12 14:13:48 -04:00
Jean-Paul Calderone
b0fffabed0 remove unnecessary module-scope wormhole
used this during testing so the other mock() calls wouldn't explode in a
boring way
2022-04-12 14:10:02 -04:00
Itamar Turner-Trauring
1634f137be Use sets more widely in the schema. 2022-04-12 12:54:16 -04:00
Jean-Paul Calderone
bc6dafa999 Replace monkey-patching of wormhole with a parameter to run_cli 2022-04-12 11:01:04 -04:00
Jean-Paul Calderone
dffcdf2854 Clean up the Py2/Py3 boilerplate 2022-04-11 15:05:32 -04:00
Jean-Paul Calderone
f19bf8cf86 Parameterize the options object to the run_cli helper 2022-04-11 15:04:55 -04:00
Itamar Turner-Trauring
4b20b67ce6 Client-side schema validation. 2022-04-11 14:03:48 -04:00
Itamar Turner-Trauring
dfad50b1c2 Better error. 2022-04-11 14:03:30 -04:00
Itamar Turner-Trauring
e5b0e51f72 Server-side schema validation of CBOR. 2022-04-11 13:11:45 -04:00
Itamar Turner-Trauring
bdcf054de6 Switch to generating certs on the fly since Python packaging was being a pain. 2022-04-08 13:37:18 -04:00
Itamar Turner-Trauring
423512ad00 Wait harder. 2022-04-06 11:48:17 -04:00
Itamar Turner-Trauring
22ebbba5ac Extend testing. 2022-04-06 11:35:05 -04:00
Itamar Turner-Trauring
5a82ea880b More specific methods. 2022-04-06 11:31:26 -04:00
Itamar Turner-Trauring
ab1297cdd6 Link to ticket. 2022-04-06 11:27:42 -04:00
Itamar Turner-Trauring
eda5925548 Get rid of another place where listen on port 0, and switch to FilePath only for now. 2022-04-06 11:25:37 -04:00
Itamar Turner-Trauring
710fad4f8a Support broader range of server endpoints, and switch to more robust random port
assignment.
2022-04-06 11:10:42 -04:00
Itamar Turner-Trauring
2e934574f0 Switch to URL-safe base64 for SPKI hash, for nicer usage in NURLs. 2022-04-06 09:37:18 -04:00
Itamar Turner-Trauring
5972a13457 Add reactor argument. 2022-04-06 09:34:17 -04:00
Itamar Turner-Trauring
30a3b006a0 Include self-signed cert in package install. 2022-03-30 10:26:26 -04:00
Itamar Turner-Trauring
da6838d6f9 Stop talking about furl, it's a NURL. 2022-03-28 11:35:45 -04:00
Itamar Turner-Trauring
119ba9468e Not needed. 2022-03-28 11:28:38 -04:00
Itamar Turner-Trauring
4e58748c4a Get constants from OpenSSL directly. 2022-03-28 11:27:32 -04:00
Itamar Turner-Trauring
ae8a7eff43 Make mypy happy. 2022-03-25 15:52:31 -04:00
Itamar Turner-Trauring
638154b2ad Cleanups. 2022-03-25 15:46:42 -04:00
Itamar Turner-Trauring
23ce581405 More tests; some still failing. 2022-03-25 14:01:06 -04:00
Itamar Turner-Trauring
bd6e537891 Hacky fix. 2022-03-25 13:52:25 -04:00
Itamar Turner-Trauring
712f4f1385 Sketch of first HTTPS client logic test. 2022-03-25 13:49:11 -04:00
Itamar Turner-Trauring
6f86675766 Split into its own file. 2022-03-25 10:59:16 -04:00
Itamar Turner-Trauring
9240d9d657 Expand the comment. 2022-03-25 10:46:14 -04:00
Itamar Turner-Trauring
e50d88f46d Technically this doesn't matter, because it's client-side, but it's good habit. 2022-03-25 10:45:54 -04:00
meejah
cc682d0413 Merge branch 'master' into 3828.key-length 2022-03-24 11:40:52 -06:00
Itamar Turner-Trauring
be0ff08275 Possibly correct, but communicating, end-to-end TLS with some amount of
validation logic.

Still untested!
2022-03-24 12:12:11 -04:00
Jean-Paul Calderone
f48055179f
Merge pull request #1186 from tahoe-lafs/3883.drop-cpuusagemonitor-foolscap-dep
Drop the Foolscap dependency in allmydata.stats

Fixes: ticket:3883
2022-03-24 08:09:42 -04:00
Jean-Paul Calderone
c737bcdb6f use the generic version of the correct types for samples 2022-03-23 18:40:12 -04:00
Itamar Turner-Trauring
5310747eaa Start hooking up end-to-end tests with TLS, fixing bugs along the way.
At this point the issue is that the client fails certificate validation (which
is expected lacking the pinning validation logic, which should be added next).
2022-03-23 16:33:29 -04:00
Itamar Turner-Trauring
eef99c1f22 Merge remote-tracking branch 'origin/master' into 3875-http-storage-furls 2022-03-23 15:59:07 -04:00
Jean-Paul Calderone
98634ae5cb allow the correct number of samples in
also speed up the test with some shorter intervals
2022-03-18 12:36:48 -04:00
Jean-Paul Calderone
b56f79c7ad read initial cpu usage value at service start time
This removes the Foolscap dependency.
2022-03-18 10:43:17 -04:00
Jean-Paul Calderone
ce381f3e39 pull the default initial_cpu value out to class scope
also add python 3 syntax type annotations
2022-03-18 10:42:40 -04:00
Jean-Paul Calderone
32e88e580b switch to a deque
this makes more of the data structure someone else's responsibility and
probably improves performance too (but I didn't measure)
2022-03-18 10:41:33 -04:00
Jean-Paul Calderone
b83b6adfbc remove py2 compat boilerplate 2022-03-18 10:41:07 -04:00
Itamar Turner-Trauring
7de3d93b0e Switch to TypeError. 2022-03-18 10:12:51 -04:00
Itamar Turner-Trauring
fae9556e3d Centralize client serialization logic too. 2022-03-14 11:28:54 -04:00
Itamar Turner-Trauring
0aa8089d81 Explicitly tell the server that the client accepts CBOR. 2022-03-14 11:20:23 -04:00
Itamar Turner-Trauring
106cc708a0 Use a constant. 2022-03-14 11:18:53 -04:00
Itamar Turner-Trauring
722f8e9598 Expand docs. 2022-03-14 11:17:06 -04:00
Itamar Turner-Trauring
b6073b11c2 Refactor to check HTTP content-type of request body. 2022-03-14 11:16:09 -04:00
Itamar Turner-Trauring
fef332754b Switch to shared utility so server can use it too. 2022-03-14 11:09:40 -04:00
Itamar Turner-Trauring
13fd3b3685 Get rid of Python 2 crud. 2022-03-14 11:01:20 -04:00
Itamar Turner-Trauring
1e108f8445 Don't use a custom parser. 2022-03-14 11:01:09 -04:00
Itamar Turner-Trauring
b8ab3dd6a7 Server handles Accept headers. 2022-03-14 10:53:22 -04:00
Itamar Turner-Trauring
e55c3e8acf Check for CBOR content-encoding header in client. 2022-03-14 10:35:39 -04:00
Itamar Turner-Trauring
5baf63219d Always use UTF-8 for corruption reports. 2022-03-10 17:41:28 -05:00
Itamar Turner-Trauring
7e25b43dba Direct unit tests for advising share is corrupt. 2022-03-10 11:28:48 -05:00
Itamar Turner-Trauring
922ee4feb1 Sketch of advise_corrupt_share support for immutables. 2022-03-10 11:09:45 -05:00
Itamar Turner-Trauring
f736683347 Finish testing and implementing lease renewal. 2022-03-09 13:35:50 -05:00
Itamar Turner-Trauring
aee0f7dc69 Sketch of lease renewal implementation. 2022-03-09 13:10:13 -05:00
Itamar Turner-Trauring
636ab017d4 Disconnection is purely a Foolscap concern. 2022-03-09 12:47:14 -05:00
Itamar Turner-Trauring
e598fbbc85 Get rid of redundant code. 2022-03-09 12:42:24 -05:00
Itamar Turner-Trauring
5d51aac0d3 Clarify. 2022-03-09 12:41:40 -05:00
Itamar Turner-Trauring
edb9eda53b Clarify. 2022-03-09 12:41:10 -05:00
Itamar Turner-Trauring
ac271cfb3d Merge remote-tracking branch 'origin/master' into 3877-immutable-storage-apis-continued 2022-03-09 11:23:02 -05:00
Itamar Turner-Trauring
86769c19bf Finish abort logic and tests. 2022-03-09 11:19:23 -05:00
Itamar Turner-Trauring
ef4f912a68 Less error-prone testing assertion, and fix a testing bug. 2022-03-09 11:11:39 -05:00
Itamar Turner-Trauring
4fc7ef7528 Basic HTTP test for aborts. 2022-03-09 10:57:05 -05:00
Itamar Turner-Trauring
f47741afb1 Correct behavior on timed out immutable uploads. 2022-03-09 10:45:21 -05:00
Itamar Turner-Trauring
92b952a5fe Authenticate writes! 2022-03-09 10:45:08 -05:00
Itamar Turner-Trauring
c642218173 Sketch of aborting uploads. 2022-03-08 10:41:56 -05:00
Itamar Turner-Trauring
5203873995 Refactor to unify data structure logic. 2022-03-08 10:13:37 -05:00
Itamar Turner-Trauring
5be7cbc171
Merge pull request #1182 from tahoe-lafs/3876-per-bucket-upload-secret
Allow per-bucket upload secret

Fixes ticket:3876
2022-03-08 10:10:48 -05:00
Itamar Turner-Trauring
7721c134f2 Change the semantics of HTTP bucket creation so that it's possible to have a
different upload secret per upload.
2022-03-07 09:28:21 -05:00
Itamar Turner-Trauring
40e5ab1661
Merge pull request #1178 from tahoe-lafs/3860-http-more-immutables
More immutable support for HTTP storage API

Fixes ticket:3860
2022-03-07 09:12:56 -05:00
Itamar Turner-Trauring
87ab56426a Validate another edge case of bad storage index. 2022-03-07 08:46:05 -05:00
Itamar Turner-Trauring
4efa65d3db Typo. 2022-03-07 08:29:26 -05:00
Itamar Turner-Trauring
60bcd5fe9f Address review comments. 2022-03-07 08:25:12 -05:00
Itamar Turner-Trauring
9f4f6668c0 Tweaks. 2022-03-07 08:21:58 -05:00
Itamar Turner-Trauring
7146cff227 Sketch of TLS listening and furl construction for the HTTP storage server. 2022-03-02 10:40:39 -05:00
Itamar Turner-Trauring
32cbc7b9df Function for getting SPKI hash. 2022-03-02 10:35:41 -05:00
Itamar Turner-Trauring
f81cd6e595 Use an option also available on PyPy3. 2022-02-23 10:57:36 -05:00
meejah
2928a480ff RSA key-size is not configurable, it's 2048bits 2022-02-16 21:46:24 -07:00
meejah
5cd95920b6 Merge branch 'master' into 3828.key-length.1 2022-02-16 21:18:50 -07:00
Itamar Turner-Trauring
5aa00abc3d Use the correct API (since direct returns break Python 2 imports) 2022-02-11 15:02:14 -05:00
Itamar Turner-Trauring
abf3048ab3 More passing HTTP IStorageServer tests. 2022-02-10 17:07:21 -05:00
Itamar Turner-Trauring
7466ee25a8 Don't send header if it makes no sense to do so. 2022-02-10 13:57:57 -05:00
Itamar Turner-Trauring
b049d4a792 Fix get_version with new API. 2022-02-10 13:52:47 -05:00
Itamar Turner-Trauring
fa2f142bc9 Another ticket. 2022-02-10 13:50:09 -05:00
Itamar Turner-Trauring
aa68be645f Return Content-Range in responses. 2022-02-10 13:48:33 -05:00
Itamar Turner-Trauring
416af7328c Support lack of Range header. 2022-02-10 13:31:09 -05:00
Itamar Turner-Trauring
7db1ddd875 Implement Range header validation. 2022-02-10 13:15:48 -05:00
Itamar Turner-Trauring
5d9e0c9bca Not found tests and implementation. 2022-02-09 13:14:27 -05:00
Itamar Turner-Trauring
45ee5e3346 Done elsewhere. 2022-02-09 13:08:34 -05:00
Itamar Turner-Trauring
bae5d58ab9 Another test. 2022-02-09 13:07:34 -05:00
Itamar Turner-Trauring
faacde4e32 Conflicting writes. 2022-02-09 12:41:32 -05:00
Itamar Turner-Trauring
8c739343f3 Reduce duplication. 2022-02-09 12:38:32 -05:00
Itamar Turner-Trauring
95d7548629 Upload to non-existent place. 2022-02-09 12:30:38 -05:00
Itamar Turner-Trauring
72bac785ee Done elsewhere. 2022-02-09 12:27:08 -05:00
Itamar Turner-Trauring
ecb1a3c5a0 Just require content-range for simplicity. 2022-02-09 12:25:47 -05:00
Itamar Turner-Trauring
d38183335e Handle bad Content-Range headers. 2022-02-08 10:46:55 -05:00
Itamar Turner-Trauring
7107a85fba Refactor client, separating low-level and high-level concerns. 2022-02-08 10:19:37 -05:00
Itamar Turner-Trauring
ce2468cdff Validate inputs automatically as part of parsing. 2022-02-04 10:35:38 -05:00
Itamar Turner-Trauring
e6f32e33bc Merge branch '3871-http-list-storage-index-shares' into 3860-http-more-immutables 2022-02-04 09:30:17 -05:00
Itamar Turner-Trauring
5e3a31166d Better explanation. 2022-02-04 09:26:58 -05:00
Itamar Turner-Trauring
7454929be0 Less code duplication. 2022-02-04 09:26:25 -05:00
Itamar Turner-Trauring
52322c25d3 Merge remote-tracking branch 'origin/master' into 3871-http-list-storage-index-shares 2022-02-04 09:19:51 -05:00
Itamar Turner-Trauring
6b3722d3f6 Avoid using possibly-private API. 2022-02-03 12:50:29 -05:00
Itamar Turner-Trauring
23c8bde9d5 Nicer cleanup. 2022-02-03 12:44:55 -05:00
Itamar Turner-Trauring
1dfc0bde36 Use better method to listen on random port. 2022-02-03 12:43:49 -05:00
Itamar Turner-Trauring
39fe48b174 More passing IStorageServer tests. 2022-02-02 12:55:41 -05:00
Itamar Turner-Trauring
bceed6e199 More bucket allocation logic. 2022-02-02 12:41:25 -05:00
Itamar Turner-Trauring
aebb5056de Don't use real reactor in these tests. 2022-02-02 11:00:16 -05:00
Itamar Turner-Trauring
70d0bd0597 Test and document what happens for non-existent storage index. 2022-02-01 10:41:12 -05:00
Itamar Turner-Trauring
35bbcad4de Merge branch '3868-istorageserver-tests-http' into 3871-http-list-storage-index-shares 2022-02-01 10:36:55 -05:00
Itamar Turner-Trauring
0fbf746e27 Skip on Python 2. 2022-02-01 10:30:27 -05:00
Itamar Turner-Trauring
48a9bf7457 Hook up more IStorageServer tests that can now pass with HTTP. 2022-02-01 10:25:13 -05:00
Itamar Turner-Trauring
c72e7b0585 Implement HTTP share listing endpoint. 2022-02-01 10:20:23 -05:00
Itamar Turner-Trauring
c2e524ddb8 Make mypy happy. 2022-02-01 09:55:13 -05:00
Itamar Turner-Trauring
5dfaa82ed2 Skip tests that don't pass. 2022-02-01 09:47:51 -05:00
Itamar Turner-Trauring
66abe5dfca First passing immutable-API-over-HTTP IStorageServer tests. 2022-01-31 12:02:52 -05:00
Itamar Turner-Trauring
ef56435578 Merge branch '3855-immutable-http-apis-part-1' into 3868-istorageserver-tests-http 2022-01-31 11:36:28 -05:00
Itamar Turner-Trauring
e672029e6d First HTTP test passes. 2022-01-31 10:49:43 -05:00
Itamar Turner-Trauring
77f6f5d176 Merge remote-tracking branch 'origin/master' into 3855-immutable-http-apis-part-1 2022-01-31 10:36:54 -05:00
Jean-Paul Calderone
640bb05a57 Merge remote-tracking branch 'origin/master' into 3788.refactor-src.test.mutable 2022-01-28 13:07:48 -05:00
Itamar Turner-Trauring
d23fdcdb8a Sketch of first IStorageServer test with HTTP server/client. 2022-01-28 12:03:17 -05:00
Itamar Turner-Trauring
2583236ad8 Fix unused import. 2022-01-25 10:56:45 -05:00
Itamar Turner-Trauring
609bd819bb Merge remote-tracking branch 'origin/master' into 3855-immutable-http-apis-part-1 2022-01-25 10:42:04 -05:00
Itamar Turner-Trauring
e1f9f7de94 Note for future improvement. 2022-01-25 10:06:23 -05:00
Itamar Turner-Trauring
0346dfea60 Note we can do this now. 2022-01-25 09:56:54 -05:00
Itamar Turner-Trauring
b64e6552a4 Fix assertion. 2022-01-24 11:30:41 -05:00
Itamar Turner-Trauring
d2e3b74098 Some progress towards upload progress result from the server. 2022-01-21 12:36:58 -05:00
Itamar Turner-Trauring
a4cb4837e6 It's a secret, compare it securely. 2022-01-21 11:43:36 -05:00
Itamar Turner-Trauring
e8e3a3e663 Expand. 2022-01-21 11:37:46 -05:00
Itamar Turner-Trauring
c4d71a4636 Use abstractions for generating headers on client, note another place we should
generate headers.
2022-01-20 13:12:25 -05:00
Itamar Turner-Trauring
65787e5603 Get rid of inlineCallbacks. 2022-01-20 12:57:52 -05:00
Itamar Turner-Trauring
4b5c71ffbc Bit more info. 2022-01-20 12:50:36 -05:00
Itamar Turner-Trauring
b952e738dd Try to clarify. 2022-01-20 12:43:01 -05:00
Itamar Turner-Trauring
2a2ab1ead7 Use a set, not a list, for share numbers. 2022-01-20 12:39:25 -05:00
Itamar Turner-Trauring
587a510b06 Note a better way to implement this. 2022-01-20 12:38:01 -05:00
Itamar Turner-Trauring
9a0a19c15a Reminder we might want to support JSON too. 2022-01-20 12:07:58 -05:00
Itamar Turner-Trauring
5fa8c78f97 Don't use reactor, since it's not necessary. 2022-01-20 12:04:20 -05:00
Itamar Turner-Trauring
f09aa8c796 Use pre-existing parser for Range and Content-Range headers. 2022-01-20 11:16:06 -05:00
Itamar Turner-Trauring
d5bac8e186 Make sure upload secret semantics are still supporting the security goals. 2022-01-20 10:56:08 -05:00
Itamar Turner-Trauring
1bf2b2ee5f Note follow-up issue. 2022-01-20 10:52:44 -05:00
Itamar Turner-Trauring
23368fc9d9 Move tests back into unittest module. 2022-01-20 10:34:09 -05:00
Itamar Turner-Trauring
406a06a508 Make sure we don't violate the Foolscap interface definition for this method. 2022-01-17 14:38:06 -05:00
Itamar Turner-Trauring
28dbdbe019 Make sure return type is consistent. 2022-01-17 14:31:29 -05:00
Itamar Turner-Trauring
7aed7dbd8a Make module import on Python 2 (so tests can pass). 2022-01-17 14:24:28 -05:00
Itamar Turner-Trauring
79cd9a3d6d Fix lint. 2022-01-17 14:22:15 -05:00
Itamar Turner-Trauring
d4ae7c89aa First end-to-end immutable upload then download test passes. 2022-01-17 14:20:40 -05:00
Itamar Turner-Trauring
25e2100219 Immutable writing now knows when it's finished. 2022-01-17 14:06:21 -05:00
Itamar Turner-Trauring
4ea6bf2381 A test and some progress to making it pass. 2022-01-15 12:59:23 -05:00
Itamar Turner-Trauring
3bed067828 Implement more of the writing logic. 2022-01-14 08:34:17 -05:00
Itamar Turner-Trauring
f5437d9be7 Some progress towards bucket allocation endpoint, and defining the protocol better. 2022-01-12 11:51:56 -05:00
Itamar Turner-Trauring
018f53105e Pass correct arguments. 2022-01-12 11:16:39 -05:00
Itamar Turner-Trauring
2bccb01be4 Fix bug wrapping endpoints. 2022-01-12 11:16:21 -05:00
Itamar Turner-Trauring
6e2aaa8391 Refactor more integration-y tests out. 2022-01-12 09:14:58 -05:00
Itamar Turner-Trauring
004e5fbc9d Get to point where we get failing HTTP response. 2022-01-11 15:47:32 -05:00
Itamar Turner-Trauring
2369de6873 Simple upload/download test for immutables. 2022-01-11 15:45:15 -05:00
Itamar Turner-Trauring
040569b47a Sketch of tests to write for basic HTTP immutable APIs. 2022-01-11 15:11:16 -05:00
Itamar Turner-Trauring
db68defe88 Sketch of basic immutable server-side logic. 2022-01-11 14:50:29 -05:00
Itamar Turner-Trauring
57405ea722 Finish sketch of minimal immutable HTTP client code. 2022-01-11 14:37:32 -05:00
meejah
db5c65e530 Merge branch 'master' into 3854.mime-parsing-bug 2022-01-07 12:16:25 -07:00
meejah
9644532916 don't depend on order 2022-01-07 11:28:55 -07:00
meejah
a49baf44b6 actually-reproduce 3852 2022-01-07 10:59:13 -07:00
meejah
11f2097591 docstring 2022-01-07 10:58:58 -07:00
meejah
983f90116b check differently, don't depend on order 2022-01-06 13:15:31 -07:00
Itamar Turner-Trauring
2864ff872d Another MIME type that needs to be handled by FieldStorage. 2022-01-06 13:34:56 -05:00
Itamar Turner-Trauring
9f5d7c6d22 Fix a bug where we did unnecessary parsing. 2022-01-06 13:09:25 -05:00
Itamar Turner-Trauring
2f94fdf372 Extra testing coverage, including reproducer for #3854. 2022-01-06 13:09:19 -05:00
Itamar Turner-Trauring
90a25d0109 Reorganize into shared file. 2022-01-06 12:36:46 -05:00
Itamar Turner-Trauring
9c20ac8e7b Client API sketch for basic immutable interactions. 2022-01-05 16:06:29 -05:00
Itamar Turner-Trauring
5f4db487f7 Sketch of required business logic. 2022-01-04 13:43:19 -05:00
meejah
5be5714bb3 fix; get rid of sorting 2021-12-22 15:32:40 -07:00
meejah
94b540215f args are bytes 2021-12-22 15:32:30 -07:00
meejah
e9aaaaccc4 test for json welcome page 2021-12-22 15:31:09 -07:00
Itamar Turner-Trauring
58a71517c1 Correct way to skip with testtools. 2021-12-22 13:16:43 -05:00
Itamar Turner-Trauring
7a0c83e71b Split up test. 2021-12-22 11:52:13 -05:00
Itamar Turner-Trauring
8b4d166a54 Use hypothesis for another test. 2021-12-22 11:44:45 -05:00
Itamar Turner-Trauring
776f19cbb2 Even more hypothesis, this time for secrets' contents. 2021-12-21 12:34:02 -05:00
Itamar Turner-Trauring
b1f4e82adf Switch to using hypothesis. 2021-12-21 11:55:16 -05:00
Itamar Turner-Trauring
2bda2a0127 Switch to using a fixture. 2021-12-21 11:10:53 -05:00
Itamar Turner-Trauring
1721865b20 No longer TODO. 2021-12-20 13:46:19 -05:00
Itamar Turner-Trauring
291b4e1896 Use more secure comparison to prevent timing-based side-channel attacks. 2021-12-20 11:17:27 -05:00
Itamar Turner-Trauring
a529ba7d5e More skipping on Python 2. 2021-12-17 09:14:09 -05:00
Itamar Turner-Trauring
81b95f3335 Ensure secret was validated. 2021-12-16 11:53:31 -05:00
Itamar Turner-Trauring
428a9d0573 Lint fix. 2021-12-16 11:47:40 -05:00
Itamar Turner-Trauring
fb0be6b894 Enforce length of lease secrets. 2021-12-16 11:46:35 -05:00
Itamar Turner-Trauring
816dc0c73f X-Tahoe-Authorization can be validated and are passed to server methods. 2021-12-16 11:42:06 -05:00
Itamar Turner-Trauring
da52a9aede Test for server-side secret handling. 2021-12-16 11:17:32 -05:00
Itamar Turner-Trauring
87fa9ac2a8 Infrastructure for sending secrets. 2021-12-16 11:17:11 -05:00
Itamar Turner-Trauring
b32374c8bc Secret header parsing. 2021-12-16 10:39:58 -05:00
Itamar Turner-Trauring
2b6e1285e7 Merge remote-tracking branch 'origin/master' into 3849-refactor-out-foolscap-in-storage-server 2021-12-09 13:37:37 -05:00
meejah
c3e574b2ee Merge remote-tracking branch 'origin/master' into release-1.17.0 2021-12-06 11:27:34 -07:00
Jean-Paul Calderone
5f6579d446 hew closer to security/master version of these lines 2021-12-06 12:52:31 -05:00
meejah
50cdd9bd96 unused 2021-12-04 17:20:10 -07:00
meejah
5bb6fbc51f merge errors 2021-12-04 10:14:31 -07:00
Itamar Turner-Trauring
c8f429c496 Merge remote-tracking branch 'origin/master' into 3849-refactor-out-foolscap-in-storage-server 2021-12-03 13:52:42 -05:00
Itamar Turner-Trauring
90f8480cf0 Make more of the unittests pass again with the StorageServer factoring. 2021-12-03 13:39:53 -05:00
Itamar Turner-Trauring
314b202914 Ignore another field which can change. 2021-12-03 12:58:12 -05:00
meejah
18891d9e77 Merge remote-tracking branch 'security/master' 2021-12-02 14:44:59 -07:00
Itamar Turner-Trauring
439e5f2998 Insofar as possible, switch to testing without the Foolscap API. 2021-12-02 10:52:03 -05:00
Itamar Turner-Trauring
8c3d61a94e Bit more backwards compatible. 2021-12-02 10:49:23 -05:00
Itamar Turner-Trauring
476c41e49e Split out Foolscap code from BucketReader/Writer. 2021-12-02 10:29:52 -05:00
Itamar Turner-Trauring
f7cb4d5c92 Hook up the new FoolscapStorageServer, and fix enough bugs, such that almost all
end-to-end and integration tests pass.
2021-12-02 10:07:14 -05:00
Itamar Turner-Trauring
6b8a42b043 Make the test more robust. 2021-12-02 09:35:37 -05:00
Jean-Paul Calderone
82099f04c4 Merge remote-tracking branch 'origin/master' into 3758.refactor.web-tests-grid-logs-root 2021-12-02 08:36:35 -05:00
meejah
4bc0df7cc1 file, not path 2021-12-02 00:14:15 -07:00
meejah
40e7be6d8d needs reason 2021-12-01 23:46:10 -07:00
meejah
e0092ededa fine, just skip tests on windows 2021-12-01 20:52:22 -07:00
Jean-Paul Calderone
8626043f61
Merge pull request #1163 from tahoe-lafs/3847.eliot-anybytes-always
Use the "any bytes" encoder even on Python 2

Fixes: ticket:3847
2021-12-01 15:47:16 -05:00
Jean-Paul Calderone
eee1f0975d note about how to clean this up later 2021-12-01 15:16:16 -05:00
Jean-Paul Calderone
90d1e90a14 rewrite the Eliot interaction tests to make expected behavior clearer
and to have explicit assertions about that behavior
2021-12-01 15:05:29 -05:00