)]}'
{"nova/api/openstack/compute/contrib/flavor_access.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"4e70457e02b08baf707b2d07b4acc05b307ed32d","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        elem \u003d xmlutil.SubTemplateElement(root, \u0027access\u0027,"},{"line_number":65,"context_line":"                                          selector\u003d\u0027flavor_access\u0027)"},{"line_number":66,"context_line":"        make_flavor_access(elem)"},{"line_number":67,"context_line":"        return xmlutil.SlaveTemplate(root, 1)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"def _marshall_flavor_access(flavor_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FG3M%3D","line":67,"updated":"2013-02-06 23:09:31.000000000","message":"Why have you changed to a slave template?  The FlavorAccessTemplate is never attached to anything; it\u0027s only used as a master template.","commit_id":"beaa9b6f39fa916a26758ebfe2349f58c0ed4dc0"},{"author":{"_account_id":4598,"name":"Giampaolo Lauria","email":"lauria@us.ibm.com","username":"lauria"},"change_message_id":"5b314fa7eb24bef92bc2de7708c4dadeb7298e70","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        elem \u003d xmlutil.SubTemplateElement(root, \u0027access\u0027,"},{"line_number":65,"context_line":"                                          selector\u003d\u0027flavor_access\u0027)"},{"line_number":66,"context_line":"        make_flavor_access(elem)"},{"line_number":67,"context_line":"        return xmlutil.SlaveTemplate(root, 1)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"def _marshall_flavor_access(flavor_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FFTE%3D","line":67,"in_reply_to":"AAAAM3%2F%2FFVk%3D","updated":"2013-02-07 17:59:34.000000000","message":"Kevin, great explanation and thank you very much. I am suggesting you add a comment to the code (the util file) with the helpful explanation above.","commit_id":"beaa9b6f39fa916a26758ebfe2349f58c0ed4dc0"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"15044e0ca636a3cd9110fe381f4912f2891d43cd","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        elem \u003d xmlutil.SubTemplateElement(root, \u0027access\u0027,"},{"line_number":65,"context_line":"                                          selector\u003d\u0027flavor_access\u0027)"},{"line_number":66,"context_line":"        make_flavor_access(elem)"},{"line_number":67,"context_line":"        return xmlutil.SlaveTemplate(root, 1)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"def _marshall_flavor_access(flavor_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FFVk%3D","line":67,"in_reply_to":"AAAAM3%2F%2FFkQ%3D","updated":"2013-02-07 17:32:45.000000000","message":"The problem with that thinking is that \"you\" *never* need to attach slaves to your own template; it is always someone else.  The master/slave mechanism exists to support extensions.\n\nIn general, if you\u0027re using a template in the @wsgi.serializers() decorator, it needs to be a master template; this will allow other extensions to extend your template, which is desirable.  On the other hand, if you\u0027re passing a template to the attach() method, it needs to be a slave template, because you are extending someone else\u0027s master template.\n\nDoes that help?","commit_id":"beaa9b6f39fa916a26758ebfe2349f58c0ed4dc0"},{"author":{"_account_id":4598,"name":"Giampaolo Lauria","email":"lauria@us.ibm.com","username":"lauria"},"change_message_id":"af4a982133611835c6f93ab7be61212824c2754a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        elem \u003d xmlutil.SubTemplateElement(root, \u0027access\u0027,"},{"line_number":65,"context_line":"                                          selector\u003d\u0027flavor_access\u0027)"},{"line_number":66,"context_line":"        make_flavor_access(elem)"},{"line_number":67,"context_line":"        return xmlutil.SlaveTemplate(root, 1)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"def _marshall_flavor_access(flavor_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FFkQ%3D","line":67,"in_reply_to":"AAAAM3%2F%2FG3M%3D","updated":"2013-02-07 15:18:04.000000000","message":"Hi Kevin,\nI am glad you\u0027ve brought this up as I wanted your expertise on this. I guess I am still not 100% clear as to when to use one versus the other and would like to get an explanation from you on the subject. Looking at the code, I thought that, unless you have slaves to attach to, one should always use a SlaveTemplate (a \"leaner\" object). I thought that one should use a MasterTemplate if and only if you need to attach SlaveTemplates to. Please clarify, thanks.","commit_id":"beaa9b6f39fa916a26758ebfe2349f58c0ed4dc0"}],"nova/tests/api/openstack/compute/contrib/test_flavor_access.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"9da31965c929d7b9f6b7ff185cd8de83ad307320","unresolved":false,"context_lines":[{"line_number":269,"context_line":""},{"line_number":270,"context_line":"        serializer \u003d flavor_access.FlavorAccessTemplate()"},{"line_number":271,"context_line":"        text \u003d serializer.serialize(dict(flavor_access\u003daccess_list))"},{"line_number":272,"context_line":"        self.assertEqual(text, expected)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FE6s%3D","line":272,"updated":"2013-02-07 20:56:41.000000000","message":"I should probably point out that we now have the nova.tests.matchers.XMLMatches class, which works in conjunction with self.assertThat().  Using XMLMatches, this line would become:\n\n    self.assertThat(text, matchers.XMLMatches(expected))","commit_id":"5e129f7f8c559092043459bd0aef688de4a3ca7f"}],"nova/tests/integrated/test_api_samples.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"b865f1f513a93bc046ac65f565890d31dfb53092","unresolved":false,"context_lines":[{"line_number":2857,"context_line":"    ctype \u003d \u0027xml\u0027"},{"line_number":2858,"context_line":""},{"line_number":2859,"context_line":""},{"line_number":2860,"context_line":"\u003c\u003c\u003c\u003c\u003c\u003c\u003c Updated upstream"},{"line_number":2861,"context_line":"class ExtendedAvailabilityZoneJsonTests(ServersSampleBase):"},{"line_number":2862,"context_line":"    extension_name \u003d (\"nova.api.openstack.compute.contrib\""},{"line_number":2863,"context_line":"                                \".extended_availability_zone\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FEy4%3D","line":2860,"updated":"2013-02-07 22:14:06.000000000","message":"You have a conflict…","commit_id":"5431951047b899d7561abdadb0c9b3702f9c9142"}]}
