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 and
- Vagrantfile for installing DevStack VM)
etc/barbican/ (Configuration files)
functionaltests (Functional Barbican tests)
doc/source (Sphinx documentation)
releasenotes (Barbican Release Notes)