|
|
(44 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 || merged || gibi || https://review.openstack.org/#/c/313654 || This shall be the base of for the other instance.<action> transformation
| |
− | |-
| |
− | | instance.shutdown || move to Ocata || siva_krishnan || https://review.openstack.org/#/c/329214 ||
| |
− | |-re
| |
− | | instance.scheduled || open|| || ||
| |
− | |-
| |
− | | instance.create_ip || move to Ocata || antal || https://review.openstack.org/#/c/332876/ || renamed to add_fixed_ip to be more precise
| |
− | |-
| |
− | | instance.delete_ip || open || || || rename it to remove_fixed_ip
| |
− | |-
| |
− | | instance.evacuate || open || || ||
| |
− | |-
| |
− | | instance.migration || open || || ||
| |
− | |-
| |
− | | instance.pause || merged || sneti || https://review.openstack.org/#/c/329141/ ||
| |
− | |-
| |
− | | instance.unpause || open || sneti || ||
| |
− | |-
| |
− | | instance.power_on || merged || zhs || https://review.openstack.org/#/c/329746/ ||
| |
− | |-
| |
− | | instance.power_off || move to Ocata || xenogear || https://review.openstack.org/#/c/330761/ ||
| |
− | |-
| |
− | | instance.reboot || mova to Ocata || macsz || https://review.openstack.org/#/c/330224/ ||
| |
− | |-
| |
− | | instance.reboot.error || open || || ||
| |
− | |-
| |
− | | instance.shelve || merged || vancsics || https://review.openstack.org/#/c/332696/ ||
| |
− | |-
| |
− | | instance.shelve_offload || open || || ||
| |
− | |-
| |
− | | instance.unshelve || open || || ||
| |
− | |-
| |
− | | instance.snapshot || move to Ocata || syjulian || https://review.openstack.org/#/c/330128/ ||
| |
− | |-
| |
− | | instance.soft_delete || open || || ||
| |
− | |-
| |
− | | instance.suspend || merged || pumaranikar || https://review.openstack.org/#/c/329089 ||
| |
− | |-
| |
− | | instance.resume || open || siva_krishnan || ||
| |
− | |-
| |
− | | instance.restore || needs work || 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 || merged || 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.
| |
− | {| class="wikitable"
| |
− | |-
| |
− | ! event type !! status !! taken by !! review !! comments
| |
− | |-
| |
− | | instance.update || merged || 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: | + | <big> [http://burndown.peermore.com/nova-notification/ The burndown chart is updated hourly from gerrit. ] </big> |
| + | You can see what to transform and what to review there. |
| | | |
− | {| class="wikitable"
| |
− | |-
| |
− | ! event type !! status !! taken by !! review !! comments
| |
− | |-
| |
− | | compute.exception || merged || 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 || ||
| |
− | |}
| |
| | | |
| + | 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 |
| | | |
− | === Follow up tasks ===
| |
− | Mostly for after N-2
| |
− | * add a reno note about the transformed notifications
| |
− | * rlrossit will remove the vm_state - InstanceState value duplication
| |
− | ** Proposed in https://review.openstack.org/#/c/335066/
| |
− | * 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)
| |
− | <strike>* separate the notification object unit test from the nova object version test.</strike> Done
| |
− | * syjulian will 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
| |
− | ** Proposed in https://review.openstack.org/#/c/336284/
| |
− | * refactor the sample test to avoid booting a new instance for every sample test.
| |
− | ** time the test first to see how much time a single instance boot needs in functional test env.
| |
− | * refactor the sample test to assert reservation_id instead of ignoring it see comment in https://review.openstack.org/#/c/332696/5/nova/tests/functional/notification_sample_tests/test_instance.py@236
| |
− | * try to refactor out the additional notify_about_instance_action() calls see comments in https://review.openstack.org/#/c/313654/37/nova/compute/manager.py
| |
− | <strike>* replace set_override with self.flags in https://review.openstack.org/#/c/332696/5/nova/tests/functional/notification_sample_tests/test_instance.py </strike>
| |
| | | |
− | In Ocata:
| + | If something doesn't show up on the burndown then please ping gibi on IRC. |
− | * after the json schema patch is merged in ovo and a new ovo lib version is released we can add a tool to nova generate the json schemas for the versioned notifications.
| |
Transform every legacy notification to the new versioned notification framework.