<div dir="ltr"><div><div><div><div><div><br></div>Hello,<br><br></div>More specifically, what is the best way to extend or customize OpenStack for integration with 3rd party products or APIs external to OpenStack?  For example, performing CRUD against a external database for determining and auto-generating a machine name, and its update or removal in line with when a machine is provisioned, updated, or removed?  Another example, invoking SOAP and REST APIs to interact with products outside of OpenStack during a number of OpenStack API requests.<br><br></div>The most clear method from a non-OpenStack approach appears to implement an API proxy , a wrapper in front of OpenStack. In this case, OpenStack remains unchanged for the most part, and the proxy can expose exactly the same operations. The proxy can also provide abstraction in that one can expose net new operations which comprise an entire flow of which several OpenStack API calls are made in sequence. In any of these examples, an entire intermediary workflow can be prepared in which during a request, one may run custom logic with asynchronous communication with other external 3rd party applications, and then update or alter the request in flight such that the API request to OpenStack now has been tailored. For example, one can auto-generate machine names and then supply the machine name in the machine create request, implement approval workflows as part of on-boarding new tenants, etc. Because it is done in line during a request, it achieves real-time integration, as well as supporting waiting, per a schedule or trigger and can further integrate with ESBs as part of that design. <br><br></div><div>Is this achieved with Scheduler customization, Mistral, or other, and/or are there several other methodologies and options for achieving this natively in OpenStack?  <br></div><div><br></div>Thanks, <br></div>RJ<br></div>