Determine the remaining gap between nova's API and notifications

Registered by Steve McLellan

Nova represents probably the most serious problem with API hits; a nova boot results in several update notifications each of which we end up hitting the API. We need to figure out what's still missing from notifications, whether we can add to them, and whether we can handle not having any missing information. Being able to index from the notifications alone will be extremely beneficial at scale.

https://etherpad.openstack.org/p/searchlight-notification-checklist

Blueprint information

Status:
Complete
Approver:
None
Priority:
Essential
Drafter:
Steve McLellan
Direction:
Approved
Assignee:
Steve McLellan
Definition:
Approved
Series goal:
Accepted for newton
Implementation:
Implemented
Milestone target:
milestone icon newton-1
Started by
Travis Tripp
Completed by
Travis Tripp

Related branches

Sprints

Whiteboard

Fields missing from api v2 versus api version 2.25 (mitaka stable):
 'OS-EXT-SRV-ATTR:hostname',
 'OS-EXT-SRV-ATTR:kernel_id',
 'OS-EXT-SRV-ATTR:launch_index',
 'OS-EXT-SRV-ATTR:ramdisk_id',
 'OS-EXT-SRV-ATTR:reservation_id',
 'OS-EXT-SRV-ATTR:root_device_name',
 'OS-EXT-SRV-ATTR:user_data',
 'description',
 'host_status',
 'locked'

Fields missing from notifications versus v225 api:

The only fields exactly common to notifications and the v225 API are: metadata, progress, tenant_id, user_id. Some are remapped (api -> notification):
{'OS-EXT-AZ:availability_zone': 'availability_zone',
 'OS-EXT-SRV-ATTR:host': 'host',
 'OS-EXT-SRV-ATTR:hostname': 'hostname',
 'OS-EXT-SRV-ATTR:instance_name': 'display_name',
 'OS-EXT-SRV-ATTR:kernel_id': 'kernel_id',
 'OS-EXT-SRV-ATTR:ramdisk_id': 'ramdisk_id',
 'OS-EXT-SRV-ATTR:reservation_id': 'reservation_id',
 'OS-EXT-STS:power_state': 'state',
 'OS-EXT-STS:task_state': 'state',
 'OS-EXT-STS:vm_state': 'state',
 'OS-SRV-USG:launched_at': 'launched_at',
 'OS-SRV-USG:terminated_at': 'terminated_at',
 'accessIPv4': 'access_ip_v4',
 'accessIPv6': 'access_ip_v6',
 'id': 'instance_id',
 'image': 'image_meta',
 'flavor': ['disk_gb', 'memory_mb', 'vcpus'],
 'name': 'display_name'}

These are missing entirely:
{'OS-DCF:diskConfig',
 'OS-EXT-SRV-ATTR:launch_index',
 'OS-EXT-STS:power_state',
 'OS-EXT-SRV-ATTR:root_device_name',
 'OS-EXT-STS:task_state',
 'OS-EXT-SRV-ATTR:user_data',
 'addresses',
 'config_drive',
 'description',
 'flavor', # attributes are in the root payload
 'hostId',
 'host_status',
 'key_name',
 'locked',
 'os-extended-volumes:volumes_attached',
 'security_groups',}

Of these, the most problematic are 'addresses' , security_groups, volumes. These are all denormalized by the API.

Added https://blueprints.launchpad.net/nova/+spec/denormalized-server-data-notifications to nova

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.