)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e3576c2263f1afdfee955ee57bc3192f36f8f69d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5754e679_be5dd56e","updated":"2023-02-02 22:40:10.000000000","message":"Overall, LGTM, but we may want to revise this.","commit_id":"5058675271b3bcaedb960475182c8fb2fe678d05"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"6092811c87b1f0a02d2ecccc26a1bff2b388e08f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"587f09c6_6cce239c","updated":"2023-02-13 22:31:28.000000000","message":"recheck metalsmith job timeout appears infrastructural\n","commit_id":"28167f18f85823d97a12460b6ba4a724b5e27486"}],"ironic/db/sqlalchemy/api.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e3576c2263f1afdfee955ee57bc3192f36f8f69d","unresolved":true,"context_lines":[{"line_number":973,"context_line":"        with _session_for_read() as session:"},{"line_number":974,"context_line":"            query \u003d session.query(models.Port).filter("},{"line_number":975,"context_line":"                models.Port.node_id.in_(shard_node_ids))"},{"line_number":976,"context_line":"        return _paginate_query("},{"line_number":977,"context_line":"            models.Port, limit, marker, sort_key, sort_dir, query)"},{"line_number":978,"context_line":""},{"line_number":979,"context_line":"    def get_ports_by_node_id(self, node_id, limit\u003dNone, marker\u003dNone,"},{"line_number":980,"context_line":"                             sort_key\u003dNone, sort_dir\u003dNone, owner\u003dNone,"}],"source_content_type":"text/x-python","patch_set":3,"id":"abcb00e0_5be0a380","line":977,"range":{"start_line":976,"start_character":0,"end_line":977,"end_character":66},"updated":"2023-02-02 22:40:10.000000000","message":"This *might* be problematic in that your setting a query with a connection to the db, exiting the session for read, and then attempting to run the query again via _paginate_query.... I\u0027d nest the return over, or run the _paginate_query call, hand it off to a variable, and then return the variable after returning from _session_for_read().\n\nI *suspect* this would actually bind up when we remove autocommit for sqlalchemy 2.0... eventually.","commit_id":"5058675271b3bcaedb960475182c8fb2fe678d05"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"8c1d86680e0ab3b13b134f89768423d17157be47","unresolved":false,"context_lines":[{"line_number":973,"context_line":"        with _session_for_read() as session:"},{"line_number":974,"context_line":"            query \u003d session.query(models.Port).filter("},{"line_number":975,"context_line":"                models.Port.node_id.in_(shard_node_ids))"},{"line_number":976,"context_line":"        return _paginate_query("},{"line_number":977,"context_line":"            models.Port, limit, marker, sort_key, sort_dir, query)"},{"line_number":978,"context_line":""},{"line_number":979,"context_line":"    def get_ports_by_node_id(self, node_id, limit\u003dNone, marker\u003dNone,"},{"line_number":980,"context_line":"                             sort_key\u003dNone, sort_dir\u003dNone, owner\u003dNone,"}],"source_content_type":"text/x-python","patch_set":3,"id":"e6bd8782_c0c0a95a","line":977,"range":{"start_line":976,"start_character":0,"end_line":977,"end_character":66},"in_reply_to":"abcb00e0_5be0a380","updated":"2023-02-03 21:53:39.000000000","message":"Done","commit_id":"5058675271b3bcaedb960475182c8fb2fe678d05"}],"ironic/objects/port.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e3576c2263f1afdfee955ee57bc3192f36f8f69d","unresolved":true,"context_lines":[{"line_number":311,"context_line":"        :param marker: pagination marker for large data sets."},{"line_number":312,"context_line":"        :param sort_key: column to sort results by."},{"line_number":313,"context_line":"        :param sort_dir: direction to sort. \"asc\" or \"desc\"."},{"line_number":314,"context_line":"        :param owner: DEPRECATED a node owner to match against"},{"line_number":315,"context_line":"        :param project: a node owner or lessee to match against"},{"line_number":316,"context_line":"        :returns: a list of :class:`Port` object."},{"line_number":317,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9d60e6ad_68728c6c","line":314,"updated":"2023-02-02 22:40:10.000000000","message":"Umm, if it is deprecated, why have it in this? Why not just project?","commit_id":"5058675271b3bcaedb960475182c8fb2fe678d05"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"66a0df5bd2b4e6151f0e9ffa6baeb30c6e7b9651","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        :param marker: pagination marker for large data sets."},{"line_number":312,"context_line":"        :param sort_key: column to sort results by."},{"line_number":313,"context_line":"        :param sort_dir: direction to sort. \"asc\" or \"desc\"."},{"line_number":314,"context_line":"        :param owner: DEPRECATED a node owner to match against"},{"line_number":315,"context_line":"        :param project: a node owner or lessee to match against"},{"line_number":316,"context_line":"        :returns: a list of :class:`Port` object."},{"line_number":317,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7441a506_7670ab8a","line":314,"in_reply_to":"1ae0fed9_7beccf6c","updated":"2023-02-03 22:17:23.000000000","message":"Thanks","commit_id":"5058675271b3bcaedb960475182c8fb2fe678d05"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"8c1d86680e0ab3b13b134f89768423d17157be47","unresolved":true,"context_lines":[{"line_number":311,"context_line":"        :param marker: pagination marker for large data sets."},{"line_number":312,"context_line":"        :param sort_key: column to sort results by."},{"line_number":313,"context_line":"        :param sort_dir: direction to sort. \"asc\" or \"desc\"."},{"line_number":314,"context_line":"        :param owner: DEPRECATED a node owner to match against"},{"line_number":315,"context_line":"        :param project: a node owner or lessee to match against"},{"line_number":316,"context_line":"        :returns: a list of :class:`Port` object."},{"line_number":317,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae0fed9_7beccf6c","line":314,"in_reply_to":"9d60e6ad_68728c6c","updated":"2023-02-03 21:53:39.000000000","message":"leftover from copy+paste, going to remove","commit_id":"5058675271b3bcaedb960475182c8fb2fe678d05"}],"ironic/tests/unit/db/test_ports.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e3576c2263f1afdfee955ee57bc3192f36f8f69d","unresolved":true,"context_lines":[{"line_number":231,"context_line":"        self.assertEqual(\u0027port-shard1\u0027, res[0].name)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def test_get_ports_by_shard_with_match_multi(self):"},{"line_number":234,"context_line":"        _create_test_port_with_shard(\u0027shard1\u0027, \u0027aa:bb:cc:dd:ee:ff\u0027)"},{"line_number":235,"context_line":"        _create_test_port_with_shard(\u0027shard2\u0027, \u0027ab:bb:cc:dd:ee:ff\u0027)"},{"line_number":236,"context_line":"        _create_test_port_with_shard(\u0027shard3\u0027, \u0027ac:bb:cc:dd:ee:ff\u0027)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        res \u003d self.dbapi.get_ports_by_shards([\u0027shard1\u0027, \u0027shard2\u0027])"},{"line_number":239,"context_line":"        self.assertEqual(2, len(res))"}],"source_content_type":"text/x-python","patch_set":3,"id":"1c092287_39193cd4","line":236,"range":{"start_line":234,"start_character":0,"end_line":236,"end_character":67},"updated":"2023-02-02 22:40:10.000000000","message":"I would expect this to fail if the tests were run against mysql, since the address field is supposed to be unique.\n\nf1, f2, f3 ;)\n\nThat being said, it doesn\u0027t which is also surprising.","commit_id":"5058675271b3bcaedb960475182c8fb2fe678d05"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"8c1d86680e0ab3b13b134f89768423d17157be47","unresolved":true,"context_lines":[{"line_number":231,"context_line":"        self.assertEqual(\u0027port-shard1\u0027, res[0].name)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def test_get_ports_by_shard_with_match_multi(self):"},{"line_number":234,"context_line":"        _create_test_port_with_shard(\u0027shard1\u0027, \u0027aa:bb:cc:dd:ee:ff\u0027)"},{"line_number":235,"context_line":"        _create_test_port_with_shard(\u0027shard2\u0027, \u0027ab:bb:cc:dd:ee:ff\u0027)"},{"line_number":236,"context_line":"        _create_test_port_with_shard(\u0027shard3\u0027, \u0027ac:bb:cc:dd:ee:ff\u0027)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        res \u003d self.dbapi.get_ports_by_shards([\u0027shard1\u0027, \u0027shard2\u0027])"},{"line_number":239,"context_line":"        self.assertEqual(2, len(res))"}],"source_content_type":"text/x-python","patch_set":3,"id":"2b678eaf_efcb4871","line":236,"range":{"start_line":234,"start_character":0,"end_line":236,"end_character":67},"in_reply_to":"1c092287_39193cd4","updated":"2023-02-03 21:53:39.000000000","message":"I iterated the first, not the last, hex pair :)","commit_id":"5058675271b3bcaedb960475182c8fb2fe678d05"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"66a0df5bd2b4e6151f0e9ffa6baeb30c6e7b9651","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        self.assertEqual(\u0027port-shard1\u0027, res[0].name)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def test_get_ports_by_shard_with_match_multi(self):"},{"line_number":234,"context_line":"        _create_test_port_with_shard(\u0027shard1\u0027, \u0027aa:bb:cc:dd:ee:ff\u0027)"},{"line_number":235,"context_line":"        _create_test_port_with_shard(\u0027shard2\u0027, \u0027ab:bb:cc:dd:ee:ff\u0027)"},{"line_number":236,"context_line":"        _create_test_port_with_shard(\u0027shard3\u0027, \u0027ac:bb:cc:dd:ee:ff\u0027)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        res \u003d self.dbapi.get_ports_by_shards([\u0027shard1\u0027, \u0027shard2\u0027])"},{"line_number":239,"context_line":"        self.assertEqual(2, len(res))"}],"source_content_type":"text/x-python","patch_set":3,"id":"d474d653_b6f16905","line":236,"range":{"start_line":234,"start_character":0,"end_line":236,"end_character":67},"in_reply_to":"2b678eaf_efcb4871","updated":"2023-02-03 22:17:23.000000000","message":"DOH!","commit_id":"5058675271b3bcaedb960475182c8fb2fe678d05"}]}
