nova/nova/objects
Balazs Gibizer edeeaf9102 Add late server group policy check to rebuild
The affinity and anti-affinity server group policy is enforced by the
scheduler but two parallel scheduling could cause that such policy is
violated. During instance boot a late policy check was performed in
the compute manager to prevent this. This check was missing in case
of rebuild. Therefore two parallel evacuate command could cause that
the server group policy is violated. This patch introduces the late
policy check to rebuild to prevent such situation. When the violation
is detected during boot a re-scheduling happens. However the rebuild
action does not have the re-scheduling implementation so in this case
the rebuild will fail and the evacuation needs to be retried by the
user. Still this is better than allowing a parallel evacuation to
break the server group affinity policy.

To make the late policy check possible in the compute/manager the
rebuild_instance compute RPC call was extended with a request_spec
parameter.

Co-Authored-By: Richard Zsarnoczai <richard.zsarnoczai@ericsson.com>

Change-Id: I752617066bb2167b49239ab9d17b0c89754a3e12
Closes-Bug: #1735407
2018-02-06 13:54:12 +01:00
..
__init__.py Add ConsoleAuthToken object 2018-01-06 02:03:50 +00:00
agent.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
aggregate.py Remove translation of log messages 2017-06-21 13:01:19 +07:00
bandwidth_usage.py Cleanup NovaObjectDictCompat from BandwidthUsage 2016-04-04 10:26:55 +00:00
base.py [placement] Object changes to support last-modified headers 2017-12-07 18:47:17 +00:00
block_device.py Add an online migration for BDM.uuid 2018-01-02 17:29:36 +00:00
build_request.py Raise MarkerNotFound if BuildRequestList.get_by_filters doesn't find marker 2017-12-12 21:27:28 -05:00
cell_mapping.py Sort CellMappingList.get_all() for safety 2017-04-24 12:00:22 -07:00
compute_node.py Add ComputeNodeList.get_by_hypervisor_type() 2017-09-11 08:16:54 -07:00
console_auth_token.py Add ConsoleAuthToken object 2018-01-06 02:03:50 +00:00
diagnostics.py Added nova objects for intance diagnostics 2017-05-30 00:39:44 +04:00
dns_domain.py Remove DictCompat from DNSDomain 2016-01-11 16:38:06 +00:00
ec2.py Remove DictCompat from S3 object 2016-04-04 18:22:59 +00:00
external_event.py Add ability to signal and perform online volume size change 2017-07-12 11:53:20 -04:00
fields.py objects: Add PCI NUMA policy fields 2017-12-20 14:59:10 +00:00
fixed_ip.py Add FixedIPList.get_count_by_project() 2017-06-19 21:51:46 +00:00
flavor.py Add Flavor.description attribute 2017-11-05 01:24:01 -05:00
floating_ip.py Add FloatingIPList.get_count_by_project() 2017-06-19 21:51:46 +00:00
host_mapping.py Add support for listing hosts in cellv2 2017-12-07 23:38:47 +00:00
hv_spec.py objects: Move 'hv_type' to 'fields.HVType' 2016-11-25 16:19:43 +00:00
image_meta.py Add `img_hide_hypervisor_id` image property 2017-05-29 16:03:43 +00:00
instance.py Reduce complexity of _from_db_object 2018-01-25 17:07:51 -05:00
instance_action.py Add instance action db and obj pagination support. 2017-12-11 11:01:42 -05:00
instance_fault.py Remove translation of log messages 2017-06-21 13:01:19 +07:00
instance_group.py Transform servergroup.delete notification 2017-09-08 13:01:20 +00:00
instance_info_cache.py Remove translation of log messages 2017-06-21 13:01:19 +07:00
instance_mapping.py cleanup mapping/reqspec after archive instance 2017-11-21 15:28:07 +01:00
instance_numa_topology.py Merge "objects: remove cpu_topology from __init__ of InstanceNUMATopology" 2017-05-17 12:53:41 +00:00
instance_pci_requests.py objects: Add PCI NUMA policy fields 2017-12-20 14:59:10 +00:00
keypair.py Remove translation of log messages 2017-06-21 13:01:19 +07:00
migrate_data.py Update live migration to use v3 cinder api 2017-10-17 15:26:57 -04:00
migration.py Add migration db and object pagination support. 2018-01-08 12:01:58 -05:00
migration_context.py pci: Move PCI devices and PCI requests into migration context 2016-06-03 02:09:33 +03:00
monitor_metric.py Fix MonitorMetric obj_make_compatible 2016-09-12 14:10:41 +00:00
network.py Remove deprecated configuration option network_device_mtu 2016-09-07 12:31:57 +00:00
network_request.py Merge "Remove DictCompat from NetworkRequest" 2016-06-30 10:23:36 +00:00
numa.py Fix incorrect known vcpuset when CPUPinningUnknown raised 2017-11-24 15:41:22 +08:00
pci_device.py Fix ValueError when loading old pci device record 2017-11-29 12:49:49 -05:00
pci_device_pool.py [2/3]Replace six.iteritems() with .items() 2017-01-09 09:11:00 +00:00
quotas.py Follow up on removing old-style quotas code 2017-12-08 22:11:24 +00:00
request_spec.py Workaround missing RequestSpec.project_id when moving an instance 2017-12-20 09:16:28 -05:00
resource_provider.py placement: support traits in allocation candidates API 2018-01-22 22:10:10 +08:00
security_group.py Add SecurityGroupList.get_counts() 2017-06-19 21:51:46 +00:00
security_group_rule.py Cleanup NovaObjectDictCompat from security_group_rule 2016-01-05 16:21:08 +00:00
selection.py Move the to_dict() method to the Selection object 2017-12-07 15:01:09 +00:00
service.py Add late server group policy check to rebuild 2018-02-06 13:54:12 +01:00
tag.py Added server tags controller 2016-04-06 16:37:22 +03:00
task_log.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
vcpu_model.py Untie subobject versions 2015-11-10 15:56:14 +00:00
virt_cpu_topology.py cleanup NovaObjectDictCompat from virt_cpu_topology 2015-08-05 08:56:30 +05:30
virt_device_metadata.py XenAPI: device tagging 2017-06-14 01:53:06 +00:00
virtual_interface.py Merge "trivial: comment about vif object address field" 2016-07-13 19:24:58 +00:00
volume_usage.py Add a VolumeUsage object 2015-08-23 18:45:38 +02:00