)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"5afc8a9231ddc701263680dbae851697a2a3d52a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"dscp: follow up patch"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Switch dscp rule object to a custom dscp enum type field. Avoid"},{"line_number":10,"context_line":"test_base changes to hack around enum limitations."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partial-Bug: #1468353"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1af94dfe_38d0f41e","line":9,"range":{"start_line":9,"start_character":36,"end_line":9,"end_character":40},"updated":"2016-03-17 23:44:41.000000000","message":"s/dscp/DSCP","commit_id":"8acf9510a70b510b2067dafa04e6b9f88597244c"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"5afc8a9231ddc701263680dbae851697a2a3d52a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"dscp: follow up patch"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Switch dscp rule object to a custom dscp enum type field. Avoid"},{"line_number":10,"context_line":"test_base changes to hack around enum limitations."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partial-Bug: #1468353"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1af94dfe_f8b16c02","line":9,"range":{"start_line":9,"start_character":7,"end_line":9,"end_character":11},"updated":"2016-03-17 23:44:41.000000000","message":"s/dscp/QoS DSCP","commit_id":"8acf9510a70b510b2067dafa04e6b9f88597244c"},{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"5afc8a9231ddc701263680dbae851697a2a3d52a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"dscp: follow up patch"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Switch dscp rule object to a custom dscp enum type field. Avoid"},{"line_number":10,"context_line":"test_base changes to hack around enum limitations."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partial-Bug: #1468353"},{"line_number":13,"context_line":"Change-Id: I923f5d26c43f77da25c573aea6208fcc395e5784"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1af94dfe_78471cbc","line":10,"range":{"start_line":9,"start_character":58,"end_line":10,"end_character":49},"updated":"2016-03-17 23:44:41.000000000","message":"Suggest something like: \"This circumvents OVO\u0027s EnumField, which currently does not handle integers correctly.\"","commit_id":"8acf9510a70b510b2067dafa04e6b9f88597244c"}],"neutron/objects/common_types.py":[{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"5afc8a9231ddc701263680dbae851697a2a3d52a","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            msg \u003d _(\"Field value %s is not an integer\") % value"},{"line_number":49,"context_line":"            raise ValueError(msg)"},{"line_number":50,"context_line":"        if value not in self._valid_values:"},{"line_number":51,"context_line":"            msg \u003d _(\"Field value %s is invalid\") % value"},{"line_number":52,"context_line":"            raise ValueError(msg)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def coerce(self, obj, attr, value):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_441fe007","line":51,"range":{"start_line":51,"start_character":39,"end_line":51,"end_character":46},"updated":"2016-03-17 23:44:41.000000000","message":"Because this may be read as, for instance, \"not of the right datatype\", would it be better to say something like \"not in the list of valid values\" or some such?\n\nAlso, can the list of valid values be included in the error message?","commit_id":"8acf9510a70b510b2067dafa04e6b9f88597244c"}],"neutron/objects/qos/rule.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e151d6fea234f2d088e34fa96f95ba8d6bb0ab10","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    db_model \u003d qos_db_model.QosDscpMarkingRule"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    fields \u003d {"},{"line_number":107,"context_line":"        DSCP_MARK: common_types.DscpMarkField(nullable\u003dFalse),"},{"line_number":108,"context_line":"    }"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    rule_type \u003d qos_consts.RULE_TYPE_DSCP_MARK"}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_fe467979","line":107,"range":{"start_line":107,"start_character":46,"end_line":107,"end_character":60},"updated":"2016-03-17 22:08:14.000000000","message":"btw I think nullable\u003dFalse is default, could be removed.","commit_id":"8acf9510a70b510b2067dafa04e6b9f88597244c"}],"neutron/objects/qos/rule_type.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ba4b85c6f8424210d6d310182b367a4ffc838034","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    # Version 1.1: Added DscpMarkingRule"},{"line_number":33,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    #TODO(davidsha) add obj_make_compatible and associated tests."},{"line_number":36,"context_line":"    fields \u003d {"},{"line_number":37,"context_line":"        \u0027type\u0027: RuleTypeField(),"},{"line_number":38,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_bebcf1bb","line":35,"updated":"2016-03-17 22:05:30.000000000","message":"I return TODO here since it\u0027s not handled.","commit_id":"8acf9510a70b510b2067dafa04e6b9f88597244c"}],"neutron/tests/unit/objects/qos/test_rule.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ba4b85c6f8424210d6d310182b367a4ffc838034","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def setUp(self):"},{"line_number":100,"context_line":"        super(QosDscpMarkingRuleDbObjectTestCase, self).setUp()"},{"line_number":101,"context_line":"        # Prepare policy to be able to insert a rule"},{"line_number":102,"context_line":"        generated_qos_policy_id \u003d self.db_obj[\u0027qos_policy_id\u0027]"},{"line_number":103,"context_line":"        policy_obj \u003d policy.QosPolicy(self.context,"},{"line_number":104,"context_line":"                                      id\u003dgenerated_qos_policy_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_5ed32d04","line":101,"updated":"2016-03-17 22:05:30.000000000","message":"note that this is identical to lines 82...86. There is probably place to DRY.","commit_id":"8acf9510a70b510b2067dafa04e6b9f88597244c"}],"neutron/tests/unit/objects/test_base.py":[{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"9d938157fc724106c341ca89e6e016741eb41987","unresolved":false,"context_lines":[{"line_number":193,"context_line":"    obj_fields.BooleanField: tools.get_random_boolean,"},{"line_number":194,"context_line":"    obj_fields.IntegerField: tools.get_random_integer,"},{"line_number":195,"context_line":"    obj_fields.StringField: tools.get_random_string,"},{"line_number":196,"context_line":"    obj_fields.UUIDField: uuidutils.generate_uuid,"},{"line_number":197,"context_line":"    obj_fields.ListOfObjectsField: lambda: [],"},{"line_number":198,"context_line":"    common_types.DscpMarkField: get_random_dscp_mark,"},{"line_number":199,"context_line":"}"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_d13d6bde","line":198,"range":{"start_line":196,"start_character":4,"end_line":198,"end_character":53},"updated":"2016-03-18 02:00:39.000000000","message":"obj_fields.ObjectField has been removed.  Is this intentional?","commit_id":"a3b9d1fd36af8a21ded30a2bd07a717d5744f41c"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"3e6d38490adb784df00846c69003c84d906f6bb3","unresolved":false,"context_lines":[{"line_number":193,"context_line":"    obj_fields.BooleanField: tools.get_random_boolean,"},{"line_number":194,"context_line":"    obj_fields.IntegerField: tools.get_random_integer,"},{"line_number":195,"context_line":"    obj_fields.StringField: tools.get_random_string,"},{"line_number":196,"context_line":"    obj_fields.UUIDField: uuidutils.generate_uuid,"},{"line_number":197,"context_line":"    obj_fields.ListOfObjectsField: lambda: [],"},{"line_number":198,"context_line":"    common_types.DscpMarkField: get_random_dscp_mark,"},{"line_number":199,"context_line":"}"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_bbf7d157","line":198,"range":{"start_line":196,"start_character":4,"end_line":198,"end_character":53},"in_reply_to":"1af94dfe_d13d6bde","updated":"2016-03-18 09:05:44.000000000","message":"good catch","commit_id":"a3b9d1fd36af8a21ded30a2bd07a717d5744f41c"}],"neutron/tests/unit/objects/test_common_types.py":[{"author":{"_account_id":17711,"name":"Margaret Frances","email":"margaret_frances@cable.comcast.com","username":"margaret-frances"},"change_message_id":"5afc8a9231ddc701263680dbae851697a2a3d52a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from neutron.tests import base as test_base"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class TestField(object):"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_coerce_good_values(self):"},{"line_number":22,"context_line":"        for in_val, out_val in self.coerce_good_values:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_18953886","line":19,"range":{"start_line":19,"start_character":6,"end_line":19,"end_character":15},"updated":"2016-03-17 23:44:41.000000000","message":"Should test_stringify() remain in this class as an abstract method?","commit_id":"8acf9510a70b510b2067dafa04e6b9f88597244c"}]}
