Unless I'm misunderstanding the "repeatedly call QUOTAS.reserve with a decrementing valued until it works" - wouldn't that enable DoS scenarios where user requests between 1 and 5738219047392 instances?
Since the db layer doesn't know anything about instance flavors, only resources, it looks like it still requires some logic in the calling site to translate OverQuota back into the number of instances that didn't fit. Although I do agree that trying to reserve the max first and then only adjusting on error may be a good idea. Hopefully the user is reasonable and most of the requests will be fulfilled.
Unless I'm misunderstanding the "repeatedly call QUOTAS.reserve with a decrementing valued until it works" - wouldn't that enable DoS scenarios where user requests between 1 and 5738219047392 instances?
Since the db layer doesn't know anything about instance flavors, only resources, it looks like it still requires some logic in the calling site to translate OverQuota back into the number of instances that didn't fit. Although I do agree that trying to reserve the max first and then only adjusting on error may be a good idea. Hopefully the user is reasonable and most of the requests will be fulfilled.