Handles all requests relating to schedulers.
Bases: nova.exception.Error
Used to the HTTP API know that these results are pre-cooked and they can be returned to the caller directly.
Returns a list of (zone, call_result) objects.
Fire off a command to each zone in the list. The return is [novaclient return objects] from each child zone. For example, if you are calling server.pause(), the list will be whatever the response from server.pause() is. One entry per child zone called.
Return a list of hosts associated with this zone.
Returns a dict of key, value capabilities for this zone.
Return a list of zones assoicated with this zone.
Bases: object
reroute_compute is responsible for trying to lookup a resource in the current zone and if it’s not found there, delegating the call to the child zones.
Since reroute_compute will be making ‘cross-zone’ calls, the ID for the object must come in as a UUID– if we receive an integer ID, we bail.
The steps involved are:
- Validate that item_id is UUID like
- Lookup item by UUID in the zone local database
- If the item was found, then extract integer ID, and pass that to the wrapped method. (This ensures that zone-local code can continue to use integer IDs).
- If the item was not found, we delegate the call to a child zone using the UUID.
Returns a tuple of (novaclient collection name, security context and resource id. Derived class should override this.
Extracts the UUID parameter from the arg or kwarg list and replaces it with an integer ID.
Result is a list of responses from each child zone. Each decorator derivation is responsible to turning this into a format expected by the calling method. For example, this one is expected to return a single Server dict {‘server’:{k:v}}. Others may return a list of them, like {‘servers’:[{k,v}]}
Returns a list of hosts.
Send an update to all the scheduler services informing them of the capabilities of this service.
Appends collection, method_name and arguments to the incoming (nova, zone) call from child_zone_helper.