)]}'
{"nova/api/openstack/compute/plugins/v3/servers.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"78c03b1de72e9c5c40b9b72fe4a708f368f96d2d","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        # should return recently deleted images according to the API spec."},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"        deleted \u003d search_opts.get(\u0027deleted\u0027)"},{"line_number":308,"context_line":"        if not deleted:"},{"line_number":309,"context_line":"            if \u0027changes-since\u0027 not in search_opts:"},{"line_number":310,"context_line":"                # No \u0027changes-since\u0027, so we only want non-deleted servers"},{"line_number":311,"context_line":"                search_opts[\u0027deleted\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_9d900d45","line":308,"updated":"2015-04-15 07:34:02.000000000","message":"So if delete is defined here we will never pass to this block and so never check for the condition \"changes-since\"","commit_id":"6c637dc3be21fda34bde0dd9357789fa9f3895f7"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"17dee5f6566a8a2b5e95e080c2a8557326b5d646","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        # should return recently deleted images according to the API spec."},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"        deleted \u003d search_opts.get(\u0027deleted\u0027)"},{"line_number":308,"context_line":"        if not deleted:"},{"line_number":309,"context_line":"            if \u0027changes-since\u0027 not in search_opts:"},{"line_number":310,"context_line":"                # No \u0027changes-since\u0027, so we only want non-deleted servers"},{"line_number":311,"context_line":"                search_opts[\u0027deleted\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_0f8ba0c4","line":308,"in_reply_to":"7aaa499b_9d900d45","updated":"2015-04-15 08:27:58.000000000","message":"Ok my mistake, deleted can be None (if not defined), \u0027true\u0027, \u0027false\u0027 so let\u0027s make this condition more explicit.\n\n  if deleted is None and \u0027changes-since\u0027 not in search_opts\n    search_opts[\u0027deleted\u0027] \u003d False\n  else:\n    ...","commit_id":"6c637dc3be21fda34bde0dd9357789fa9f3895f7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"57d2f4153d5ca9d73aaf9db23b7b5a9eaf28f630","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            # Return non-deleted servers if an invalid value"},{"line_number":314,"context_line":"            # is passed with deleted filter."},{"line_number":315,"context_line":"            search_opts[\u0027deleted\u0027] \u003d strutils.bool_from_string("},{"line_number":316,"context_line":"                search_opts[\u0027deleted\u0027], default\u003dFalse)"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"        if search_opts.get(\"vm_state\") \u003d\u003d [\u0027deleted\u0027]:"},{"line_number":319,"context_line":"            if context.is_admin:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_a213240d","line":316,"updated":"2015-04-19 01:17:23.000000000","message":"We should use \u0027strict\u003dTrue\u0027 at here for v2.1 API. And catch ValueError at here also.\n\nWe may need relax this validation if John\u0027s idea get agreement in the future. https://review.openstack.org/173243\n\nI also want to hear Ken\u0027ichi\u0027s opinion.","commit_id":"5c7c852dc0e4ac44e167585938a2b944c1156d10"},{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"4b0a099d53fb0a7a00e9e6abcd3174ed9f7aaded","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            # Return non-deleted servers if an invalid value"},{"line_number":314,"context_line":"            # is passed with deleted filter."},{"line_number":315,"context_line":"            search_opts[\u0027deleted\u0027] \u003d strutils.bool_from_string("},{"line_number":316,"context_line":"                search_opts[\u0027deleted\u0027], default\u003dFalse)"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"        if search_opts.get(\"vm_state\") \u003d\u003d [\u0027deleted\u0027]:"},{"line_number":319,"context_line":"            if context.is_admin:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_6c03b6b9","line":316,"in_reply_to":"dac4157f_337408fc","updated":"2015-04-20 06:21:39.000000000","message":"Hi Alex,\n\nCurrently list api does not give any error to the user in case of invalid value of \u0027deleted\u0027 filter. By making this change to \u0027strict\u003dTrue\u0027 user will get error for invalid filter values, that will change the api spec. Do we need to make api spec change at the last moment.\n\nLet me know your opinion.","commit_id":"5c7c852dc0e4ac44e167585938a2b944c1156d10"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e6d66b72f2421a310200af02f6b4881ff8c6d91e","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            # Return non-deleted servers if an invalid value"},{"line_number":314,"context_line":"            # is passed with deleted filter."},{"line_number":315,"context_line":"            search_opts[\u0027deleted\u0027] \u003d strutils.bool_from_string("},{"line_number":316,"context_line":"                search_opts[\u0027deleted\u0027], default\u003dFalse)"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"        if search_opts.get(\"vm_state\") \u003d\u003d [\u0027deleted\u0027]:"},{"line_number":319,"context_line":"            if context.is_admin:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_47bfa3d0","line":316,"in_reply_to":"dac4157f_34b8ffe4","updated":"2015-04-23 08:16:44.000000000","message":"+1 for adding TODO at here.","commit_id":"5c7c852dc0e4ac44e167585938a2b944c1156d10"},{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"23712b30eda525e2db39651c1a5364e5b86e3ef1","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            # Return non-deleted servers if an invalid value"},{"line_number":314,"context_line":"            # is passed with deleted filter."},{"line_number":315,"context_line":"            search_opts[\u0027deleted\u0027] \u003d strutils.bool_from_string("},{"line_number":316,"context_line":"                search_opts[\u0027deleted\u0027], default\u003dFalse)"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"        if search_opts.get(\"vm_state\") \u003d\u003d [\u0027deleted\u0027]:"},{"line_number":319,"context_line":"            if context.is_admin:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_d1746dfe","line":316,"in_reply_to":"dac4157f_6c03b6b9","updated":"2015-04-21 07:04:51.000000000","message":"Hi Alex,\n\nCurrently list api returns response status 200 to the user for any valid or invalid value of deleted filter, and always returns the deleted instances in response.\n\nIf we enable strict\u003dTrue, it will return response status 200 for valid deleted filter values (true/false) but will return response status 400 for all the invalid values (e.g. \u0027xyz\u0027) of deleted filter. That will also change the api spec.","commit_id":"5c7c852dc0e4ac44e167585938a2b944c1156d10"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d247dd0ddacec9c5aca4b3586b1cac2efaa6758f","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            # Return non-deleted servers if an invalid value"},{"line_number":314,"context_line":"            # is passed with deleted filter."},{"line_number":315,"context_line":"            search_opts[\u0027deleted\u0027] \u003d strutils.bool_from_string("},{"line_number":316,"context_line":"                search_opts[\u0027deleted\u0027], default\u003dFalse)"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"        if search_opts.get(\"vm_state\") \u003d\u003d [\u0027deleted\u0027]:"},{"line_number":319,"context_line":"            if context.is_admin:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_337408fc","line":316,"in_reply_to":"dac4157f_a213240d","updated":"2015-04-19 12:40:53.000000000","message":"Discussion with Ken\u0027ichi on IRC, we should enable strict\u003dTrue at here.","commit_id":"5c7c852dc0e4ac44e167585938a2b944c1156d10"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5a638bf4573b9ccf18fc67c7356697b7d1fea4ce","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            # Return non-deleted servers if an invalid value"},{"line_number":314,"context_line":"            # is passed with deleted filter."},{"line_number":315,"context_line":"            search_opts[\u0027deleted\u0027] \u003d strutils.bool_from_string("},{"line_number":316,"context_line":"                search_opts[\u0027deleted\u0027], default\u003dFalse)"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"        if search_opts.get(\"vm_state\") \u003d\u003d [\u0027deleted\u0027]:"},{"line_number":319,"context_line":"            if context.is_admin:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_e1cd5eb8","line":316,"in_reply_to":"dac4157f_d1746dfe","updated":"2015-04-21 07:21:35.000000000","message":"According https://review.openstack.org/#/c/52007/4, that is acceptable change.","commit_id":"5c7c852dc0e4ac44e167585938a2b944c1156d10"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0e1bda558f9dd4e7d1628b60745553ce1831495c","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            # Return non-deleted servers if an invalid value"},{"line_number":314,"context_line":"            # is passed with deleted filter."},{"line_number":315,"context_line":"            search_opts[\u0027deleted\u0027] \u003d strutils.bool_from_string("},{"line_number":316,"context_line":"                search_opts[\u0027deleted\u0027], default\u003dFalse)"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"        if search_opts.get(\"vm_state\") \u003d\u003d [\u0027deleted\u0027]:"},{"line_number":319,"context_line":"            if context.is_admin:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_34b8ffe4","line":316,"in_reply_to":"dac4157f_e1cd5eb8","updated":"2015-04-22 10:22:19.000000000","message":"So I have a feeling the best approach is adding a TODO in here.\n\nThen do a follow on change that bumps the API micro version (maybe) and adds default\u003dTrue, because we can.","commit_id":"5c7c852dc0e4ac44e167585938a2b944c1156d10"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d247dd0ddacec9c5aca4b3586b1cac2efaa6758f","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            # Return non-deleted servers if an invalid value"},{"line_number":184,"context_line":"            # is passed with deleted filter."},{"line_number":185,"context_line":"            search_opts[\u0027deleted\u0027] \u003d strutils.bool_from_string("},{"line_number":186,"context_line":"                search_opts[\u0027deleted\u0027], default\u003dFalse)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        if search_opts.get(\"vm_state\") \u003d\u003d [\u0027deleted\u0027]:"},{"line_number":189,"context_line":"            if context.is_admin:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_d39eec06","line":186,"updated":"2015-04-19 12:40:53.000000000","message":"also need use strict\u003dTrue at here.","commit_id":"5c7c852dc0e4ac44e167585938a2b944c1156d10"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0e1bda558f9dd4e7d1628b60745553ce1831495c","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            # Return non-deleted servers if an invalid value"},{"line_number":184,"context_line":"            # is passed with deleted filter."},{"line_number":185,"context_line":"            search_opts[\u0027deleted\u0027] \u003d strutils.bool_from_string("},{"line_number":186,"context_line":"                search_opts[\u0027deleted\u0027], default\u003dFalse)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        if search_opts.get(\"vm_state\") \u003d\u003d [\u0027deleted\u0027]:"},{"line_number":189,"context_line":"            if context.is_admin:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dac4157f_b4c40f5f","line":186,"in_reply_to":"dac4157f_d39eec06","updated":"2015-04-22 10:22:19.000000000","message":"-2 that suggestion.\n\nFor v2.0 we certainly need to use False, to maintain the same API contract.","commit_id":"5c7c852dc0e4ac44e167585938a2b944c1156d10"}],"nova/tests/unit/api/openstack/compute/plugins/v3/test_servers.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e6d66b72f2421a310200af02f6b4881ff8c6d91e","unresolved":false,"context_lines":[{"line_number":1032,"context_line":"            context, objects.InstanceList(), db_list, FIELDS)"},{"line_number":1033,"context_line":""},{"line_number":1034,"context_line":"        req \u003d fakes.HTTPRequestV3.blank(\u0027/servers?deleted\u003dtrue\u0027,"},{"line_number":1035,"context_line":"                                        use_admin_context\u003dTrue)"},{"line_number":1036,"context_line":""},{"line_number":1037,"context_line":"        servers \u003d self.controller.detail(req)[\u0027servers\u0027]"},{"line_number":1038,"context_line":"        self.assertEqual(1, len(servers))"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_072beb31","line":1035,"updated":"2015-04-23 08:16:44.000000000","message":"nit, HTTPRequestV3 is better, same as line 1058. HTTPRequestV3 should be removed in the future. But it\u0027s fine, you can update it when you have to update the patchset.","commit_id":"5c7c852dc0e4ac44e167585938a2b944c1156d10"}]}
