Project Structure¶
barbican/(Barbican-specific Python source files)api/(REST API related source files)controllers/(Pecan-based controllers handling REST-based requests)middleware/(Middleware business logic to process REST requests)
cmd/(Barbican admin command source files)common/(Modules shared across other Barbican folders)locale/(Translation templates)model/(SQLAlchemy-based model classes)plugin/(Plugin related logic, interfaces and look-up management)resources.py(Supports interactions with plugins)crypto/(Hardware security module (HSM) logic and plugins)interface/(Certificate manager and secret store interface classes)(The remaining modules here are implementations of above interfaces)
queue/(Client and server interfaces to the queue)client.py(Allows clients to publish tasks to queue)server.py(Runs the worker service, responds to enqueued tasks)
tasks/(Worker-related controllers and implementations)tests/(Unit tests)
bin/(Start-up scripts for the Barbican nodes)devstack/(Barbican DevStack plugin, DevStack gate configuration andVagrantfile for installing DevStack VM)
etc/barbican/(Configuration files)functionaltests(Functional Barbican tests)doc/source(Sphinx documentation)releasenotes(Barbican Release Notes)