)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"83a5ca5d47ff048461251127e36d0c73d0d87b4e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"a volume type more convenient. However, this"},{"line_number":12,"context_line":"variable will only be visible when type show"},{"line_number":13,"context_line":"is called with the admin role."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Id8a2333267c9a51b36c6adfbd142dcc4fbe4f090"},{"line_number":16,"context_line":"Closes-Bug: #1438488"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a29b11f_5888b622","line":14,"updated":"2015-10-19 13:36:58.000000000","message":"Please, add APIImpact flag to the commit message","commit_id":"5171edba62665705c672f06d4010d15477bc26e9"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"b4dc0b6acd20969b8a099f58a22ed3bda5729a74","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add qos_specs_id to volume type show"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adding qos_specs_id to the output of volume"},{"line_number":10,"context_line":"type show to make getting the qos specs for"},{"line_number":11,"context_line":"a volume type more convenient. However, this"},{"line_number":12,"context_line":"variable will only be visible when type show"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3a29b11f_a02661b8","line":9,"updated":"2015-10-19 18:36:45.000000000","message":"We normally break commit messages on column 72, but I don\u0027t have a problem with that.","commit_id":"95fc4bacfcb5fff2116f9264b4740a79c14f0287"}],"cinder/api/v2/views/types.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0e24319b1927cf8ad82188d6f5c361834d36d61a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 Red Hat, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_c80db43f","line":1,"updated":"2015-10-20 03:04:33.000000000","message":"This license header doesn\u0027t seem right given your affiliation.","commit_id":"6de1a70a17c965c6f9cda11f2596af1609f005ff"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"c20cd5a7300769f3b5925a952b8a6360049d64e5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 Red Hat, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_6e96e94d","line":1,"in_reply_to":"3a29b11f_c80db43f","updated":"2015-10-20 03:17:44.000000000","message":"Oops, this file was a copy/paste with a few modifications from cinder.api.views.types and I didn\u0027t see that there. Is it common practice to include your company at the top of the license when adding new files?","commit_id":"6de1a70a17c965c6f9cda11f2596af1609f005ff"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0e24319b1927cf8ad82188d6f5c361834d36d61a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"                       is_public\u003dvolume_type.get(\u0027is_public\u0027),"},{"line_number":27,"context_line":"                       extra_specs\u003dvolume_type.get(\u0027extra_specs\u0027),"},{"line_number":28,"context_line":"                       description\u003dvolume_type.get(\u0027description\u0027))"},{"line_number":29,"context_line":"        if context.is_admin:"},{"line_number":30,"context_line":"            trimmed[\u0027qos_specs_id\u0027] \u003d volume_type.get(\u0027qos_specs_id\u0027)"},{"line_number":31,"context_line":"        return trimmed if brief else dict(volume_type\u003dtrimmed)"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_ce5a9d2a","line":29,"updated":"2015-10-20 03:04:33.000000000","message":"I think it is fine to do the role check like this.  But just in case others may want to make it configurable, which will have to involve enforcing role via policy.","commit_id":"6de1a70a17c965c6f9cda11f2596af1609f005ff"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"25190f9460552538ca1527fac633743298c23559","unresolved":false,"context_lines":[{"line_number":26,"context_line":"                       is_public\u003dvolume_type.get(\u0027is_public\u0027),"},{"line_number":27,"context_line":"                       extra_specs\u003dvolume_type.get(\u0027extra_specs\u0027),"},{"line_number":28,"context_line":"                       description\u003dvolume_type.get(\u0027description\u0027))"},{"line_number":29,"context_line":"        if context.is_admin:"},{"line_number":30,"context_line":"            trimmed[\u0027qos_specs_id\u0027] \u003d volume_type.get(\u0027qos_specs_id\u0027)"},{"line_number":31,"context_line":"        return trimmed if brief else dict(volume_type\u003dtrimmed)"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_1bb6783d","line":29,"in_reply_to":"3a29b11f_ce5a9d2a","updated":"2015-10-20 14:51:11.000000000","message":"I think enforcing this via policy may require me to make a change to the patch that is dependent on this patch and create a circular dependancy (updating the _validate_policy function in cinder.api.v2.types here to be _validate_extraspecs_policy and creating a new function for qos_spec_id https://review.openstack.org/#/c/237075/). Should I maybe wait until these patches are merged to them go back and make the change to make it configurable?","commit_id":"6de1a70a17c965c6f9cda11f2596af1609f005ff"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"c20cd5a7300769f3b5925a952b8a6360049d64e5","unresolved":false,"context_lines":[{"line_number":26,"context_line":"                       is_public\u003dvolume_type.get(\u0027is_public\u0027),"},{"line_number":27,"context_line":"                       extra_specs\u003dvolume_type.get(\u0027extra_specs\u0027),"},{"line_number":28,"context_line":"                       description\u003dvolume_type.get(\u0027description\u0027))"},{"line_number":29,"context_line":"        if context.is_admin:"},{"line_number":30,"context_line":"            trimmed[\u0027qos_specs_id\u0027] \u003d volume_type.get(\u0027qos_specs_id\u0027)"},{"line_number":31,"context_line":"        return trimmed if brief else dict(volume_type\u003dtrimmed)"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_8e78252d","line":29,"in_reply_to":"3a29b11f_ce5a9d2a","updated":"2015-10-20 03:17:44.000000000","message":"You may be right, I\u0027m actually working on another bug right now involving making viewing extra_specs enforced by policy, I can do the same here for uniformity.","commit_id":"6de1a70a17c965c6f9cda11f2596af1609f005ff"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"897825df3c62d12c641c63862fe62a056cfb39bb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 Red Hat, Inc."},{"line_number":2,"context_line":"# Copyright 2015 Intel Corporation"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a29b11f_6002b70d","line":1,"updated":"2015-10-23 22:44:01.000000000","message":"I think you can remove above line since this is a new file.","commit_id":"b2e92b85b5ea2fc4058d6c0f6e9e3fddc2a9036e"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"a0a58c3563257567fc1e85db1134f70b9438c8d1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 Red Hat, Inc."},{"line_number":2,"context_line":"# Copyright 2015 Intel Corporation"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a29b11f_86160cf0","line":1,"in_reply_to":"3a29b11f_6002b70d","updated":"2015-10-23 23:18:04.000000000","message":"Sure, I just thought maybe I should leave it in since much of this file is the same as cinder.api.views.types. I can take it out if people want though, I\u0027m still somewhat new to licensing.","commit_id":"b2e92b85b5ea2fc4058d6c0f6e9e3fddc2a9036e"}],"cinder/tests/unit/api/v1/test_types.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"169ce4167ea64bbf921ca02843036efc6b846224","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                               qos_specs_id\u003d\u0027new_id\u0027,"},{"line_number":148,"context_line":"                               id\u003d42)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        request \u003d fakes.HTTPRequest.blank(\"/v1\", use_admin_context \u003d True)"},{"line_number":151,"context_line":"        output \u003d view_builder.show(request, raw_volume_type)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        self.assertIn(\u0027volume_type\u0027, output)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a2ca52d_d65402cb","line":150,"updated":"2015-10-16 19:23:14.000000000","message":"No need space here","commit_id":"5c98c823cb92ec0627c7621d3cdbf489aee3ef2f"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"696b61c475f1bf07e96deadee257ad819db33b80","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                               qos_specs_id\u003d\u0027new_id\u0027,"},{"line_number":148,"context_line":"                               id\u003d42)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        request \u003d fakes.HTTPRequest.blank(\"/v1\", use_admin_context \u003d True)"},{"line_number":151,"context_line":"        output \u003d view_builder.show(request, raw_volume_type)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        self.assertIn(\u0027volume_type\u0027, output)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a2ca52d_c1f43a5c","line":150,"in_reply_to":"5a2ca52d_d65402cb","updated":"2015-10-16 20:03:27.000000000","message":"Which space do you mean? Take out the spaces around the equals sign in \u0027use_admin_context\u003dTrue\u0027?","commit_id":"5c98c823cb92ec0627c7621d3cdbf489aee3ef2f"}],"cinder/tests/unit/api/v2/test_types.py":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4c557ec89dd84d5239190a4354dacd1f68f5b6a4","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            extra_specs\u003d{},"},{"line_number":206,"context_line":"            id\u003d42,"},{"line_number":207,"context_line":"        )"},{"line_number":208,"context_line":"        self.assertDictMatch(output[\u0027volume_type\u0027], expected_volume_type)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    def test_view_builder_list(self):"},{"line_number":211,"context_line":"        view_builder \u003d views_types.ViewBuilder()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_f5c60799","line":208,"updated":"2015-10-21 07:37:16.000000000","message":"Please change the order of output[\u0027volume_type\u0027] and expected_volume_type.","commit_id":"427b87377a308d6004d099ed57b68f2950883010"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4c557ec89dd84d5239190a4354dacd1f68f5b6a4","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                id\u003d42 + i"},{"line_number":279,"context_line":"            )"},{"line_number":280,"context_line":"            self.assertDictMatch(output[\u0027volume_types\u0027][i],"},{"line_number":281,"context_line":"                                 expected_volume_type)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"class VolumeTypesSerializerTest(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_75d2f75d","line":281,"updated":"2015-10-21 07:37:16.000000000","message":"Please change the order of output[\u0027volume_types\u0027][i] and expected_volume_type.","commit_id":"427b87377a308d6004d099ed57b68f2950883010"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"d14fa24520d600f515aed3badf74d2dfd68e3e42","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                id\u003d42 + i"},{"line_number":279,"context_line":"            )"},{"line_number":280,"context_line":"            self.assertDictMatch(output[\u0027volume_types\u0027][i],"},{"line_number":281,"context_line":"                                 expected_volume_type)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"class VolumeTypesSerializerTest(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_48faa876","line":281,"in_reply_to":"3a29b11f_75d2f75d","updated":"2015-10-21 16:06:26.000000000","message":"Should I change the order of this for the other functions in this file as well?","commit_id":"427b87377a308d6004d099ed57b68f2950883010"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"20a2b13cf9e7d9824cd55acc5ee5f79000ed0798","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                id\u003d42 + i"},{"line_number":279,"context_line":"            )"},{"line_number":280,"context_line":"            self.assertDictMatch(output[\u0027volume_types\u0027][i],"},{"line_number":281,"context_line":"                                 expected_volume_type)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"class VolumeTypesSerializerTest(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_bc3865ef","line":281,"in_reply_to":"3a29b11f_75d2f75d","updated":"2015-10-21 14:21:16.000000000","message":"Why? It matches the already existing functions that this was based off of.","commit_id":"427b87377a308d6004d099ed57b68f2950883010"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"1d9fc5016cd29f87c5041b970b9e7be4728fc0cb","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            id\u003d42,"},{"line_number":176,"context_line":"        )"},{"line_number":177,"context_line":"        self.assertDictMatch(output[\u0027volume_type\u0027], expected_volume_type)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def test_view_builder_show_admin(self):"},{"line_number":180,"context_line":"        view_builder \u003d views_types.ViewBuilder()"},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3a29b11f_e4e5d1a3","line":178,"updated":"2015-10-21 22:19:51.000000000","message":"Optional: Since test_view_builder_show and test_view_builder_show_admin are identical except for the use_admin_context\u003dTrue and checking for qos_specs_id key, we could just have a loop and single test case.\n\nSame goes for test_view_builder_list and test_view_builder_list_admin.  We\u0027d save 60ish lines of code but be testing both scenarios in same test case .\n\nBut whichever you prefer works for me.","commit_id":"b2e92b85b5ea2fc4058d6c0f6e9e3fddc2a9036e"}]}
