In this chapter, we've identified several different ways to interact with OpenStack using the available APIs. Now is a good time to revisit the design document and fill out the Requirements section. An ideal set of requirements for an OpenStack cloud will have the following characteristics:
Each requirement should be atomic to limit the scope of the requirement
Each requirement should contain context; there should be information on who will be using the functionality and under what circumstances
Each requirement should be testable, ideally in an automated fashion
If these conditions are met, we can generate policy documentation based on which roles should have access to which functionality and we can generate automated test suites that verify that the requirements of the platform are met. These test suites can in turn be used in monitoring suites to ensure that the running system is performing according to specification.