RPKI Engine  1.0
Public Member Functions | Public Attributes | Static Public Attributes
rpki::myrpki::main Class Reference
Inheritance diagram for rpki::myrpki::main:
Inheritance graph
Collaboration diagram for rpki::myrpki::main:
Collaboration graph

List of all members.

Public Member Functions

def __init__
def complete_delete_child
def complete_delete_parent
def complete_delete_publication_client
def complete_delete_repository
def complete_renew_child
def configure_resources_main
def do_configure_child
def do_configure_daemons
def do_configure_parent
def do_configure_publication_client
def do_configure_repository
def do_configure_resources
def do_delete_child
def do_delete_parent
def do_delete_publication_client
def do_delete_repository
def do_initialize
def do_renew_all_children
def do_renew_child
def do_update_bpki
def entitydb_complete
def help_overview
def read_config
def renew_children_common

Public Attributes

 bpki_resources
 bpki_servers
 cfg
 cfg_file
 default_repository
 entitydb
 handle
 histfile
 pubd_contact_info
 rsync_module
 rsync_server
 run_pubd
 run_rootd
 run_rpkid

Static Public Attributes

 completedefault = rpki.cli.Cmd.filename_complete
string prompt = "myrpki> "
 show_xml = False

Detailed Description

Definition at line 1036 of file myrpki.py.


Constructor & Destructor Documentation

def rpki::myrpki::main::__init__ (   self)

Definition at line 1044 of file myrpki.py.


Member Function Documentation

def rpki::myrpki::main::complete_delete_child (   self,
  args 
)

Definition at line 1333 of file myrpki.py.

References entitydb_complete().

Here is the call graph for this function:

def rpki::myrpki::main::complete_delete_parent (   self,
  args 
)

Definition at line 1396 of file myrpki.py.

References entitydb_complete().

Here is the call graph for this function:

def rpki::myrpki::main::complete_delete_publication_client (   self,
  args 
)

Definition at line 1499 of file myrpki.py.

References entitydb_complete().

Here is the call graph for this function:

def rpki::myrpki::main::complete_delete_repository (   self,
  args 
)

Definition at line 1547 of file myrpki.py.

References entitydb_complete().

Here is the call graph for this function:

def rpki::myrpki::main::complete_renew_child (   self,
  args 
)

Definition at line 1592 of file myrpki.py.

References entitydb_complete().

Here is the call graph for this function:

def rpki::myrpki::main::configure_resources_main (   self,
  msg = None 
)
Main program of old myrpki.py script.  This remains separate
because it's called from more than one place.

Definition at line 1604 of file myrpki.py.

References bpki_resources, entitydb, rpki::myrpki::etree_read(), rpki::myrpki::etree_write(), rpki::myrpki::child::handle, rpki::myrpki::parent::handle, rpki::myrpki::repository::handle, handle, and rpki::myrpki::PEMElement().

Referenced by do_configure_daemons(), and do_configure_resources().

Here is the call graph for this function:

Here is the caller graph for this function:

def rpki::myrpki::main::do_configure_child (   self,
  arg 
)
Configure a new child of this RPKI entity, given the child's XML
identity file as an input.  This command extracts the child's data
from the XML, cross-certifies the child's resource-holding BPKI
certificate, and generates an XML file describing the relationship
between the child and this parent, including this parent's BPKI
data and up-down protocol service URI.

Definition at line 1237 of file myrpki.py.

References bpki_resources, default_repository, entitydb, rpki::myrpki::etree_read(), rpki::myrpki::etree_write(), rpki::myrpki::child::handle, rpki::myrpki::parent::handle, rpki::myrpki::repository::handle, handle, rpki::myrpki::PEMElement(), run_pubd, run_rootd, and run_rpkid.

Here is the call graph for this function:

def rpki::myrpki::main::do_configure_daemons (   self,
  arg 
)
Configure RPKI daemons with the data built up by the other
commands in this program.

The basic model here is that each entity with resources to certify
runs the myrpki tool, but not all of them necessarily run their
own RPKI engines.  The entities that do run RPKI engines get data
from the entities they host via the XML files output by the
configure_resources command.  Those XML files are the input to
this command, which uses them to do all the work of configuring
daemons, populating SQL databases, and so forth.  A few operations
(eg, BSC construction) generate data which has to be shipped back
to the resource holder, which we do by updating the same XML file.

In essence, the XML files are a sneakernet (or email, or carrier
pigeon) communication channel between the resource holders and the
RPKI engine operators.

As a convenience, for the normal case where the RPKI engine
operator is itself a resource holder, this command in effect runs
the configure_resources command automatically to process the RPKI
engine operator's own resources.

Note that, due to the back and forth nature of some of these
operations, it may take several cycles for data structures to stablize
and everything to reach a steady state.  This is normal.

Definition at line 1672 of file myrpki.py.

References bpki_servers, rpki::config::parser::cfg, rpki::irdbd::main::cfg, rpki::myrpki::CA::cfg, cfg, configure_resources_main(), rpki::myrpki::etree_read(), rpki::myrpki::etree_write(), run_pubd, and show_xml.

Referenced by do_update_bpki().

Here is the call graph for this function:

Here is the caller graph for this function:

def rpki::myrpki::main::do_configure_parent (   self,
  arg 
)
Configure a new parent of this RPKI entity, given the output of
the parent's configure_child command as input.  This command reads
the parent's response XML, extracts the parent's BPKI and service
URI information, cross-certifies the parent's BPKI data into this
entity's BPKI, and checks for offers or referrals of publication
service.  If a publication offer or referral is present, we
generate a request-for-service message to that repository, in case
the user wants to avail herself of the referral or offer.

Definition at line 1337 of file myrpki.py.

References bpki_resources, entitydb, rpki::myrpki::etree_read(), rpki::myrpki::etree_write(), rpki::myrpki::child::handle, rpki::myrpki::parent::handle, rpki::myrpki::repository::handle, handle, and rpki::myrpki::PEMElement().

Here is the call graph for this function:

def rpki::myrpki::main::do_configure_publication_client (   self,
  arg 
)
Configure publication server to know about a new client, given the
client's request-for-service message as input.  This command reads
the client's request for service, cross-certifies the client's
BPKI data, and generates a response message containing the
repository's BPKI data and service URI.

Definition at line 1400 of file myrpki.py.

References rpki::myrpki::b64_equal(), bpki_resources, bpki_servers, entitydb, rpki::myrpki::etree_read(), rpki::myrpki::etree_write(), rpki::myrpki::child::handle, rpki::myrpki::parent::handle, rpki::myrpki::repository::handle, handle, rpki::myrpki::PEMBase64(), rpki::myrpki::PEMElement(), pubd_contact_info, rsync_module, and rsync_server.

Here is the call graph for this function:

def rpki::myrpki::main::do_configure_repository (   self,
  arg 
)
Configure a publication repository for this RPKI entity, given the
repository's response to our request-for-service message as input.
This command reads the repository's response, extracts and
cross-certifies the BPKI data and service URI, and links the
repository data with the corresponding parent data in our local
database.

Definition at line 1503 of file myrpki.py.

References entitydb, rpki::myrpki::etree_read(), and rpki::myrpki::etree_write().

Here is the call graph for this function:

def rpki::myrpki::main::do_configure_resources (   self,
  arg 
)
Read CSV files and all the descriptions of parents and children
that we've built up, package the result up as a single XML file to
be shipped to a hosting rpkid.

Definition at line 1659 of file myrpki.py.

References configure_resources_main().

Referenced by do_update_bpki().

Here is the call graph for this function:

Here is the caller graph for this function:

def rpki::myrpki::main::do_delete_child (   self,
  arg 
)
Delete a child of this RPKI entity.

This should check that the XML file it's deleting really is a
child, but doesn't, yet.

Definition at line 1320 of file myrpki.py.

References entitydb.

def rpki::myrpki::main::do_delete_parent (   self,
  arg 
)
Delete a parent of this RPKI entity.

This should check that the XML file it's deleting really is a
parent, but doesn't, yet.

Definition at line 1383 of file myrpki.py.

References entitydb.

def rpki::myrpki::main::do_delete_publication_client (   self,
  arg 
)
Delete a publication client of this RPKI entity.

This should check that the XML file it's deleting really is a
client, but doesn't, yet.

Definition at line 1486 of file myrpki.py.

References entitydb.

def rpki::myrpki::main::do_delete_repository (   self,
  arg 
)
Delete a repository of this RPKI entity.

This should check that the XML file it's deleting really is a
repository, but doesn't, yet.

Definition at line 1534 of file myrpki.py.

References entitydb.

def rpki::myrpki::main::do_initialize (   self,
  arg 
)
Initialize an RPKI installation.  This command reads the
configuration file, creates the BPKI and EntityDB directories,
generates the initial BPKI certificates, and creates an XML file
describing the resource-holding aspect of this RPKI installation.

Definition at line 1114 of file myrpki.py.

References bpki_resources, bpki_servers, entitydb, rpki::myrpki::etree_read(), rpki::myrpki::etree_write(), rpki::myrpki::child::handle, rpki::myrpki::parent::handle, rpki::myrpki::repository::handle, handle, rpki::myrpki::PEMElement(), run_pubd, run_rootd, and run_rpkid.

Referenced by do_update_bpki().

Here is the call graph for this function:

Here is the caller graph for this function:

def rpki::myrpki::main::do_renew_all_children (   self,
  arg 
)
Update validity period for all child entities.

Definition at line 1595 of file myrpki.py.

References renew_children_common().

Here is the call graph for this function:

def rpki::myrpki::main::do_renew_child (   self,
  arg 
)
Update validity period for one child entity.

Definition at line 1586 of file myrpki.py.

References renew_children_common().

Here is the call graph for this function:

def rpki::myrpki::main::do_update_bpki (   self,
  arg 
)
Update BPKI certificates.  Assumes an existing RPKI installation.

Basic plan here is to reissue all BPKI certificates we can, right
now.  In the long run we might want to be more clever about only
touching ones that need maintenance, but this will do for a start.

Most likely this should be run under cron.

Definition at line 1196 of file myrpki.py.

References bpki_resources, bpki_servers, do_configure_daemons(), do_configure_resources(), do_initialize(), run_pubd, run_rootd, and run_rpkid.

Here is the call graph for this function:

def rpki::myrpki::main::entitydb_complete (   self,
  prefix,
  text,
  line,
  begidx,
  endidx 
)
Completion helper for entitydb filenames.

Definition at line 1076 of file myrpki.py.

Referenced by complete_delete_child(), complete_delete_parent(), complete_delete_publication_client(), complete_delete_repository(), and complete_renew_child().

Here is the caller graph for this function:

def rpki::myrpki::main::help_overview (   self)
Show program __doc__ string.  Perhaps there's some clever way to
do this using the textwrap module, but for now something simple
and crude will suffice.

Definition at line 1066 of file myrpki.py.

def rpki::myrpki::main::read_config (   self)

Definition at line 1087 of file myrpki.py.

def rpki::myrpki::main::renew_children_common (   self,
  arg,
  plural 
)
Common code for renew_child and renew_all_children commands.

Definition at line 1551 of file myrpki.py.

References rpki::myrpki::etree_read(), and rpki::myrpki::etree_write().

Referenced by do_renew_all_children(), and do_renew_child().

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Definition at line 1087 of file myrpki.py.

Referenced by do_configure_daemons().

Definition at line 1044 of file myrpki.py.

rpki::myrpki::main::completedefault = rpki.cli.Cmd.filename_complete [static]

Definition at line 1040 of file myrpki.py.

Definition at line 1087 of file myrpki.py.

Referenced by do_configure_child().

Reimplemented from rpki::cli::Cmd.

Definition at line 1087 of file myrpki.py.

string rpki::myrpki::main::prompt = "myrpki> " [static]

Definition at line 1038 of file myrpki.py.

Referenced by rpki::cli::Cmd::do_EOF().

Definition at line 1087 of file myrpki.py.

Referenced by do_configure_publication_client().

Definition at line 1087 of file myrpki.py.

Referenced by do_configure_publication_client().

Definition at line 1087 of file myrpki.py.

Referenced by do_configure_publication_client().

Definition at line 1087 of file myrpki.py.

Referenced by do_configure_child(), do_initialize(), and do_update_bpki().

Definition at line 1087 of file myrpki.py.

Referenced by do_configure_child(), do_initialize(), and do_update_bpki().

rpki::myrpki::main::show_xml = False [static]

Definition at line 1042 of file myrpki.py.

Referenced by do_configure_daemons().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Properties