Make Availability Zones a real data model
In Nova, the concept of the availability zone is one of the least well-defined in the system. Problems around availability zones are numerous:
* There is no data table in the Nova database for availability zones
* There is no nova.objects.
* A compute host can belong to multiple host aggregates, each having a separate availability zone -- which makes no logical sense
* The nova availability-
The root cause of this problem is really that there was an early assumption that a single Nova database would only ever serve a single availability zone, therefore there would only ever be a need to store AZ information as configuration options.
Therefore, there are a number of seemingly random CONF options that have to do with availability zones:
* `default_
* `default_
* `internal_
A fix for this mess is really an overhaul of the availability zone concept and implementation inside of Nova, including:
* Determining how and where to store this higher-level information like regions and availability zones, if not in the Nova database itself
* Creating a real data object representing an availability zone
* Actually have the Nova database (or some data store) keep records for known availability zones
* Having the Compute API return these AZ records instead of the bastardized weirdness that is currently in nova/availabili
* Entirely detaching the concept of the Service (and ServiceGroup API) from the concept of availability zones. This means internal_
Blueprint information
- Status:
- Not started
- Approver:
- John Garbutt
- Priority:
- Undefined
- Drafter:
- Jay Pipes
- Direction:
- Needs approval
- Assignee:
- Timofey Durakov
- Definition:
- Drafting
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by