Project Structure

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. cmd/ (Barbican admin command source files)

    3. common/ (Modules shared across other Barbican folders)

    4. locale/ (Translation templates)

    5. model/ (SQLAlchemy-based model classes)

    6. 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)

    7. 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)

    8. tasks/ (Worker-related controllers and implementations)

    9. tests/ (Unit tests)

  2. bin/ (Start-up scripts for the Barbican nodes)

  3. devstack/ (Barbican DevStack plugin, DevStack gate configuration and

    Vagrantfile for installing DevStack VM)

  4. etc/barbican/ (Configuration files)

  5. functionaltests (Functional Barbican tests)

  6. doc/source (Sphinx documentation)

  7. releasenotes (Barbican Release Notes)

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.