)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"b5a38745db31a8dd6bd53ac1a511797510f4c8e0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Andrea Rosa \u003candrea.rosa@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-09-11 16:30:55 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix a bug in the XML serialization"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The XML serialization fails when it\u0027s trying to create a datum selector with no"},{"line_number":10,"context_line":"values. In that case the obj is an empty string so the selection of datum from"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAASn%2F%2FH8s%3D","line":7,"updated":"2013-09-11 16:47:49.000000000","message":"The first line could be more descriptive.\n\nMaybe something like:\n\n\u0027Fix empty selector XML bug\u0027","commit_id":"1825f835b40afb1193993bd9699f212717705c19"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"5eb7bebd2771f46757cc1806d1166becf7b49b03","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Andrea Rosa \u003candrea.rosa@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-09-11 16:30:55 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix a bug in the XML serialization"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The XML serialization fails when it\u0027s trying to create a datum selector with no"},{"line_number":10,"context_line":"values. In that case the obj is an empty string so the selection of datum from"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAASn%2F%2FFfw%3D","line":7,"in_reply_to":"AAAASn%2F%2FH8s%3D","updated":"2013-09-12 08:46:31.000000000","message":"Done","commit_id":"1825f835b40afb1193993bd9699f212717705c19"},{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"b5a38745db31a8dd6bd53ac1a511797510f4c8e0","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The XML serialization fails when it\u0027s trying to create a datum selector with no"},{"line_number":10,"context_line":"values. In that case the obj is an empty string so the selection of datum from"},{"line_number":11,"context_line":"it just fails."},{"line_number":12,"context_line":"Instead of raising an excpetion the fix is returning an empty string, that"},{"line_number":13,"context_line":"allows to serialize Selector with an empty object."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Fixes bug 1223358"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAASn%2F%2FH88%3D","line":12,"updated":"2013-09-11 16:47:49.000000000","message":"s/excpetion/exception","commit_id":"1825f835b40afb1193993bd9699f212717705c19"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"5eb7bebd2771f46757cc1806d1166becf7b49b03","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The XML serialization fails when it\u0027s trying to create a datum selector with no"},{"line_number":10,"context_line":"values. In that case the obj is an empty string so the selection of datum from"},{"line_number":11,"context_line":"it just fails."},{"line_number":12,"context_line":"Instead of raising an excpetion the fix is returning an empty string, that"},{"line_number":13,"context_line":"allows to serialize Selector with an empty object."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Fixes bug 1223358"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAASn%2F%2FFfs%3D","line":12,"in_reply_to":"AAAASn%2F%2FH88%3D","updated":"2013-09-12 08:46:31.000000000","message":"Done","commit_id":"1825f835b40afb1193993bd9699f212717705c19"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"4b38f99371458e0db10772f1f10d4d37d6e9f7c5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Andrea Rosa \u003candrea.rosa@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-09-26 14:48:00 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix empty selector XML bug"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The XML serialization fails when it\u0027s trying to create a datum selector with no"},{"line_number":10,"context_line":"values. In that case the obj is an empty string so the selection of datum from"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAS3%2F%2FaCU%3D","line":7,"updated":"2013-09-27 10:07:47.000000000","message":"We need rewrite the commit message, because this is not caused by the xml bug, \nWe probably need to write something like this: \n\n\"When boot from volume, the image would not be necessary, but during response xml serialization, the image properties is mandatory to serializer, this patch fix it by allow the image properties to be None during xml serializer.\"\n\nplease also add DocImpact, thanks","commit_id":"b2636d67169814ed7ee96e82273630ea2fe2a6fe"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"4ae7f387bd522570d18161d71c1ca6619e7181f4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Andrea Rosa \u003candrea.rosa@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-09-26 14:48:00 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix empty selector XML bug"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The XML serialization fails when it\u0027s trying to create a datum selector with no"},{"line_number":10,"context_line":"values. In that case the obj is an empty string so the selection of datum from"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F%2FciU%3D","line":7,"in_reply_to":"AAAAS3%2F%2FaCU%3D","updated":"2013-11-06 02:29:22.000000000","message":"I think the commit message is fine. It doesn\u0027t blame XML, it blames the input.","commit_id":"b2636d67169814ed7ee96e82273630ea2fe2a6fe"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"4b38f99371458e0db10772f1f10d4d37d6e9f7c5","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        # Attach image node"},{"line_number":85,"context_line":"        image \u003d xmlutil.SubTemplateElement(elem, \u0027image\u0027, selector\u003d\u0027image\u0027)"},{"line_number":86,"context_line":"        image.set(\u0027id\u0027)"},{"line_number":87,"context_line":"        xmlutil.make_links(image, xmlutil.EmptyStringSelector(\u0027links\u0027))"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        # Attach flavor node"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FaEM%3D","line":86,"updated":"2013-09-27 10:07:47.000000000","message":"here, when boot from volume with no image, we should add xmlutil.EmptyStringSelector()) as well.","commit_id":"b2636d67169814ed7ee96e82273630ea2fe2a6fe"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"4b38f99371458e0db10772f1f10d4d37d6e9f7c5","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        # Attach image node"},{"line_number":85,"context_line":"        image \u003d xmlutil.SubTemplateElement(elem, \u0027image\u0027, selector\u003d\u0027image\u0027)"},{"line_number":86,"context_line":"        image.set(\u0027id\u0027)"},{"line_number":87,"context_line":"        xmlutil.make_links(image, xmlutil.EmptyStringSelector(\u0027links\u0027))"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        # Attach flavor node"},{"line_number":90,"context_line":"        flavor \u003d xmlutil.SubTemplateElement(elem, \u0027flavor\u0027, selector\u003d\u0027flavor\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FaFQ%3D","line":87,"updated":"2013-09-27 10:07:47.000000000","message":"Apologize, here should be xmlutil.EmptyStringSelector())","commit_id":"b2636d67169814ed7ee96e82273630ea2fe2a6fe"}],"nova/api/openstack/xmlutil.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"4b38f99371458e0db10772f1f10d4d37d6e9f7c5","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                # Use indexing"},{"line_number":84,"context_line":"                try:"},{"line_number":85,"context_line":"                    obj \u003d obj[elem]"},{"line_number":86,"context_line":"                except (KeyError, IndexError, TypeError):"},{"line_number":87,"context_line":"                    # No sense going any further"},{"line_number":88,"context_line":"                    if do_raise:"},{"line_number":89,"context_line":"                        # Convert to a KeyError, for consistency"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FaEE%3D","line":86,"updated":"2013-09-27 10:07:47.000000000","message":"we really don\u0027t need to add typeerror here.","commit_id":"b2636d67169814ed7ee96e82273630ea2fe2a6fe"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"0478c34a86430fcade752da38a68ff784eb1c354","unresolved":false,"context_lines":[{"line_number":869,"context_line":"    \"\"\""},{"line_number":870,"context_line":""},{"line_number":871,"context_line":"    elem \u003d SubTemplateElement(parent, \u0027{%s}link\u0027 % XMLNS_ATOM,"},{"line_number":872,"context_line":"                              selector\u003dselector)"},{"line_number":873,"context_line":"    elem.set(\u0027rel\u0027)"},{"line_number":874,"context_line":"    elem.set(\u0027type\u0027)"},{"line_number":875,"context_line":"    elem.set(\u0027href\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FZ%2B8%3D","line":872,"updated":"2013-09-27 10:46:00.000000000","message":"we need to pass the selector to this set method.","commit_id":"b2636d67169814ed7ee96e82273630ea2fe2a6fe"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"0478c34a86430fcade752da38a68ff784eb1c354","unresolved":false,"context_lines":[{"line_number":870,"context_line":""},{"line_number":871,"context_line":"    elem \u003d SubTemplateElement(parent, \u0027{%s}link\u0027 % XMLNS_ATOM,"},{"line_number":872,"context_line":"                              selector\u003dselector)"},{"line_number":873,"context_line":"    elem.set(\u0027rel\u0027)"},{"line_number":874,"context_line":"    elem.set(\u0027type\u0027)"},{"line_number":875,"context_line":"    elem.set(\u0027href\u0027)"},{"line_number":876,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FZ%2B4%3D","line":873,"updated":"2013-09-27 10:46:00.000000000","message":"same as above.","commit_id":"b2636d67169814ed7ee96e82273630ea2fe2a6fe"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"0478c34a86430fcade752da38a68ff784eb1c354","unresolved":false,"context_lines":[{"line_number":871,"context_line":"    elem \u003d SubTemplateElement(parent, \u0027{%s}link\u0027 % XMLNS_ATOM,"},{"line_number":872,"context_line":"                              selector\u003dselector)"},{"line_number":873,"context_line":"    elem.set(\u0027rel\u0027)"},{"line_number":874,"context_line":"    elem.set(\u0027type\u0027)"},{"line_number":875,"context_line":"    elem.set(\u0027href\u0027)"},{"line_number":876,"context_line":""},{"line_number":877,"context_line":"    # Just for completeness..."}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FZ%2Bs%3D","line":874,"updated":"2013-09-27 10:46:00.000000000","message":"same as above.","commit_id":"b2636d67169814ed7ee96e82273630ea2fe2a6fe"}],"nova/tests/api/openstack/test_xmlutil.py":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"4b38f99371458e0db10772f1f10d4d37d6e9f7c5","unresolved":false,"context_lines":[{"line_number":723,"context_line":"        root_slave \u003d xmlutil.TemplateElement(\u0027test\u0027, selector\u003d\u0027test\u0027)"},{"line_number":724,"context_line":"        image \u003d xmlutil.SubTemplateElement(root_slave, \u0027image\u0027,"},{"line_number":725,"context_line":"                                           selector\u003d\u0027image\u0027)"},{"line_number":726,"context_line":"        image.set(\u0027id\u0027)"},{"line_number":727,"context_line":"        xmlutil.make_links(image, xmlutil.EmptyStringSelector(\u0027links\u0027))"},{"line_number":728,"context_line":"        slave \u003d xmlutil.SlaveTemplate(root_slave, 1)"},{"line_number":729,"context_line":"        master.attach(slave)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FaDw%3D","line":726,"updated":"2013-09-27 10:07:47.000000000","message":"add xmlutil.EmptyStringSelector() to allow id to be \u0027\u0027","commit_id":"b2636d67169814ed7ee96e82273630ea2fe2a6fe"},{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"4b38f99371458e0db10772f1f10d4d37d6e9f7c5","unresolved":false,"context_lines":[{"line_number":724,"context_line":"        image \u003d xmlutil.SubTemplateElement(root_slave, \u0027image\u0027,"},{"line_number":725,"context_line":"                                           selector\u003d\u0027image\u0027)"},{"line_number":726,"context_line":"        image.set(\u0027id\u0027)"},{"line_number":727,"context_line":"        xmlutil.make_links(image, xmlutil.EmptyStringSelector(\u0027links\u0027))"},{"line_number":728,"context_line":"        slave \u003d xmlutil.SlaveTemplate(root_slave, 1)"},{"line_number":729,"context_line":"        master.attach(slave)"},{"line_number":730,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FaD4%3D","line":727,"updated":"2013-09-27 10:07:47.000000000","message":"xmlutil.EmptyStringSelector() would be fine.","commit_id":"b2636d67169814ed7ee96e82273630ea2fe2a6fe"}]}
