)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"28e9698449d85d2d5b250876b23276c389f14c56","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"OSC Quota List"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implement Neutron feature of Quota List into"},{"line_number":10,"context_line":"OpenStack Client."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Idf941acf8d00b136776b7381b877c56d82622f57"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"da36d5c6_9b804df9","line":9,"range":{"start_line":9,"start_character":10,"end_line":9,"end_character":17},"updated":"2017-02-23 04:29:23.000000000","message":"technically this also implements list for compute and volume as well no?","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9662777a7d476c7c6ff0497ff9b7915c0d50f854","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"OSC Quota List"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implement Neutron feature of Quota List into"},{"line_number":10,"context_line":"OpenStack Client."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Idf941acf8d00b136776b7381b877c56d82622f57"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"da36d5c6_c123b4a5","line":9,"range":{"start_line":9,"start_character":10,"end_line":9,"end_character":17},"in_reply_to":"da36d5c6_9b804df9","updated":"2017-02-23 05:42:33.000000000","message":"yes, but what I meant with this was \"neutronclient command of Quota List\"","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"}],"doc/source/command-objects/quota.rst":[{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"9364b5d1be374fb7a7b63d54071ed80e0b495734","unresolved":false,"context_lines":[{"line_number":248,"context_line":"quota list"},{"line_number":249,"context_line":"----------"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"List quotas for all projects with non-default quota values"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":".. program:: quota list"},{"line_number":254,"context_line":".. code:: bash"}],"source_content_type":"text/x-rst","patch_set":14,"id":"da36d5c6_70ef6a87","line":251,"updated":"2017-02-22 01:09:58.000000000","message":"--network --compute --volume ??","commit_id":"c323413ceb70cd4cb48e42fbb78bf4cba5d9268e"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d69a0367d4c0fea0b0f45b0d05cb9f5d3b94942","unresolved":false,"context_lines":[{"line_number":248,"context_line":"quota list"},{"line_number":249,"context_line":"----------"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"List quotas for all projects with non-default quota values"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":".. program:: quota list"},{"line_number":254,"context_line":".. code:: bash"}],"source_content_type":"text/x-rst","patch_set":14,"id":"da36d5c6_33925c9f","line":251,"in_reply_to":"da36d5c6_70ef6a87","updated":"2017-02-22 01:34:32.000000000","message":"Done","commit_id":"c323413ceb70cd4cb48e42fbb78bf4cba5d9268e"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"86705fc4946c4a82d4f932a0f46004ea5188035c","unresolved":false,"context_lines":[{"line_number":256,"context_line":"    openstack quota list"},{"line_number":257,"context_line":"        [--network]"},{"line_number":258,"context_line":"        [--compute]"},{"line_number":259,"context_line":"        [--volume]"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":".. option:: --network"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"ba2be162_4f5e8f46","line":259,"updated":"2017-02-28 22:53:50.000000000","message":"These options are in a mutex group show should be shown that way here:\n\n--compute | --network | --volume","commit_id":"656e1a88d76fb3af329231f890348e44ce931c94"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"af39903b1c58757ef7ab0a523e11e64aeb35aa71","unresolved":false,"context_lines":[{"line_number":256,"context_line":"    openstack quota list"},{"line_number":257,"context_line":"        [--network]"},{"line_number":258,"context_line":"        [--compute]"},{"line_number":259,"context_line":"        [--volume]"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":".. option:: --network"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"ba2be162_9eb20d93","line":259,"in_reply_to":"ba2be162_4f5e8f46","updated":"2017-03-02 17:01:28.000000000","message":"Done","commit_id":"656e1a88d76fb3af329231f890348e44ce931c94"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"928665ad58f9ce23f54acac2e59fbd05355f5a66","unresolved":false,"context_lines":[{"line_number":254,"context_line":".. code:: bash"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    openstack quota list"},{"line_number":257,"context_line":"        [--compute | --network | --volume]"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":".. option:: --network"},{"line_number":260,"context_line":""}],"source_content_type":"text/x-rst","patch_set":25,"id":"ba2be162_c34e133a","line":257,"range":{"start_line":257,"start_character":8,"end_line":257,"end_character":42},"updated":"2017-03-05 16:52:53.000000000","message":"[--xxx] means optional. One of these option is mandatory, so you need to change this to:\n\n  ( --compute | --network | --volume )\n\nor just\n\n  --compute | --network | --volume\n\nOr, do you want this to be optional, i.e. openstack quota list (with no option)? If so, you need to update the code.","commit_id":"9cfbd82396189b72181d301515e51c6cfff79b85"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"e418e11eba17cfd126cd202fdb6c370c5a551bc7","unresolved":false,"context_lines":[{"line_number":254,"context_line":".. code:: bash"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    openstack quota list"},{"line_number":257,"context_line":"        [--compute | --network | --volume]"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":".. option:: --network"},{"line_number":260,"context_line":""}],"source_content_type":"text/x-rst","patch_set":25,"id":"ba2be162_bf303257","line":257,"range":{"start_line":257,"start_character":8,"end_line":257,"end_character":42},"in_reply_to":"ba2be162_c34e133a","updated":"2017-03-06 15:39:39.000000000","message":"Done","commit_id":"9cfbd82396189b72181d301515e51c6cfff79b85"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"bb08ecdfb510f18ae9ddd61b487ecb58e1e5018c","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    Show quotas for this class (name or ID)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"quota list"},{"line_number":249,"context_line":"----------"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"List quotas for all projects with non-default quota values"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9a30ddce_9005c8c3","line":248,"range":{"start_line":248,"start_character":0,"end_line":248,"end_character":10},"updated":"2017-03-08 12:31:51.000000000","message":"please order the command by alphabetical\n\n    quota list\n    quota set\n    quota show","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    Show quotas for this class (name or ID)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"quota list"},{"line_number":249,"context_line":"----------"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"List quotas for all projects with non-default quota values"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9a30ddce_3d12cc09","line":248,"range":{"start_line":248,"start_character":0,"end_line":248,"end_character":10},"in_reply_to":"9a30ddce_9005c8c3","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"}],"openstackclient/common/quota.py":[{"author":{"_account_id":14615,"name":"Sergey Belous","email":"belous.py@gmail.com","username":"sbelous"},"change_message_id":"14d5f86b76b1a03992e013b287d1fb6b4c3fd48f","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            \u0027Subnet\u0027,"},{"line_number":164,"context_line":"            \u0027SubnetPool\u0027"},{"line_number":165,"context_line":"        )"},{"line_number":166,"context_line":"        if result:"},{"line_number":167,"context_line":"            return (column_headers,"},{"line_number":168,"context_line":"                    (utils.get_dict_properties("},{"line_number":169,"context_line":"                        s, columns,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a95cdbc_a49ae8c3","line":166,"range":{"start_line":166,"start_character":8,"end_line":166,"end_character":18},"updated":"2016-10-04 14:40:51.000000000","message":"So, if you inherit from command.Lister then in any case the take_actaion method should return (even empty) but iterable result. So, now, if result will be empty, then quota list will be raise TypeError [1]\n\n\n[1] http://paste.openstack.org/show/584226/","commit_id":"0c10db17b1e05bcad865d86830da158507ed1dda"},{"author":{"_account_id":14615,"name":"Sergey Belous","email":"belous.py@gmail.com","username":"sbelous"},"change_message_id":"f9330f23712b99c7b3b320490d9bbb7753c3121c","unresolved":false,"context_lines":[{"line_number":79,"context_line":"}"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"def _xform_get_quota(d):"},{"line_number":83,"context_line":"    res \u003d []"},{"line_number":84,"context_line":"    res_info \u003d {}"},{"line_number":85,"context_line":"    res_info[\u0027floatingip\u0027] \u003d getattr(d, \u0027floatingip\u0027, \u0027\u0027)"},{"line_number":86,"context_line":"    res_info[\u0027id\u0027] \u003d getattr(d, \u0027id\u0027, \u0027\u0027)"},{"line_number":87,"context_line":"    res_info[\u0027network\u0027] \u003d getattr(d, \u0027network\u0027, \u0027\u0027)"},{"line_number":88,"context_line":"    res_info[\u0027port\u0027] \u003d getattr(d, \u0027port\u0027, \u0027\u0027)"},{"line_number":89,"context_line":"    res_info[\u0027rbac_policy\u0027] \u003d getattr(d, \u0027rbac_policy\u0027, \u0027\u0027)"},{"line_number":90,"context_line":"    res_info[\u0027router\u0027] \u003d getattr(d, \u0027router\u0027, \u0027\u0027)"},{"line_number":91,"context_line":"    res_info[\u0027security_group\u0027] \u003d getattr(d, \u0027security_group\u0027, \u0027\u0027)"},{"line_number":92,"context_line":"    res_info[\u0027security_group_rule\u0027] \u003d getattr(d, \u0027security_group_rule\u0027, \u0027\u0027)"},{"line_number":93,"context_line":"    res_info[\u0027subnet\u0027] \u003d getattr(d, \u0027subnet\u0027, \u0027\u0027)"},{"line_number":94,"context_line":"    res_info[\u0027subnetpool\u0027] \u003d getattr(d, \u0027subnetpool\u0027, \u0027\u0027)"},{"line_number":95,"context_line":"    res.append(res_info)"},{"line_number":96,"context_line":"    return res"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"def _xform_get_default_quota(d):"},{"line_number":100,"context_line":"    res \u003d []"},{"line_number":101,"context_line":"    res_info \u003d {}"},{"line_number":102,"context_line":"    res_info[\u0027floatingip\u0027] \u003d getattr(d, \u0027floatingip\u0027, \u0027\u0027)"},{"line_number":103,"context_line":"    res_info[\u0027id\u0027] \u003d getattr(d, \u0027project\u0027, \u0027\u0027)"},{"line_number":104,"context_line":"    res_info[\u0027network\u0027] \u003d getattr(d, \u0027network\u0027, \u0027\u0027)"},{"line_number":105,"context_line":"    res_info[\u0027port\u0027] \u003d getattr(d, \u0027port\u0027, \u0027\u0027)"},{"line_number":106,"context_line":"    res_info[\u0027rbac_policy\u0027] \u003d getattr(d, \u0027rbac_policy\u0027, \u0027\u0027)"},{"line_number":107,"context_line":"    res_info[\u0027router\u0027] \u003d getattr(d, \u0027router\u0027, \u0027\u0027)"},{"line_number":108,"context_line":"    res_info[\u0027security_group\u0027] \u003d getattr(d, \u0027security_group\u0027, \u0027\u0027)"},{"line_number":109,"context_line":"    res_info[\u0027security_group_rule\u0027] \u003d getattr(d, \u0027security_group_rule\u0027, \u0027\u0027)"},{"line_number":110,"context_line":"    res_info[\u0027subnet\u0027] \u003d getattr(d, \u0027subnet\u0027, \u0027\u0027)"},{"line_number":111,"context_line":"    res_info[\u0027subnetpool\u0027] \u003d getattr(d, \u0027subnetpool\u0027, \u0027\u0027)"},{"line_number":112,"context_line":"    res.append(res_info)"},{"line_number":113,"context_line":"    return res"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"class ListQuota(command.Lister):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_04a98cdf","line":113,"range":{"start_line":82,"start_character":0,"end_line":113,"end_character":14},"updated":"2016-10-12 13:20:05.000000000","message":"These two methods looks very similar (difference in \u0027id\u0027 key, yes). Maybe we can leave only one method, but make it more generic? For example, pass the name of attr for \u0027id\u0027 as a parameter.","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9e1a1cd14433b88994860c174cff5c7ec82abdab","unresolved":false,"context_lines":[{"line_number":79,"context_line":"}"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"def _xform_get_quota(d):"},{"line_number":83,"context_line":"    res \u003d []"},{"line_number":84,"context_line":"    res_info \u003d {}"},{"line_number":85,"context_line":"    res_info[\u0027floatingip\u0027] \u003d getattr(d, \u0027floatingip\u0027, \u0027\u0027)"},{"line_number":86,"context_line":"    res_info[\u0027id\u0027] \u003d getattr(d, \u0027id\u0027, \u0027\u0027)"},{"line_number":87,"context_line":"    res_info[\u0027network\u0027] \u003d getattr(d, \u0027network\u0027, \u0027\u0027)"},{"line_number":88,"context_line":"    res_info[\u0027port\u0027] \u003d getattr(d, \u0027port\u0027, \u0027\u0027)"},{"line_number":89,"context_line":"    res_info[\u0027rbac_policy\u0027] \u003d getattr(d, \u0027rbac_policy\u0027, \u0027\u0027)"},{"line_number":90,"context_line":"    res_info[\u0027router\u0027] \u003d getattr(d, \u0027router\u0027, \u0027\u0027)"},{"line_number":91,"context_line":"    res_info[\u0027security_group\u0027] \u003d getattr(d, \u0027security_group\u0027, \u0027\u0027)"},{"line_number":92,"context_line":"    res_info[\u0027security_group_rule\u0027] \u003d getattr(d, \u0027security_group_rule\u0027, \u0027\u0027)"},{"line_number":93,"context_line":"    res_info[\u0027subnet\u0027] \u003d getattr(d, \u0027subnet\u0027, \u0027\u0027)"},{"line_number":94,"context_line":"    res_info[\u0027subnetpool\u0027] \u003d getattr(d, \u0027subnetpool\u0027, \u0027\u0027)"},{"line_number":95,"context_line":"    res.append(res_info)"},{"line_number":96,"context_line":"    return res"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"def _xform_get_default_quota(d):"},{"line_number":100,"context_line":"    res \u003d []"},{"line_number":101,"context_line":"    res_info \u003d {}"},{"line_number":102,"context_line":"    res_info[\u0027floatingip\u0027] \u003d getattr(d, \u0027floatingip\u0027, \u0027\u0027)"},{"line_number":103,"context_line":"    res_info[\u0027id\u0027] \u003d getattr(d, \u0027project\u0027, \u0027\u0027)"},{"line_number":104,"context_line":"    res_info[\u0027network\u0027] \u003d getattr(d, \u0027network\u0027, \u0027\u0027)"},{"line_number":105,"context_line":"    res_info[\u0027port\u0027] \u003d getattr(d, \u0027port\u0027, \u0027\u0027)"},{"line_number":106,"context_line":"    res_info[\u0027rbac_policy\u0027] \u003d getattr(d, \u0027rbac_policy\u0027, \u0027\u0027)"},{"line_number":107,"context_line":"    res_info[\u0027router\u0027] \u003d getattr(d, \u0027router\u0027, \u0027\u0027)"},{"line_number":108,"context_line":"    res_info[\u0027security_group\u0027] \u003d getattr(d, \u0027security_group\u0027, \u0027\u0027)"},{"line_number":109,"context_line":"    res_info[\u0027security_group_rule\u0027] \u003d getattr(d, \u0027security_group_rule\u0027, \u0027\u0027)"},{"line_number":110,"context_line":"    res_info[\u0027subnet\u0027] \u003d getattr(d, \u0027subnet\u0027, \u0027\u0027)"},{"line_number":111,"context_line":"    res_info[\u0027subnetpool\u0027] \u003d getattr(d, \u0027subnetpool\u0027, \u0027\u0027)"},{"line_number":112,"context_line":"    res.append(res_info)"},{"line_number":113,"context_line":"    return res"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"class ListQuota(command.Lister):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_3a032411","line":113,"range":{"start_line":82,"start_character":0,"end_line":113,"end_character":14},"in_reply_to":"fa6399be_04a98cdf","updated":"2016-10-18 18:32:13.000000000","message":"Done","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"44fbff0676faf75b98748d38a2d828cd1d901b20","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            \u0027Subnet\u0027,"},{"line_number":164,"context_line":"            \u0027SubnetPool\u0027"},{"line_number":165,"context_line":"        )"},{"line_number":166,"context_line":"        if result:"},{"line_number":167,"context_line":"            return (column_headers,"},{"line_number":168,"context_line":"                    (utils.get_dict_properties("},{"line_number":169,"context_line":"                        s, columns,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_0381d44a","line":166,"updated":"2016-10-10 20:11:37.000000000","message":"if result is not None:","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"},{"author":{"_account_id":14615,"name":"Sergey Belous","email":"belous.py@gmail.com","username":"sbelous"},"change_message_id":"f9330f23712b99c7b3b320490d9bbb7753c3121c","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            \u0027Subnet\u0027,"},{"line_number":164,"context_line":"            \u0027SubnetPool\u0027"},{"line_number":165,"context_line":"        )"},{"line_number":166,"context_line":"        if result:"},{"line_number":167,"context_line":"            return (column_headers,"},{"line_number":168,"context_line":"                    (utils.get_dict_properties("},{"line_number":169,"context_line":"                        s, columns,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_4e364853","line":166,"in_reply_to":"fa6399be_0381d44a","updated":"2016-10-12 13:20:05.000000000","message":"No. Just remove this if-statement. take_action should return a tuple. Even empty tuple (if there is no result) because ListQuota inherits from command.Lister (see http://docs.openstack.org/developer/cliff/list_commands.html#lister)","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9e1a1cd14433b88994860c174cff5c7ec82abdab","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            \u0027Subnet\u0027,"},{"line_number":164,"context_line":"            \u0027SubnetPool\u0027"},{"line_number":165,"context_line":"        )"},{"line_number":166,"context_line":"        if result:"},{"line_number":167,"context_line":"            return (column_headers,"},{"line_number":168,"context_line":"                    (utils.get_dict_properties("},{"line_number":169,"context_line":"                        s, columns,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_7503ed0d","line":166,"in_reply_to":"fa6399be_4e364853","updated":"2016-10-18 18:32:13.000000000","message":"Done","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"3c45dddbc6351831f0f1161e406be68c88d92b6c","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            \u0027subnetpool\u0027,"},{"line_number":136,"context_line":"        )"},{"line_number":137,"context_line":"        column_headers \u003d ("},{"line_number":138,"context_line":"            \u0027Floatingip\u0027,"},{"line_number":139,"context_line":"            \u0027Id\u0027,"},{"line_number":140,"context_line":"            \u0027Network\u0027,"},{"line_number":141,"context_line":"            \u0027Port\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_8c4b102b","line":138,"updated":"2016-10-19 02:27:00.000000000","message":"Floating IP\nID\n\nRBAC Policy\nSecurity Group\nSecurity Group Rule\n\nSubnet Pool","commit_id":"501b08f62c2bafdccd1224c0a6277603357091ee"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"6c857debb6ff0154cf98e7673ccbdffc46a92a0a","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            \u0027subnetpool\u0027,"},{"line_number":136,"context_line":"        )"},{"line_number":137,"context_line":"        column_headers \u003d ("},{"line_number":138,"context_line":"            \u0027Floatingip\u0027,"},{"line_number":139,"context_line":"            \u0027Id\u0027,"},{"line_number":140,"context_line":"            \u0027Network\u0027,"},{"line_number":141,"context_line":"            \u0027Port\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5da102_062e62fa","line":138,"in_reply_to":"fa6399be_8c4b102b","updated":"2016-11-03 14:51:24.000000000","message":"Done","commit_id":"501b08f62c2bafdccd1224c0a6277603357091ee"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"4321e41fe57aee45a3777b8076dcdb7bf0c5a690","unresolved":false,"context_lines":[{"line_number":79,"context_line":"}"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"def _xform_get_quota(d, value):"},{"line_number":83,"context_line":"    res \u003d []"},{"line_number":84,"context_line":"    res_info \u003d {}"},{"line_number":85,"context_line":"    res_info[\u0027floatingip\u0027] \u003d getattr(d, \u0027floatingip\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_8380fb47","line":82,"updated":"2017-01-20 22:03:55.000000000","message":"_xform_get_network_quota()","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"30a82e74742824155c0ad253229df973651804f6","unresolved":false,"context_lines":[{"line_number":79,"context_line":"}"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"def _xform_get_quota(d, value):"},{"line_number":83,"context_line":"    res \u003d []"},{"line_number":84,"context_line":"    res_info \u003d {}"},{"line_number":85,"context_line":"    res_info[\u0027floatingip\u0027] \u003d getattr(d, \u0027floatingip\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a461143_784b265a","line":82,"in_reply_to":"5a3905b3_8380fb47","updated":"2017-01-25 17:53:47.000000000","message":"Done","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"4321e41fe57aee45a3777b8076dcdb7bf0c5a690","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":152,"context_line":"            default\u003dFalse,"},{"line_number":153,"context_line":"            help\u003d_(\u0027List volume quota\u0027),"},{"line_number":154,"context_line":"        )"},{"line_number":155,"context_line":"        return parser"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_63f4eff1","line":154,"updated":"2017-01-20 22:03:55.000000000","message":"There needs to be a --network option in a required exclusive group so exactly one of the three is used","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"30a82e74742824155c0ad253229df973651804f6","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":152,"context_line":"            default\u003dFalse,"},{"line_number":153,"context_line":"            help\u003d_(\u0027List volume quota\u0027),"},{"line_number":154,"context_line":"        )"},{"line_number":155,"context_line":"        return parser"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a461143_d8789a92","line":154,"in_reply_to":"5a3905b3_63f4eff1","updated":"2017-01-25 17:53:47.000000000","message":"Done","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"4321e41fe57aee45a3777b8076dcdb7bf0c5a690","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                \u0027server_groups\u0027"},{"line_number":191,"context_line":"                \u0027server_group_members\u0027,"},{"line_number":192,"context_line":"            )"},{"line_number":193,"context_line":"            column_headers \u003d ("},{"line_number":194,"context_line":"                \u0027CORES\u0027,"},{"line_number":195,"context_line":"                \u0027FIXED_IPS\u0027,"},{"line_number":196,"context_line":"                \u0027INJECTED_FILES\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_83ce3bb2","line":193,"updated":"2017-01-20 22:03:55.000000000","message":"Not ALL CAPS please","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"30a82e74742824155c0ad253229df973651804f6","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                \u0027server_groups\u0027"},{"line_number":191,"context_line":"                \u0027server_group_members\u0027,"},{"line_number":192,"context_line":"            )"},{"line_number":193,"context_line":"            column_headers \u003d ("},{"line_number":194,"context_line":"                \u0027CORES\u0027,"},{"line_number":195,"context_line":"                \u0027FIXED_IPS\u0027,"},{"line_number":196,"context_line":"                \u0027INJECTED_FILES\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a461143_f86d56cd","line":193,"in_reply_to":"5a3905b3_83ce3bb2","updated":"2017-01-25 17:53:47.000000000","message":"Done","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"4321e41fe57aee45a3777b8076dcdb7bf0c5a690","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                else:"},{"line_number":223,"context_line":"                    result +\u003d result_data"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"            columns \u003d ("},{"line_number":226,"context_line":"                \u0027backups\u0027,"},{"line_number":227,"context_line":"                \u0027backup_gigabytes\u0027,"},{"line_number":228,"context_line":"                \u0027gigabytes\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_e36d3f99","line":225,"updated":"2017-01-20 22:03:55.000000000","message":"It looks like volume type columns are present below (_lvmdriver-1),  multiple volume types must be handled if any are shown","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"539326d083dc6a019aaf71044f42ea660705c095","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                else:"},{"line_number":223,"context_line":"                    result +\u003d result_data"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"            columns \u003d ("},{"line_number":226,"context_line":"                \u0027backups\u0027,"},{"line_number":227,"context_line":"                \u0027backup_gigabytes\u0027,"},{"line_number":228,"context_line":"                \u0027gigabytes\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a461143_1e6e8bc9","line":225,"in_reply_to":"3a461143_d8097adf","updated":"2017-01-25 18:09:47.000000000","message":"You have hard-coded volume type columns (gigabytes_lvmdriver-1) in the list.  How do you handle other volume types?","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"30a82e74742824155c0ad253229df973651804f6","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                else:"},{"line_number":223,"context_line":"                    result +\u003d result_data"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"            columns \u003d ("},{"line_number":226,"context_line":"                \u0027backups\u0027,"},{"line_number":227,"context_line":"                \u0027backup_gigabytes\u0027,"},{"line_number":228,"context_line":"                \u0027gigabytes\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a461143_d8097adf","line":225,"in_reply_to":"5a3905b3_e36d3f99","updated":"2017-01-25 17:53:47.000000000","message":"could you explain this comment in detail please. thank you.","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"4321e41fe57aee45a3777b8076dcdb7bf0c5a690","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                \u0027volumes\u0027,"},{"line_number":234,"context_line":"                \u0027volumes_lvmdriver-1\u0027,"},{"line_number":235,"context_line":"            )"},{"line_number":236,"context_line":"            column_headers \u003d ("},{"line_number":237,"context_line":"                \u0027BACKUPS\u0027,"},{"line_number":238,"context_line":"                \u0027BACKUP_GIGABYTES\u0027,"},{"line_number":239,"context_line":"                \u0027GIGABYTES\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_a3c5f78e","line":236,"updated":"2017-01-20 22:03:55.000000000","message":"Not ALL CAPS please","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"30a82e74742824155c0ad253229df973651804f6","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                \u0027volumes\u0027,"},{"line_number":234,"context_line":"                \u0027volumes_lvmdriver-1\u0027,"},{"line_number":235,"context_line":"            )"},{"line_number":236,"context_line":"            column_headers \u003d ("},{"line_number":237,"context_line":"                \u0027BACKUPS\u0027,"},{"line_number":238,"context_line":"                \u0027BACKUP_GIGABYTES\u0027,"},{"line_number":239,"context_line":"                \u0027GIGABYTES\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a461143_58658adf","line":236,"in_reply_to":"5a3905b3_a3c5f78e","updated":"2017-01-25 17:53:47.000000000","message":"Done","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"4321e41fe57aee45a3777b8076dcdb7bf0c5a690","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                    (utils.get_dict_properties("},{"line_number":249,"context_line":"                        s, columns,"},{"line_number":250,"context_line":"                    ) for s in result))"},{"line_number":251,"context_line":"        else:"},{"line_number":252,"context_line":"            for ids in proj_ids:"},{"line_number":253,"context_line":"                data \u003d client.get_quota(ids)"},{"line_number":254,"context_line":"                result_data \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_23d10758","line":251,"updated":"2017-01-20 22:03:55.000000000","message":"Select on network to make it explicit, don\u0027t just fall through.  argparse should enforce there being no valid \u0027else\u0027 case","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"539326d083dc6a019aaf71044f42ea660705c095","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                    (utils.get_dict_properties("},{"line_number":249,"context_line":"                        s, columns,"},{"line_number":250,"context_line":"                    ) for s in result))"},{"line_number":251,"context_line":"        else:"},{"line_number":252,"context_line":"            for ids in proj_ids:"},{"line_number":253,"context_line":"                data \u003d client.get_quota(ids)"},{"line_number":254,"context_line":"                result_data \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a461143_fe9fffb1","line":251,"in_reply_to":"3a461143_18aa22d5","updated":"2017-01-25 18:09:47.000000000","message":"If the three (so far) options are in a required exclusive group the else should be an error state that only gets hit if argparse fails in some way.","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"30a82e74742824155c0ad253229df973651804f6","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                    (utils.get_dict_properties("},{"line_number":249,"context_line":"                        s, columns,"},{"line_number":250,"context_line":"                    ) for s in result))"},{"line_number":251,"context_line":"        else:"},{"line_number":252,"context_line":"            for ids in proj_ids:"},{"line_number":253,"context_line":"                data \u003d client.get_quota(ids)"},{"line_number":254,"context_line":"                result_data \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a461143_18aa22d5","line":251,"in_reply_to":"5a3905b3_23d10758","updated":"2017-01-25 17:53:47.000000000","message":"Done. How to handle when none of the option are given? Do we handle in the fall through else?","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"4321e41fe57aee45a3777b8076dcdb7bf0c5a690","unresolved":false,"context_lines":[{"line_number":275,"context_line":"            )"},{"line_number":276,"context_line":"            column_headers \u003d ("},{"line_number":277,"context_line":"                \u0027Floating IP\u0027,"},{"line_number":278,"context_line":"                \u0027ID\u0027,"},{"line_number":279,"context_line":"                \u0027Network\u0027,"},{"line_number":280,"context_line":"                \u0027Port\u0027,"},{"line_number":281,"context_line":"                \u0027RBAC Policy\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_232d8746","line":278,"updated":"2017-01-20 22:03:55.000000000","message":"What ID is this?  If it is the key for the returned results it should be the first column\n\nI do not see an ID column in either of the other quota groups...","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"30a82e74742824155c0ad253229df973651804f6","unresolved":false,"context_lines":[{"line_number":275,"context_line":"            )"},{"line_number":276,"context_line":"            column_headers \u003d ("},{"line_number":277,"context_line":"                \u0027Floating IP\u0027,"},{"line_number":278,"context_line":"                \u0027ID\u0027,"},{"line_number":279,"context_line":"                \u0027Network\u0027,"},{"line_number":280,"context_line":"                \u0027Port\u0027,"},{"line_number":281,"context_line":"                \u0027RBAC Policy\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a461143_58acaaed","line":278,"in_reply_to":"5a3905b3_232d8746","updated":"2017-01-25 17:53:47.000000000","message":"Done","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"cbff419b88aadad94c6a92bd1f9c5ce72ac9a8e3","unresolved":false,"context_lines":[{"line_number":297,"context_line":"                    (utils.get_dict_properties("},{"line_number":298,"context_line":"                        s, columns,"},{"line_number":299,"context_line":"                    ) for s in result))"},{"line_number":300,"context_line":"        else:"},{"line_number":301,"context_line":"            data \u003d ()"},{"line_number":302,"context_line":"            column_headers \u003d ()"},{"line_number":303,"context_line":"            return (column_headers, data)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a461143_5edd736f","line":300,"updated":"2017-01-25 18:12:25.000000000","message":"Make this an error condition.  I don\u0027t recall if the exclusive group can be made required in argparse, but either way we should catch the fall-through as an error.","commit_id":"3de693f01265a82d0273b42366c8014cf6ca8317"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"3f1353d69e1ff075a1d1d145a2d5eeff50b379f7","unresolved":false,"context_lines":[{"line_number":297,"context_line":"                    (utils.get_dict_properties("},{"line_number":298,"context_line":"                        s, columns,"},{"line_number":299,"context_line":"                    ) for s in result))"},{"line_number":300,"context_line":"        else:"},{"line_number":301,"context_line":"            data \u003d ()"},{"line_number":302,"context_line":"            column_headers \u003d ()"},{"line_number":303,"context_line":"            return (column_headers, data)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a461143_1409ff95","line":300,"in_reply_to":"3a461143_5edd736f","updated":"2017-01-25 22:57:06.000000000","message":"Added a warning message which gets displayed when none of the options are chosen but it also says:  \u0027NoneType\u0027 object is not iterable","commit_id":"3de693f01265a82d0273b42366c8014cf6ca8317"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"2a5568629cbca8f2960883039f98b7d30f3d88e0","unresolved":false,"context_lines":[{"line_number":84,"context_line":"}"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"def _xform_get_network_quota(d, value):"},{"line_number":88,"context_line":"    res \u003d []"},{"line_number":89,"context_line":"    res_info \u003d {}"},{"line_number":90,"context_line":"    res_info[\u0027floatingip\u0027] \u003d getattr(d, \u0027floatingip\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa31d9ce_6f7a9abe","line":87,"updated":"2017-02-15 22:14:59.000000000","message":"I\u0027m not sure I understand why these are hard-coded like this, can you not use the keys from the XXX_QUOTAS dicts above?","commit_id":"47d6656ed2da635de429b58065aa698c3b8abf16"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"44356319d0bc5654fce878c7ccb9e74e335ba4a7","unresolved":false,"context_lines":[{"line_number":84,"context_line":"}"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"def _xform_get_network_quota(d, value):"},{"line_number":88,"context_line":"    res \u003d []"},{"line_number":89,"context_line":"    res_info \u003d {}"},{"line_number":90,"context_line":"    res_info[\u0027floatingip\u0027] \u003d getattr(d, \u0027floatingip\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa31d9ce_129ea206","line":87,"in_reply_to":"fa31d9ce_6f7a9abe","updated":"2017-02-16 00:27:28.000000000","message":"Done","commit_id":"47d6656ed2da635de429b58065aa698c3b8abf16"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"2a5568629cbca8f2960883039f98b7d30f3d88e0","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"class ListQuota(command.Lister):"},{"line_number":139,"context_line":"    \"\"\"Lists quotas for project or class\"\"\""},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def get_parser(self, prog_name):"},{"line_number":142,"context_line":"        parser \u003d super(ListQuota, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa31d9ce_0f9bde18","line":139,"updated":"2017-02-15 22:14:59.000000000","message":"This needs to be in the translatable _description - _(\"\") form","commit_id":"47d6656ed2da635de429b58065aa698c3b8abf16"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"44356319d0bc5654fce878c7ccb9e74e335ba4a7","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"class ListQuota(command.Lister):"},{"line_number":139,"context_line":"    \"\"\"Lists quotas for project or class\"\"\""},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def get_parser(self, prog_name):"},{"line_number":142,"context_line":"        parser \u003d super(ListQuota, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa31d9ce_b2f6b65a","line":139,"in_reply_to":"fa31d9ce_0f9bde18","updated":"2017-02-16 00:27:28.000000000","message":"Done","commit_id":"47d6656ed2da635de429b58065aa698c3b8abf16"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"2a5568629cbca8f2960883039f98b7d30f3d88e0","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        if parsed_args.compute:"},{"line_number":172,"context_line":"            compute_client \u003d self.app.client_manager.compute"},{"line_number":173,"context_line":"            for ids in proj_ids:"},{"line_number":174,"context_line":"                data \u003d compute_client.quotas.get(ids)"},{"line_number":175,"context_line":"                result_data \u003d []"},{"line_number":176,"context_line":"                result_data \u003d _xform_get_compute_quota(data, \u0027id\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa31d9ce_2af25006","line":173,"updated":"2017-02-15 22:14:59.000000000","message":"Making your iterator variable plural is confusing, inside the loop it has exactly one value","commit_id":"47d6656ed2da635de429b58065aa698c3b8abf16"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"44356319d0bc5654fce878c7ccb9e74e335ba4a7","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        if parsed_args.compute:"},{"line_number":172,"context_line":"            compute_client \u003d self.app.client_manager.compute"},{"line_number":173,"context_line":"            for ids in proj_ids:"},{"line_number":174,"context_line":"                data \u003d compute_client.quotas.get(ids)"},{"line_number":175,"context_line":"                result_data \u003d []"},{"line_number":176,"context_line":"                result_data \u003d _xform_get_compute_quota(data, \u0027id\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa31d9ce_528c9ad9","line":173,"in_reply_to":"fa31d9ce_2af25006","updated":"2017-02-16 00:27:28.000000000","message":"Done","commit_id":"47d6656ed2da635de429b58065aa698c3b8abf16"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"2a5568629cbca8f2960883039f98b7d30f3d88e0","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            for ids in proj_ids:"},{"line_number":174,"context_line":"                data \u003d compute_client.quotas.get(ids)"},{"line_number":175,"context_line":"                result_data \u003d []"},{"line_number":176,"context_line":"                result_data \u003d _xform_get_compute_quota(data, \u0027id\u0027)"},{"line_number":177,"context_line":"                default_data \u003d compute_client.quotas.defaults(ids)"},{"line_number":178,"context_line":"                result_default \u003d []"},{"line_number":179,"context_line":"                result_default \u003d _xform_get_compute_quota(default_data,"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa31d9ce_2ac970ac","line":176,"updated":"2017-02-15 22:14:59.000000000","message":"Does this not return an empty list for an empty input?  Why do you need the initialization of result_data in line 175?","commit_id":"47d6656ed2da635de429b58065aa698c3b8abf16"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"44356319d0bc5654fce878c7ccb9e74e335ba4a7","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            for ids in proj_ids:"},{"line_number":174,"context_line":"                data \u003d compute_client.quotas.get(ids)"},{"line_number":175,"context_line":"                result_data \u003d []"},{"line_number":176,"context_line":"                result_data \u003d _xform_get_compute_quota(data, \u0027id\u0027)"},{"line_number":177,"context_line":"                default_data \u003d compute_client.quotas.defaults(ids)"},{"line_number":178,"context_line":"                result_default \u003d []"},{"line_number":179,"context_line":"                result_default \u003d _xform_get_compute_quota(default_data,"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa31d9ce_72aefe2e","line":176,"in_reply_to":"fa31d9ce_2ac970ac","updated":"2017-02-16 00:27:28.000000000","message":"Done","commit_id":"47d6656ed2da635de429b58065aa698c3b8abf16"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"2a5568629cbca8f2960883039f98b7d30f3d88e0","unresolved":false,"context_lines":[{"line_number":178,"context_line":"                result_default \u003d []"},{"line_number":179,"context_line":"                result_default \u003d _xform_get_compute_quota(default_data,"},{"line_number":180,"context_line":"                                                          \u0027project\u0027)"},{"line_number":181,"context_line":"                if result_data \u003d\u003d result_default:"},{"line_number":182,"context_line":"                    pass"},{"line_number":183,"context_line":"                else:"},{"line_number":184,"context_line":"                    result +\u003d result_data"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa31d9ce_2a409006","line":181,"updated":"2017-02-15 22:14:59.000000000","message":"Invert this comparison and remove the pass","commit_id":"47d6656ed2da635de429b58065aa698c3b8abf16"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"44356319d0bc5654fce878c7ccb9e74e335ba4a7","unresolved":false,"context_lines":[{"line_number":178,"context_line":"                result_default \u003d []"},{"line_number":179,"context_line":"                result_default \u003d _xform_get_compute_quota(default_data,"},{"line_number":180,"context_line":"                                                          \u0027project\u0027)"},{"line_number":181,"context_line":"                if result_data \u003d\u003d result_default:"},{"line_number":182,"context_line":"                    pass"},{"line_number":183,"context_line":"                else:"},{"line_number":184,"context_line":"                    result +\u003d result_data"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa31d9ce_d2beca63","line":181,"in_reply_to":"fa31d9ce_2a409006","updated":"2017-02-16 00:27:28.000000000","message":"Done","commit_id":"47d6656ed2da635de429b58065aa698c3b8abf16"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"2a5568629cbca8f2960883039f98b7d30f3d88e0","unresolved":false,"context_lines":[{"line_number":290,"context_line":"                        s, columns,"},{"line_number":291,"context_line":"                    ) for s in result))"},{"line_number":292,"context_line":"        else:"},{"line_number":293,"context_line":"            message \u003d _(\"Mention one of the options\")"},{"line_number":294,"context_line":"            LOG.warning(message)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa31d9ce_8a117c54","line":293,"updated":"2017-02-15 22:14:59.000000000","message":"Change the error message to be more specific, and list the options","commit_id":"47d6656ed2da635de429b58065aa698c3b8abf16"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"44356319d0bc5654fce878c7ccb9e74e335ba4a7","unresolved":false,"context_lines":[{"line_number":290,"context_line":"                        s, columns,"},{"line_number":291,"context_line":"                    ) for s in result))"},{"line_number":292,"context_line":"        else:"},{"line_number":293,"context_line":"            message \u003d _(\"Mention one of the options\")"},{"line_number":294,"context_line":"            LOG.warning(message)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa31d9ce_922e12a3","line":293,"in_reply_to":"fa31d9ce_8a117c54","updated":"2017-02-16 00:27:28.000000000","message":"Done","commit_id":"47d6656ed2da635de429b58065aa698c3b8abf16"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"2a5568629cbca8f2960883039f98b7d30f3d88e0","unresolved":false,"context_lines":[{"line_number":291,"context_line":"                    ) for s in result))"},{"line_number":292,"context_line":"        else:"},{"line_number":293,"context_line":"            message \u003d _(\"Mention one of the options\")"},{"line_number":294,"context_line":"            LOG.warning(message)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"class SetQuota(command.Command):"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa31d9ce_b405c914","line":294,"updated":"2017-02-15 22:14:59.000000000","message":"You need to return some empty tuples for cliff to be happy:\n\n  return ((), ())\n\nOR\n\njust have a single return at the bottom (better code) and set result and column_headers appropriately here","commit_id":"47d6656ed2da635de429b58065aa698c3b8abf16"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"44356319d0bc5654fce878c7ccb9e74e335ba4a7","unresolved":false,"context_lines":[{"line_number":291,"context_line":"                    ) for s in result))"},{"line_number":292,"context_line":"        else:"},{"line_number":293,"context_line":"            message \u003d _(\"Mention one of the options\")"},{"line_number":294,"context_line":"            LOG.warning(message)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"class SetQuota(command.Command):"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa31d9ce_b229569d","line":294,"in_reply_to":"fa31d9ce_b405c914","updated":"2017-02-16 00:27:28.000000000","message":"Done","commit_id":"47d6656ed2da635de429b58065aa698c3b8abf16"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"4a47a2efdc54909514116831024556110bd80f2e","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    for key in COMPUTE_QUOTAS.keys():"},{"line_number":102,"context_line":"        res_info[key] \u003d getattr(d, key, \u0027\u0027)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    res_info[\u0027id\u0027] \u003d getattr(d, value, \u0027\u0027)"},{"line_number":105,"context_line":"    res.append(res_info)"},{"line_number":106,"context_line":"    return res"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_1e3f7926","line":104,"updated":"2017-02-18 02:06:55.000000000","message":"The ID is not returned by the QuotaSet resource object in compute or volume, and therefore not in the output.","commit_id":"ebfff476b190874655caa6558f6eff91972cccaf"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"ce69a89a64ac5a31d06feecb0887c99d370c5c9d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    for key in COMPUTE_QUOTAS.keys():"},{"line_number":102,"context_line":"        res_info[key] \u003d getattr(d, key, \u0027\u0027)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    res_info[\u0027id\u0027] \u003d getattr(d, value, \u0027\u0027)"},{"line_number":105,"context_line":"    res.append(res_info)"},{"line_number":106,"context_line":"    return res"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_6dc87123","line":104,"in_reply_to":"da36d5c6_1e3f7926","updated":"2017-02-22 01:02:57.000000000","message":"Done","commit_id":"ebfff476b190874655caa6558f6eff91972cccaf"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"4a47a2efdc54909514116831024556110bd80f2e","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                result_data \u003d _xform_get_network_quota(data, \u0027id\u0027)"},{"line_number":234,"context_line":"                default_data \u003d client.get_quota_default(id)"},{"line_number":235,"context_line":"                result_default \u003d _xform_get_network_quota(default_data,"},{"line_number":236,"context_line":"                                                          \u0027project\u0027)"},{"line_number":237,"context_line":"                if result_default !\u003d result_data:"},{"line_number":238,"context_line":"                    result +\u003d result_data"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_3ed8bdef","line":236,"updated":"2017-02-18 02:06:55.000000000","message":"I see no output from network quotas at all.  Are you sure _xform_get_network_quota() works properly with the openstack.network.v2.quota.QuotaDefault class?","commit_id":"ebfff476b190874655caa6558f6eff91972cccaf"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"ce69a89a64ac5a31d06feecb0887c99d370c5c9d","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                result_data \u003d _xform_get_network_quota(data, \u0027id\u0027)"},{"line_number":234,"context_line":"                default_data \u003d client.get_quota_default(id)"},{"line_number":235,"context_line":"                result_default \u003d _xform_get_network_quota(default_data,"},{"line_number":236,"context_line":"                                                          \u0027project\u0027)"},{"line_number":237,"context_line":"                if result_default !\u003d result_data:"},{"line_number":238,"context_line":"                    result +\u003d result_data"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_8dcbe51d","line":236,"in_reply_to":"da36d5c6_3ed8bdef","updated":"2017-02-22 01:02:57.000000000","message":"Fixed it.","commit_id":"ebfff476b190874655caa6558f6eff91972cccaf"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"9364b5d1be374fb7a7b63d54071ed80e0b495734","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                        s, columns,"},{"line_number":269,"context_line":"                    ) for s in result))"},{"line_number":270,"context_line":"        else:"},{"line_number":271,"context_line":"            message \u003d _(\"Mention one of the options: \""},{"line_number":272,"context_line":"                        \"--network, --compute, --volume\")"},{"line_number":273,"context_line":"            LOG.warning(message)"},{"line_number":274,"context_line":"            return ((), ())"}],"source_content_type":"text/x-python","patch_set":14,"id":"da36d5c6_5090a6ec","line":271,"updated":"2017-02-22 01:09:58.000000000","message":"Specify? instead of mention. Mention doesn\u0027t sound right","commit_id":"c323413ceb70cd4cb48e42fbb78bf4cba5d9268e"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d69a0367d4c0fea0b0f45b0d05cb9f5d3b94942","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                        s, columns,"},{"line_number":269,"context_line":"                    ) for s in result))"},{"line_number":270,"context_line":"        else:"},{"line_number":271,"context_line":"            message \u003d _(\"Mention one of the options: \""},{"line_number":272,"context_line":"                        \"--network, --compute, --volume\")"},{"line_number":273,"context_line":"            LOG.warning(message)"},{"line_number":274,"context_line":"            return ((), ())"}],"source_content_type":"text/x-python","patch_set":14,"id":"da36d5c6_73ea1411","line":271,"in_reply_to":"da36d5c6_5090a6ec","updated":"2017-02-22 01:34:32.000000000","message":"Done","commit_id":"c323413ceb70cd4cb48e42fbb78bf4cba5d9268e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"92705afb8d506461350aa99dc5d99d2b88baefb2","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                \u0027subnet_pools\u0027, \u0027subnets\u0027]"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"def _xform_get_network_quota(d, value):"},{"line_number":90,"context_line":"    res \u003d []"},{"line_number":91,"context_line":"    res_info \u003d {}"},{"line_number":92,"context_line":"    for key in NETWORK_KEYS:"},{"line_number":93,"context_line":"        res_info[key] \u003d getattr(d, key, \u0027\u0027)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    res_info[\u0027id\u0027] \u003d value"},{"line_number":96,"context_line":"    res.append(res_info)"},{"line_number":97,"context_line":"    return res"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"def _xform_get_compute_quota(d, value):"},{"line_number":101,"context_line":"    res \u003d []"},{"line_number":102,"context_line":"    res_info \u003d {}"},{"line_number":103,"context_line":"    for key in COMPUTE_QUOTAS.keys():"},{"line_number":104,"context_line":"        res_info[key] \u003d getattr(d, key, \u0027\u0027)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    res_info[\u0027id\u0027] \u003d value"},{"line_number":107,"context_line":"    res.append(res_info)"},{"line_number":108,"context_line":"    return res"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"def _xform_get_volume_quota(d, value):"},{"line_number":112,"context_line":"    res \u003d []"},{"line_number":113,"context_line":"    res_info \u003d {}"},{"line_number":114,"context_line":"    for key in VOLUME_QUOTAS.keys():"},{"line_number":115,"context_line":"        res_info[key] \u003d getattr(d, key, \u0027\u0027)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    res_info[\u0027id\u0027] \u003d value"},{"line_number":118,"context_line":"    res.append(res_info)"},{"line_number":119,"context_line":"    return res"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"class ListQuota(command.Lister):"}],"source_content_type":"text/x-python","patch_set":17,"id":"da36d5c6_2e62d4ad","line":119,"range":{"start_line":89,"start_character":0,"end_line":119,"end_character":14},"updated":"2017-02-22 17:53:08.000000000","message":"make one method?\n\n  def _xform_get_quota(data, value, keys):\n    res \u003d []\n    res_info \u003d {}\n    for key in keys:\n        res_info[key] \u003d getattr(data, key, \u0027\u0027)\n\n    res_info[\u0027id\u0027] \u003d value\n    res.append(res_info)\n    return res\n\nand pass in VOLUME_QUOTAS.keys(), COMPUTE_QUOTA.keys() and NETWORK_KEYS ?","commit_id":"a7a1f7a12512aa32d0a36c45303a8a953d46d689"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"03eb062b169a503ac1a17ca16095fc876d758794","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                \u0027subnet_pools\u0027, \u0027subnets\u0027]"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"def _xform_get_network_quota(d, value):"},{"line_number":90,"context_line":"    res \u003d []"},{"line_number":91,"context_line":"    res_info \u003d {}"},{"line_number":92,"context_line":"    for key in NETWORK_KEYS:"},{"line_number":93,"context_line":"        res_info[key] \u003d getattr(d, key, \u0027\u0027)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    res_info[\u0027id\u0027] \u003d value"},{"line_number":96,"context_line":"    res.append(res_info)"},{"line_number":97,"context_line":"    return res"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"def _xform_get_compute_quota(d, value):"},{"line_number":101,"context_line":"    res \u003d []"},{"line_number":102,"context_line":"    res_info \u003d {}"},{"line_number":103,"context_line":"    for key in COMPUTE_QUOTAS.keys():"},{"line_number":104,"context_line":"        res_info[key] \u003d getattr(d, key, \u0027\u0027)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    res_info[\u0027id\u0027] \u003d value"},{"line_number":107,"context_line":"    res.append(res_info)"},{"line_number":108,"context_line":"    return res"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"def _xform_get_volume_quota(d, value):"},{"line_number":112,"context_line":"    res \u003d []"},{"line_number":113,"context_line":"    res_info \u003d {}"},{"line_number":114,"context_line":"    for key in VOLUME_QUOTAS.keys():"},{"line_number":115,"context_line":"        res_info[key] \u003d getattr(d, key, \u0027\u0027)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    res_info[\u0027id\u0027] \u003d value"},{"line_number":118,"context_line":"    res.append(res_info)"},{"line_number":119,"context_line":"    return res"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"class ListQuota(command.Lister):"}],"source_content_type":"text/x-python","patch_set":17,"id":"da36d5c6_d94743ba","line":119,"range":{"start_line":89,"start_character":0,"end_line":119,"end_character":14},"in_reply_to":"da36d5c6_19063b86","updated":"2017-02-22 18:57:19.000000000","message":"Looks more cleaner.","commit_id":"a7a1f7a12512aa32d0a36c45303a8a953d46d689"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"c35f404380555e0b507fe7ddc7184d2fe7ab4822","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                \u0027subnet_pools\u0027, \u0027subnets\u0027]"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"def _xform_get_network_quota(d, value):"},{"line_number":90,"context_line":"    res \u003d []"},{"line_number":91,"context_line":"    res_info \u003d {}"},{"line_number":92,"context_line":"    for key in NETWORK_KEYS:"},{"line_number":93,"context_line":"        res_info[key] \u003d getattr(d, key, \u0027\u0027)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    res_info[\u0027id\u0027] \u003d value"},{"line_number":96,"context_line":"    res.append(res_info)"},{"line_number":97,"context_line":"    return res"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"def _xform_get_compute_quota(d, value):"},{"line_number":101,"context_line":"    res \u003d []"},{"line_number":102,"context_line":"    res_info \u003d {}"},{"line_number":103,"context_line":"    for key in COMPUTE_QUOTAS.keys():"},{"line_number":104,"context_line":"        res_info[key] \u003d getattr(d, key, \u0027\u0027)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    res_info[\u0027id\u0027] \u003d value"},{"line_number":107,"context_line":"    res.append(res_info)"},{"line_number":108,"context_line":"    return res"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"def _xform_get_volume_quota(d, value):"},{"line_number":112,"context_line":"    res \u003d []"},{"line_number":113,"context_line":"    res_info \u003d {}"},{"line_number":114,"context_line":"    for key in VOLUME_QUOTAS.keys():"},{"line_number":115,"context_line":"        res_info[key] \u003d getattr(d, key, \u0027\u0027)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    res_info[\u0027id\u0027] \u003d value"},{"line_number":118,"context_line":"    res.append(res_info)"},{"line_number":119,"context_line":"    return res"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"class ListQuota(command.Lister):"}],"source_content_type":"text/x-python","patch_set":17,"id":"da36d5c6_19063b86","line":119,"range":{"start_line":89,"start_character":0,"end_line":119,"end_character":14},"in_reply_to":"da36d5c6_2e62d4ad","updated":"2017-02-22 18:56:26.000000000","message":"Done","commit_id":"a7a1f7a12512aa32d0a36c45303a8a953d46d689"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"92705afb8d506461350aa99dc5d99d2b88baefb2","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            compute_client \u003d self.app.client_manager.compute"},{"line_number":157,"context_line":"            for pro_id in proj_ids:"},{"line_number":158,"context_line":"                data \u003d compute_client.quotas.get(pro_id)"},{"line_number":159,"context_line":"                result_data \u003d _xform_get_compute_quota(data, pro_id)"},{"line_number":160,"context_line":"                default_data \u003d compute_client.quotas.defaults(pro_id)"},{"line_number":161,"context_line":"                result_default \u003d _xform_get_compute_quota(default_data,"},{"line_number":162,"context_line":"                                                          pro_id)"}],"source_content_type":"text/x-python","patch_set":17,"id":"da36d5c6_0e2d1046","line":159,"range":{"start_line":159,"start_character":30,"end_line":159,"end_character":68},"updated":"2017-02-22 17:53:08.000000000","message":"pass in the keys?","commit_id":"a7a1f7a12512aa32d0a36c45303a8a953d46d689"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"c35f404380555e0b507fe7ddc7184d2fe7ab4822","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            compute_client \u003d self.app.client_manager.compute"},{"line_number":157,"context_line":"            for pro_id in proj_ids:"},{"line_number":158,"context_line":"                data \u003d compute_client.quotas.get(pro_id)"},{"line_number":159,"context_line":"                result_data \u003d _xform_get_compute_quota(data, pro_id)"},{"line_number":160,"context_line":"                default_data \u003d compute_client.quotas.defaults(pro_id)"},{"line_number":161,"context_line":"                result_default \u003d _xform_get_compute_quota(default_data,"},{"line_number":162,"context_line":"                                                          pro_id)"}],"source_content_type":"text/x-python","patch_set":17,"id":"da36d5c6_59fc3372","line":159,"range":{"start_line":159,"start_character":30,"end_line":159,"end_character":68},"in_reply_to":"da36d5c6_0e2d1046","updated":"2017-02-22 18:56:26.000000000","message":"Done","commit_id":"a7a1f7a12512aa32d0a36c45303a8a953d46d689"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"5dda9a82092349e122e1c50c9f6705b0377929f9","unresolved":false,"context_lines":[{"line_number":234,"context_line":"                \u0027subnet_pools\u0027,"},{"line_number":235,"context_line":"            )"},{"line_number":236,"context_line":"            column_headers \u003d ("},{"line_number":237,"context_line":"                \u0027Project_id\u0027,"},{"line_number":238,"context_line":"                \u0027Floating IP\u0027,"},{"line_number":239,"context_line":"                \u0027Network\u0027,"},{"line_number":240,"context_line":"                \u0027Port\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"da36d5c6_6767814d","line":237,"updated":"2017-02-23 01:16:55.000000000","message":"Project ID","commit_id":"e8af4312d774dfcf177de992da4c00d403eac5cc"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"57e8bb72b8d50f32adf007ac4238f1939ed59da2","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                \u0027server_group_members\u0027,"},{"line_number":159,"context_line":"            )"},{"line_number":160,"context_line":"            column_headers \u003d ("},{"line_number":161,"context_line":"                \u0027Project_id\u0027,"},{"line_number":162,"context_line":"                \u0027Cores\u0027,"},{"line_number":163,"context_line":"                \u0027Fixed_ips\u0027,"},{"line_number":164,"context_line":"                \u0027Injected_files\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_bbcd11b9","line":161,"range":{"start_line":161,"start_character":17,"end_line":161,"end_character":27},"updated":"2017-02-23 04:21:01.000000000","message":"Project ID","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9662777a7d476c7c6ff0497ff9b7915c0d50f854","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                \u0027server_group_members\u0027,"},{"line_number":159,"context_line":"            )"},{"line_number":160,"context_line":"            column_headers \u003d ("},{"line_number":161,"context_line":"                \u0027Project_id\u0027,"},{"line_number":162,"context_line":"                \u0027Cores\u0027,"},{"line_number":163,"context_line":"                \u0027Fixed_ips\u0027,"},{"line_number":164,"context_line":"                \u0027Injected_files\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_9610245b","line":161,"range":{"start_line":161,"start_character":17,"end_line":161,"end_character":27},"in_reply_to":"da36d5c6_bbcd11b9","updated":"2017-02-23 05:42:33.000000000","message":"Done","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"57e8bb72b8d50f32adf007ac4238f1939ed59da2","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                \u0027Injected_file_content_bytes\u0027,"},{"line_number":166,"context_line":"                \u0027Injected_file_path_bytes\u0027,"},{"line_number":167,"context_line":"                \u0027Instances\u0027,"},{"line_number":168,"context_line":"                \u0027Key_pairs\u0027,"},{"line_number":169,"context_line":"                \u0027Metadata_items\u0027,"},{"line_number":170,"context_line":"                \u0027Ram\u0027,"},{"line_number":171,"context_line":"                \u0027Server_groups\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_5b6095a5","line":168,"range":{"start_line":168,"start_character":17,"end_line":168,"end_character":26},"updated":"2017-02-23 04:21:01.000000000","message":"[general comment]: get rid of the underscores?","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9662777a7d476c7c6ff0497ff9b7915c0d50f854","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                \u0027Injected_file_content_bytes\u0027,"},{"line_number":166,"context_line":"                \u0027Injected_file_path_bytes\u0027,"},{"line_number":167,"context_line":"                \u0027Instances\u0027,"},{"line_number":168,"context_line":"                \u0027Key_pairs\u0027,"},{"line_number":169,"context_line":"                \u0027Metadata_items\u0027,"},{"line_number":170,"context_line":"                \u0027Ram\u0027,"},{"line_number":171,"context_line":"                \u0027Server_groups\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_b615284a","line":168,"range":{"start_line":168,"start_character":17,"end_line":168,"end_character":26},"in_reply_to":"da36d5c6_5b6095a5","updated":"2017-02-23 05:42:33.000000000","message":"Done","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"c68017b3aa75901a31034137f5cc0b52b878ce89","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                    (utils.get_dict_properties("},{"line_number":176,"context_line":"                        s, columns,"},{"line_number":177,"context_line":"                    ) for s in result))"},{"line_number":178,"context_line":"        elif parsed_args.volume:"},{"line_number":179,"context_line":"            volume_client \u003d self.app.client_manager.volume"},{"line_number":180,"context_line":"            for pro_id in proj_ids:"},{"line_number":181,"context_line":"                data \u003d volume_client.quotas.get(pro_id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_1b029db4","line":178,"range":{"start_line":178,"start_character":8,"end_line":178,"end_character":12},"updated":"2017-02-23 04:27:52.000000000","message":"simply use a \u0027if\u0027 here because you dont need a \u0027elif\u0027 since you return in each of your if statements..","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9662777a7d476c7c6ff0497ff9b7915c0d50f854","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                    (utils.get_dict_properties("},{"line_number":176,"context_line":"                        s, columns,"},{"line_number":177,"context_line":"                    ) for s in result))"},{"line_number":178,"context_line":"        elif parsed_args.volume:"},{"line_number":179,"context_line":"            volume_client \u003d self.app.client_manager.volume"},{"line_number":180,"context_line":"            for pro_id in proj_ids:"},{"line_number":181,"context_line":"                data \u003d volume_client.quotas.get(pro_id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_d60e1c3a","line":178,"range":{"start_line":178,"start_character":8,"end_line":178,"end_character":12},"in_reply_to":"da36d5c6_1b029db4","updated":"2017-02-23 05:42:33.000000000","message":"Done","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"57e8bb72b8d50f32adf007ac4238f1939ed59da2","unresolved":false,"context_lines":[{"line_number":198,"context_line":"                \u0027volumes\u0027,"},{"line_number":199,"context_line":"            )"},{"line_number":200,"context_line":"            column_headers \u003d ("},{"line_number":201,"context_line":"                \u0027Project_id\u0027,"},{"line_number":202,"context_line":"                \u0027Backups\u0027,"},{"line_number":203,"context_line":"                \u0027Backup_gigsbytes\u0027,"},{"line_number":204,"context_line":"                \u0027Gigabytes\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_fbc30987","line":201,"range":{"start_line":201,"start_character":17,"end_line":201,"end_character":27},"updated":"2017-02-23 04:21:01.000000000","message":"Project ID","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9662777a7d476c7c6ff0497ff9b7915c0d50f854","unresolved":false,"context_lines":[{"line_number":198,"context_line":"                \u0027volumes\u0027,"},{"line_number":199,"context_line":"            )"},{"line_number":200,"context_line":"            column_headers \u003d ("},{"line_number":201,"context_line":"                \u0027Project_id\u0027,"},{"line_number":202,"context_line":"                \u0027Backups\u0027,"},{"line_number":203,"context_line":"                \u0027Backup_gigsbytes\u0027,"},{"line_number":204,"context_line":"                \u0027Gigabytes\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_f60b2028","line":201,"range":{"start_line":201,"start_character":17,"end_line":201,"end_character":27},"in_reply_to":"da36d5c6_fbc30987","updated":"2017-02-23 05:42:33.000000000","message":"Done","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"57e8bb72b8d50f32adf007ac4238f1939ed59da2","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            column_headers \u003d ("},{"line_number":201,"context_line":"                \u0027Project_id\u0027,"},{"line_number":202,"context_line":"                \u0027Backups\u0027,"},{"line_number":203,"context_line":"                \u0027Backup_gigsbytes\u0027,"},{"line_number":204,"context_line":"                \u0027Gigabytes\u0027,"},{"line_number":205,"context_line":"                \u0027Per_volume_gigabytes\u0027,"},{"line_number":206,"context_line":"                \u0027Snapshots\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_3bba010b","line":203,"updated":"2017-02-23 04:21:01.000000000","message":"Backup Gigabytes","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9662777a7d476c7c6ff0497ff9b7915c0d50f854","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            column_headers \u003d ("},{"line_number":201,"context_line":"                \u0027Project_id\u0027,"},{"line_number":202,"context_line":"                \u0027Backups\u0027,"},{"line_number":203,"context_line":"                \u0027Backup_gigsbytes\u0027,"},{"line_number":204,"context_line":"                \u0027Gigabytes\u0027,"},{"line_number":205,"context_line":"                \u0027Per_volume_gigabytes\u0027,"},{"line_number":206,"context_line":"                \u0027Snapshots\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_16051413","line":203,"in_reply_to":"da36d5c6_3bba010b","updated":"2017-02-23 05:42:33.000000000","message":"Done","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"c68017b3aa75901a31034137f5cc0b52b878ce89","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                    (utils.get_dict_properties("},{"line_number":211,"context_line":"                        s, columns,"},{"line_number":212,"context_line":"                    ) for s in result))"},{"line_number":213,"context_line":"        elif parsed_args.network:"},{"line_number":214,"context_line":"            client \u003d self.app.client_manager.network"},{"line_number":215,"context_line":"            for pro_id in proj_ids:"},{"line_number":216,"context_line":"                data \u003d client.get_quota(pro_id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_3bff61ab","line":213,"range":{"start_line":213,"start_character":8,"end_line":213,"end_character":12},"updated":"2017-02-23 04:27:52.000000000","message":"simply use a \u0027if\u0027 here because you dont need a \u0027elif\u0027 since you return in each of your if statements..","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9662777a7d476c7c6ff0497ff9b7915c0d50f854","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                    (utils.get_dict_properties("},{"line_number":211,"context_line":"                        s, columns,"},{"line_number":212,"context_line":"                    ) for s in result))"},{"line_number":213,"context_line":"        elif parsed_args.network:"},{"line_number":214,"context_line":"            client \u003d self.app.client_manager.network"},{"line_number":215,"context_line":"            for pro_id in proj_ids:"},{"line_number":216,"context_line":"                data \u003d client.get_quota(pro_id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_3602180c","line":213,"range":{"start_line":213,"start_character":8,"end_line":213,"end_character":12},"in_reply_to":"da36d5c6_3bff61ab","updated":"2017-02-23 05:42:33.000000000","message":"Done","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"c68017b3aa75901a31034137f5cc0b52b878ce89","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                    (utils.get_dict_properties("},{"line_number":250,"context_line":"                        s, columns,"},{"line_number":251,"context_line":"                    ) for s in result))"},{"line_number":252,"context_line":"        else:"},{"line_number":253,"context_line":"            message \u003d _(\"Specify one of the options: \""},{"line_number":254,"context_line":"                        \"--network, --compute, --volume\")"},{"line_number":255,"context_line":"            LOG.warning(message)"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_3b1681f1","line":252,"range":{"start_line":252,"start_character":8,"end_line":252,"end_character":12},"updated":"2017-02-23 04:27:52.000000000","message":"you can get rid of this else block and un-indent the LOG.warning since you will reach here only if none of your \u0027if\u0027 statement returns","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9662777a7d476c7c6ff0497ff9b7915c0d50f854","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                    (utils.get_dict_properties("},{"line_number":250,"context_line":"                        s, columns,"},{"line_number":251,"context_line":"                    ) for s in result))"},{"line_number":252,"context_line":"        else:"},{"line_number":253,"context_line":"            message \u003d _(\"Specify one of the options: \""},{"line_number":254,"context_line":"                        \"--network, --compute, --volume\")"},{"line_number":255,"context_line":"            LOG.warning(message)"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_81061c1b","line":252,"range":{"start_line":252,"start_character":8,"end_line":252,"end_character":12},"in_reply_to":"da36d5c6_3b1681f1","updated":"2017-02-23 05:42:33.000000000","message":"Done","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"df06ce8b5373ae93eb1a3e1a979a961d1a8f3d73","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def get_parser(self, prog_name):"},{"line_number":104,"context_line":"        parser \u003d super(ListQuota, self).get_parser(prog_name)"},{"line_number":105,"context_line":"        option \u003d parser.add_mutually_exclusive_group()"},{"line_number":106,"context_line":"        option.add_argument("},{"line_number":107,"context_line":"            \u0027--compute\u0027,"},{"line_number":108,"context_line":"            action\u003d\u0027store_true\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"da36d5c6_4980c68b","line":105,"range":{"start_line":105,"start_character":17,"end_line":105,"end_character":54},"updated":"2017-02-23 15:56:08.000000000","message":"Looking at L.253-255, one of three options in this group is required.\nadd_mutually_exclusive_group takes required option and I guess this is what you want [1].\n\n  option \u003d parser.add_mutually_exclusive_group(required\u003dTrue)\n\nIf so, L.253-255 will be unnecessary and the logic will be simpler.\n\n[1] https://docs.python.org/2.7/library/argparse.html#mutual-exclusion","commit_id":"065ac4d7e4a1b1b0b29f2ceb967eda948c5ec503"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"641d6aa280a29f27f745e6e6af76e98eed3fd1c0","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def get_parser(self, prog_name):"},{"line_number":104,"context_line":"        parser \u003d super(ListQuota, self).get_parser(prog_name)"},{"line_number":105,"context_line":"        option \u003d parser.add_mutually_exclusive_group()"},{"line_number":106,"context_line":"        option.add_argument("},{"line_number":107,"context_line":"            \u0027--compute\u0027,"},{"line_number":108,"context_line":"            action\u003d\u0027store_true\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"da36d5c6_34dc9972","line":105,"range":{"start_line":105,"start_character":17,"end_line":105,"end_character":54},"in_reply_to":"da36d5c6_4980c68b","updated":"2017-02-24 16:00:19.000000000","message":"Done","commit_id":"065ac4d7e4a1b1b0b29f2ceb967eda948c5ec503"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"df06ce8b5373ae93eb1a3e1a979a961d1a8f3d73","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        projects \u003d self.app.client_manager.identity.projects.list()"},{"line_number":128,"context_line":"        proj_ids \u003d []"},{"line_number":129,"context_line":"        result \u003d []"},{"line_number":130,"context_line":"        for proj in projects:"},{"line_number":131,"context_line":"            proj_ids.append(getattr(proj, \u0027id\u0027, \u0027\u0027))"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        if parsed_args.compute:"},{"line_number":134,"context_line":"            compute_client \u003d self.app.client_manager.compute"}],"source_content_type":"text/x-python","patch_set":21,"id":"da36d5c6_09616e05","line":131,"range":{"start_line":130,"start_character":8,"end_line":131,"end_character":52},"updated":"2017-02-23 15:56:08.000000000","message":"nit: I think the following is straightforward:\n\n  proj_ids \u003d [getattr(proj, \u0027id\u0027, \u0027\u0027) for proj in projects]\n\nIf so, L.128 will be now unnecessary.","commit_id":"065ac4d7e4a1b1b0b29f2ceb967eda948c5ec503"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"641d6aa280a29f27f745e6e6af76e98eed3fd1c0","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        projects \u003d self.app.client_manager.identity.projects.list()"},{"line_number":128,"context_line":"        proj_ids \u003d []"},{"line_number":129,"context_line":"        result \u003d []"},{"line_number":130,"context_line":"        for proj in projects:"},{"line_number":131,"context_line":"            proj_ids.append(getattr(proj, \u0027id\u0027, \u0027\u0027))"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        if parsed_args.compute:"},{"line_number":134,"context_line":"            compute_client \u003d self.app.client_manager.compute"}],"source_content_type":"text/x-python","patch_set":21,"id":"da36d5c6_54e74d3f","line":131,"range":{"start_line":130,"start_character":8,"end_line":131,"end_character":52},"in_reply_to":"da36d5c6_09616e05","updated":"2017-02-24 16:00:19.000000000","message":"Done","commit_id":"065ac4d7e4a1b1b0b29f2ceb967eda948c5ec503"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"86705fc4946c4a82d4f932a0f46004ea5188035c","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    def take_action(self, parsed_args):"},{"line_number":127,"context_line":"        projects \u003d self.app.client_manager.identity.projects.list()"},{"line_number":128,"context_line":"        result \u003d []"},{"line_number":129,"context_line":"        proj_ids \u003d [getattr(proj, \u0027id\u0027, \u0027\u0027) for proj in projects]"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        if parsed_args.compute:"},{"line_number":132,"context_line":"            compute_client \u003d self.app.client_manager.compute"}],"source_content_type":"text/x-python","patch_set":22,"id":"ba2be162_4f892fca","line":129,"updated":"2017-02-28 22:53:50.000000000","message":"Style: I would really prefer to have proj_ids spelled out as project_ids.  The iterator variables are not quite as important as their use is very localized (in this case \u0027p\u0027 would even be acceptable), but it is still preferable to spell things out.  Using both \u0027pro\u0027 and \u0027proj\u0027 to abbreviate project in the same code is particularly confusing.","commit_id":"656e1a88d76fb3af329231f890348e44ce931c94"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"af39903b1c58757ef7ab0a523e11e64aeb35aa71","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    def take_action(self, parsed_args):"},{"line_number":127,"context_line":"        projects \u003d self.app.client_manager.identity.projects.list()"},{"line_number":128,"context_line":"        result \u003d []"},{"line_number":129,"context_line":"        proj_ids \u003d [getattr(proj, \u0027id\u0027, \u0027\u0027) for proj in projects]"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        if parsed_args.compute:"},{"line_number":132,"context_line":"            compute_client \u003d self.app.client_manager.compute"}],"source_content_type":"text/x-python","patch_set":22,"id":"ba2be162_3e6a01ef","line":129,"in_reply_to":"ba2be162_4f892fca","updated":"2017-03-02 17:01:28.000000000","message":"Done","commit_id":"656e1a88d76fb3af329231f890348e44ce931c94"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"29a3d7b4f3ba2bef104fafede9b9b503d981ec15","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                    (utils.get_dict_properties("},{"line_number":174,"context_line":"                        s, columns,"},{"line_number":175,"context_line":"                    ) for s in result))"},{"line_number":176,"context_line":"        if parsed_args.volume:"},{"line_number":177,"context_line":"            volume_client \u003d self.app.client_manager.volume"},{"line_number":178,"context_line":"            for p in project_ids:"},{"line_number":179,"context_line":"                data \u003d volume_client.quotas.get(p)"}],"source_content_type":"text/x-python","patch_set":24,"id":"ba2be162_c1fe2fad","line":176,"updated":"2017-03-03 17:58:12.000000000","message":"if you can only choose one of --volume, --compute, --network... Which according to .rst is the case.\n\nThese should be turned into elifs","commit_id":"45fce8d0f7feadf4a30c412dc7609a329d1ee428"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"a0b471893eb29955607a7a08bc3b99fb3532ab7b","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                    (utils.get_dict_properties("},{"line_number":174,"context_line":"                        s, columns,"},{"line_number":175,"context_line":"                    ) for s in result))"},{"line_number":176,"context_line":"        if parsed_args.volume:"},{"line_number":177,"context_line":"            volume_client \u003d self.app.client_manager.volume"},{"line_number":178,"context_line":"            for p in project_ids:"},{"line_number":179,"context_line":"                data \u003d volume_client.quotas.get(p)"}],"source_content_type":"text/x-python","patch_set":24,"id":"ba2be162_271f1109","line":176,"in_reply_to":"ba2be162_c1fe2fad","updated":"2017-03-03 21:42:43.000000000","message":"I was asked to remove elif and use only if in the previous reviews.","commit_id":"45fce8d0f7feadf4a30c412dc7609a329d1ee428"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"bb08ecdfb510f18ae9ddd61b487ecb58e1e5018c","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"class ListQuota(command.Lister):"},{"line_number":101,"context_line":"    _description \u003d _(\"Lists quotas for project or class\")"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def get_parser(self, prog_name):"},{"line_number":104,"context_line":"        parser \u003d super(ListQuota, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_10e8f8e1","line":101,"range":{"start_line":101,"start_character":22,"end_line":101,"end_character":55},"updated":"2017-03-08 12:31:51.000000000","message":"should be:\n\n    List quotas for all projects with non-default quota values","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"class ListQuota(command.Lister):"},{"line_number":101,"context_line":"    _description \u003d _(\"Lists quotas for project or class\")"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def get_parser(self, prog_name):"},{"line_number":104,"context_line":"        parser \u003d super(ListQuota, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_fd0bd4d3","line":101,"range":{"start_line":101,"start_character":22,"end_line":101,"end_character":55},"in_reply_to":"9a30ddce_10e8f8e1","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"b9bb739f7441f3c010e63912e9578c9dd62f3321","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            column_headers \u003d ("},{"line_number":159,"context_line":"                \u0027Project ID\u0027,"},{"line_number":160,"context_line":"                \u0027Cores\u0027,"},{"line_number":161,"context_line":"                \u0027Fixed IP\u0027,"},{"line_number":162,"context_line":"                \u0027Injected Files\u0027,"},{"line_number":163,"context_line":"                \u0027Injected File Content Bytes\u0027,"},{"line_number":164,"context_line":"                \u0027Injected File Path Bytes\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_fecb5270","line":161,"updated":"2017-03-07 20:45:47.000000000","message":"Plural, Fixed IPs","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            column_headers \u003d ("},{"line_number":159,"context_line":"                \u0027Project ID\u0027,"},{"line_number":160,"context_line":"                \u0027Cores\u0027,"},{"line_number":161,"context_line":"                \u0027Fixed IP\u0027,"},{"line_number":162,"context_line":"                \u0027Injected Files\u0027,"},{"line_number":163,"context_line":"                \u0027Injected File Content Bytes\u0027,"},{"line_number":164,"context_line":"                \u0027Injected File Path Bytes\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_bdb95c17","line":161,"in_reply_to":"9a30ddce_fecb5270","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"b9bb739f7441f3c010e63912e9578c9dd62f3321","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            )"},{"line_number":234,"context_line":"            column_headers \u003d ("},{"line_number":235,"context_line":"                \u0027Project ID\u0027,"},{"line_number":236,"context_line":"                \u0027Floating IP\u0027,"},{"line_number":237,"context_line":"                \u0027Network\u0027,"},{"line_number":238,"context_line":"                \u0027Port\u0027,"},{"line_number":239,"context_line":"                \u0027RBAC Policy\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_beb0faf5","line":236,"updated":"2017-03-07 20:45:47.000000000","message":"Plural Floating IPs","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            )"},{"line_number":234,"context_line":"            column_headers \u003d ("},{"line_number":235,"context_line":"                \u0027Project ID\u0027,"},{"line_number":236,"context_line":"                \u0027Floating IP\u0027,"},{"line_number":237,"context_line":"                \u0027Network\u0027,"},{"line_number":238,"context_line":"                \u0027Port\u0027,"},{"line_number":239,"context_line":"                \u0027RBAC Policy\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_1d3fc887","line":236,"in_reply_to":"9a30ddce_beb0faf5","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"b9bb739f7441f3c010e63912e9578c9dd62f3321","unresolved":false,"context_lines":[{"line_number":234,"context_line":"            column_headers \u003d ("},{"line_number":235,"context_line":"                \u0027Project ID\u0027,"},{"line_number":236,"context_line":"                \u0027Floating IP\u0027,"},{"line_number":237,"context_line":"                \u0027Network\u0027,"},{"line_number":238,"context_line":"                \u0027Port\u0027,"},{"line_number":239,"context_line":"                \u0027RBAC Policy\u0027,"},{"line_number":240,"context_line":"                \u0027Router\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_de95ae40","line":237,"updated":"2017-03-07 20:45:47.000000000","message":"Networks","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":234,"context_line":"            column_headers \u003d ("},{"line_number":235,"context_line":"                \u0027Project ID\u0027,"},{"line_number":236,"context_line":"                \u0027Floating IP\u0027,"},{"line_number":237,"context_line":"                \u0027Network\u0027,"},{"line_number":238,"context_line":"                \u0027Port\u0027,"},{"line_number":239,"context_line":"                \u0027RBAC Policy\u0027,"},{"line_number":240,"context_line":"                \u0027Router\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_3d448c19","line":237,"in_reply_to":"9a30ddce_de95ae40","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"b9bb739f7441f3c010e63912e9578c9dd62f3321","unresolved":false,"context_lines":[{"line_number":235,"context_line":"                \u0027Project ID\u0027,"},{"line_number":236,"context_line":"                \u0027Floating IP\u0027,"},{"line_number":237,"context_line":"                \u0027Network\u0027,"},{"line_number":238,"context_line":"                \u0027Port\u0027,"},{"line_number":239,"context_line":"                \u0027RBAC Policy\u0027,"},{"line_number":240,"context_line":"                \u0027Router\u0027,"},{"line_number":241,"context_line":"                \u0027Security Group\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_3e9dea65","line":238,"updated":"2017-03-07 20:45:47.000000000","message":"Ports","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":235,"context_line":"                \u0027Project ID\u0027,"},{"line_number":236,"context_line":"                \u0027Floating IP\u0027,"},{"line_number":237,"context_line":"                \u0027Network\u0027,"},{"line_number":238,"context_line":"                \u0027Port\u0027,"},{"line_number":239,"context_line":"                \u0027RBAC Policy\u0027,"},{"line_number":240,"context_line":"                \u0027Router\u0027,"},{"line_number":241,"context_line":"                \u0027Security Group\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_5d4dc03c","line":238,"in_reply_to":"9a30ddce_3e9dea65","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"b9bb739f7441f3c010e63912e9578c9dd62f3321","unresolved":false,"context_lines":[{"line_number":236,"context_line":"                \u0027Floating IP\u0027,"},{"line_number":237,"context_line":"                \u0027Network\u0027,"},{"line_number":238,"context_line":"                \u0027Port\u0027,"},{"line_number":239,"context_line":"                \u0027RBAC Policy\u0027,"},{"line_number":240,"context_line":"                \u0027Router\u0027,"},{"line_number":241,"context_line":"                \u0027Security Group\u0027,"},{"line_number":242,"context_line":"                \u0027Security Group Rule\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_be871a0e","line":239,"updated":"2017-03-07 20:45:47.000000000","message":"RBAC Policies","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":236,"context_line":"                \u0027Floating IP\u0027,"},{"line_number":237,"context_line":"                \u0027Network\u0027,"},{"line_number":238,"context_line":"                \u0027Port\u0027,"},{"line_number":239,"context_line":"                \u0027RBAC Policy\u0027,"},{"line_number":240,"context_line":"                \u0027Router\u0027,"},{"line_number":241,"context_line":"                \u0027Security Group\u0027,"},{"line_number":242,"context_line":"                \u0027Security Group Rule\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_7d4a8427","line":239,"in_reply_to":"9a30ddce_be871a0e","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"b9bb739f7441f3c010e63912e9578c9dd62f3321","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                \u0027Network\u0027,"},{"line_number":238,"context_line":"                \u0027Port\u0027,"},{"line_number":239,"context_line":"                \u0027RBAC Policy\u0027,"},{"line_number":240,"context_line":"                \u0027Router\u0027,"},{"line_number":241,"context_line":"                \u0027Security Group\u0027,"},{"line_number":242,"context_line":"                \u0027Security Group Rule\u0027,"},{"line_number":243,"context_line":"                \u0027Subnet\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_3e740a34","line":240,"updated":"2017-03-07 20:45:47.000000000","message":"Routers","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                \u0027Network\u0027,"},{"line_number":238,"context_line":"                \u0027Port\u0027,"},{"line_number":239,"context_line":"                \u0027RBAC Policy\u0027,"},{"line_number":240,"context_line":"                \u0027Router\u0027,"},{"line_number":241,"context_line":"                \u0027Security Group\u0027,"},{"line_number":242,"context_line":"                \u0027Security Group Rule\u0027,"},{"line_number":243,"context_line":"                \u0027Subnet\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_dd5ff0e2","line":240,"in_reply_to":"9a30ddce_3e740a34","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"b9bb739f7441f3c010e63912e9578c9dd62f3321","unresolved":false,"context_lines":[{"line_number":238,"context_line":"                \u0027Port\u0027,"},{"line_number":239,"context_line":"                \u0027RBAC Policy\u0027,"},{"line_number":240,"context_line":"                \u0027Router\u0027,"},{"line_number":241,"context_line":"                \u0027Security Group\u0027,"},{"line_number":242,"context_line":"                \u0027Security Group Rule\u0027,"},{"line_number":243,"context_line":"                \u0027Subnet\u0027,"},{"line_number":244,"context_line":"                \u0027Subnet Pool\u0027"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_7e94c236","line":241,"updated":"2017-03-07 20:45:47.000000000","message":"Security Groups","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":238,"context_line":"                \u0027Port\u0027,"},{"line_number":239,"context_line":"                \u0027RBAC Policy\u0027,"},{"line_number":240,"context_line":"                \u0027Router\u0027,"},{"line_number":241,"context_line":"                \u0027Security Group\u0027,"},{"line_number":242,"context_line":"                \u0027Security Group Rule\u0027,"},{"line_number":243,"context_line":"                \u0027Subnet\u0027,"},{"line_number":244,"context_line":"                \u0027Subnet Pool\u0027"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_1d56e8cd","line":241,"in_reply_to":"9a30ddce_7e94c236","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"b9bb739f7441f3c010e63912e9578c9dd62f3321","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                \u0027RBAC Policy\u0027,"},{"line_number":240,"context_line":"                \u0027Router\u0027,"},{"line_number":241,"context_line":"                \u0027Security Group\u0027,"},{"line_number":242,"context_line":"                \u0027Security Group Rule\u0027,"},{"line_number":243,"context_line":"                \u0027Subnet\u0027,"},{"line_number":244,"context_line":"                \u0027Subnet Pool\u0027"},{"line_number":245,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_be9e3a54","line":242,"updated":"2017-03-07 20:45:47.000000000","message":"Security Group Rules","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                \u0027RBAC Policy\u0027,"},{"line_number":240,"context_line":"                \u0027Router\u0027,"},{"line_number":241,"context_line":"                \u0027Security Group\u0027,"},{"line_number":242,"context_line":"                \u0027Security Group Rule\u0027,"},{"line_number":243,"context_line":"                \u0027Subnet\u0027,"},{"line_number":244,"context_line":"                \u0027Subnet Pool\u0027"},{"line_number":245,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_3d5bacf7","line":242,"in_reply_to":"9a30ddce_be9e3a54","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"b9bb739f7441f3c010e63912e9578c9dd62f3321","unresolved":false,"context_lines":[{"line_number":240,"context_line":"                \u0027Router\u0027,"},{"line_number":241,"context_line":"                \u0027Security Group\u0027,"},{"line_number":242,"context_line":"                \u0027Security Group Rule\u0027,"},{"line_number":243,"context_line":"                \u0027Subnet\u0027,"},{"line_number":244,"context_line":"                \u0027Subnet Pool\u0027"},{"line_number":245,"context_line":"            )"},{"line_number":246,"context_line":"            return (column_headers,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_fea0b292","line":243,"updated":"2017-03-07 20:45:47.000000000","message":"Subnets","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":240,"context_line":"                \u0027Router\u0027,"},{"line_number":241,"context_line":"                \u0027Security Group\u0027,"},{"line_number":242,"context_line":"                \u0027Security Group Rule\u0027,"},{"line_number":243,"context_line":"                \u0027Subnet\u0027,"},{"line_number":244,"context_line":"                \u0027Subnet Pool\u0027"},{"line_number":245,"context_line":"            )"},{"line_number":246,"context_line":"            return (column_headers,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_5d74e066","line":243,"in_reply_to":"9a30ddce_fea0b292","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"b9bb739f7441f3c010e63912e9578c9dd62f3321","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                \u0027Security Group\u0027,"},{"line_number":242,"context_line":"                \u0027Security Group Rule\u0027,"},{"line_number":243,"context_line":"                \u0027Subnet\u0027,"},{"line_number":244,"context_line":"                \u0027Subnet Pool\u0027"},{"line_number":245,"context_line":"            )"},{"line_number":246,"context_line":"            return (column_headers,"},{"line_number":247,"context_line":"                    (utils.get_dict_properties("}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_9eb096df","line":244,"updated":"2017-03-07 20:45:47.000000000","message":"Subnet Pools","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                \u0027Security Group\u0027,"},{"line_number":242,"context_line":"                \u0027Security Group Rule\u0027,"},{"line_number":243,"context_line":"                \u0027Subnet\u0027,"},{"line_number":244,"context_line":"                \u0027Subnet Pool\u0027"},{"line_number":245,"context_line":"            )"},{"line_number":246,"context_line":"            return (column_headers,"},{"line_number":247,"context_line":"                    (utils.get_dict_properties("}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_7d71a475","line":244,"in_reply_to":"9a30ddce_9eb096df","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"}],"openstackclient/tests/functional/common/test_quota.py":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"4a47a2efdc54909514116831024556110bd80f2e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        self.openstack(\u0027quota set --networks 40 \u0027 +"},{"line_number":30,"context_line":"                       self.PROJECT_NAME)"},{"line_number":31,"context_line":"        raw_output \u003d self.openstack(\u0027quota list --network\u0027)"},{"line_number":32,"context_line":"        self.assertIsNotNone(raw_output)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def test_quota_list_compute_option(self):"},{"line_number":35,"context_line":"        self.openstack(\u0027quota set --instances 40 \u0027 +"}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_5ef2d19b","line":32,"updated":"2017-02-18 02:06:55.000000000","message":"This is not enough of a check... at a minimum it must check that the value you set is returned, since project is also handled specially that should be checked.","commit_id":"ebfff476b190874655caa6558f6eff91972cccaf"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"ce69a89a64ac5a31d06feecb0887c99d370c5c9d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        self.openstack(\u0027quota set --networks 40 \u0027 +"},{"line_number":30,"context_line":"                       self.PROJECT_NAME)"},{"line_number":31,"context_line":"        raw_output \u003d self.openstack(\u0027quota list --network\u0027)"},{"line_number":32,"context_line":"        self.assertIsNotNone(raw_output)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def test_quota_list_compute_option(self):"},{"line_number":35,"context_line":"        self.openstack(\u0027quota set --instances 40 \u0027 +"}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_cdecfd91","line":32,"in_reply_to":"da36d5c6_5ef2d19b","updated":"2017-02-22 01:02:57.000000000","message":"Done","commit_id":"ebfff476b190874655caa6558f6eff91972cccaf"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e9569a43e07184b81a1beaf8505b440b64af6df9","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                       self.PROJECT_NAME)"},{"line_number":31,"context_line":"        raw_output \u003d self.openstack(\u0027quota list --network\u0027)"},{"line_number":32,"context_line":"        self.assertIsNotNone(raw_output)"},{"line_number":33,"context_line":"        self.assertIn(40\\n, raw_output)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def test_quota_list_compute_option(self):"},{"line_number":36,"context_line":"        self.openstack(\u0027quota set --instances 40 \u0027 +"}],"source_content_type":"text/x-python","patch_set":16,"id":"da36d5c6_53ac15a0","line":33,"range":{"start_line":33,"start_character":22,"end_line":33,"end_character":26},"updated":"2017-02-22 17:21:56.000000000","message":"shouldn\u0027t this be a string? \u002740\\n\u0027","commit_id":"372c93a1a9830e1b5be89c2da197260e9baf4a61"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"d0dd28e50626a2fa49911c6fa9c9f1d138ea5561","unresolved":false,"context_lines":[{"line_number":30,"context_line":"                       self.PROJECT_NAME)"},{"line_number":31,"context_line":"        raw_output \u003d self.openstack(\u0027quota list --network\u0027)"},{"line_number":32,"context_line":"        self.assertIsNotNone(raw_output)"},{"line_number":33,"context_line":"        self.assertIn(40\\n, raw_output)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def test_quota_list_compute_option(self):"},{"line_number":36,"context_line":"        self.openstack(\u0027quota set --instances 40 \u0027 +"}],"source_content_type":"text/x-python","patch_set":16,"id":"da36d5c6_ae6404e5","line":33,"range":{"start_line":33,"start_character":22,"end_line":33,"end_character":26},"in_reply_to":"da36d5c6_53ac15a0","updated":"2017-02-22 17:47:00.000000000","message":"Yes it should. Fixed.","commit_id":"372c93a1a9830e1b5be89c2da197260e9baf4a61"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"c68017b3aa75901a31034137f5cc0b52b878ce89","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def setUpClass(cls):"},{"line_number":25,"context_line":"        cls.PROJECT_NAME \u003d\\"},{"line_number":26,"context_line":"            cls.get_openstack_configuration_value(\u0027auth.project_name\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def test_quota_list_network_option(self):"},{"line_number":29,"context_line":"        self.openstack(\u0027quota set --networks 40 \u0027 +"},{"line_number":30,"context_line":"                       self.PROJECT_NAME)"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_dbd00522","line":27,"updated":"2017-02-23 04:27:52.000000000","message":"how about a test if none of the option is passed?","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9662777a7d476c7c6ff0497ff9b7915c0d50f854","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def setUpClass(cls):"},{"line_number":25,"context_line":"        cls.PROJECT_NAME \u003d\\"},{"line_number":26,"context_line":"            cls.get_openstack_configuration_value(\u0027auth.project_name\u0027)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def test_quota_list_network_option(self):"},{"line_number":29,"context_line":"        self.openstack(\u0027quota set --networks 40 \u0027 +"},{"line_number":30,"context_line":"                       self.PROJECT_NAME)"}],"source_content_type":"text/x-python","patch_set":20,"id":"da36d5c6_c10c943d","line":27,"in_reply_to":"da36d5c6_dbd00522","updated":"2017-02-23 05:42:33.000000000","message":"Done","commit_id":"6d0fb635b966dc9724c4f2290662ac77c3f411dc"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"bb08ecdfb510f18ae9ddd61b487ecb58e1e5018c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                       self.PROJECT_NAME)"},{"line_number":45,"context_line":"        raw_output \u003d self.openstack(\u0027quota list --volume\u0027)"},{"line_number":46,"context_line":"        self.assertIsNotNone(raw_output)"},{"line_number":47,"context_line":"        self.assertIn(\"40\", raw_output)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_quota_set(self):"},{"line_number":50,"context_line":"        self.openstack(\u0027quota set --instances 11 --volumes 11 --networks 11 \u0027 +"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_502190fa","line":47,"updated":"2017-03-08 12:31:51.000000000","message":"we decide to use json format to rework all functional tests, so please follow it in these new test cases, and that can assert more exact result that assert \"40\" in raw output string, like:\n\n    self.assertEqual(40, json_output.get(\u0027volume\u0027))","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                       self.PROJECT_NAME)"},{"line_number":45,"context_line":"        raw_output \u003d self.openstack(\u0027quota list --volume\u0027)"},{"line_number":46,"context_line":"        self.assertIsNotNone(raw_output)"},{"line_number":47,"context_line":"        self.assertIn(\"40\", raw_output)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_quota_set(self):"},{"line_number":50,"context_line":"        self.openstack(\u0027quota set --instances 11 --volumes 11 --networks 11 \u0027 +"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_fd32f4a5","line":47,"in_reply_to":"9a30ddce_502190fa","updated":"2017-03-10 15:00:22.000000000","message":"hi Rui, all the tests in this file need that change. so I will make those changes in a separate patch. hope thats ok.","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"}],"openstackclient/tests/unit/common/test_quota.py":[{"author":{"_account_id":14615,"name":"Sergey Belous","email":"belous.py@gmail.com","username":"sbelous"},"change_message_id":"f9330f23712b99c7b3b320490d9bbb7753c3121c","unresolved":false,"context_lines":[{"line_number":561,"context_line":"            copy.deepcopy(identity_fakes.PROJECT),"},{"line_number":562,"context_line":"            loaded\u003dTrue,"},{"line_number":563,"context_line":"        )"},{"line_number":564,"context_line":"        self.quotas_mock.get.return_value \u003d self.quota_list"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        self.cmd \u003d quota.ListQuota(self.app, None)"},{"line_number":567,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_f057faff","line":564,"range":{"start_line":564,"start_character":13,"end_line":564,"end_character":24},"updated":"2016-10-12 13:20:05.000000000","message":"so, the first problem, that quotas_mock actually, is a client manager for nova. See L44 in this file. For neutron you should manually define network_manager like this:\n\n    self.network \u003d self.app.client_manager.network\n\n\nAfter that you should mock the method, that called in client_manager. In our case there are two methods: get_quota() and get_quota_default()\nThe mocking may looks like this:\n\n    self.network.get_quota \u003d mock.Mock(return_value\u003dself.quota_list)\n    self.network.get_quota_default() \u003d mock.Mock(return_value\u003dself.quota_list)\n\n\nSo, also in the take_action method you are getting the project list with:\n\n    self.app.client_manager.identity.tenants.list() \n\nThis method also should be mocked here somehow like this:\n\n    self.identity \u003d self.app.client_manager.identity\n    self.identity.tenants.list \u003d mock.Mock(return_value\u003d[self.project])","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9e1a1cd14433b88994860c174cff5c7ec82abdab","unresolved":false,"context_lines":[{"line_number":561,"context_line":"            copy.deepcopy(identity_fakes.PROJECT),"},{"line_number":562,"context_line":"            loaded\u003dTrue,"},{"line_number":563,"context_line":"        )"},{"line_number":564,"context_line":"        self.quotas_mock.get.return_value \u003d self.quota_list"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        self.cmd \u003d quota.ListQuota(self.app, None)"},{"line_number":567,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_f50ffd2b","line":564,"range":{"start_line":564,"start_character":13,"end_line":564,"end_character":24},"in_reply_to":"fa6399be_f057faff","updated":"2016-10-18 18:32:13.000000000","message":"Done","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"},{"author":{"_account_id":14615,"name":"Sergey Belous","email":"belous.py@gmail.com","username":"sbelous"},"change_message_id":"f9330f23712b99c7b3b320490d9bbb7753c3121c","unresolved":false,"context_lines":[{"line_number":571,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        columns, data \u003d self.cmd.take_action(parsed_args)"},{"line_number":574,"context_line":"        self.quota_mock.list.assert_called_with()"},{"line_number":575,"context_line":"        self.assertEqual(self.column_header, columns)"},{"line_number":576,"context_line":"        self.assertEqual(self.quota_list, list(data))"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_13ce38b4","line":574,"range":{"start_line":574,"start_character":8,"end_line":574,"end_character":49},"updated":"2016-10-12 13:20:05.000000000","message":"So, after mocking network functions (get_quota and get_quota_default) we can check here, that these functions was called (with explicit parameter):\n\n    self.network.get_quota.assert_called_with(self.project.id)\n    self.network.get_quota_default.assert_called_with(self.project.id)\n\n(the current check of quota_mock.list not required)","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9e1a1cd14433b88994860c174cff5c7ec82abdab","unresolved":false,"context_lines":[{"line_number":571,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        columns, data \u003d self.cmd.take_action(parsed_args)"},{"line_number":574,"context_line":"        self.quota_mock.list.assert_called_with()"},{"line_number":575,"context_line":"        self.assertEqual(self.column_header, columns)"},{"line_number":576,"context_line":"        self.assertEqual(self.quota_list, list(data))"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_351a556f","line":574,"range":{"start_line":574,"start_character":8,"end_line":574,"end_character":49},"in_reply_to":"fa6399be_13ce38b4","updated":"2016-10-18 18:32:13.000000000","message":"Done","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"},{"author":{"_account_id":14615,"name":"Sergey Belous","email":"belous.py@gmail.com","username":"sbelous"},"change_message_id":"f9330f23712b99c7b3b320490d9bbb7753c3121c","unresolved":false,"context_lines":[{"line_number":573,"context_line":"        columns, data \u003d self.cmd.take_action(parsed_args)"},{"line_number":574,"context_line":"        self.quota_mock.list.assert_called_with()"},{"line_number":575,"context_line":"        self.assertEqual(self.column_header, columns)"},{"line_number":576,"context_line":"        self.assertEqual(self.quota_list, list(data))"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_df41210d","line":576,"range":{"start_line":576,"start_character":8,"end_line":576,"end_character":53},"updated":"2016-10-12 13:20:05.000000000","message":"So, and one more thing. if the take_action method will work correctly then in the data will be generator, that produce values, for example, like this:\n\n    [(10, \u0027project-id6a2717e136d047f982041304046d206b\u0027, 12, 5, 66, 42, 34, 65, 9, 2)]\n\nbut, self.quota_list not looks the same. You should convert the self.quota_lise to the same \u0027kind\u0027. And you can use _xform_get_quota method for this:\n\n    reference_result \u003d (utils.get_dict_properties(s, self.raw_columns) for s in quota._xform_get_quota(self.quota_list))\n    self.assertEqual(list(reference_result), list(data))\n\n\ndon\u0027t forget to import utils:\n\n    from osc_lib import utils\n\n\n\nAnd, finally, there is a new test class [1], that should be appear after applying all of my comments. It still looks a little ugly, but it really tests what it must tests and it\u0027s a good start point for refactoring. Yeah, I really sure, that this test can be better :)\n\n\n[1]: http://paste.openstack.org/show/585453/","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9e1a1cd14433b88994860c174cff5c7ec82abdab","unresolved":false,"context_lines":[{"line_number":573,"context_line":"        columns, data \u003d self.cmd.take_action(parsed_args)"},{"line_number":574,"context_line":"        self.quota_mock.list.assert_called_with()"},{"line_number":575,"context_line":"        self.assertEqual(self.column_header, columns)"},{"line_number":576,"context_line":"        self.assertEqual(self.quota_list, list(data))"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_951fa15a","line":576,"range":{"start_line":576,"start_character":8,"end_line":576,"end_character":53},"in_reply_to":"fa6399be_df41210d","updated":"2016-10-18 18:32:13.000000000","message":"Done","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"3c45dddbc6351831f0f1161e406be68c88d92b6c","unresolved":false,"context_lines":[{"line_number":530,"context_line":"        \u0027Floatingip\u0027,"},{"line_number":531,"context_line":"        \u0027Id\u0027,"},{"line_number":532,"context_line":"        \u0027Network\u0027,"},{"line_number":533,"context_line":"        \u0027Port\u0027,"},{"line_number":534,"context_line":"        \u0027Rbac_policy\u0027,"},{"line_number":535,"context_line":"        \u0027Router\u0027,"},{"line_number":536,"context_line":"        \u0027SecurityGroup\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_4c0f38e1","line":533,"updated":"2016-10-19 02:27:00.000000000","message":"Same as the quota.py file changes to the header column names","commit_id":"501b08f62c2bafdccd1224c0a6277603357091ee"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"6c857debb6ff0154cf98e7673ccbdffc46a92a0a","unresolved":false,"context_lines":[{"line_number":530,"context_line":"        \u0027Floatingip\u0027,"},{"line_number":531,"context_line":"        \u0027Id\u0027,"},{"line_number":532,"context_line":"        \u0027Network\u0027,"},{"line_number":533,"context_line":"        \u0027Port\u0027,"},{"line_number":534,"context_line":"        \u0027Rbac_policy\u0027,"},{"line_number":535,"context_line":"        \u0027Router\u0027,"},{"line_number":536,"context_line":"        \u0027SecurityGroup\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5da102_c61f0ab5","line":533,"in_reply_to":"fa6399be_4c0f38e1","updated":"2016-11-03 14:51:24.000000000","message":"Done","commit_id":"501b08f62c2bafdccd1224c0a6277603357091ee"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"4321e41fe57aee45a3777b8076dcdb7bf0c5a690","unresolved":false,"context_lines":[{"line_number":522,"context_line":"        self.assertNotCalled(self.network.get_quota_default)"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"class TestQuotaList(TestQuota):"},{"line_number":526,"context_line":"    project \u003d identity_fakes_v3.FakeProject.create_one_project()"},{"line_number":527,"context_line":"    quota_list \u003d network_fakes.FakeQuota.create_one_quota()"},{"line_number":528,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_03eecbeb","line":525,"updated":"2017-01-20 22:03:55.000000000","message":"Please test multiple combination of options, including invalid ones","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"30a82e74742824155c0ad253229df973651804f6","unresolved":false,"context_lines":[{"line_number":522,"context_line":"        self.assertNotCalled(self.network.get_quota_default)"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"class TestQuotaList(TestQuota):"},{"line_number":526,"context_line":"    project \u003d identity_fakes_v3.FakeProject.create_one_project()"},{"line_number":527,"context_line":"    quota_list \u003d network_fakes.FakeQuota.create_one_quota()"},{"line_number":528,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3a461143_f8aab684","line":525,"in_reply_to":"5a3905b3_03eecbeb","updated":"2017-01-25 17:53:47.000000000","message":"including in the next patch set.","commit_id":"9708e4907be71b1f796d421e1c28a70a255baa4c"}],"openstackclient/tests/unit/compute/v2/fakes.py":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"4a47a2efdc54909514116831024556110bd80f2e","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        attrs \u003d attrs or {}"},{"line_number":1326,"context_line":""},{"line_number":1327,"context_line":"        quota_attrs \u003d {"},{"line_number":1328,"context_line":"            \u0027id\u0027: \u0027project-id\u0027 + uuid.uuid4().hex,"},{"line_number":1329,"context_line":"            \u0027cores\u0027: 20,"},{"line_number":1330,"context_line":"            \u0027fixed_ips\u0027: 30,"},{"line_number":1331,"context_line":"            \u0027injected_files\u0027: 100,"}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_de34014c","line":1328,"updated":"2017-02-18 02:06:55.000000000","message":"Unfortunately these fakes do not behave like the actual QuotaSet objects, which do not return the project ID.","commit_id":"ebfff476b190874655caa6558f6eff91972cccaf"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"ce69a89a64ac5a31d06feecb0887c99d370c5c9d","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        attrs \u003d attrs or {}"},{"line_number":1326,"context_line":""},{"line_number":1327,"context_line":"        quota_attrs \u003d {"},{"line_number":1328,"context_line":"            \u0027id\u0027: \u0027project-id\u0027 + uuid.uuid4().hex,"},{"line_number":1329,"context_line":"            \u0027cores\u0027: 20,"},{"line_number":1330,"context_line":"            \u0027fixed_ips\u0027: 30,"},{"line_number":1331,"context_line":"            \u0027injected_files\u0027: 100,"}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_0dfff534","line":1328,"in_reply_to":"da36d5c6_de34014c","updated":"2017-02-22 01:02:57.000000000","message":"Yes. Fixed it.","commit_id":"ebfff476b190874655caa6558f6eff91972cccaf"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"bb08ecdfb510f18ae9ddd61b487ecb58e1e5018c","unresolved":false,"context_lines":[{"line_number":1320,"context_line":""},{"line_number":1321,"context_line":"    @staticmethod"},{"line_number":1322,"context_line":"    def create_one_comp_quota(attrs\u003dNone):"},{"line_number":1323,"context_line":"        \"\"\"Crate one quota\"\"\""},{"line_number":1324,"context_line":""},{"line_number":1325,"context_line":"        attrs \u003d attrs or {}"},{"line_number":1326,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_50ab501d","line":1323,"range":{"start_line":1323,"start_character":11,"end_line":1323,"end_character":16},"updated":"2017-03-08 12:31:51.000000000","message":"nits: Create","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":1320,"context_line":""},{"line_number":1321,"context_line":"    @staticmethod"},{"line_number":1322,"context_line":"    def create_one_comp_quota(attrs\u003dNone):"},{"line_number":1323,"context_line":"        \"\"\"Crate one quota\"\"\""},{"line_number":1324,"context_line":""},{"line_number":1325,"context_line":"        attrs \u003d attrs or {}"},{"line_number":1326,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_ddd45021","line":1323,"range":{"start_line":1323,"start_character":11,"end_line":1323,"end_character":16},"in_reply_to":"9a30ddce_50ab501d","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"bb08ecdfb510f18ae9ddd61b487ecb58e1e5018c","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        attrs \u003d attrs or {}"},{"line_number":1326,"context_line":""},{"line_number":1327,"context_line":"        quota_attrs \u003d {"},{"line_number":1328,"context_line":"            \u0027id\u0027: \u0027project-id\u0027 + uuid.uuid4().hex,"},{"line_number":1329,"context_line":"            \u0027cores\u0027: 20,"},{"line_number":1330,"context_line":"            \u0027fixed_ips\u0027: 30,"},{"line_number":1331,"context_line":"            \u0027injected_files\u0027: 100,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_30733ce9","line":1328,"range":{"start_line":1328,"start_character":19,"end_line":1328,"end_character":29},"updated":"2017-03-08 12:31:51.000000000","message":"nits: project-id-","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        attrs \u003d attrs or {}"},{"line_number":1326,"context_line":""},{"line_number":1327,"context_line":"        quota_attrs \u003d {"},{"line_number":1328,"context_line":"            \u0027id\u0027: \u0027project-id\u0027 + uuid.uuid4().hex,"},{"line_number":1329,"context_line":"            \u0027cores\u0027: 20,"},{"line_number":1330,"context_line":"            \u0027fixed_ips\u0027: 30,"},{"line_number":1331,"context_line":"            \u0027injected_files\u0027: 100,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_fdd91458","line":1328,"range":{"start_line":1328,"start_character":19,"end_line":1328,"end_character":29},"in_reply_to":"9a30ddce_30733ce9","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"bb08ecdfb510f18ae9ddd61b487ecb58e1e5018c","unresolved":false,"context_lines":[{"line_number":1355,"context_line":"        attrs \u003d attrs or {}"},{"line_number":1356,"context_line":""},{"line_number":1357,"context_line":"        quota_attrs \u003d {"},{"line_number":1358,"context_line":"            \u0027id\u0027: \u0027project-id\u0027 + uuid.uuid4().hex,"},{"line_number":1359,"context_line":"            \u0027cores\u0027: 10,"},{"line_number":1360,"context_line":"            \u0027fixed_ips\u0027: 10,"},{"line_number":1361,"context_line":"            \u0027injected_files\u0027: 100,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_904a2882","line":1358,"range":{"start_line":1358,"start_character":19,"end_line":1358,"end_character":29},"updated":"2017-03-08 12:31:51.000000000","message":"ditto","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":1355,"context_line":"        attrs \u003d attrs or {}"},{"line_number":1356,"context_line":""},{"line_number":1357,"context_line":"        quota_attrs \u003d {"},{"line_number":1358,"context_line":"            \u0027id\u0027: \u0027project-id\u0027 + uuid.uuid4().hex,"},{"line_number":1359,"context_line":"            \u0027cores\u0027: 10,"},{"line_number":1360,"context_line":"            \u0027fixed_ips\u0027: 10,"},{"line_number":1361,"context_line":"            \u0027injected_files\u0027: 100,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_1ddb4850","line":1358,"range":{"start_line":1358,"start_character":19,"end_line":1358,"end_character":29},"in_reply_to":"9a30ddce_904a2882","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"}],"openstackclient/tests/unit/network/v2/fakes.py":[{"author":{"_account_id":14615,"name":"Sergey Belous","email":"belous.py@gmail.com","username":"sbelous"},"change_message_id":"e79b665c23d66e49241e871a1ee1b03bec762570","unresolved":false,"context_lines":[{"line_number":1117,"context_line":"        \"\"\"Create one quota\"\"\""},{"line_number":1118,"context_line":"        attrs \u003d attrs or {}"},{"line_number":1119,"context_line":""},{"line_number":1120,"context_line":"        quota_attrs \u003d {"},{"line_number":1121,"context_line":"            \u0027floatingip\u0027: uuid.uuid4().hex,"},{"line_number":1122,"context_line":"            \u0027id\u0027: \u0027project-id\u0027 + uuid.uuid4().hex,"},{"line_number":1123,"context_line":"            \u0027network\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_6afdb139","line":1120,"updated":"2016-10-12 13:34:33.000000000","message":"I also highly recommend do not use the random numbers like this for tests.\nJust image, what if the test will fall on one of the random data sets? how do you determine how which the data was? How you will reproduce it? It\u0027s better to use static numbers for our case.","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9e1a1cd14433b88994860c174cff5c7ec82abdab","unresolved":false,"context_lines":[{"line_number":1117,"context_line":"        \"\"\"Create one quota\"\"\""},{"line_number":1118,"context_line":"        attrs \u003d attrs or {}"},{"line_number":1119,"context_line":""},{"line_number":1120,"context_line":"        quota_attrs \u003d {"},{"line_number":1121,"context_line":"            \u0027floatingip\u0027: uuid.uuid4().hex,"},{"line_number":1122,"context_line":"            \u0027id\u0027: \u0027project-id\u0027 + uuid.uuid4().hex,"},{"line_number":1123,"context_line":"            \u0027network\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_d53919da","line":1120,"in_reply_to":"fa6399be_6afdb139","updated":"2016-10-18 18:32:13.000000000","message":"Done","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"},{"author":{"_account_id":14615,"name":"Sergey Belous","email":"belous.py@gmail.com","username":"sbelous"},"change_message_id":"e79b665c23d66e49241e871a1ee1b03bec762570","unresolved":false,"context_lines":[{"line_number":1118,"context_line":"        attrs \u003d attrs or {}"},{"line_number":1119,"context_line":""},{"line_number":1120,"context_line":"        quota_attrs \u003d {"},{"line_number":1121,"context_line":"            \u0027floatingip\u0027: uuid.uuid4().hex,"},{"line_number":1122,"context_line":"            \u0027id\u0027: \u0027project-id\u0027 + uuid.uuid4().hex,"},{"line_number":1123,"context_line":"            \u0027network\u0027: uuid.uuid4().hex,"},{"line_number":1124,"context_line":"            \u0027port\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_aa18a985","line":1121,"range":{"start_line":1121,"start_character":39,"end_line":1121,"end_character":42},"updated":"2016-10-12 13:34:33.000000000","message":"Also, for all (except \u0027id\u0027) keys the values should be int. Because they are integer in real world. You can\u0027t set port\u0027s quota to idc9e0adad9eff47eb995d712f3b3d19c5 ;)","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"9e1a1cd14433b88994860c174cff5c7ec82abdab","unresolved":false,"context_lines":[{"line_number":1118,"context_line":"        attrs \u003d attrs or {}"},{"line_number":1119,"context_line":""},{"line_number":1120,"context_line":"        quota_attrs \u003d {"},{"line_number":1121,"context_line":"            \u0027floatingip\u0027: uuid.uuid4().hex,"},{"line_number":1122,"context_line":"            \u0027id\u0027: \u0027project-id\u0027 + uuid.uuid4().hex,"},{"line_number":1123,"context_line":"            \u0027network\u0027: uuid.uuid4().hex,"},{"line_number":1124,"context_line":"            \u0027port\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_554c2976","line":1121,"range":{"start_line":1121,"start_character":39,"end_line":1121,"end_character":42},"in_reply_to":"fa6399be_aa18a985","updated":"2016-10-18 18:32:13.000000000","message":"Done","commit_id":"340ee874b8ddcc9048b570d4d32abf3ca489a4c6"}],"openstackclient/tests/unit/volume/v2/fakes.py":[{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"bb08ecdfb510f18ae9ddd61b487ecb58e1e5018c","unresolved":false,"context_lines":[{"line_number":965,"context_line":"        attrs \u003d attrs or {}"},{"line_number":966,"context_line":""},{"line_number":967,"context_line":"        quota_attrs \u003d {"},{"line_number":968,"context_line":"            \u0027id\u0027: \u0027project-id\u0027 + uuid.uuid4().hex,"},{"line_number":969,"context_line":"            \u0027backups\u0027: 100,"},{"line_number":970,"context_line":"            \u0027backup_gigabytes\u0027: 100,"},{"line_number":971,"context_line":"            \u0027gigabytes\u0027: 10,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_b0348cfb","line":968,"range":{"start_line":968,"start_character":19,"end_line":968,"end_character":29},"updated":"2017-03-08 12:31:51.000000000","message":"ditto","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":965,"context_line":"        attrs \u003d attrs or {}"},{"line_number":966,"context_line":""},{"line_number":967,"context_line":"        quota_attrs \u003d {"},{"line_number":968,"context_line":"            \u0027id\u0027: \u0027project-id\u0027 + uuid.uuid4().hex,"},{"line_number":969,"context_line":"            \u0027backups\u0027: 100,"},{"line_number":970,"context_line":"            \u0027backup_gigabytes\u0027: 100,"},{"line_number":971,"context_line":"            \u0027gigabytes\u0027: 10,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_5de940e5","line":968,"range":{"start_line":968,"start_character":19,"end_line":968,"end_character":29},"in_reply_to":"9a30ddce_b0348cfb","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"bb08ecdfb510f18ae9ddd61b487ecb58e1e5018c","unresolved":false,"context_lines":[{"line_number":988,"context_line":"        attrs \u003d attrs or {}"},{"line_number":989,"context_line":""},{"line_number":990,"context_line":"        quota_attrs \u003d {"},{"line_number":991,"context_line":"            \u0027id\u0027: \u0027project-id\u0027 + uuid.uuid4().hex,"},{"line_number":992,"context_line":"            \u0027backups\u0027: 100,"},{"line_number":993,"context_line":"            \u0027backup_gigabytes\u0027: 100,"},{"line_number":994,"context_line":"            \u0027gigabytes\u0027: 100,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_d03bc0e9","line":991,"range":{"start_line":991,"start_character":19,"end_line":991,"end_character":29},"updated":"2017-03-08 12:31:51.000000000","message":"ditto","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"1d800ed2c4a8cd783e85f943eec5d37c6e408a2d","unresolved":false,"context_lines":[{"line_number":988,"context_line":"        attrs \u003d attrs or {}"},{"line_number":989,"context_line":""},{"line_number":990,"context_line":"        quota_attrs \u003d {"},{"line_number":991,"context_line":"            \u0027id\u0027: \u0027project-id\u0027 + uuid.uuid4().hex,"},{"line_number":992,"context_line":"            \u0027backups\u0027: 100,"},{"line_number":993,"context_line":"            \u0027backup_gigabytes\u0027: 100,"},{"line_number":994,"context_line":"            \u0027gigabytes\u0027: 100,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9a30ddce_bdecfcf3","line":991,"range":{"start_line":991,"start_character":19,"end_line":991,"end_character":29},"in_reply_to":"9a30ddce_d03bc0e9","updated":"2017-03-10 15:00:22.000000000","message":"Done","commit_id":"8f4fc5f2ae4e07e1182646d20abcf658c007701a"}],"releasenotes/notes/add-quota-list-command-d3f99e6822152f6d.yaml":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"cbff419b88aadad94c6a92bd1f9c5ce72ac9a8e3","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add ``quota list`` command with ``--compute``, ``volume``"},{"line_number":5,"context_line":"    and ``network`` options."},{"line_number":6,"context_line":"    [Blueprint `quota-list \u003chttps://blueprints.launchpad.net/python-openstackclient/+spec/neutron-client-quota\u003e`_] "}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3a461143_9ebefbfd","line":6,"updated":"2017-01-25 18:12:25.000000000","message":"space","commit_id":"3de693f01265a82d0273b42366c8014cf6ca8317"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"3f1353d69e1ff075a1d1d145a2d5eeff50b379f7","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add ``quota list`` command with ``--compute``, ``volume``"},{"line_number":5,"context_line":"    and ``network`` options."},{"line_number":6,"context_line":"    [Blueprint `quota-list \u003chttps://blueprints.launchpad.net/python-openstackclient/+spec/neutron-client-quota\u003e`_] "}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3a461143_f4871310","line":6,"in_reply_to":"3a461143_9ebefbfd","updated":"2017-01-25 22:57:06.000000000","message":"Done","commit_id":"3de693f01265a82d0273b42366c8014cf6ca8317"}],"setup.cfg":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"f53368ca59862d4ae099bec89c04abe009479fe0","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    configuration_show \u003d openstackclient.common.configuration:ShowConfiguration"},{"line_number":48,"context_line":"    extension_list \u003d openstackclient.common.extension:ListExtension"},{"line_number":49,"context_line":"    limits_show \u003d openstackclient.common.limits:ShowLimits"},{"line_number":50,"context_line":"    quota_list \u003d openstackclient.common.quota:ListQuota"},{"line_number":51,"context_line":"    quota_set \u003d openstackclient.common.quota:SetQuota"},{"line_number":52,"context_line":"    quota_show \u003d openstackclient.common.quota:ShowQuota"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"da6895a0_dc1fc159","line":50,"updated":"2016-10-20 18:35:39.000000000","message":"This is a common command so what about compute and volume support?","commit_id":"501b08f62c2bafdccd1224c0a6277603357091ee"}]}
