Commit Graph
79 Commits
Author SHA1 Message Date
Tim Bruijnzeels 301a8f0302 Adding logging framework and config to pubd. 2018-12-19 15:22:02 +01:00
Tim Bruijnzeels b95268c460 Support interacting with the pubd through the pubc CLI, and serve RRDP files.
Note:
- Serving the files still needs some improvement with regard to memory (stream rather), and headers for caching.
- Syncing 108MB RIPE NCC repo takes 1m30s initially, and about 2m30s subsequently when there is no update to send.
- Performance could be better, but seems more than good enough for the target use.
2018-12-12 16:54:52 +01:00
Tim Bruijnzeels 2ac5f9703f Fix private key ser-de. 2018-12-12 11:08:16 +01:00
Tim Bruijnzeels e9806b2e90 Some code cleanup, and now testing that the correct notification file and delta references are written. 2018-12-11 16:41:50 +01:00
Tim Bruijnzeels 27906b623e Work in progress - write notification, snapshot and delta files when publishing. 2018-12-11 11:07:21 +01:00
Tim Bruijnzeels f23bc90b4a Publishing at the server, from the client, integration test working. 2018-12-05 17:04:01 +01:00
Tim Bruijnzeels 09189d54df Perform a list query, and parse the reply. 2018-12-04 16:14:53 +01:00
Tim Bruijnzeels 77c0346612 Expose http handler for receiving list and publish requests. Note this will be tested in the integration test once the client side is implemented. 2018-12-03 15:35:47 +01:00
Tim Bruijnzeels 7817e27e93 Using reqwest instead of hyper, because synchronous requests are all we need here, both in testing and for the publication client 2018-12-03 11:31:46 +01:00
Tim Bruijnzeels 93bba5c985 Replacing Hyper with Actix Web for the server. 2018-11-30 16:39:07 +01:00
Tim Bruijnzeels d59c4e7c4e Moving file handling code into a separate module for easy re-use by both pubc and pubd. 2018-11-29 16:46:15 +01:00
Tim Bruijnzeels 1f0ee5855b Handle publish/list requests. Still to do: integration testing, and exposing this in the http handler. 2018-11-28 16:07:14 +01:00
Tim Bruijnzeels ea7143ef37 Reorganised code somewhat to separate concerns better. Let the PubServer orchestrate between 'Responder', 'PublisherStore' and 'Repository'. 2018-11-27 10:36:41 +01:00
Tim Bruijnzeels 579c44464b Some clean-up. 2018-11-26 15:47:54 +01:00
Tim Bruijnzeels 00275d852d Moving PublisherStore into the provisioning module, rather than repo. 2018-11-26 15:08:27 +01:00
Tim Bruijnzeels b527dbb643 Combining PublisherStore and FileStore in a single Repository. Also passing config options by reference as much as possible. 2018-11-26 14:58:15 +01:00
Tim Bruijnzeels f247f5ede5 Disallow publish/update/withdraw outside of base uri. 2018-11-23 11:14:29 +01:00
Tim Bruijnzeels ec8e0bb215 Support processing a publish query (containing publish/update/withdraw elements) in the Repository and RepoPublisher. 2018-11-22 16:56:57 +01:00
Tim Bruijnzeels 5ca20044c1 Adding/removing RepoPublishers to the Repository, and some code clean up here and there. 2018-11-22 11:03:03 +01:00
Tim Bruijnzeels 747e2f8943 Fixing default URI paths 2018-11-21 15:01:51 +01:00
Tim Bruijnzeels ec59845ec0 Show repository response xml for a known publisher 2018-11-21 14:55:02 +01:00
Tim Bruijnzeels 930dbcca4e Small re-organisation of code for readability. 2018-11-21 12:07:41 +01:00
Tim Bruijnzeels 48a886a92e Implemented 'init' subcommand for publication client. 2018-11-20 16:59:49 +01:00
Tim Bruijnzeels e4b6b79f63 Parse options for publisher client. 2018-11-20 16:34:34 +01:00
Tim Bruijnzeels b3d73ade3d Process repository response in publisher client. 2018-11-20 15:27:02 +01:00
Tim Bruijnzeels 200191839a Let server generate a RepositoryResponse for a Publisher. Also refactored things to use PathBuf for directories, rather than String, in lots of related places. 2018-11-19 16:55:16 +01:00
Tim Bruijnzeels a9a2daa0fd Moving the publisher list syncing to the publication server. Use the publication server in the daemon. Initialise the publication server id if needed. 2018-11-19 14:32:47 +01:00
Tim Bruijnzeels 87045dd579 Formatting. 2018-11-19 12:31:06 +01:00
Tim Bruijnzeels 568d86b1b8 Initialise the publication server with identity. 2018-11-19 12:30:39 +01:00
Tim Bruijnzeels bd68987084 Moving MyIdentity into its own module for re-use by both PubClient and PubServer. 2018-11-16 16:43:43 +01:00
Tim Bruijnzeels c8f9e491d4 Rename server.rs to daemon.rs, will have separate stateful server (eg with identity) as the next step. 2018-11-16 16:28:04 +01:00
Tim Bruijnzeels 1cb5d036bf Prove that PubClient can get state from its work directory, and that it can be reinitialised. 2018-11-16 16:09:05 +01:00
Tim Bruijnzeels 6b072a15a3 Generating identity for publication client. 2018-11-15 15:48:19 +01:00
Tim Bruijnzeels 544b5c11a5 Integration test.. can be improved but at least starting a server and parsing a response. 2018-11-14 16:22:15 +01:00
Tim Bruijnzeels 1b4996ad61 Using a 'spawn' for the hyper server to allow for integration testing where the server shuts down at the end of the test. 2018-11-14 12:06:55 +01:00
Tim Bruijnzeels 6139df2a08 Have a pubc and pubd binary. 2018-11-14 11:18:39 +01:00
Tim Bruijnzeels 4adc5444a9 Introducing binary for CLI to publication server. 2018-11-12 12:49:05 +01:00
Tim Bruijnzeels 7cb00cfe92 Some minor code clean up 2018-11-12 12:48:05 +01:00
Tim Bruijnzeels 6f48730fc4 Returning all publishers as json 2018-11-07 15:52:37 +07:00
Tim Bruijnzeels a8e38e18f0 Fixed comments 2018-11-06 12:21:48 +07:00
Tim Bruijnzeels 9b5d1af34c Adding openssl based signer, using keystore for storage. 2018-11-06 11:51:12 +07:00
Tim Bruijnzeels e6226918f8 Removed direct dependency on bcder.rs, this is not needed, everything is in rpki.rs. 2018-10-31 10:01:40 +01:00
Tim Bruijnzeels 423ee6bf8a Fixing things after removal of PartialEq and Eq on some things in rpki-rs. 2018-10-31 09:47:52 +01:00
Tim Bruijnzeels c17720a6b8 Value in KeyStore does not need to implement Clone. 2018-10-31 09:35:48 +01:00
Tim Bruijnzeels cfbaf036e7 Making the PublisherList, KeyStore and CachingKeyStore mutable again, by requiring that the publisher list is clonable. Under the hood, the CachingKeyStore uses an Arc around an RWLock for cheap cloning. Still need to look into the use of PathBuf or other (Bytes?) to store the path to the directories. 2018-10-29 14:42:04 +01:00
Tim Bruijnzeels cd47bd3b25 Various fixes: keystore is immutable so it can go in an Arc, yet it can update things internally using its RWLock. Now syncing the PublisherList at start up and passing to the server. A start of an integration test was added, but it needs a whole more work to make it play with starting a hyper server for the duration of the test. 2018-10-26 16:47:29 +02:00
Tim Bruijnzeels 22c51861b6 Synchronising the publishers from disk (still needs to be integrated into main). 2018-10-25 16:13:43 +02:00
Tim Bruijnzeels 247fbd1533 Archiving an info message when archiving a version of a value. 2018-10-24 10:22:05 +02:00
Tim Bruijnzeels 54a3e965e5 Remove a publisher. 2018-10-23 12:47:54 +02:00
Tim Bruijnzeels da43238408 Fixing some documentation and lay-out. 2018-10-23 11:46:32 +02:00