barbican/doc/source/contribute/structure.rst

1.5 KiB

Project Structure

  1. barbican/ (Barbican-specific Python source files)
    1. api/ (REST API related source files)
      1. controllers/ (Pecan-based controllers handling REST-based requests)
      2. middleware/ (Middleware business logic to process REST requests)
    2. common/ (Modules shared across other Barbican folders)
    3. model/ (SQLAlchemy-based model classes)
    4. openstack/ (OpenStack utility Python source and folders - generated from oslo-incubator)
    5. plugin/ (Plugin related logic, interfaces and look-up management)
      1. resources.py (Supports interactions with plugins)
      2. crypto/ (Hardware security module (HSM) logic and plugins)
      3. interface/ (Certificate manager and secret store interface classes)
      4. (The remaining modules here are implementations of above interfaces)
    6. queue/ (Client and server interfaces to the queue)
      1. client.py (Allows clients to publish tasks to queue)
      2. server.py (Runs the worker service, responds to enqueued tasks)
    7. tasks/ (Worker-related controllers and implementations)
    8. tests/ (Unit tests)
  2. bin/ (Start-up scripts for the Barbican nodes (API and worker))
  3. rpmbuild/ (RPM package artifacts)
  4. etc/barbican/ (Configuration files)
  5. functionaltests (Functional Barbican tests, DevStack gate configuration)
  6. doc/source (Sphinx documentation)
  7. docs/src (Docbook documentation - on hold pending project tagging)