)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"20c49c132620429440dff2962ea2d8da62fbeead","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add CellMapping.get_by_project_id() query method"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This allows us to query for CellMapping objects by providing a project_id."},{"line_number":10,"context_line":"We get back a list of cells that the project has InstanceMappings for."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I40b866dcba5f3665eb40011afe65638184aae9c6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5f7c97a3_eaa7b8a6","line":10,"range":{"start_line":10,"start_character":66,"end_line":10,"end_character":69},"updated":"2018-05-08 18:57:37.000000000","message":"preposition violation!","commit_id":"7c063a7db6a1ac78bc0053909be836b6bf4ac600"}],"nova/objects/cell_mapping.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"38e02b1ee345d6a6b7d6cc09c61f72208c4e7f8f","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            project_id\u003dproject_id).group_by("},{"line_number":145,"context_line":"                api_models.InstanceMapping.cell_id).all()"},{"line_number":146,"context_line":"        return [mapping.cell_mapping for mapping in mappings"},{"line_number":147,"context_line":"                if mapping.cell_mapping is not None]"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    @classmethod"},{"line_number":150,"context_line":"    def get_by_project_id(cls, context, project_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f4e5783_96665a29","line":147,"range":{"start_line":147,"start_character":16,"end_line":147,"end_character":51},"updated":"2017-10-11 17:15:02.000000000","message":"Can we build this into the db query?","commit_id":"adb7bd9da83900492c55b905cfd7006d26f17097"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e9a4105318fd716b830dba421a4981ecdb53d63d","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            project_id\u003dproject_id).group_by("},{"line_number":145,"context_line":"                api_models.InstanceMapping.cell_id).all()"},{"line_number":146,"context_line":"        return [mapping.cell_mapping for mapping in mappings"},{"line_number":147,"context_line":"                if mapping.cell_mapping is not None]"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    @classmethod"},{"line_number":150,"context_line":"    def get_by_project_id(cls, context, project_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f4e5783_1c84c9b0","line":147,"range":{"start_line":147,"start_character":16,"end_line":147,"end_character":51},"in_reply_to":"5f4e5783_96665a29","updated":"2017-10-11 18:24:00.000000000","message":"Yes, but I\u0027m not sure it will save us much since we still have to iterate the result. The result will have the same size as max(0, NUMBER_OF_CELLS) + 1, so it shouldn\u0027t be very large.\n\nBut, while changing it to do this, I realized that we\u0027re not joinedload\u0027ing cell_mapping, so we\u0027re actually doing a bunch of lazy loads here. Fixed.","commit_id":"adb7bd9da83900492c55b905cfd7006d26f17097"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1934e8fe6e029f78264a60fb0947dd9b953dad65","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        mappings \u003d context.session.query("},{"line_number":146,"context_line":"            api_models.InstanceMapping).\\"},{"line_number":147,"context_line":"            filter_by(project_id\u003dproject_id).\\"},{"line_number":148,"context_line":"            filter(api_models.InstanceMapping.cell_mapping !\u003d null()).\\"},{"line_number":149,"context_line":"            group_by(api_models.InstanceMapping.cell_id).\\"},{"line_number":150,"context_line":"            options(joinedload(\u0027cell_mapping\u0027)).\\"},{"line_number":151,"context_line":"            all()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_f7a5a6b6","line":148,"range":{"start_line":148,"start_character":12,"end_line":148,"end_character":71},"updated":"2017-10-19 08:24:48.000000000","message":"TIL that \u0027filter_by(x\u003dy)\u0027 is syntactic sugar for \u0027filter(model.x\u003d\u003dy)\u0027","commit_id":"c31fde45c81e15aefccfef457cb12120c39e47d0"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"69f4c22685b690e1c107dddf9d0f13fd1e4c27cb","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        mappings \u003d context.session.query("},{"line_number":146,"context_line":"            api_models.InstanceMapping).\\"},{"line_number":147,"context_line":"            filter_by(project_id\u003dproject_id).\\"},{"line_number":148,"context_line":"            filter(api_models.InstanceMapping.cell_mapping !\u003d null()).\\"},{"line_number":149,"context_line":"            group_by(api_models.InstanceMapping.cell_id).\\"},{"line_number":150,"context_line":"            options(joinedload(\u0027cell_mapping\u0027)).\\"},{"line_number":151,"context_line":"            all()"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_d92f78f4","line":148,"range":{"start_line":148,"start_character":12,"end_line":148,"end_character":71},"in_reply_to":"3f4b6375_f7a5a6b6","updated":"2017-10-19 14:12:17.000000000","message":"yup.","commit_id":"c31fde45c81e15aefccfef457cb12120c39e47d0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1934e8fe6e029f78264a60fb0947dd9b953dad65","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            filter_by(project_id\u003dproject_id).\\"},{"line_number":148,"context_line":"            filter(api_models.InstanceMapping.cell_mapping !\u003d null()).\\"},{"line_number":149,"context_line":"            group_by(api_models.InstanceMapping.cell_id).\\"},{"line_number":150,"context_line":"            options(joinedload(\u0027cell_mapping\u0027)).\\"},{"line_number":151,"context_line":"            all()"},{"line_number":152,"context_line":"        return (mapping.cell_mapping for mapping in mappings)"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_5777da3b","line":150,"range":{"start_line":150,"start_character":12,"end_line":150,"end_character":49},"updated":"2017-10-19 08:24:48.000000000","message":"And I\u0027m guessing this is here so we don\u0027t lazy load each cell_mapping object on L152 below?","commit_id":"c31fde45c81e15aefccfef457cb12120c39e47d0"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"69f4c22685b690e1c107dddf9d0f13fd1e4c27cb","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            filter_by(project_id\u003dproject_id).\\"},{"line_number":148,"context_line":"            filter(api_models.InstanceMapping.cell_mapping !\u003d null()).\\"},{"line_number":149,"context_line":"            group_by(api_models.InstanceMapping.cell_id).\\"},{"line_number":150,"context_line":"            options(joinedload(\u0027cell_mapping\u0027)).\\"},{"line_number":151,"context_line":"            all()"},{"line_number":152,"context_line":"        return (mapping.cell_mapping for mapping in mappings)"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_99390043","line":150,"range":{"start_line":150,"start_character":12,"end_line":150,"end_character":49},"in_reply_to":"3f4b6375_5777da3b","updated":"2017-10-19 14:12:17.000000000","message":"Yup :)","commit_id":"c31fde45c81e15aefccfef457cb12120c39e47d0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"634eab436f2653863a2129e34d183aaf25f0007e","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            filter_by(project_id\u003dproject_id).\\"},{"line_number":148,"context_line":"            filter(api_models.InstanceMapping.cell_mapping !\u003d null()).\\"},{"line_number":149,"context_line":"            group_by(api_models.InstanceMapping.cell_id).\\"},{"line_number":150,"context_line":"            options(joinedload(\u0027cell_mapping\u0027)).\\"},{"line_number":151,"context_line":"            all()"},{"line_number":152,"context_line":"        return (mapping.cell_mapping for mapping in mappings)"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_c7653547","line":150,"range":{"start_line":150,"start_character":12,"end_line":150,"end_character":49},"in_reply_to":"3f4b6375_99390043","updated":"2017-10-20 14:12:55.000000000","message":"Yay, Stephen did good. I\u0027m going to keep to +1 given that I\u0027m still asking these kinds of question :)","commit_id":"c31fde45c81e15aefccfef457cb12120c39e47d0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4ddf1666045536ccd7e502e8eb7fec90ced5338e","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        mappings \u003d context.session.query("},{"line_number":175,"context_line":"            api_models.InstanceMapping).\\"},{"line_number":176,"context_line":"            filter_by(project_id\u003dproject_id).\\"},{"line_number":177,"context_line":"            filter(api_models.InstanceMapping.cell_mapping !\u003d null()).\\"},{"line_number":178,"context_line":"            group_by(api_models.InstanceMapping.cell_id).\\"},{"line_number":179,"context_line":"            options(joinedload(\u0027cell_mapping\u0027)).\\"},{"line_number":180,"context_line":"            all()"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_979bd1c7","line":177,"range":{"start_line":177,"start_character":12,"end_line":177,"end_character":71},"updated":"2018-05-08 17:44:07.000000000","message":"FYI, you can remove this filter if you did this on line 179:\n\n options(joinedload(\u0027cell_mapping\u0027, innerjoin\u003dTrue)).\\","commit_id":"7c063a7db6a1ac78bc0053909be836b6bf4ac600"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f6f8f45877ebc674837e725d62ae8a0262a42f59","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        mappings \u003d context.session.query("},{"line_number":175,"context_line":"            api_models.InstanceMapping).\\"},{"line_number":176,"context_line":"            filter_by(project_id\u003dproject_id).\\"},{"line_number":177,"context_line":"            filter(api_models.InstanceMapping.cell_mapping !\u003d null()).\\"},{"line_number":178,"context_line":"            group_by(api_models.InstanceMapping.cell_id).\\"},{"line_number":179,"context_line":"            options(joinedload(\u0027cell_mapping\u0027)).\\"},{"line_number":180,"context_line":"            all()"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_ef17b350","line":177,"range":{"start_line":177,"start_character":12,"end_line":177,"end_character":71},"in_reply_to":"5f7c97a3_979bd1c7","updated":"2018-05-09 15:18:39.000000000","message":"Ah, thanks.","commit_id":"7c063a7db6a1ac78bc0053909be836b6bf4ac600"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c0745b1f880b68fd2c774ff6f22745808c9331b0","unresolved":false,"context_lines":[{"line_number":174,"context_line":"            api_models.InstanceMapping).\\"},{"line_number":175,"context_line":"            filter_by(project_id\u003dproject_id).\\"},{"line_number":176,"context_line":"            group_by(api_models.InstanceMapping.cell_id).\\"},{"line_number":177,"context_line":"            options(joinedload(\u0027cell_mapping\u0027, innerjoin\u003dTrue)).\\"},{"line_number":178,"context_line":"            all()"},{"line_number":179,"context_line":"        return (mapping.cell_mapping for mapping in mappings)"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5f7c97a3_5ec5375a","line":177,"range":{"start_line":177,"start_character":47,"end_line":177,"end_character":61},"updated":"2018-05-09 18:03:35.000000000","message":"bueno.","commit_id":"a084a103b81918a07b1d9be0c3cd70fd7a2ea58e"}],"nova/tests/functional/db/test_cell_mapping.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"20c49c132620429440dff2962ea2d8da62fbeead","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def test_get_by_project_id(self):"},{"line_number":124,"context_line":"        ctxt \u003d context.RequestContext()"},{"line_number":125,"context_line":"        cell1 \u003d objects.CellMapping.get_by_uuid(ctxt, create_mapping().uuid)"},{"line_number":126,"context_line":"        cell2 \u003d objects.CellMapping.get_by_uuid(ctxt, create_mapping().uuid)"},{"line_number":127,"context_line":"        cell3 \u003d objects.CellMapping.get_by_uuid(ctxt, create_mapping().uuid)"},{"line_number":128,"context_line":"        cells \u003d [cell1, cell2, cell3]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_2a68501f","line":125,"range":{"start_line":125,"start_character":36,"end_line":125,"end_character":47},"updated":"2018-05-08 18:57:37.000000000","message":"This is weird, why don\u0027t you just have:\n\ncell1 \u003d create_mapping()?","commit_id":"7c063a7db6a1ac78bc0053909be836b6bf4ac600"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8ce7c4c048b9bf4c63176147c3ddeb1b26c595fb","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def test_get_by_project_id(self):"},{"line_number":124,"context_line":"        ctxt \u003d context.RequestContext()"},{"line_number":125,"context_line":"        cell1 \u003d objects.CellMapping.get_by_uuid(ctxt, create_mapping().uuid)"},{"line_number":126,"context_line":"        cell2 \u003d objects.CellMapping.get_by_uuid(ctxt, create_mapping().uuid)"},{"line_number":127,"context_line":"        cell3 \u003d objects.CellMapping.get_by_uuid(ctxt, create_mapping().uuid)"},{"line_number":128,"context_line":"        cells \u003d [cell1, cell2, cell3]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_be9262f5","line":125,"range":{"start_line":125,"start_character":36,"end_line":125,"end_character":47},"in_reply_to":"5f7c97a3_2a68501f","updated":"2018-05-08 22:04:13.000000000","message":"Because create_mapping() returns a db obejct, not an objects.CellMapping?","commit_id":"7c063a7db6a1ac78bc0053909be836b6bf4ac600"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"20c49c132620429440dff2962ea2d8da62fbeead","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        for i in range(0, 5):"},{"line_number":132,"context_line":"            uuid \u003d uuidutils.generate_uuid()"},{"line_number":133,"context_line":"            im \u003d objects.InstanceMapping(context\u003dctxt,"},{"line_number":134,"context_line":"                                          instance_uuid\u003duuid,"},{"line_number":135,"context_line":"                                          cell_mapping\u003dcell1,"},{"line_number":136,"context_line":"                                          project_id\u003d\u0027proj1\u0027)"},{"line_number":137,"context_line":"            im.create()"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_ea71f80d","line":134,"range":{"start_line":134,"start_character":41,"end_line":134,"end_character":42},"updated":"2018-05-08 18:57:37.000000000","message":"alignment","commit_id":"7c063a7db6a1ac78bc0053909be836b6bf4ac600"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"20c49c132620429440dff2962ea2d8da62fbeead","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            uuid \u003d uuidutils.generate_uuid()"},{"line_number":142,"context_line":"            cell \u003d cells[i % 2]"},{"line_number":143,"context_line":"            im \u003d objects.InstanceMapping(context\u003dctxt,"},{"line_number":144,"context_line":"                                          instance_uuid\u003duuid,"},{"line_number":145,"context_line":"                                          cell_mapping\u003dcell,"},{"line_number":146,"context_line":"                                          project_id\u003d\u0027proj2\u0027)"},{"line_number":147,"context_line":"            im.create()"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_8a62c43d","line":144,"range":{"start_line":144,"start_character":41,"end_line":144,"end_character":43},"updated":"2018-05-08 18:57:37.000000000","message":"same","commit_id":"7c063a7db6a1ac78bc0053909be836b6bf4ac600"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"20c49c132620429440dff2962ea2d8da62fbeead","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                                          project_id\u003d\u0027proj2\u0027)"},{"line_number":147,"context_line":"            im.create()"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        # One mapping has no cell because it\u0027s a BuildRequest"},{"line_number":150,"context_line":"        im \u003d objects.InstanceMapping(context\u003dctxt,"},{"line_number":151,"context_line":"                                     instance_uuid\u003duuidutils.generate_uuid(),"},{"line_number":152,"context_line":"                                     cell_mapping\u003dNone,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_6ad408be","line":149,"range":{"start_line":149,"start_character":34,"end_line":149,"end_character":61},"updated":"2018-05-08 18:57:37.000000000","message":"This can\u0027t really happen, we don\u0027t create empty InstanceMappings. But I guess you\u0027re just testing some logic in the query code?","commit_id":"7c063a7db6a1ac78bc0053909be836b6bf4ac600"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8ce7c4c048b9bf4c63176147c3ddeb1b26c595fb","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                                          project_id\u003d\u0027proj2\u0027)"},{"line_number":147,"context_line":"            im.create()"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        # One mapping has no cell because it\u0027s a BuildRequest"},{"line_number":150,"context_line":"        im \u003d objects.InstanceMapping(context\u003dctxt,"},{"line_number":151,"context_line":"                                     instance_uuid\u003duuidutils.generate_uuid(),"},{"line_number":152,"context_line":"                                     cell_mapping\u003dNone,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_7ebe0a66","line":149,"range":{"start_line":149,"start_character":34,"end_line":149,"end_character":61},"in_reply_to":"5f7c97a3_6ad408be","updated":"2018-05-08 22:04:13.000000000","message":"This is left-over from when the buildrequest patch was underneath this, I\u0027ll remove.","commit_id":"7c063a7db6a1ac78bc0053909be836b6bf4ac600"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ada9fb1198253cb6b1ae8ec0cac9c050c600aca9","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                                          project_id\u003d\u0027proj2\u0027)"},{"line_number":147,"context_line":"            im.create()"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        # One mapping has no cell because it\u0027s a BuildRequest"},{"line_number":150,"context_line":"        im \u003d objects.InstanceMapping(context\u003dctxt,"},{"line_number":151,"context_line":"                                     instance_uuid\u003duuidutils.generate_uuid(),"},{"line_number":152,"context_line":"                                     cell_mapping\u003dNone,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_b237e4e3","line":149,"range":{"start_line":149,"start_character":34,"end_line":149,"end_character":61},"in_reply_to":"5f7c97a3_7ebe0a66","updated":"2018-05-09 15:22:42.000000000","message":"Actually, I was mistaken, this helps us verify the query at least yeah. And since I\u0027m changing it to jay\u0027s magic innerjoin, I better leave this.","commit_id":"7c063a7db6a1ac78bc0053909be836b6bf4ac600"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6d75169cdc15cfb4d3189691b01f96a9455ddffe","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                                          project_id\u003d\u0027proj2\u0027)"},{"line_number":147,"context_line":"            im.create()"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        # One mapping has no cell because it\u0027s a BuildRequest"},{"line_number":150,"context_line":"        im \u003d objects.InstanceMapping(context\u003dctxt,"},{"line_number":151,"context_line":"                                     instance_uuid\u003duuidutils.generate_uuid(),"},{"line_number":152,"context_line":"                                     cell_mapping\u003dNone,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_e4633f41","line":149,"range":{"start_line":149,"start_character":34,"end_line":149,"end_character":61},"in_reply_to":"5f7c97a3_b237e4e3","updated":"2018-05-10 14:18:14.000000000","message":"OK, changing the comment would be good, like, \"this really shouldn\u0027t happen but we do this to test the query logic.\"","commit_id":"7c063a7db6a1ac78bc0053909be836b6bf4ac600"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"20c49c132620429440dff2962ea2d8da62fbeead","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        # a single mapping for it"},{"line_number":158,"context_line":"        cells \u003d objects.CellMappingList.get_by_project_id(ctxt, \u0027proj1\u0027)"},{"line_number":159,"context_line":"        self.assertEqual(1, len(cells))"},{"line_number":160,"context_line":"        self.assertEqual(cell1.uuid, cells[0].uuid)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        cells \u003d objects.CellMappingList.get_by_project_id(ctxt, \u0027proj2\u0027)"},{"line_number":163,"context_line":"        self.assertEqual(2, len(cells))"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_2ad610c5","line":160,"range":{"start_line":160,"start_character":37,"end_line":160,"end_character":45},"updated":"2018-05-08 18:57:37.000000000","message":"nit: cell1","commit_id":"7c063a7db6a1ac78bc0053909be836b6bf4ac600"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ada9fb1198253cb6b1ae8ec0cac9c050c600aca9","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        # a single mapping for it"},{"line_number":158,"context_line":"        cells \u003d objects.CellMappingList.get_by_project_id(ctxt, \u0027proj1\u0027)"},{"line_number":159,"context_line":"        self.assertEqual(1, len(cells))"},{"line_number":160,"context_line":"        self.assertEqual(cell1.uuid, cells[0].uuid)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        cells \u003d objects.CellMappingList.get_by_project_id(ctxt, \u0027proj2\u0027)"},{"line_number":163,"context_line":"        self.assertEqual(2, len(cells))"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_d2570002","line":160,"range":{"start_line":160,"start_character":37,"end_line":160,"end_character":45},"in_reply_to":"5f7c97a3_2ad610c5","updated":"2018-05-09 15:22:42.000000000","message":"Um, what? I\u0027m comparing existing (cell1.uuid) to what I pulled out in cells.","commit_id":"7c063a7db6a1ac78bc0053909be836b6bf4ac600"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6d75169cdc15cfb4d3189691b01f96a9455ddffe","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        # a single mapping for it"},{"line_number":158,"context_line":"        cells \u003d objects.CellMappingList.get_by_project_id(ctxt, \u0027proj1\u0027)"},{"line_number":159,"context_line":"        self.assertEqual(1, len(cells))"},{"line_number":160,"context_line":"        self.assertEqual(cell1.uuid, cells[0].uuid)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        cells \u003d objects.CellMappingList.get_by_project_id(ctxt, \u0027proj2\u0027)"},{"line_number":163,"context_line":"        self.assertEqual(2, len(cells))"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_c485e3d0","line":160,"range":{"start_line":160,"start_character":37,"end_line":160,"end_character":45},"in_reply_to":"5f7c97a3_d2570002","updated":"2018-05-10 14:18:14.000000000","message":"Oops, yeah, sorry. Please don\u0027t hate me.","commit_id":"7c063a7db6a1ac78bc0053909be836b6bf4ac600"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6b90b10b06fcc91e02e11e0adc38d2470378a5e4","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                                         project_id\u003d\u0027proj2\u0027)"},{"line_number":147,"context_line":"            im.create()"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        # One mapping has no cell because it\u0027s a BuildRequest"},{"line_number":150,"context_line":"        im \u003d objects.InstanceMapping(context\u003dctxt,"},{"line_number":151,"context_line":"                                     instance_uuid\u003duuidutils.generate_uuid(),"},{"line_number":152,"context_line":"                                     cell_mapping\u003dNone,"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f7c97a3_24e297a1","line":149,"range":{"start_line":149,"start_character":8,"end_line":149,"end_character":61},"updated":"2018-05-10 14:19:40.000000000","message":"I\u0027d like for this comment to be updated to point out that this isn\u0027t something that should really happen but it\u0027s setup this way to test the innerjoin query logic.","commit_id":"a084a103b81918a07b1d9be0c3cd70fd7a2ea58e"}]}
