Text Blame History Raw
  1. The entire codebase of the project has been re-implemented in Python 3 using a curated set of libraries and dependencies which are actively developed and maintained.
  2. The project has been structured to facilitate simpler installation for both consumers and maintainers, with possible easy distribution as a PyPI package and an RPM package.
  3. Our test suite ensures that the codebase conforms to the relevant code quality standards and style guidelines, and all of the code is covered in tests.
  4. The entire codebase of the project complies with the relevant code quality standards and the included integration and unit tests help attain a 100% code coverage.
  5. This version of Duffy introduces CLI tools to set up the database structure as well as create and perform database migrations (for potential future upgrades).
  6. The project is now capable of provisioning both baremetal nodes as well as virtual machine nodes using a pool-based allocation, agnostic of the specifications of the nodes.
  7. The rewritten API path operations are now more semantic in CRUD operations, more verbose with varied status responses and are documented according to the OpenAPI standards.
  8. The included metaclient bridges the compatibility for existing users of Duffy to migrate to a limited release of the newer version without much changes to the automation scripts.
  9. The continuous integration pipelines allow for automatic updates made to the dependency lockfiles to enrich contributor convenience by ensuring a common set of dependencies.
  10. The backend-agnostic approach of the API makes the project pluggable and paves way for the usage of EC2 resources with a possible future integration with the AWS API.
  11. The newly introduced task worker unifies the operations for provisioning, fetching and returning nodes in a single unit, backed by a Redis queue mediated by Celery.
  12. The project can now be easily managed as a service with the use of the included Systemd scripts and the CLI can interact with an existing running service easily.
  13. The project makes use of a convenient yet powerful CLI flag based and YAML based configuration that admins can derive theirs from by using the included example.
  14. The logging system added in the project is appropriately verbose and specifically descriptive to mark important events and can be configured to exhibit different levels.
  15. The security scheme marks a departure from a simple API key based authentication to a more secure and standardized username/password-based simple HTTP authentication.