Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Heketi uses simple HTTP framework from Negroni which is based on Go's HTTP library. By using this framework, it allows developers to easily create and install features as middleware.
Middleware can be created and installed in Heketi using the Negroni HTTP framework. Middleware sits in the HTTP pipeline allowing for possible software to enhance Heketi by inspecting HTTP requests. All middleware in Heketi is available in the middleware directory.
GlusterFS Framework Application
Heketi supports multiple applications to be run concurrently as long as they do not have conflicting REST endpoints. Currently there is only one application today, which handles the storage management in GlusterFS on baremetal systems or virtual machines. This application stores all metadata in a BoltDB transactional, key-value database.
An executor is an implementation on how to access and manage a system, device, or GlusterFS. By providing an interface, it provides a simple model for developers to enhance Heketi with multiple ways to access and manage assets. All executors are located in the executors directory.
Heketi provides an intelligent volume allocator which determines where to place the bricks across the cluster. Just like executors, the allocator interface provides developers the ability to enhance Heketi in the future by providing multiple methods of allocating bricks across the cluster. Currently there is just a single allocator called Simple Ring Allocator.