)]}'
{"novaclient/tests/unit/v2/test_flavors.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"d1bd2b4154e618c5461272cbbce11f4fcf1566d3","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                             sort_dirs\u003d[\u0027asc\u0027, \u0027desc\u0027])"},{"line_number":60,"context_line":"        url \u003d \u0027/flavors/detail?sort_dir\u003dasc\u0027"},{"line_number":61,"context_line":"        url +\u003d \u0027\u0026sort_dir\u003ddesc\u0026sort_key\u003did\u0026sort_key\u003dname\u0027"},{"line_number":62,"context_line":"        self.cs.assert_called(\u0027GET\u0027, url)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def test_list_flavors_is_public_none(self):"},{"line_number":65,"context_line":"        fl \u003d self.cs.flavors.list(is_public\u003dNone)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_3d2f8889","line":62,"updated":"2015-12-02 17:18:00.000000000","message":"Add a test case to test with bare strings, as well.  In fact, I\u0027d suggest leaving the existing test_list_flavors_with_sort_key_dir() alone…","commit_id":"52b4dbf28c8142830f1ddcc967382c93be717514"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"d0b88bcced8fcb79e9ccdc5cb921c8b6a2a6b3ac","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                             sort_dirs\u003d[\u0027asc\u0027, \u0027desc\u0027])"},{"line_number":60,"context_line":"        url \u003d \u0027/flavors/detail?sort_dir\u003dasc\u0027"},{"line_number":61,"context_line":"        url +\u003d \u0027\u0026sort_dir\u003ddesc\u0026sort_key\u003did\u0026sort_key\u003dname\u0027"},{"line_number":62,"context_line":"        self.cs.assert_called(\u0027GET\u0027, url)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def test_list_flavors_is_public_none(self):"},{"line_number":65,"context_line":"        fl \u003d self.cs.flavors.list(is_public\u003dNone)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_13fb7e7c","line":62,"in_reply_to":"9a8ffd7b_3d2f8889","updated":"2015-12-03 02:43:13.000000000","message":"Done","commit_id":"52b4dbf28c8142830f1ddcc967382c93be717514"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"e6788d0bf6792321c9ca2b5a42d89f5db61f8a24","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.cs.flavors.list(marker\u003d1234, limit\u003d4)"},{"line_number":50,"context_line":"        self.cs.assert_called(\u0027GET\u0027, \u0027/flavors/detail?limit\u003d4\u0026marker\u003d1234\u0027)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    # Note: Flaovr sort keys and sort dirs support both of string and"},{"line_number":53,"context_line":"    # list of strings, and this case is to test the bare string."},{"line_number":54,"context_line":"    def test_list_flavors_with_sort_key_dir(self):"},{"line_number":55,"context_line":"        self.cs.flavors.list(sort_keys\u003d\u0027id\u0027, sort_dirs\u003d\u0027asc\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_75ca9751","line":52,"updated":"2015-12-03 16:43:25.000000000","message":"Attonit: s/Flaovr/Flavor/","commit_id":"368dcb00774113b47d234d4ffe3808fad72c95dc"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"6a071e6e9847e3e4db7cfd83699cf1c2277f764d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.cs.flavors.list(marker\u003d1234, limit\u003d4)"},{"line_number":50,"context_line":"        self.cs.assert_called(\u0027GET\u0027, \u0027/flavors/detail?limit\u003d4\u0026marker\u003d1234\u0027)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    # Note: Flaovr sort keys and sort dirs support both of string and"},{"line_number":53,"context_line":"    # list of strings, and this case is to test the bare string."},{"line_number":54,"context_line":"    def test_list_flavors_with_sort_key_dir(self):"},{"line_number":55,"context_line":"        self.cs.flavors.list(sort_keys\u003d\u0027id\u0027, sort_dirs\u003d\u0027asc\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_fb689fbc","line":52,"in_reply_to":"7a740942_75ca9751","updated":"2015-12-04 02:33:50.000000000","message":"Done, Thanks.","commit_id":"368dcb00774113b47d234d4ffe3808fad72c95dc"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"600858043a32e0ff82129deb867d3c164dfe58fb","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    # Note: Flavor sort keys and sort dirs support both of string and"},{"line_number":53,"context_line":"    # list of strings, and this case is to test the bare string."},{"line_number":54,"context_line":"    def test_list_flavors_with_sort_key_dir(self):"},{"line_number":55,"context_line":"        self.cs.flavors.list(sort_keys\u003d\u0027id\u0027, sort_dirs\u003d\u0027asc\u0027)"},{"line_number":56,"context_line":"        self.cs.assert_called(\u0027GET\u0027,"},{"line_number":57,"context_line":"                              \u0027/flavors/detail?sort_dir\u003dasc\u0026sort_key\u003did\u0027)"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_dbd1ffce","line":55,"updated":"2015-12-04 17:12:40.000000000","message":"Hmmm…","commit_id":"ed88e6270ea58cc3d4a2ff4d4a27346ce67e4b4e"}],"novaclient/v2/flavors.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"d1bd2b4154e618c5461272cbbce11f4fcf1566d3","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        if sort_keys and isinstance(sort_keys, six.string_types):"},{"line_number":121,"context_line":"            sort_keys \u003d [sort_keys]"},{"line_number":122,"context_line":"            sort_dirs \u003d [sort_dirs]"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        if qparams or sort_keys or sort_dirs:"},{"line_number":125,"context_line":"            items \u003d list(qparams.items())"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_bd7e1868","line":122,"updated":"2015-12-02 17:18:00.000000000","message":"sort_keys and sort_dirs are independent parameters, so you need to have independent logic for each.","commit_id":"52b4dbf28c8142830f1ddcc967382c93be717514"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"d0b88bcced8fcb79e9ccdc5cb921c8b6a2a6b3ac","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        if sort_keys and isinstance(sort_keys, six.string_types):"},{"line_number":121,"context_line":"            sort_keys \u003d [sort_keys]"},{"line_number":122,"context_line":"            sort_dirs \u003d [sort_dirs]"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        if qparams or sort_keys or sort_dirs:"},{"line_number":125,"context_line":"            items \u003d list(qparams.items())"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_33000266","line":122,"in_reply_to":"9a8ffd7b_bd7e1868","updated":"2015-12-03 02:43:13.000000000","message":"Done","commit_id":"52b4dbf28c8142830f1ddcc967382c93be717514"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"562cf914f42dfb1f773d6862af2d5d28410e1aab","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        if sort_key:"},{"line_number":117,"context_line":"            qparams[\u0027sort_key\u0027] \u003d str(sort_key)"},{"line_number":118,"context_line":"        if sort_dir:"},{"line_number":119,"context_line":"            qparams[\u0027sort_dir\u0027] \u003d str(sort_dir)"},{"line_number":120,"context_line":"        if not is_public:"},{"line_number":121,"context_line":"            qparams[\u0027is_public\u0027] \u003d is_public"},{"line_number":122,"context_line":"        qparams \u003d sorted(qparams.items(), key\u003dlambda x: x[0])"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_56be7600","side":"PARENT","line":119,"updated":"2015-12-03 20:58:35.000000000","message":"I noticed these conversions to str type got dropped in the change","commit_id":"51df01e9723c9830b894709835e2226ad78146e0"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"562cf914f42dfb1f773d6862af2d5d28410e1aab","unresolved":false,"context_lines":[{"line_number":15,"context_line":"\"\"\""},{"line_number":16,"context_line":"Flavor interface."},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":"import six"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from oslo_utils import strutils"},{"line_number":21,"context_line":"from six.moves.urllib import parse"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_0bb687dc","line":18,"updated":"2015-12-03 20:58:35.000000000","message":"This is a third-party import and should go with the rest of the third-party imports below L20-L21\n\nhttp://docs.openstack.org/developer/hacking/#import-order-template","commit_id":"368dcb00774113b47d234d4ffe3808fad72c95dc"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"6a071e6e9847e3e4db7cfd83699cf1c2277f764d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"\"\"\""},{"line_number":16,"context_line":"Flavor interface."},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":"import six"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from oslo_utils import strutils"},{"line_number":21,"context_line":"from six.moves.urllib import parse"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_b5c8e675","line":18,"in_reply_to":"7a740942_0bb687dc","updated":"2015-12-04 02:33:50.000000000","message":"Done","commit_id":"368dcb00774113b47d234d4ffe3808fad72c95dc"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"562cf914f42dfb1f773d6862af2d5d28410e1aab","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        if qparams or sort_keys or sort_dirs:"},{"line_number":126,"context_line":"            items \u003d list(qparams.items())"},{"line_number":127,"context_line":"            if sort_keys:"},{"line_number":128,"context_line":"                items.extend((\u0027sort_key\u0027, sort_key)"},{"line_number":129,"context_line":"                             for sort_key in sort_keys)"},{"line_number":130,"context_line":"            if sort_dirs:"},{"line_number":131,"context_line":"                items.extend((\u0027sort_dir\u0027, sort_dir)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_765292df","line":128,"range":{"start_line":128,"start_character":42,"end_line":128,"end_character":50},"updated":"2015-12-03 20:58:35.000000000","message":"Restore str(sort_key) here?","commit_id":"368dcb00774113b47d234d4ffe3808fad72c95dc"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"6a071e6e9847e3e4db7cfd83699cf1c2277f764d","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        if qparams or sort_keys or sort_dirs:"},{"line_number":126,"context_line":"            items \u003d list(qparams.items())"},{"line_number":127,"context_line":"            if sort_keys:"},{"line_number":128,"context_line":"                items.extend((\u0027sort_key\u0027, sort_key)"},{"line_number":129,"context_line":"                             for sort_key in sort_keys)"},{"line_number":130,"context_line":"            if sort_dirs:"},{"line_number":131,"context_line":"                items.extend((\u0027sort_dir\u0027, sort_dir)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_5bf8d3e5","line":128,"in_reply_to":"7a740942_765292df","updated":"2015-12-04 02:33:50.000000000","message":"Done","commit_id":"368dcb00774113b47d234d4ffe3808fad72c95dc"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"562cf914f42dfb1f773d6862af2d5d28410e1aab","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                items.extend((\u0027sort_key\u0027, sort_key)"},{"line_number":129,"context_line":"                             for sort_key in sort_keys)"},{"line_number":130,"context_line":"            if sort_dirs:"},{"line_number":131,"context_line":"                items.extend((\u0027sort_dir\u0027, sort_dir)"},{"line_number":132,"context_line":"                             for sort_dir in sort_dirs)"},{"line_number":133,"context_line":"            qparams \u003d sorted(items, key\u003dlambda x: x[0])"},{"line_number":134,"context_line":"            query_string \u003d \"?%s\" % parse.urlencode(qparams) if qparams else \"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_165eaee9","line":131,"range":{"start_line":131,"start_character":42,"end_line":131,"end_character":50},"updated":"2015-12-03 20:58:35.000000000","message":"Restore str(sort_dir) here?","commit_id":"368dcb00774113b47d234d4ffe3808fad72c95dc"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"6a071e6e9847e3e4db7cfd83699cf1c2277f764d","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                items.extend((\u0027sort_key\u0027, sort_key)"},{"line_number":129,"context_line":"                             for sort_key in sort_keys)"},{"line_number":130,"context_line":"            if sort_dirs:"},{"line_number":131,"context_line":"                items.extend((\u0027sort_dir\u0027, sort_dir)"},{"line_number":132,"context_line":"                             for sort_dir in sort_dirs)"},{"line_number":133,"context_line":"            qparams \u003d sorted(items, key\u003dlambda x: x[0])"},{"line_number":134,"context_line":"            query_string \u003d \"?%s\" % parse.urlencode(qparams) if qparams else \"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_fbddff70","line":131,"in_reply_to":"7a740942_165eaee9","updated":"2015-12-04 02:33:50.000000000","message":"Done","commit_id":"368dcb00774113b47d234d4ffe3808fad72c95dc"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"562cf914f42dfb1f773d6862af2d5d28410e1aab","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            qparams \u003d sorted(items, key\u003dlambda x: x[0])"},{"line_number":134,"context_line":"            query_string \u003d \"?%s\" % parse.urlencode(qparams) if qparams else \"\""},{"line_number":135,"context_line":"        else:"},{"line_number":136,"context_line":"            query_string \u003d \u0027\u0027"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        detail \u003d \"\""},{"line_number":139,"context_line":"        if detailed:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_4b2fafa1","line":136,"updated":"2015-12-03 20:58:35.000000000","message":"I don\u0027t see the need to include qparams in the conditional and if else sort and assign the query_string. If qparams is empty, sorted() will be a quick no-op.\n\n if sort_keys or sort_dirs:\n     items \u003d list(qparams.items())\n     if sort_keys:\n         items.extend((\u0027sort_key\u0027, sort_key)\n                      for sort_key in sort_keys)\n     if sort_dirs:\n         items.extend((\u0027sort_dir\u0027, sort_dir)\n                      for sort_dir in sort_dirs)\n  qparams \u003d sorted(qparams.items(), key\u003dlambda x: x[0])\n  query_string \u003d \"?%s\" % parse.urlencode(qparams) if qparams else \"\"","commit_id":"368dcb00774113b47d234d4ffe3808fad72c95dc"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"6a071e6e9847e3e4db7cfd83699cf1c2277f764d","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            qparams \u003d sorted(items, key\u003dlambda x: x[0])"},{"line_number":134,"context_line":"            query_string \u003d \"?%s\" % parse.urlencode(qparams) if qparams else \"\""},{"line_number":135,"context_line":"        else:"},{"line_number":136,"context_line":"            query_string \u003d \u0027\u0027"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        detail \u003d \"\""},{"line_number":139,"context_line":"        if detailed:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_7b37cfb0","line":136,"in_reply_to":"7a740942_4b2fafa1","updated":"2015-12-04 02:33:50.000000000","message":"Done, Thanks.\nBut the \"items \u003d list(qparams.items())\" should be moved outside of the if conditional, right? And then replace qparams.items() with items.\n\n items \u003d list(qparams.items())\n if sort_keys or sort_dirs:\n     if sort_keys:\n         items.extend((\u0027sort_key\u0027, sort_key)\n                      for sort_key in sort_keys)\n     if sort_dirs:\n         items.extend((\u0027sort_dir\u0027, sort_dir)\n                      for sort_dir in sort_dirs)\n  qparams \u003d sorted(items, key\u003dlambda x: x[0])\n  query_string \u003d \"?%s\" % parse.urlencode(qparams) if qparams else \"\"","commit_id":"368dcb00774113b47d234d4ffe3808fad72c95dc"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"600858043a32e0ff82129deb867d3c164dfe58fb","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    is_alphanum_id_allowed \u003d True"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def list(self, detailed\u003dTrue, is_public\u003dTrue, marker\u003dNone, limit\u003dNone,"},{"line_number":98,"context_line":"             sort_keys\u003dNone, sort_dirs\u003dNone):"},{"line_number":99,"context_line":"        \"\"\""},{"line_number":100,"context_line":"        Get a list of all flavors."},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_5b30af01","line":98,"updated":"2015-12-04 17:12:40.000000000","message":"I just thought of something nasty regarding backwards compatibility here.  We\u0027re changing the parameter names, and given the number of parameters here, it\u0027s likely that existing code is using keyword-style parameters to pass these values…meaning that we have a backwards compatibility issue here.\n\nOption 1: Stick with the singular version of the parameter names and leave the rest of this unchanged.\n\nOption 2: Support both sort_key and sort_keys, linking the single string behavior with the former and the list format with the latter.  We would have to throw an exception (probably TypeError) if both are used.  The same change, of course, would be necessary for sort_dir and sort_dirs.\n\nOption 3: Take advantage of the fact that we\u0027re gearing up for a 3.0.0 release and have this change included on the list to be included in the release; then we can take advantage of the break in backwards compatibility and not worry about the parameter name change.","commit_id":"ed88e6270ea58cc3d4a2ff4d4a27346ce67e4b4e"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"8f5ba65275a1ed2bc44e966b37a3f7878f1cda6d","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    is_alphanum_id_allowed \u003d True"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def list(self, detailed\u003dTrue, is_public\u003dTrue, marker\u003dNone, limit\u003dNone,"},{"line_number":98,"context_line":"             sort_keys\u003dNone, sort_dirs\u003dNone):"},{"line_number":99,"context_line":"        \"\"\""},{"line_number":100,"context_line":"        Get a list of all flavors."},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_d7c78810","line":98,"in_reply_to":"7a740942_3c759697","updated":"2015-12-04 21:34:53.000000000","message":"Great.  And once we need to change a server-side API, then we also need to introduce a microversion.  Oh what a tangled web :)","commit_id":"ed88e6270ea58cc3d4a2ff4d4a27346ce67e4b4e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e259a1413894d9bdeb725f33ef26898a821be9f3","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    is_alphanum_id_allowed \u003d True"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def list(self, detailed\u003dTrue, is_public\u003dTrue, marker\u003dNone, limit\u003dNone,"},{"line_number":98,"context_line":"             sort_keys\u003dNone, sort_dirs\u003dNone):"},{"line_number":99,"context_line":"        \"\"\""},{"line_number":100,"context_line":"        Get a list of all flavors."},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_3c759697","line":98,"in_reply_to":"7a740942_5b30af01","updated":"2015-12-04 19:19:00.000000000","message":"Good catch. I think we definitely shouldn\u0027t change the kwarg names here, I like Option 1.\n\nBut I found a bigger problem -- the nova flavors api doesn\u0027t yet support multiple sort keys and directions [1] the way the nova servers api does. So there would need to be a change on the server for this to work as well.\n\n[1] https://github.com/openstack/nova/blob/347ebb2/nova/api/openstack/compute/flavors.py#L79-L80","commit_id":"ed88e6270ea58cc3d4a2ff4d4a27346ce67e4b4e"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"9a628024677ab08d99f271fa0c540815bb666512","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    is_alphanum_id_allowed \u003d True"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def list(self, detailed\u003dTrue, is_public\u003dTrue, marker\u003dNone, limit\u003dNone,"},{"line_number":98,"context_line":"             sort_keys\u003dNone, sort_dirs\u003dNone):"},{"line_number":99,"context_line":"        \"\"\""},{"line_number":100,"context_line":"        Get a list of all flavors."},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_249d460a","line":98,"in_reply_to":"7a740942_d7c78810","updated":"2015-12-07 12:44:33.000000000","message":"Hi, Kevin and melanie,\n  Thanks for your review and kind comments.\n  So, we had to fix the nova flavor api firstly, and then pick up \nthis patch to close it.\n  As for the options, i think it\u0027s better to also delay until we \nfinish the nova api, as it should be consistent with nova flavor \napi, right?","commit_id":"ed88e6270ea58cc3d4a2ff4d4a27346ce67e4b4e"}]}
