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)