diff options
-rw-r--r-- | scripts/PLAN | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/scripts/PLAN b/scripts/PLAN deleted file mode 100644 index f0eb191e..00000000 --- a/scripts/PLAN +++ /dev/null @@ -1,73 +0,0 @@ -$Id$ - - - -At this point it's starting to look like the pdu objects in -rpki.left_right are a subclass of a more general class of objects that -live in SQL (duh). This makes sense as left-right protocol was -designed to let us frob a subset of the rpki database on the wire. - -Hmm, it's more complicated than that. Most of left_right maps well, -but portions (eg, <list_resources/>) are just commands and do not. -Mixin? We have a varient of this same problem with the mixins I'm -already using in irbe-cli.py. - -Also need to think about up-down protocol, currently separate but some -of these objects might map there too. This is why I originally -intended to code all of these as separate object hierarchies even -though in some cases they look awfully similar. Hmm, implement as -separate hierarchies with sideways conversion methods? Still feels -wrong, but so does turning this into one big interconnected mess. - -Ok, up-down XML is all structured as commands, data is all attributes -and (occasionally) element content, so not very close match to db. - -So this appears to break out fairly cleanly: objects shown in blue in -the repository-engine-objects.pdf picture are both left-right PDU -objects and database objects, objects shown in green are only database -objects, and left-right PDU objects not shown in that picture are just -left-right PDUs. Or something close to this, details need checking. -So this does look like some kind of mixin would be appropriate. - - - -Code to pull in an entire self_id context at once turned out to be -much too complicated. Replacement is more of a demand-paged design. -Need to be careful about making sure we save out all changes between -events, objects have a .sql_dirty attribute but I should also add a -Python set object into which we can insert any object that needs to be -saved when the current event exits. - -Haven't done anything about db.commit() and db.rollback() yet, for -that matter haven't yet whacked MySQL to enable those features. - -Access to object data attributes really ought to be through accessor -methods so that the .set() method can set the sql_dirty flag -automagically. Not done yet. - -Hmm, do we really need .sql_dirty at all? Maybe just inserting the -object into the dirty set (above) would suffice? One less thing to -screw up. - -RelaxNG schemas probably ought to be internal rather than files with -magic names or config variables pointing at files. Makefile hack to -put a Python wrapper around a .rng file, and automatically convert -.rng to lxml internal form while we're at it? - -Have started on RPKI-specific exception hierarchy (well, it might be -flat) and conversion of inappropriate uses of assert and standard -exceptions to use rpki-specific exceptions. Top level of protocol -handlers needs to include exception catches that translate these -exceptions into appropriate protocol error messages. - -Generalize serve_copy_hook() into serve_action_hook() and use it to -handle actions signaled by the various left-right boolean controls. -One fun test case for this should be bsc keypair generation. - -Some of the defined actions may be things we can't implement yet due -to lack of a real timer system. Eg, the various "do this right now" -actions are probably best handled as triggers, a la interrupt -handlers. Well, maybe. IRBE folks might prefer a version that -blocked response to the request until the whole cycle is done, once we -have an event system that can treat the query and response phases of -an rpc operation as two distinct events. |