# Placement Developer Notes

The Nova project introduced the placement service as part of the Newton release, and it was extracted to its own repository in the Stein release. The service provides an HTTP API to manage inventories of different classes of resources, such as disk or virtual cpus, made available by entities called resource providers. Information provided through the placement API is intended to enable more effective accounting of resources in an OpenStack deployment and better scheduling of various entities in the cloud.

The document serves to explain the architecture of the system and to provide some guidance on how to maintain and extend the code. For more detail on why the system was created and how it does its job see Placement. For some insight into the longer term goals of the system see Goals and Vision Reflection.

- So You Want to Contribute…
  - Communication
  - Submitting and Managing Bugs
  - Reviewing Code
  - Writing Code
  - New Features
  - Project Team Lead Duties
- Architecture
  - Minimal Framework
  - Microversions
  - Adding a New Handler
  - Database Schema Changes
  - Gotchas
- API reference guideline
  - API reference
  - The guideline to write the API reference
  - Reference
- Goals
  - Don’t Use Global Config
- Quick Placement Development
  - Get The Code
  - Setup The Database
  - Run The Service
- Testing Placement
  - Using Gabbi
  - Writing More Gabbi Tests
  - Profiling
  - Profiling with OSProfiler
- Vision Reflection
  - The Pillars of Cloud
  - OpenStack-specific Considerations
  - Design Goals

this page last updated: 2026-04-01 21:43:44

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

found an error? report a bug