)]}'
{"ironic/api/controllers/v1/port.py":[{"author":{"_account_id":7369,"name":"Sergey Skripnick","email":"sskripnick@mirantis.com","username":"redixin"},"change_message_id":"0daba01ee7a7f91764ccee0f241eb0fd430fde5a","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            marker_obj \u003d objects.Port.get_by_uuid(pecan.request.context,"},{"line_number":128,"context_line":"                                                  marker)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        if node_id:"},{"line_number":131,"context_line":"            ports \u003d pecan.request.dbapi.get_ports_by_node(node_id, limit,"},{"line_number":132,"context_line":"                                                          marker_obj,"},{"line_number":133,"context_line":"                                                          sort_key\u003dsort_key,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2Fdrc%3D","line":130,"updated":"2013-11-05 13:59:10.000000000","message":"IMO exception should be raised here. Either get_ports_by_node, or add_port_filter_by_node should do this check.\n\nAlso, I\u0027m not sure, but if you pass node instance instead of node_id here, you got proper exception.","commit_id":"d8086297d8eace5d923c52e3b9e198c104279546"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e33cd5b9e1f13350a974b7e65a9e46d2158853f4","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            marker_obj \u003d objects.Port.get_by_uuid(pecan.request.context,"},{"line_number":128,"context_line":"                                                  marker)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        if node_id:"},{"line_number":131,"context_line":"            ports \u003d pecan.request.dbapi.get_ports_by_node(node_id, limit,"},{"line_number":132,"context_line":"                                                          marker_obj,"},{"line_number":133,"context_line":"                                                          sort_key\u003dsort_key,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2FPoc%3D","line":130,"in_reply_to":"AAAATn%2F%2Fdrc%3D","updated":"2013-11-12 11:02:04.000000000","message":"Good point. That def would be a better place to do this check, I\u0027m going to update this patch to reflect ur suggestion. Ta much!","commit_id":"d8086297d8eace5d923c52e3b9e198c104279546"}],"ironic/db/sqlalchemy/api.py":[{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"cdba3f8a4d834a3d149a0fbc40cab5d11a770a6f","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                             sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":195,"context_line":"        chassis \u003d self.get_chassis(chassis_id)"},{"line_number":196,"context_line":"        query \u003d model_query(models.Node)"},{"line_number":197,"context_line":"        query \u003d add_node_filter_by_chassis(query, chassis.id)"},{"line_number":198,"context_line":"        return _paginate_query(models.Node, limit, marker,"},{"line_number":199,"context_line":"                               sort_key, sort_dir, query)"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FPjo%3D","line":197,"updated":"2013-11-12 11:30:12.000000000","message":"query \u003d query.filter_by(chassis_id\u003dchassis.id) only needed here","commit_id":"e19314e8529526ba2a3c031096047b20e2f3c48d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"9837913ca4d89d8bc9af96812977241b4f1e3ccf","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                             sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":195,"context_line":"        chassis \u003d self.get_chassis(chassis_id)"},{"line_number":196,"context_line":"        query \u003d model_query(models.Node)"},{"line_number":197,"context_line":"        query \u003d add_node_filter_by_chassis(query, chassis.id)"},{"line_number":198,"context_line":"        return _paginate_query(models.Node, limit, marker,"},{"line_number":199,"context_line":"                               sort_key, sort_dir, query)"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FPcQ%3D","line":197,"in_reply_to":"AAAATn%2F%2FPjo%3D","updated":"2013-11-12 11:58:50.000000000","message":"good catch, thanks!","commit_id":"e19314e8529526ba2a3c031096047b20e2f3c48d"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"cdba3f8a4d834a3d149a0fbc40cab5d11a770a6f","unresolved":false,"context_lines":[{"line_number":368,"context_line":"                          sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":369,"context_line":"        node \u003d self.get_node(node_id)"},{"line_number":370,"context_line":"        query \u003d model_query(models.Port)"},{"line_number":371,"context_line":"        query \u003d add_port_filter_by_node(query, node.id)"},{"line_number":372,"context_line":"        return _paginate_query(models.Port, limit, marker,"},{"line_number":373,"context_line":"                               sort_key, sort_dir, query)"},{"line_number":374,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FPjE%3D","line":371,"updated":"2013-11-12 11:30:12.000000000","message":"ditto","commit_id":"e19314e8529526ba2a3c031096047b20e2f3c48d"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"ff1c62c8ac2860ca95266c0bb584c9dae9c09055","unresolved":false,"context_lines":[{"line_number":192,"context_line":"    @objects.objectify(objects.Node)"},{"line_number":193,"context_line":"    def get_nodes_by_chassis(self, chassis_id, limit\u003dNone, marker\u003dNone,"},{"line_number":194,"context_line":"                             sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":195,"context_line":"        chassis \u003d self.get_chassis(chassis_id)"},{"line_number":196,"context_line":"        query \u003d model_query(models.Node)"},{"line_number":197,"context_line":"        query \u003d query.filter_by(chassis_id\u003dchassis.id)"},{"line_number":198,"context_line":"        return _paginate_query(models.Node, limit, marker,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEFg%3D","line":195,"updated":"2013-11-14 23:18:08.000000000","message":"This now issues two DB queries, instead of one.\n\nThe purpose of the get_chassis() call is just to raise an exception if the chassis isn\u0027t found. I see the value in it, but could you add a comment explaining why we\u0027re adding an extra db call?","commit_id":"c098f43c17702075a941865aee50ce6720f5ff7f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3ce1b8a53cec7ff151c02a98931e9fbccaeed3b9","unresolved":false,"context_lines":[{"line_number":192,"context_line":"    @objects.objectify(objects.Node)"},{"line_number":193,"context_line":"    def get_nodes_by_chassis(self, chassis_id, limit\u003dNone, marker\u003dNone,"},{"line_number":194,"context_line":"                             sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":195,"context_line":"        chassis \u003d self.get_chassis(chassis_id)"},{"line_number":196,"context_line":"        query \u003d model_query(models.Node)"},{"line_number":197,"context_line":"        query \u003d query.filter_by(chassis_id\u003dchassis.id)"},{"line_number":198,"context_line":"        return _paginate_query(models.Node, limit, marker,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2B8Zc%3D","line":195,"in_reply_to":"AAAATn%2F%2FEFg%3D","updated":"2013-11-18 09:53:10.000000000","message":"Sure thing will do :)\n\nThanks","commit_id":"c098f43c17702075a941865aee50ce6720f5ff7f"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"ff1c62c8ac2860ca95266c0bb584c9dae9c09055","unresolved":false,"context_lines":[{"line_number":366,"context_line":"    @objects.objectify(objects.Port)"},{"line_number":367,"context_line":"    def get_ports_by_node(self, node_id, limit\u003dNone, marker\u003dNone,"},{"line_number":368,"context_line":"                          sort_key\u003dNone, sort_dir\u003dNone):"},{"line_number":369,"context_line":"        node \u003d self.get_node(node_id)"},{"line_number":370,"context_line":"        query \u003d model_query(models.Port)"},{"line_number":371,"context_line":"        query \u003d query.filter_by(node_id\u003dnode.id)"},{"line_number":372,"context_line":"        return _paginate_query(models.Port, limit, marker,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FEFc%3D","line":369,"updated":"2013-11-14 23:18:08.000000000","message":"ditto","commit_id":"c098f43c17702075a941865aee50ce6720f5ff7f"}]}
