)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"c4ff9d30175c45d9f2d7df849e75fc997d9fb725","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add auto_disk_config field to InstancePayload based on"},{"line_number":10,"context_line":"instance.auto_disk_config boolean value. If true, set it to"},{"line_number":11,"context_line":"AUTO else MANUAL."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I18af99479562e2fe5e74e6e1252b804b074fee58"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7a3c09a3_d8bfc25e","line":11,"updated":"2017-01-18 20:35:01.000000000","message":"nit: Implements bp?","commit_id":"01a2e7afc5bd4fe44376494a1f7eb5c9afd2316a"}],"doc/notification_samples/instance-rebuild-end.json":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b6c04f2ad15d7b9a0fa9fcf643651540ad1d93b1","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            \"tags\": [\"tag1\"],"},{"line_number":42,"context_line":"            \"user_id\": \"fake\","},{"line_number":43,"context_line":"            \"terminated_at\": null,"},{"line_number":44,"context_line":"            \"auto_disk_config\":\"MANUAL\","},{"line_number":45,"context_line":"            \"ip_addresses\": ["},{"line_number":46,"context_line":"                {"},{"line_number":47,"context_line":"                    \"nova_object.namespace\": \"nova\","}],"source_content_type":"application/json","patch_set":20,"id":"7ffa3b31_15d8941b","line":44,"updated":"2017-04-20 23:20:17.000000000","message":"Why is this in here twice?","commit_id":"c037d50a3730b7a0d8bb8db51ecd46a2cf8f689c"}],"doc/notification_samples/instance-rebuild-error.json":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"935a7c169b55e5cfd4ef1e0495f1a79c5823a2be","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            \"tags\": [\"tag1\"],"},{"line_number":62,"context_line":"            \"reservation_id\": \"r-pfiic52h\","},{"line_number":63,"context_line":"            \"terminated_at\": null,"},{"line_number":64,"context_line":"            \"auto_disk_config\":\"MANUAL\","},{"line_number":65,"context_line":"            \"tenant_id\": \"6f70656e737461636b20342065766572\","},{"line_number":66,"context_line":"            \"node\": \"fake-mini\","},{"line_number":67,"context_line":"            \"launched_at\": \"2012-10-29T13:42:11Z\","}],"source_content_type":"application/json","patch_set":20,"id":"7ffa3b31_35f83079","line":64,"updated":"2017-04-20 23:21:35.000000000","message":"duplicate","commit_id":"c037d50a3730b7a0d8bb8db51ecd46a2cf8f689c"}],"doc/notification_samples/instance-rebuild-start.json":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"935a7c169b55e5cfd4ef1e0495f1a79c5823a2be","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            },"},{"line_number":48,"context_line":"            \"tags\": [\"tag1\"],"},{"line_number":49,"context_line":"            \"terminated_at\": null,"},{"line_number":50,"context_line":"            \"auto_disk_config\":\"MANUAL\","},{"line_number":51,"context_line":"            \"architecture\": null,"},{"line_number":52,"context_line":"            \"launched_at\": \"2012-10-29T13:42:11Z\","},{"line_number":53,"context_line":"            \"ip_addresses\": ["}],"source_content_type":"application/json","patch_set":20,"id":"7ffa3b31_15f1b495","line":50,"updated":"2017-04-20 23:21:35.000000000","message":"duplicate","commit_id":"c037d50a3730b7a0d8bb8db51ecd46a2cf8f689c"}],"nova/notifications/objects/base.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"64bae9ea3223b0f77904fb2b70a4cdde1d05f714","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        for key, (obj, field) in self.SCHEMA.items():"},{"line_number":98,"context_line":"            source \u003d kwargs[obj]"},{"line_number":99,"context_line":"            if source.obj_attr_is_set(field):"},{"line_number":100,"context_line":"                if field \u003d\u003d \u0027auto_disk_config\u0027:"},{"line_number":101,"context_line":"                    setattr(self, key,"},{"line_number":102,"context_line":"                            \u0027AUTO\u0027 if getattr(source, field) else \u0027MANUAL\u0027)"},{"line_number":103,"context_line":"                else:"},{"line_number":104,"context_line":"                    setattr(self, key, getattr(source, field))"},{"line_number":105,"context_line":"        self.populated \u003d True"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_4522b302","line":102,"range":{"start_line":100,"start_character":0,"end_line":102,"end_character":75},"updated":"2017-01-16 08:56:21.000000000","message":"Please define the payload field as an Enum and implement the enum coerce function in a way that coverts from boolean to the proper Enum value","commit_id":"617580ac6c0e1456e69e9068fe5c1f3f0209c761"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"cb05e3c7df0866aec2d16c71dd5f69fb2299d55c","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        for key, (obj, field) in self.SCHEMA.items():"},{"line_number":98,"context_line":"            source \u003d kwargs[obj]"},{"line_number":99,"context_line":"            if source.obj_attr_is_set(field):"},{"line_number":100,"context_line":"                if field \u003d\u003d \u0027auto_disk_config\u0027:"},{"line_number":101,"context_line":"                    setattr(self, key,"},{"line_number":102,"context_line":"                            \u0027AUTO\u0027 if getattr(source, field) else \u0027MANUAL\u0027)"},{"line_number":103,"context_line":"                else:"},{"line_number":104,"context_line":"                    setattr(self, key, getattr(source, field))"},{"line_number":105,"context_line":"        self.populated \u003d True"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_592ebffb","line":102,"range":{"start_line":100,"start_character":0,"end_line":102,"end_character":75},"in_reply_to":"7a3c09a3_4522b302","updated":"2017-01-17 20:09:57.000000000","message":"Done","commit_id":"617580ac6c0e1456e69e9068fe5c1f3f0209c761"}],"nova/notifications/objects/instance.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"64bae9ea3223b0f77904fb2b70a4cdde1d05f714","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        \u0027metadata\u0027: fields.DictOfStringsField(),"},{"line_number":92,"context_line":"        \u0027locked\u0027: fields.BooleanField(),"},{"line_number":93,"context_line":"        \u0027auto_disk_config\u0027: fields.StringField()"},{"line_number":94,"context_line":"    }"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, instance, **kwargs):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_25f92781","line":93,"range":{"start_line":93,"start_character":35,"end_line":93,"end_character":46},"updated":"2017-01-16 08:56:21.000000000","message":"If this can have only two values AUTO and MANUAL then I suggest to define this as an Enum","commit_id":"617580ac6c0e1456e69e9068fe5c1f3f0209c761"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"cb05e3c7df0866aec2d16c71dd5f69fb2299d55c","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        \u0027metadata\u0027: fields.DictOfStringsField(),"},{"line_number":92,"context_line":"        \u0027locked\u0027: fields.BooleanField(),"},{"line_number":93,"context_line":"        \u0027auto_disk_config\u0027: fields.StringField()"},{"line_number":94,"context_line":"    }"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, instance, **kwargs):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_b937a34b","line":93,"range":{"start_line":93,"start_character":35,"end_line":93,"end_character":46},"in_reply_to":"7a3c09a3_25f92781","updated":"2017-01-17 20:09:57.000000000","message":"Done","commit_id":"617580ac6c0e1456e69e9068fe5c1f3f0209c761"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee8cbce1733e60883e66619a9ba7718096305dd5","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    # Version 1.1: locked and display_description added to InstancePayload"},{"line_number":126,"context_line":"    # Version 1.2: Added tags field to InstancePayload"},{"line_number":127,"context_line":"    # Version 1.3: Added auto_disk_config field to InstancePayload"},{"line_number":128,"context_line":"    VERSION \u003d \u00271.3\u0027"},{"line_number":129,"context_line":"    fields \u003d {"},{"line_number":130,"context_line":"        \u0027fault\u0027: fields.ObjectField(\u0027ExceptionPayload\u0027, nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":20,"id":"7ffa3b31_c372c8e3","line":127,"updated":"2017-04-18 18:33:14.000000000","message":"I sort of wish we could just restrict this to the actions that actually care about this value, like instance create/resize/rebuild for sure, maybe unshelve and rescue too. I don\u0027t really know without doing a full audit.\n\nHow is searchlight going to use this? Does it just update the index for the instance notification?\n\nThrowing this into all action payloads is less of a concern since it does not require any lazy-load of a joined table column, so I might be overreacting to adding this for all payloads.","commit_id":"c037d50a3730b7a0d8bb8db51ecd46a2cf8f689c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee8cbce1733e60883e66619a9ba7718096305dd5","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    # Version 1.1: locked and display_description added to InstancePayload"},{"line_number":145,"context_line":"    # Version 1.2: Added tags field to InstancePayload"},{"line_number":146,"context_line":"    # Version 1.3: Added auto_disk_config field to InstancePayload"},{"line_number":147,"context_line":"    VERSION \u003d \u00271.3\u0027"},{"line_number":148,"context_line":"    fields \u003d {"},{"line_number":149,"context_line":"        \u0027old_volume_id\u0027: fields.UUIDField(),"}],"source_content_type":"text/x-python","patch_set":20,"id":"7ffa3b31_03a31051","line":146,"updated":"2017-04-18 18:33:14.000000000","message":"I don\u0027t think this would be needed at all for volume swap as far as I can tell.","commit_id":"c037d50a3730b7a0d8bb8db51ecd46a2cf8f689c"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e3d31e12e96f48c51e9da528204284a2bac35841","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    # Version 1.1: locked and display_description added to InstancePayload"},{"line_number":156,"context_line":"    # Version 1.2: Added tags field"},{"line_number":157,"context_line":"    # Version 1.3: Added auto_disk_config field to InstancePayload"},{"line_number":158,"context_line":"    VERSION \u003d \u00271.3\u0027"},{"line_number":159,"context_line":"    fields \u003d {"},{"line_number":160,"context_line":"        \u0027state_update\u0027: fields.ObjectField(\u0027InstanceStateUpdatePayload\u0027),"},{"line_number":161,"context_line":"        \u0027audit_period\u0027: fields.ObjectField(\u0027AuditPeriodPayload\u0027),"}],"source_content_type":"text/x-python","patch_set":24,"id":"5ff73747_049a3c13","line":158,"updated":"2017-04-24 14:57:44.000000000","message":"Hmm, I didn\u0027t think we needed to update containing-object versions when a subobject version changed any more?","commit_id":"bb7d5214a459571460dfa1ff7dbda964e36dc068"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"da65897ed843aa05317dd1a91d7f44af5abfa5b0","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    # Version 1.1: locked and display_description added to InstancePayload"},{"line_number":156,"context_line":"    # Version 1.2: Added tags field"},{"line_number":157,"context_line":"    # Version 1.3: Added auto_disk_config field to InstancePayload"},{"line_number":158,"context_line":"    VERSION \u003d \u00271.3\u0027"},{"line_number":159,"context_line":"    fields \u003d {"},{"line_number":160,"context_line":"        \u0027state_update\u0027: fields.ObjectField(\u0027InstanceStateUpdatePayload\u0027),"},{"line_number":161,"context_line":"        \u0027audit_period\u0027: fields.ObjectField(\u0027AuditPeriodPayload\u0027),"}],"source_content_type":"text/x-python","patch_set":24,"id":"5ff73747_8259815b","line":158,"in_reply_to":"5ff73747_049a3c13","updated":"2017-04-25 10:23:40.000000000","message":"We don\u0027t need that. However here InstancePayload is not a contained object but a parent object of InstanceUpdatePayload.\n\nMaybe it is a bad idea to use inheritance in the notification payloads and we should use composition instead...","commit_id":"bb7d5214a459571460dfa1ff7dbda964e36dc068"}],"nova/objects/fields.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f13fd185c7aad6e490d21f446abed27774e9040a","unresolved":false,"context_lines":[{"line_number":338,"context_line":"    ALL \u003d (MANUAL, AUTO)"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def coerce(self, obj, attr, value):"},{"line_number":341,"context_line":"        if value:"},{"line_number":342,"context_line":"            value \u003d DiskConfig.AUTO"},{"line_number":343,"context_line":"        else:"},{"line_number":344,"context_line":"            value \u003d DiskConfig.MANUAL"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        return super(DiskConfig, self).coerce(obj, attr, value)"},{"line_number":347,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_24b44d33","line":344,"range":{"start_line":341,"start_character":0,"end_line":344,"end_character":37},"updated":"2017-01-18 08:58:59.000000000","message":"This can be written in a more pythonic and compact way:\nenum_value \u003d DiskConfig.AUTO if value else DiskConfig.MANUAL","commit_id":"4cab3c4d664a8aeddc9408c0999c7495d0a8bd42"}]}
