)]}'
{"cinder/objects/request_spec.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"56a70c7619420f2b1e0406f66749fa861ee29dd5","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        \u0027group_backend\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":47,"context_line":"        \u0027resource_backend\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":48,"context_line":"        \u0027backup_id\u0027: fields.UUIDField(nullable\u003dTrue),"},{"line_number":49,"context_line":"        \u0027operation\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":50,"context_line":"    }"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    obj_extra_fields \u003d [\u0027resource_properties\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_44de6ada","line":49,"updated":"2018-04-24 14:51:47.000000000","message":"-1: Missing code that backports the OVO to version that didn\u0027t have operation","commit_id":"a95fe1f45d83ffc96f85dac38e2e5fb0b449e230"}],"cinder/scheduler/manager.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"63da77a50d189c63512abc8ae7d59056a8786c66","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"def append_operation_type(name\u003dNone):"},{"line_number":66,"context_line":"    def _decorator(schedule_function):"},{"line_number":67,"context_line":"        def inject_operation_decorator(*args, **kwargs):"},{"line_number":68,"context_line":"            func_name \u003d name if name else schedule_function.__name__"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            def _append_attribute(rs):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_6898af69","line":67,"updated":"2018-04-30 17:41:39.000000000","message":"-1: This changes the method signature, we should decorate this method with `@six.wraps(schedule_function)`","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d164328f4db8539d43ca65f06db84ea2ae2bdaf0","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"def append_operation_type(name\u003dNone):"},{"line_number":66,"context_line":"    def _decorator(schedule_function):"},{"line_number":67,"context_line":"        def inject_operation_decorator(*args, **kwargs):"},{"line_number":68,"context_line":"            func_name \u003d name if name else schedule_function.__name__"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            def _append_attribute(rs):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_dbcac76c","line":67,"in_reply_to":"9f6a8fd7_6898af69","updated":"2018-05-02 02:21:20.000000000","message":"Done","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"63da77a50d189c63512abc8ae7d59056a8786c66","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        def inject_operation_decorator(*args, **kwargs):"},{"line_number":68,"context_line":"            func_name \u003d name if name else schedule_function.__name__"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            def _append_attribute(rs):"},{"line_number":71,"context_line":"                if isinstance(rs, dict):"},{"line_number":72,"context_line":"                    rs[\u0027operation\u0027] \u003d func_name"},{"line_number":73,"context_line":"                if isinstance(rs, objects.RequestSpec):"},{"line_number":74,"context_line":"                    rs.operation \u003d func_name"},{"line_number":75,"context_line":"                return rs"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            request_spec \u003d kwargs.get(\u0027request_spec\u0027, None)"},{"line_number":78,"context_line":"            request_spec_list \u003d kwargs.get(\u0027request_spec_list\u0027, [])"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_287dd71b","line":75,"range":{"start_line":70,"start_character":0,"end_line":75,"end_character":25},"updated":"2018-04-30 17:41:39.000000000","message":"-1: This is not really necessary, since RequestSpec inherits from CinderObjectDictCompat we can always use it as a dictionary.","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d164328f4db8539d43ca65f06db84ea2ae2bdaf0","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        def inject_operation_decorator(*args, **kwargs):"},{"line_number":68,"context_line":"            func_name \u003d name if name else schedule_function.__name__"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            def _append_attribute(rs):"},{"line_number":71,"context_line":"                if isinstance(rs, dict):"},{"line_number":72,"context_line":"                    rs[\u0027operation\u0027] \u003d func_name"},{"line_number":73,"context_line":"                if isinstance(rs, objects.RequestSpec):"},{"line_number":74,"context_line":"                    rs.operation \u003d func_name"},{"line_number":75,"context_line":"                return rs"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            request_spec \u003d kwargs.get(\u0027request_spec\u0027, None)"},{"line_number":78,"context_line":"            request_spec_list \u003d kwargs.get(\u0027request_spec_list\u0027, [])"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_5b8d572f","line":75,"range":{"start_line":70,"start_character":0,"end_line":75,"end_character":25},"in_reply_to":"9f6a8fd7_287dd71b","updated":"2018-05-02 02:21:20.000000000","message":"Done","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"63da77a50d189c63512abc8ae7d59056a8786c66","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                return rs"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            request_spec \u003d kwargs.get(\u0027request_spec\u0027, None)"},{"line_number":78,"context_line":"            request_spec_list \u003d kwargs.get(\u0027request_spec_list\u0027, [])"},{"line_number":79,"context_line":"            if request_spec:"},{"line_number":80,"context_line":"                kwargs.update("},{"line_number":81,"context_line":"                    {\u0027request_spec\u0027: _append_attribute(request_spec)})"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_28a2b79b","line":78,"range":{"start_line":78,"start_character":64,"end_line":78,"end_character":66},"updated":"2018-04-30 17:41:39.000000000","message":"nit: Why create a list if it\u0027s not going to be used?","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d164328f4db8539d43ca65f06db84ea2ae2bdaf0","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                return rs"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            request_spec \u003d kwargs.get(\u0027request_spec\u0027, None)"},{"line_number":78,"context_line":"            request_spec_list \u003d kwargs.get(\u0027request_spec_list\u0027, [])"},{"line_number":79,"context_line":"            if request_spec:"},{"line_number":80,"context_line":"                kwargs.update("},{"line_number":81,"context_line":"                    {\u0027request_spec\u0027: _append_attribute(request_spec)})"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_fb830b03","line":78,"range":{"start_line":78,"start_character":64,"end_line":78,"end_character":66},"in_reply_to":"9f6a8fd7_28a2b79b","updated":"2018-05-02 02:21:20.000000000","message":"Done","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"63da77a50d189c63512abc8ae7d59056a8786c66","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            request_spec \u003d kwargs.get(\u0027request_spec\u0027, None)"},{"line_number":78,"context_line":"            request_spec_list \u003d kwargs.get(\u0027request_spec_list\u0027, [])"},{"line_number":79,"context_line":"            if request_spec:"},{"line_number":80,"context_line":"                kwargs.update("},{"line_number":81,"context_line":"                    {\u0027request_spec\u0027: _append_attribute(request_spec)})"},{"line_number":82,"context_line":"            if request_spec_list:"},{"line_number":83,"context_line":"                kwargs.update("},{"line_number":84,"context_line":"                    {\u0027request_spec_list\u0027:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_489dab55","line":81,"range":{"start_line":80,"start_character":0,"end_line":81,"end_character":70},"updated":"2018-04-30 17:41:39.000000000","message":"-1: Clearer code:\n\n request_spec[\u0027operation\u0027] \u003d func_name","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d164328f4db8539d43ca65f06db84ea2ae2bdaf0","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            request_spec \u003d kwargs.get(\u0027request_spec\u0027, None)"},{"line_number":78,"context_line":"            request_spec_list \u003d kwargs.get(\u0027request_spec_list\u0027, [])"},{"line_number":79,"context_line":"            if request_spec:"},{"line_number":80,"context_line":"                kwargs.update("},{"line_number":81,"context_line":"                    {\u0027request_spec\u0027: _append_attribute(request_spec)})"},{"line_number":82,"context_line":"            if request_spec_list:"},{"line_number":83,"context_line":"                kwargs.update("},{"line_number":84,"context_line":"                    {\u0027request_spec_list\u0027:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_1b87df11","line":81,"range":{"start_line":80,"start_character":0,"end_line":81,"end_character":70},"in_reply_to":"9f6a8fd7_489dab55","updated":"2018-05-02 02:21:20.000000000","message":"Done","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"63da77a50d189c63512abc8ae7d59056a8786c66","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                kwargs.update("},{"line_number":81,"context_line":"                    {\u0027request_spec\u0027: _append_attribute(request_spec)})"},{"line_number":82,"context_line":"            if request_spec_list:"},{"line_number":83,"context_line":"                kwargs.update("},{"line_number":84,"context_line":"                    {\u0027request_spec_list\u0027:"},{"line_number":85,"context_line":"                     [_append_attribute(rs) for rs in request_spec_list]})"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"            return schedule_function(*args, **kwargs)"},{"line_number":88,"context_line":"        return inject_operation_decorator"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_e8c4bf42","line":85,"range":{"start_line":83,"start_character":0,"end_line":85,"end_character":74},"updated":"2018-04-30 17:41:39.000000000","message":"-1: Clearer code that doesn\u0027t create additional list:\n\n for rs in request_spec_list:\n     rs[\u0027request_spec\u0027][\u0027operation\u0027] \u003d func_name","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d164328f4db8539d43ca65f06db84ea2ae2bdaf0","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                kwargs.update("},{"line_number":81,"context_line":"                    {\u0027request_spec\u0027: _append_attribute(request_spec)})"},{"line_number":82,"context_line":"            if request_spec_list:"},{"line_number":83,"context_line":"                kwargs.update("},{"line_number":84,"context_line":"                    {\u0027request_spec_list\u0027:"},{"line_number":85,"context_line":"                     [_append_attribute(rs) for rs in request_spec_list]})"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"            return schedule_function(*args, **kwargs)"},{"line_number":88,"context_line":"        return inject_operation_decorator"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_bb7d931d","line":85,"range":{"start_line":83,"start_character":0,"end_line":85,"end_character":74},"in_reply_to":"9f6a8fd7_e8c4bf42","updated":"2018-05-02 02:21:20.000000000","message":"Done","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1bef3e25ac3b399301d4a9fdf17753f602aed3e9","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        def inject_operation_decorator(*args, **kwargs):"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            def _append_attribute(rs):"},{"line_number":71,"context_line":"                if isinstance(rs, (dict, objects.RequestSpec)):"},{"line_number":72,"context_line":"                    rs[\u0027operation\u0027] \u003d (name if name"},{"line_number":73,"context_line":"                                       else schedule_function.__name__)"},{"line_number":74,"context_line":"                return rs"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_21d769c2","line":71,"updated":"2018-05-03 10:31:59.000000000","message":"?: In which case can this be anything else?","commit_id":"0177c47ea5f03d080f2513db9f5454b971d0e7cd"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"fec6cf2b8570bad3faf89fab45b69a23f846062e","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        def inject_operation_decorator(*args, **kwargs):"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            def _append_attribute(rs):"},{"line_number":71,"context_line":"                if isinstance(rs, (dict, objects.RequestSpec)):"},{"line_number":72,"context_line":"                    rs[\u0027operation\u0027] \u003d (name if name"},{"line_number":73,"context_line":"                                       else schedule_function.__name__)"},{"line_number":74,"context_line":"                return rs"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_38246f0d","line":71,"in_reply_to":"5f7c97a3_21d769c2","updated":"2018-05-04 00:38:36.000000000","message":"It only can be dict or object now, I added this just ensure that the follow code will not raise exception","commit_id":"0177c47ea5f03d080f2513db9f5454b971d0e7cd"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"74b4a2211a8d20a37d105920a58d80cacbdefe40","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        def inject_operation_decorator(*args, **kwargs):"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            def _append_attribute(rs):"},{"line_number":71,"context_line":"                if isinstance(rs, (dict, objects.RequestSpec)):"},{"line_number":72,"context_line":"                    rs[\u0027operation\u0027] \u003d (name if name"},{"line_number":73,"context_line":"                                       else schedule_function.__name__)"},{"line_number":74,"context_line":"                return rs"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_f6b58cef","line":71,"in_reply_to":"5f7c97a3_38246f0d","updated":"2018-05-07 08:42:35.000000000","message":"Since we only support dict and RequestSpec I would prefer not having this code and just raising an exception if at some point change something that makes the specs non dict compatible, that way it\u0027s easier to find the issue, otherwise it will be harder to debug since we\u0027ll only see that the operation is not present.","commit_id":"0177c47ea5f03d080f2513db9f5454b971d0e7cd"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"1bef3e25ac3b399301d4a9fdf17753f602aed3e9","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            def _append_attribute(rs):"},{"line_number":71,"context_line":"                if isinstance(rs, (dict, objects.RequestSpec)):"},{"line_number":72,"context_line":"                    rs[\u0027operation\u0027] \u003d (name if name"},{"line_number":73,"context_line":"                                       else schedule_function.__name__)"},{"line_number":74,"context_line":"                return rs"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"            request_spec \u003d kwargs.get(\u0027request_spec\u0027, None)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_01da6de8","line":73,"range":{"start_line":72,"start_character":38,"end_line":73,"end_character":71},"updated":"2018-05-03 10:31:59.000000000","message":"nit: Since we shouldn\u0027t accept name \u003d \u0027\u0027 we could do:\n\n  rs[\u0027operation\u0027] \u003d name or schedule_function.__name__","commit_id":"0177c47ea5f03d080f2513db9f5454b971d0e7cd"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"fec6cf2b8570bad3faf89fab45b69a23f846062e","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            def _append_attribute(rs):"},{"line_number":71,"context_line":"                if isinstance(rs, (dict, objects.RequestSpec)):"},{"line_number":72,"context_line":"                    rs[\u0027operation\u0027] \u003d (name if name"},{"line_number":73,"context_line":"                                       else schedule_function.__name__)"},{"line_number":74,"context_line":"                return rs"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"            request_spec \u003d kwargs.get(\u0027request_spec\u0027, None)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_d820dbfa","line":73,"range":{"start_line":72,"start_character":38,"end_line":73,"end_character":71},"in_reply_to":"5f7c97a3_01da6de8","updated":"2018-05-04 00:38:36.000000000","message":"Done","commit_id":"0177c47ea5f03d080f2513db9f5454b971d0e7cd"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df42a09b3d0af6048ee326e7bdf83644d418b82f","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            request_spec \u003d kwargs.get(\u0027request_spec\u0027, None)"},{"line_number":71,"context_line":"            request_spec_list \u003d kwargs.get(\u0027request_spec_list\u0027, None)"},{"line_number":72,"context_line":"            if request_spec:"},{"line_number":73,"context_line":"                request_spec[\u0027operation\u0027] \u003d name or schedule_function.__name__"},{"line_number":74,"context_line":"            if request_spec_list:"},{"line_number":75,"context_line":"                for rs in request_spec_list:"},{"line_number":76,"context_line":"                    rs[\u0027operation\u0027] \u003d name or schedule_function.__name__"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_d0d733bf","line":73,"range":{"start_line":73,"start_character":44,"end_line":73,"end_character":78},"updated":"2018-05-07 12:11:45.000000000","message":"nit: we could set the name on a variable earlier so we don\u0027t repeat the operation here and on L76.","commit_id":"e1ec4b4c2e1f0de512f09e38824c1d7e2fa38617"}],"cinder/tests/unit/scheduler/test_scheduler.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"63da77a50d189c63512abc8ae7d59056a8786c66","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            self.context, volume, 2, \u0027fake_reservation\u0027)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    @ddt.data({\u0027key\u0027: \u0027value\u0027},"},{"line_number":142,"context_line":"              objects.RequestSpec(volume_id\u003d\u0027fake_volume\u0027))"},{"line_number":143,"context_line":"    def test_append_operation_decorator(self, rs):"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        @manager.append_operation_type()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_a82a47e4","line":142,"range":{"start_line":142,"start_character":44,"end_line":142,"end_character":57},"updated":"2018-04-30 17:41:39.000000000","message":"-1: This has to be a real UUID to avoid warnings","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d164328f4db8539d43ca65f06db84ea2ae2bdaf0","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            self.context, volume, 2, \u0027fake_reservation\u0027)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    @ddt.data({\u0027key\u0027: \u0027value\u0027},"},{"line_number":142,"context_line":"              objects.RequestSpec(volume_id\u003d\u0027fake_volume\u0027))"},{"line_number":143,"context_line":"    def test_append_operation_decorator(self, rs):"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        @manager.append_operation_type()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_5bd6b729","line":142,"range":{"start_line":142,"start_character":44,"end_line":142,"end_character":57},"in_reply_to":"9f6a8fd7_a82a47e4","updated":"2018-05-02 02:21:20.000000000","message":"Done","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"63da77a50d189c63512abc8ae7d59056a8786c66","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            return request_spec2"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        result1 \u003d _fake_schedule_method1(request_spec\u003drs)"},{"line_number":158,"context_line":"        result2 \u003d _fake_schedule_method1(request_spec\u003drs)"},{"line_number":159,"context_line":"        result3 \u003d _fake_schedule_method3(request_spec2\u003drs)"},{"line_number":160,"context_line":"        self.assertEqual(\u0027_fake_schedule_method1\u0027, result1[\u0027operation\u0027])"},{"line_number":161,"context_line":"        self.assertEqual(\u0027_fake_schedule_method1\u0027, result2[\u0027operation\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_8810a3aa","line":158,"range":{"start_line":158,"start_character":39,"end_line":158,"end_character":40},"updated":"2018-04-30 17:41:39.000000000","message":"-1: 2","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"63da77a50d189c63512abc8ae7d59056a8786c66","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        result2 \u003d _fake_schedule_method1(request_spec\u003drs)"},{"line_number":159,"context_line":"        result3 \u003d _fake_schedule_method3(request_spec2\u003drs)"},{"line_number":160,"context_line":"        self.assertEqual(\u0027_fake_schedule_method1\u0027, result1[\u0027operation\u0027])"},{"line_number":161,"context_line":"        self.assertEqual(\u0027_fake_schedule_method1\u0027, result2[\u0027operation\u0027])"},{"line_number":162,"context_line":"        self.assertEqual(rs, result3)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    @ddt.data([{\u0027key1\u0027: \u0027value1\u0027}, {\u0027key1\u0027: \u0027value2\u0027}],"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_888503d2","line":161,"updated":"2018-04-30 17:41:39.000000000","message":"-1: This isn\u0027t properly testing things, because rs already has that value for operation, so we don\u0027t know if the decorator on method2 has actually done anything.","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d164328f4db8539d43ca65f06db84ea2ae2bdaf0","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        result2 \u003d _fake_schedule_method1(request_spec\u003drs)"},{"line_number":159,"context_line":"        result3 \u003d _fake_schedule_method3(request_spec2\u003drs)"},{"line_number":160,"context_line":"        self.assertEqual(\u0027_fake_schedule_method1\u0027, result1[\u0027operation\u0027])"},{"line_number":161,"context_line":"        self.assertEqual(\u0027_fake_schedule_method1\u0027, result2[\u0027operation\u0027])"},{"line_number":162,"context_line":"        self.assertEqual(rs, result3)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    @ddt.data([{\u0027key1\u0027: \u0027value1\u0027}, {\u0027key1\u0027: \u0027value2\u0027}],"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_3bbc23db","line":161,"in_reply_to":"9f6a8fd7_888503d2","updated":"2018-05-02 02:21:20.000000000","message":"Done","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"}],"releasenotes/notes/add-operation-to-request-spec-7yt6ub75uy1284as.yaml":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"63da77a50d189c63512abc8ae7d59056a8786c66","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Now scheduler plugins are aware of operation type via ``operation`` attribute in"},{"line_number":5,"context_line":"    RequestSpec dictionary, plugins can support filter backend according to backend"},{"line_number":6,"context_line":"    status as well as operation type. The initial options for ``operation`` are:"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    - create_volume"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9f6a8fd7_c8645b4c","line":5,"range":{"start_line":5,"start_character":48,"end_line":5,"end_character":62},"updated":"2018-04-30 17:41:39.000000000","message":"nit: backend filtering","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d164328f4db8539d43ca65f06db84ea2ae2bdaf0","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Now scheduler plugins are aware of operation type via ``operation`` attribute in"},{"line_number":5,"context_line":"    RequestSpec dictionary, plugins can support filter backend according to backend"},{"line_number":6,"context_line":"    status as well as operation type. The initial options for ``operation`` are:"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    - create_volume"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9f6a8fd7_1b2b5f30","line":5,"range":{"start_line":5,"start_character":48,"end_line":5,"end_character":62},"in_reply_to":"9f6a8fd7_c8645b4c","updated":"2018-05-02 02:21:20.000000000","message":"Done","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"63da77a50d189c63512abc8ae7d59056a8786c66","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Now scheduler plugins are aware of operation type via ``operation`` attribute in"},{"line_number":5,"context_line":"    RequestSpec dictionary, plugins can support filter backend according to backend"},{"line_number":6,"context_line":"    status as well as operation type. The initial options for ``operation`` are:"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    - create_volume"},{"line_number":9,"context_line":"    - extend_volume"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9f6a8fd7_885e6374","line":6,"range":{"start_line":6,"start_character":38,"end_line":6,"end_character":57},"updated":"2018-04-30 17:41:39.000000000","message":"nit: Current possible values","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d164328f4db8539d43ca65f06db84ea2ae2bdaf0","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Now scheduler plugins are aware of operation type via ``operation`` attribute in"},{"line_number":5,"context_line":"    RequestSpec dictionary, plugins can support filter backend according to backend"},{"line_number":6,"context_line":"    status as well as operation type. The initial options for ``operation`` are:"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    - create_volume"},{"line_number":9,"context_line":"    - extend_volume"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9f6a8fd7_db1c0715","line":6,"range":{"start_line":6,"start_character":38,"end_line":6,"end_character":57},"in_reply_to":"9f6a8fd7_885e6374","updated":"2018-05-02 02:21:20.000000000","message":"Done","commit_id":"93a7eba7ab74a5980f0f0116847ddc7802ae60d5"}]}
