)]}'
{"nova/compute/utils.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"bb4f28193a125d5585a006d1523e05323f9e4f94","unresolved":false,"context_lines":[{"line_number":312,"context_line":"    \"\"\"Send a versioned notification about an instance usage."},{"line_number":313,"context_line":"    \"\"\""},{"line_number":314,"context_line":"    if \u0027fixed_ips\u0027 in usage_info:"},{"line_number":315,"context_line":"        usage_info.update({\u0027fixed_ips\u0027:"},{"line_number":316,"context_line":"                           jsonutils.dumps(usage_info[\u0027fixed_ips\u0027])})"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"    if \u0027exception\u0027 in usage_info:"},{"line_number":319,"context_line":"        usage_info.update({\u0027exception\u0027: str(type(usage_info[\u0027exception\u0027]))})"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_d53238f1","line":316,"range":{"start_line":315,"start_character":0,"end_line":316,"end_character":69},"updated":"2016-04-29 01:13:56.000000000","message":"I think we want to avoid that as this would make the versioning useless. We want to define exactly the structure of the notification therefore we need to define the structure of the \u0027fixed_ips\u0027 fields. See the spec https://review.openstack.org/#/c/286675/6/specs/newton/approved/versioned-notification-transformation.rst","commit_id":"788a38912358f4e7e2b1ec2e248a568b1234aa7a"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"bb4f28193a125d5585a006d1523e05323f9e4f94","unresolved":false,"context_lines":[{"line_number":320,"context_line":""},{"line_number":321,"context_line":"    if extra_usage_info:"},{"line_number":322,"context_line":"        usage_info.update({\u0027extra_usage_info\u0027:"},{"line_number":323,"context_line":"                           jsonutils.dumps(extra_usage_info)})"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"    action_and_phase \u003d event_suffix.rsplit(\u0027.\u0027, 1)"},{"line_number":326,"context_line":"    if len(action_and_phase) \u003c 2:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_154f906b","line":323,"updated":"2016-04-29 01:13:56.000000000","message":"ditto","commit_id":"788a38912358f4e7e2b1ec2e248a568b1234aa7a"}],"nova/objects/instance.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"bb4f28193a125d5585a006d1523e05323f9e4f94","unresolved":false,"context_lines":[{"line_number":1278,"context_line":"        \u0027fixed_ips\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":1279,"context_line":"        \u0027image_meta\u0027: fields.DictOfStringsField(nullable\u003dTrue),"},{"line_number":1280,"context_line":"        \u0027metadata\u0027: fields.DictOfNullableStringsField(),"},{"line_number":1281,"context_line":"        \u0027extra_usage_info\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":1282,"context_line":"        \u0027message\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":1283,"context_line":"        \u0027code\u0027: fields.IntegerField(nullable\u003dTrue),"},{"line_number":1284,"context_line":"        \u0027exception\u0027: fields.StringField(nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_551e285f","line":1281,"updated":"2016-04-29 01:13:56.000000000","message":"This needs to be defined as separate fields based on the event_type for example in case of instance.update we know that this field will be something like:\n  \u0027state_update\u0027: fields.ObjectField(\u0027InstanceStateUpdate\u0027),\n  \u0027audit_period\u0027: fields.ObjectField(\u0027AuditPeriod\u0027),\n  \u0027bandwidth\u0027: fields.ListOfBwUsages(),\n  \u0027old_display_name\u0027: fields.StringField(nullable\u003dTrue)\nto the payload, see the spec https://review.openstack.org/#/c/286675/6/specs/newton/approved/versioned-notification-transformation.rst L204-L214","commit_id":"788a38912358f4e7e2b1ec2e248a568b1234aa7a"}],"nova/objects/server.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c91a5380d90bcf732798c9e481b11be1a535acac","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        \u0027ip_addresses\u0027: fields.ListOfObjectsField(\u0027IpPayload\u0027),"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        \u0027metadata\u0027: fields.DictOfStringsField(),"},{"line_number":101,"context_line":"        \u0027image_name\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":102,"context_line":"    }"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def __init__(self, instance):"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_ca444348","line":101,"updated":"2016-05-17 15:25:02.000000000","message":"The spec [1] evolved a bit. The current direction is to have a generic InstanceActionPayload as most of the actions can use it. Those actions that has extra parameters like instance.create with image_name shall subclass that payload class to add the extra field. \n\nI also pushed a patch [2] that does the instance.delete.* notifications (basically it does all the instance.\u003caction\u003e notifications that does not have extra_usage_info as those can use the generic payload. I think you shall rebase this change top of that.\n\n[1] https://review.openstack.org/#/c/286675/17/specs/newton/approved/versioned-notification-transformation.rst \n\n[2] https://review.openstack.org/#/c/286675","commit_id":"9d742aba37665235cfc225d23f46d6d791aef223"}]}
