Commit Graph

8052 Commits

Author SHA1 Message Date
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
meejah
940c6343cf consistency 2021-12-01 12:02:42 -07:00
meejah
7080ee6fc7 oops 2021-12-01 12:02:06 -07:00
meejah
25ca767095 an offering to the windows godesses 2021-12-01 11:49:52 -07:00
Itamar Turner-Trauring
f7975b9772
Merge pull request #1161 from tahoe-lafs/3843-start-http-storage-server
A start at a HTTP-based storage server and client

Fixes ticket:3843
Fixes ticket:3762
2021-12-01 10:18:36 -05:00
Itamar Turner-Trauring
50e21a9034 Split StorageServer into generic part and Foolscap part. 2021-12-01 09:55:44 -05:00
Itamar Turner-Trauring
6e1f6f68ca Merge branch '3843-start-http-storage-server' into 3849-refactor-out-foolscap-in-storage-server 2021-12-01 09:41:21 -05:00
Itamar Turner-Trauring
18a5966f1d Don't bother running HTTP server tests on Python 2, since it's going away any
day now.
2021-12-01 09:38:56 -05:00
meejah
85fa8fe32e py2/py3 glue code for json dumping 2021-11-30 23:00:59 -07:00
meejah
b47381401c flake8 2021-11-30 19:01:09 -07:00
meejah
679c464517 tests 2021-11-30 18:43:06 -07:00
meejah
fc9671a812 simplify, flake9 2021-11-30 18:25:32 -07:00
meejah
0a4bc385c5 fix tests to use migrate command 2021-11-30 18:00:58 -07:00
meejah
1b8ae8039e no auto-migrate; produce error if pickle-files exist 2021-11-30 16:01:15 -07:00
meejah
3fd1ca8acb it's an error to have pickle-format files 2021-11-30 16:00:35 -07:00
meejah
49f2489321 explicit 'migrate pickle files' command 2021-11-30 15:59:27 -07:00
Jean-Paul Calderone
c1a2964788 Merge remote-tracking branch 'origin/master' into 3527.test_create-no-mock 2021-11-30 15:06:17 -05:00
Jean-Paul Calderone
7626a02bdb remove redundant assertion 2021-11-29 13:43:27 -05:00
Jean-Paul Calderone
20e0626e42 add capture_logging that parameterizes JSON encoder 2021-11-29 13:43:27 -05:00
Jean-Paul Calderone
3eb1a5e7cb Add a MemoryLogger that prefers our encoder
and use it instead of Eliot's
2021-11-29 13:43:27 -05:00
Jean-Paul Calderone
f40da7dc27 Put the choice of JSON encoder for Eliot into its own module
and use it in a few places
2021-11-29 13:43:27 -05:00
Jean-Paul Calderone
66a0c6f3f4 add a direct test for the non-utf-8 bytestring behavior 2021-11-29 13:43:27 -05:00
Jean-Paul Calderone
c02d8cab3a change one more assertTrue to assertEquals 2021-11-29 08:56:05 -05:00
fenn-cs
118e323b9e Merge branch 'master' of github.com:tahoe-lafs/tahoe-lafs into 3788.refactor-src.test.mutable 2021-11-27 00:59:50 +01:00
fenn-cs
54c032d0d7 change assertTrue -> assertEquals for non bools
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
2021-11-27 00:59:13 +01:00
meejah
5855a30e34 add docstrings 2021-11-23 14:01:43 -07:00
meejah
b0309331a5 Merge branch 'master' into 3825.json-pickle 2021-11-23 13:53:41 -07:00
Itamar Turner-Trauring
a593095dc9 Explain why it's a conditional import. 2021-11-23 10:39:53 -05:00
Itamar Turner-Trauring
c921b153f4 A better name for the API. 2021-11-23 10:39:15 -05:00
Itamar Turner-Trauring
c341a86abd Correct the comment. 2021-11-23 10:01:03 -05:00
Jean-Paul Calderone
d1839187f1 "misplaced type annotation" 2021-11-22 08:45:10 -05:00
Jean-Paul Calderone
b92343c664 some more docstrings 2021-11-22 08:36:12 -05:00
Jean-Paul Calderone
e0c0c32c13 Merge remote-tracking branch 'remediate/master' into LFS-01-010.mutable 2021-11-22 07:59:43 -05:00
Jean-Paul Calderone
04e45f065a document compare_leases_without_timestamps 2021-11-22 07:59:01 -05:00
Itamar Turner-Trauring
4c11177387 Fix a problem with typechecking.
Using remote_write() isn't quite right given move to HTTP, but can fight that
battle another day.
2021-11-18 15:58:55 -05:00
Itamar Turner-Trauring
e2636466b5 Fix a flake. 2021-11-18 15:47:25 -05:00
Itamar Turner-Trauring
bd645edd9e Fix flake. 2021-11-18 15:44:51 -05:00
Itamar Turner-Trauring
5d915afe1c Clean up BucketWriters on shutdown (also preventing DelayedCalls leaks in tests). 2021-11-18 15:42:54 -05:00
Itamar Turner-Trauring
1827faf36b Fix issue with leaked-past-end-of-test DelayedCalls. 2021-11-18 14:45:44 -05:00
Itamar Turner-Trauring
8c8e377466 Implement timeout and corresponding tests. 2021-11-18 14:35:04 -05:00
Itamar Turner-Trauring
5e341ad43a New tests to write. 2021-11-17 11:29:34 -05:00
Itamar Turner-Trauring
45c00e93c9 Use clock in BucketWriter. 2021-11-17 11:12:40 -05:00
Itamar Turner-Trauring
92c36a67d8 Use IReactorTime instead of ad-hoc solutions. 2021-11-17 11:01:04 -05:00
Jean-Paul Calderone
e8adca40ab give the ContainerVersionError exceptions a nice str 2021-11-16 18:36:59 -05:00
Jean-Paul Calderone
3a8432713f a note about what's happening with proxyForInterface 2021-11-16 18:29:05 -05:00
Jean-Paul Calderone
a208502e18 whitespace 2021-11-16 18:29:01 -05:00
meejah
2fe686135b rename data to appease distutils 2021-11-16 15:08:31 -07:00
meejah
23ff1b2430 noqa 2021-11-16 15:08:31 -07:00
meejah
1c93175583 cleanup 2021-11-16 15:08:31 -07:00
meejah
4f64bbaa00 data 2021-11-16 15:08:31 -07:00
meejah
9b3c55e4aa test a second deserialzation 2021-11-16 15:08:31 -07:00
meejah
069c332a68 straight assert 2021-11-16 15:08:31 -07:00
meejah
94670461f1 tests 2021-11-16 15:08:31 -07:00
meejah
a867294e00 dead 2021-11-16 15:08:31 -07:00
meejah
75410e51f0 refactor 2021-11-16 15:08:31 -07:00
meejah
d4fc14f9ad docstring 2021-11-16 15:08:31 -07:00
meejah
89c2aacadc working test of 'in the wild' data, working converters 2021-11-16 15:08:31 -07:00
meejah
bf5e682d71 test upgrade of main state works 2021-11-16 15:08:31 -07:00
meejah
f81e4e2d25 refactor to use serializers / pickle->json upgraders 2021-11-16 15:08:31 -07:00
meejah
fa6950f08d an old pickle-format lease-checker state file 2021-11-16 15:08:31 -07:00
meejah
bb70e00065 Make internal state JSON-able for lease-crawler 2021-11-16 15:08:31 -07:00
meejah
f7b385f954 play nice with subclasses 2021-11-16 15:08:31 -07:00
meejah
3b69df36b0 crawler: pickle -> json 2021-11-16 15:08:31 -07:00
Itamar Turner-Trauring
f549488bb5 Don't use a deprecated API. 2021-11-16 11:47:09 -05:00
Itamar Turner-Trauring
a64778ddb0 Flakes. 2021-11-16 11:28:13 -05:00
Itamar Turner-Trauring
c195f895db Python 2 support. 2021-11-16 11:16:26 -05:00
Itamar Turner-Trauring
171d1053ec CBOR content-type on responses. 2021-11-16 11:09:17 -05:00
Itamar Turner-Trauring
671b670154 Some type annotations. 2021-11-16 11:09:08 -05:00
Itamar Turner-Trauring
41ec63f758 Passing first tests. 2021-11-16 10:56:21 -05:00
Jean-Paul Calderone
fcd634fc43 some direct tests for the new utility function 2021-11-15 13:34:46 -05:00
Jean-Paul Calderone
84c19f5468 clarify renew_leases docs on slot_testv_and_readv_and_writev 2021-11-15 08:12:07 -05:00
Jean-Paul Calderone
ad6017e63d clarify renew_leases docs on allocate_buckets 2021-11-15 08:11:53 -05:00
Jean-Paul Calderone
6c2e85e991 put the comment back 2021-11-12 16:25:36 -05:00
Jean-Paul Calderone
dece67ee3a it is not the remote interface that varies anymore 2021-11-12 16:24:29 -05:00
Jean-Paul Calderone
85977e48a7 put this comment back and merge info from the two versions 2021-11-12 16:23:15 -05:00
Jean-Paul Calderone
c3cb0ebaea Switch to per-call parameter for controlling lease renewal behavior
This is closer to an implementation where you could have two frontends, say a
Foolscap frontend and an HTTP frontend or even just two different HTTP
frontends, which had different opinions about what the behaviour should be.
2021-11-12 16:20:27 -05:00
Itamar Turner-Trauring
c101dd4dc9 Closer to first passing test. 2021-11-12 13:13:19 -05:00
Itamar Turner-Trauring
12cbf8a901 First sketch of HTTP testing infrastructure. 2021-11-12 13:03:53 -05:00
Itamar Turner-Trauring
ddd2780bd2 First sketch of HTTP client. 2021-11-12 12:51:52 -05:00
Itamar Turner-Trauring
a32c6be978 A sketch of what the HTTP server will look like. 2021-11-12 12:02:58 -05:00
Jean-Paul Calderone
2742de6f7c drop some ancient cruft
allocated_size not used anywhere, so why have it
2021-11-10 16:08:53 -05:00
Jean-Paul Calderone
9af81d21c5 add a way to turn off implicit bucket lease renewal too 2021-11-10 16:08:40 -05:00
Jean-Paul Calderone
617a1eac9d refactor lease hashing logic to avoid mutable/immutable duplication 2021-11-05 15:30:49 -04:00
Jean-Paul Calderone
456df65a07 Add v2 of the mutable container schema
It uses hashed lease secrets, like v2 of the immutable container schema.
2021-11-05 14:16:43 -04:00
Jean-Paul Calderone
3de9c73b0b preserve the type when renewing HashedLeaseInfo
does this mean immutable lease renewal is untested?  maybe
2021-11-05 14:11:05 -04:00
Jean-Paul Calderone
5d703d9893 some type annotations 2021-11-05 14:10:27 -04:00
Jean-Paul Calderone
0cd96ed713 fix the debug tool for the hashed lease secret case 2021-11-05 14:09:46 -04:00
Jean-Paul Calderone
8adff050a7 compare without breaking out all of the fields
HashedLeaseInfo doesn't have all of these attributes
2021-11-05 13:51:46 -04:00
Jean-Paul Calderone
07ffde3bec
Merge pull request #1158 from tahoe-lafs/3838.more-main-tub-cleanup
More "main tub" initialization cleanup in test code

Fixes: ticket:3838
2021-11-05 11:13:23 -04:00
Jean-Paul Calderone
728638fe23 apply the MutableShareFile tests to all known schemas 2021-11-04 15:37:29 -04:00
Jean-Paul Calderone
931ddf85a5 introduce an explicit representation of the v1 mutable container schema
This is only a partial representation, sufficient to express the changes that
are coming in v2.
2021-11-04 15:26:58 -04:00
Jean-Paul Calderone
2186bfcc37 silence some mypy errors :/
I don't know the "right" way to make mypy happy with these things
2021-11-04 14:40:43 -04:00
Jean-Paul Calderone
6889ab2a76 fix syntax of type hint 2021-11-04 14:16:55 -04:00
Jean-Paul Calderone
7a59aa83bb add missing import 2021-11-04 14:12:54 -04:00
Jean-Paul Calderone
b69e8d013b introduce immutable container schema version 2
This version used on-disk hashed secrets to reduce the chance of secrets
leaking to unintended parties.
2021-11-04 14:07:49 -04:00
Jean-Paul Calderone
234b8dcde2 Formalize LeaseInfo interface in preparation for another implementation 2021-11-04 12:07:24 -04:00
Jean-Paul Calderone
3b41419523 apply the ShareFile tests to all schema versions using hypothesis 2021-11-04 10:32:59 -04:00
Jean-Paul Calderone
10724a91f9 introduce an explicit representation of the v1 immutable container schema
This is only a partial representation, sufficient to express the changes that
are coming in v2.
2021-11-04 10:17:36 -04:00
Jean-Paul Calderone
274dc6e837 Introduce UnknownContainerVersionError base w/ structured args 2021-11-04 10:06:26 -04:00
Jean-Paul Calderone
a71b1d31bf Merge remote-tracking branch 'upstream/master' 2021-11-04 10:02:54 -04:00
Jean-Paul Calderone
780be2691b assign a tub.port to all system test nodes 2021-11-03 16:11:28 -04:00
Jean-Paul Calderone
5caa80fe38 use UseNode more in test_client.py
Also make write_introducer more lenient about filesystem state
2021-11-03 16:11:08 -04:00
Jean-Paul Calderone
5a71774bf8 use port assigner and UseNode more in test_node.py 2021-11-03 16:10:32 -04:00
Jean-Paul Calderone
31649890ef Teach UseNode to use a port assigner for tub.port
Then use it to assign ports for tub.port unless the caller supplied their own
value.
2021-11-03 16:08:08 -04:00
Jean-Paul Calderone
797e099459 make create_introducer_webish assign a main tub port 2021-11-03 16:05:28 -04:00
Jean-Paul Calderone
7335b2a597 remove unused import 2021-11-03 13:16:15 -04:00
Jean-Paul Calderone
8e150cce6a add explicit direct tests for the new methods 2021-11-03 13:14:55 -04:00
Jean-Paul Calderone
70a7500c56 Merge remote-tracking branch 'origin/master' into 3834.renew_secret_comparison_helper 2021-11-03 13:05:41 -04:00
Jean-Paul Calderone
e8ed711d26 Merge remote-tracking branch 'origin/master' into 3833.container-format-abstraction 2021-11-03 12:25:38 -04:00