Jump to: navigation, search

Difference between revisions of "Nova/VersionedNotificationTransformation"

 
(61 intermediate revisions by 9 users not shown)
Line 1: Line 1:
 +
= This work has been completed =
 +
 +
The information below is kept here for historical reasons
 +
 
== Goal ==
 
== Goal ==
 
Transform every legacy notification to the new versioned notification framework.
 
Transform every legacy notification to the new versioned notification framework.
Line 4: Line 8:
 
== How to do it ==
 
== How to do it ==
 
* Check the notification devref that describes the new framework:  http://docs.openstack.org/developer/nova/notifications.html
 
* Check the notification devref that describes the new framework:  http://docs.openstack.org/developer/nova/notifications.html
* Check the existing new versioned notification example: https://review.openstack.org/#/c/245678/
+
* Check the existing transformation patches  that are merged: http://burndown.peermore.com/nova-notification/
* Check the example transformation patch: https://review.openstack.org/#/c/313654/
+
* Select a transformation from the table on http://burndown.peermore.com/nova-notification/ You can take a patch with status TODO or you can check if a patch that is INPROGRESS needs help.  
* Select a task for the below table and add your IRC handle to table. (Please take only one at a time)
 
 
* Propose a transformation patch based on the examples.
 
* Propose a transformation patch based on the examples.
 
** Make sure that you create a new sample file under doc/notificaiton_samples/
 
** Make sure that you create a new sample file under doc/notificaiton_samples/
 
** Make sure that you add a notification sample test under nova/tests/functional/notification_sample_test/
 
** Make sure that you add a notification sample test under nova/tests/functional/notification_sample_test/
* If you got stuck you can ask questions from rlrossit and gibi on IRC or join the weekly notification subteam meeting https://wiki.openstack.org/wiki/Meetings/NovaNotification
+
* If you got stuck you can ask questions from gibi on IRC or join the weekly notification subteam meeting https://wiki.openstack.org/wiki/Meetings/NovaNotification
  
 
== Tasks ==
 
== Tasks ==
  
'''<big><big>Please do not start working on a new task until the currently opened tasks are close to merge to avoid overloading the cores
+
Please use the https://review.openstack.org/#/q/topic:bp/versioned-notification-transformation-rocky topic for the transformation commits
</big></big>
 
'''
 
 
 
The easy ones that uses the same payload as instance.delete:
 
  
{| class="wikitable"
 
|-
 
! event type !! status !! taken by !! review !! comments
 
|-
 
| instance.delete || subteam review || gibi || https://review.openstack.org/#/c/313654  || This shall be the base of for the other instance.<action> transformation
 
|-
 
| instance.shutdown || open || siva_krishnan || https://review.openstack.org/#/c/329214  ||
 
|-re
 
| instance.scheduled || open||  ||  ||
 
|-
 
| instance.create_ip || open || antal ||  ||
 
|-
 
| instance.delete_ip || open || ||  ||
 
|-
 
| instance.evacuate || open ||  ||  ||
 
|-
 
| instance.migration || open ||  ||  ||
 
|-
 
| instance.pause || open || sneti  || https://review.openstack.org/#/c/329141/ ||
 
|-
 
| instance.unpause || open || sneti ||  ||
 
|-
 
| instance.power_on || open || zhs || https://review.openstack.org/#/c/329746/ ||
 
|-
 
| instance.power_off || open || xenogear || https://review.openstack.org/#/c/330761/ ||
 
|-
 
| instance.reboot || open || macsz ||  ||
 
|-
 
| instance.reboot.error || open ||  ||  ||
 
|-
 
| instance.shelve || open || vancsics  || https://review.openstack.org/#/c/332696/ ||
 
|-
 
| instance.shelve_offload || open || ||  ||
 
|-
 
| instance.unshelve || open ||  ||  ||
 
|-
 
| instance.snapshot || open || syjulian ||  ||
 
|-
 
| instance.soft_delete || open ||  ||  ||
 
|-
 
| instance.suspend || open || pumaranikar || https://review.openstack.org/#/c/329089  ||
 
|-
 
| instance.resume || open || siva_krishnan  ||  ||
 
|-
 
| instance.restore || open || zhs || https://review.openstack.org/#/c/331972/ ||
 
|-
 
| instance.trigger_crash_dump || open ||  ||  ||
 
|-
 
| instance.unrescue || open ||  ||  ||
 
|-
 
| instance.create || open ||  ||  || Some of the instance.create.<phase> notifications has extra payload
 
|-
 
| instance.rebuild || open || pumaranikar ||  ||
 
|-
 
| instance.rebuild.scheduled || open ||  ||  || we might need to change the event_type
 
|-
 
| instance.resize || open || aunnam || https://review.openstack.org/#/c/329255/ ||
 
|-
 
| instance.resize.error || open ||  || ||
 
|-
 
| instance.resize.prep || open ||  ||  || we might need to change the event_type
 
|-
 
| instance.finish_resize || open ||  ||  || we might want to change the even_type
 
|-
 
| instance.resize.confirm || open ||  ||  ||
 
|-
 
| instance.resize.revert || open ||  ||  ||
 
|-
 
| instance.live.migration.abort || open ||  ||  || we might need to change the even_type to make it consistent
 
|-
 
| instance.live_migration.pre || open ||  ||  || we might want to change the event_type
 
|-
 
| instance.live_migration.rollback.dest || open  ||  ||  || we might want to change the event_type
 
|-
 
| instance.live_migration._rollback || open ||  ||  || we might want to change the event_type
 
|-
 
| instance.live_migration._post || open ||  ||  || we might want to change the even_type
 
|-
 
| instance.live_migration.post.dest || open ||  ||  || we might want to change the event_type
 
|}
 
  
The complex instance.<action> notifications that needs payload extension.
+
<big> [http://burndown.peermore.com/nova-notification/ The burndown chart is updated hourly from gerrit. ] </big>
{| class="wikitable"
+
You can see what to transform and what to review there.
|-
 
! event type !! status !! taken by !! review !! comments
 
|-
 
| instance.update || needs patch || gibi || https://review.openstack.org/#/c/325923/ || This shall be the example for creating instance.<action> notification with extended InstancePayload
 
|-
 
| instance.exists || open ||  ||  ||
 
|-
 
| instance.rescue || open ||  ||  ||
 
|-
 
| instance.volume.attach || open ||  ||  ||
 
|}
 
  
The rest:
 
  
{| class="wikitable"
+
There are three types of transformations:
|-
+
* category: instance-payload: The easy ones that uses the same payload as instance.delete
! event type !! status !! taken by !! review !! comments
+
* category: extended-instance-payload: The complex instance.<action> notifications that needs payload extension.
|-
+
* category: specific-payload: The rest that needs specific payload
| compute.exception || subtream review || laszloh ||  https://review.openstack.org/#/c/310700 ||
 
|-
 
| aggregate.addhost || open ||  ||  ||
 
|-
 
| aggregate.create || open ||  ||  ||
 
|-
 
| aggregate.delete || open ||  ||  ||
 
|-
 
| aggregate.removehost || open ||  ||  ||
 
|-
 
| aggregate.updatemetadata || open ||  ||  ||
 
|-
 
| aggregate.updateprop || open ||  ||  ||
 
|-
 
| api.fault || open ||  ||  ||
 
|-
 
| libvirt.error || open ||  ||  ||
 
|-
 
| compute_task.build_instances || open ||  ||  ||
 
|-
 
| compute_task.migrate_server || open ||  ||  ||
 
|-
 
| compute_task.rebuild_server || open ||  ||  ||
 
|-
 
| HostAPI.power_action || open ||  ||  ||
 
|-
 
| HostAPI.set_enabled || open ||  ||  ||
 
|-
 
| HostAPI.set_maintenance || open ||  ||  ||
 
|-
 
| keypair.create || spec exists ||  h-eguchi ||  spec: https://review.openstack.org/#/c/300942 ||
 
|-
 
| keypair.delete || spec exists ||  h-eguchi ||  spec: https://review.openstack.org/#/c/300942 ||
 
|-
 
| keypair.import || spec exists ||  h-eguchi ||  spec: https://review.openstack.org/#/c/300942 ||
 
|-
 
| network.floating_ip.allocate || open ||  ||  ||
 
|-
 
| network.floating_ip.associate || open ||  ||  ||
 
|-
 
| network.floating_ip.deallocate || open ||  ||  ||
 
|-
 
| network.floating_ip.disassociate || open ||  ||  ||
 
|-
 
| scheduler.select_destinations || open ||  ||  ||
 
|-
 
| servergroup.addmember || open ||  ||  ||
 
|-
 
| servergroup.create || open ||  ||  ||
 
|-
 
| servergroup.delete || open ||  ||  ||
 
|-
 
| volume.usage || open ||  ||  ||
 
|-
 
| metrics.update || open || sudipto  ||  ||
 
|}
 
  
  
=== Follow up tasks ===
+
If something doesn't show up on the burndown then please ping gibi on IRC.
Mostly for after N-2
 
* improve doc generation, include a sample link in the doc that is valid also before the sample adding patch is merged. (look at the api-ref doc work for ideas)
 
* separate the notification object unit test from the nova object version test.
 
* solve security issue in wrap_exception notification see the comments in https://review.openstack.org/#/c/310700/19/nova/compute/utils.py and https://review.openstack.org/#/c/310700/19/nova/exception_wrapper.py
 

Latest revision as of 09:21, 10 December 2018

This work has been completed

The information below is kept here for historical reasons

Goal

Transform every legacy notification to the new versioned notification framework.

How to do it

Tasks

Please use the https://review.openstack.org/#/q/topic:bp/versioned-notification-transformation-rocky topic for the transformation commits


The burndown chart is updated hourly from gerrit. You can see what to transform and what to review there.


There are three types of transformations:

  • category: instance-payload: The easy ones that uses the same payload as instance.delete
  • category: extended-instance-payload: The complex instance.<action> notifications that needs payload extension.
  • category: specific-payload: The rest that needs specific payload


If something doesn't show up on the burndown then please ping gibi on IRC.