)]}'
{"glance/cmd/manage.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"6222f23185580931ccec9c5b7ca5bdbb63aaf0db","unresolved":false,"context_lines":[{"line_number":376,"context_line":"        self._purge(age_in_days, max_rows, purge_images_only\u003dTrue)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    @args(\u0027--age_in_days\u0027, type\u003dint,"},{"line_number":379,"context_line":"          help\u003d\u0027Purge deleted rows older than age in days\u0027)"},{"line_number":380,"context_line":"    @args(\u0027--max_rows\u0027, type\u003dint,"},{"line_number":381,"context_line":"          help\u003d\u0027Limit number of records to delete\u0027)"},{"line_number":382,"context_line":"    def obfuscate_images_table(self, age_in_days\u003d180, max_rows\u003d100):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_98f897c4","line":379,"range":{"start_line":379,"start_character":16,"end_line":379,"end_character":21},"updated":"2019-08-15 16:11:49.000000000","message":"Kind of a nit, but s/Purge/Obfuscate/ just to keep things clear.","commit_id":"eb79c356aac364454381f1c2e8f9b0ad9cec7733"}],"glance/db/sqlalchemy/api.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"6222f23185580931ccec9c5b7ca5bdbb63aaf0db","unresolved":false,"context_lines":[{"line_number":1466,"context_line":""},{"line_number":1467,"context_line":"    obfuscate_deleted \u003d sql.select("},{"line_number":1468,"context_line":"        [column], deleted_at_column \u003c deleted_age).order_by("},{"line_number":1469,"context_line":"        deleted_at_column).limit(max_rows)"},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"    obfuscated_values \u003d {\u0027name\u0027: None,"},{"line_number":1472,"context_line":"                         \u0027size\u0027: None,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_13b808c6","line":1469,"updated":"2019-08-15 16:11:49.000000000","message":"Just noticed that this doesn\u0027t actually look at the \u0027deleted\u0027 column (but the purge code doesn\u0027t, either, so this isn\u0027t something you need to address in this patch, though other reviewers may feel differently).  That\u0027s why we tell people it\u0027s not a good idea to modify the DB by hand!  A script that put a deleted_at time on non-deleted images probably wouldn\u0027t affect glance\u0027s normal functioning until someone does a db purge or obfuscate, and then those images might all disappear or be obfuscated, regardless of not actually being deleted.","commit_id":"eb79c356aac364454381f1c2e8f9b0ad9cec7733"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"0eb35819b737b2bd83880e739a0d64b1470e8dd0","unresolved":false,"context_lines":[{"line_number":1466,"context_line":""},{"line_number":1467,"context_line":"    obfuscate_deleted \u003d sql.select("},{"line_number":1468,"context_line":"        [column], deleted_at_column \u003c deleted_age).order_by("},{"line_number":1469,"context_line":"        deleted_at_column).limit(max_rows)"},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"    obfuscated_values \u003d {\u0027name\u0027: None,"},{"line_number":1472,"context_line":"                         \u0027size\u0027: None,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_beed1426","line":1469,"in_reply_to":"7faddb67_13b808c6","updated":"2019-08-19 14:22:05.000000000","message":"Agreed.","commit_id":"eb79c356aac364454381f1c2e8f9b0ad9cec7733"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"6222f23185580931ccec9c5b7ca5bdbb63aaf0db","unresolved":false,"context_lines":[{"line_number":1479,"context_line":"                         \u0027owner\u0027: None,"},{"line_number":1480,"context_line":"                         \u0027min_disk\u0027: 0,"},{"line_number":1481,"context_line":"                         \u0027min_ram\u0027: 0,"},{"line_number":1482,"context_line":"                         \u0027protected\u0027: 1,"},{"line_number":1483,"context_line":"                         \u0027virtual_size\u0027: None,"},{"line_number":1484,"context_line":"                         \u0027visibility\u0027: \u0027private\u0027,"},{"line_number":1485,"context_line":"                         \u0027os_hidden\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_1831070c","line":1482,"range":{"start_line":1482,"start_character":38,"end_line":1482,"end_character":39},"updated":"2019-08-15 16:11:49.000000000","message":"Two things about this:\n\n(1) it\u0027s defined in the sqlalchemy model as a boolean [0], so I think you should have a boolean value here, not an int.  (It shows up in mysql/mariadb as a tinyint(1), but at this layer, we should be using the ORM values or we\u0027ll run into something like https://bugs.launchpad.net/glance/+bug/1749297 if someone uses postgres)\n\n(2) the default is False, but you are setting it to True (just wondering if there was a reason not to use the default?)\n\n\n[0] https://github.com/openstack/glance/blob/37babc4eb10091601d5a124fa1072011fcb7c4b3/glance/db/sqlalchemy/models.py#L143-L144","commit_id":"eb79c356aac364454381f1c2e8f9b0ad9cec7733"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"0eb35819b737b2bd83880e739a0d64b1470e8dd0","unresolved":false,"context_lines":[{"line_number":1479,"context_line":"                         \u0027owner\u0027: None,"},{"line_number":1480,"context_line":"                         \u0027min_disk\u0027: 0,"},{"line_number":1481,"context_line":"                         \u0027min_ram\u0027: 0,"},{"line_number":1482,"context_line":"                         \u0027protected\u0027: 1,"},{"line_number":1483,"context_line":"                         \u0027virtual_size\u0027: None,"},{"line_number":1484,"context_line":"                         \u0027visibility\u0027: \u0027private\u0027,"},{"line_number":1485,"context_line":"                         \u0027os_hidden\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_bed6744e","line":1482,"range":{"start_line":1482,"start_character":38,"end_line":1482,"end_character":39},"in_reply_to":"7faddb67_1831070c","updated":"2019-08-19 14:22:05.000000000","message":"The only reason is because I though it is a more reasonable value for an obfuscate image. But I don\u0027t have a strong opinion on this.","commit_id":"eb79c356aac364454381f1c2e8f9b0ad9cec7733"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"6222f23185580931ccec9c5b7ca5bdbb63aaf0db","unresolved":false,"context_lines":[{"line_number":1481,"context_line":"                         \u0027min_ram\u0027: 0,"},{"line_number":1482,"context_line":"                         \u0027protected\u0027: 1,"},{"line_number":1483,"context_line":"                         \u0027virtual_size\u0027: None,"},{"line_number":1484,"context_line":"                         \u0027visibility\u0027: \u0027private\u0027,"},{"line_number":1485,"context_line":"                         \u0027os_hidden\u0027: 1,"},{"line_number":1486,"context_line":"                         \u0027os_hash_algo\u0027: None,"},{"line_number":1487,"context_line":"                         \u0027os_hash_value\u0027: None}"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_f3576c00","line":1484,"range":{"start_line":1484,"start_character":39,"end_line":1484,"end_character":48},"updated":"2019-08-15 16:11:49.000000000","message":"Default for this is \u0027shared\u0027, but i think it\u0027s good to have \u0027private\u0027 here (which is what we\u0027re trying to get the default to be, eventually).","commit_id":"eb79c356aac364454381f1c2e8f9b0ad9cec7733"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"0eb35819b737b2bd83880e739a0d64b1470e8dd0","unresolved":false,"context_lines":[{"line_number":1481,"context_line":"                         \u0027min_ram\u0027: 0,"},{"line_number":1482,"context_line":"                         \u0027protected\u0027: 1,"},{"line_number":1483,"context_line":"                         \u0027virtual_size\u0027: None,"},{"line_number":1484,"context_line":"                         \u0027visibility\u0027: \u0027private\u0027,"},{"line_number":1485,"context_line":"                         \u0027os_hidden\u0027: 1,"},{"line_number":1486,"context_line":"                         \u0027os_hash_algo\u0027: None,"},{"line_number":1487,"context_line":"                         \u0027os_hash_value\u0027: None}"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_9e3618b4","line":1484,"range":{"start_line":1484,"start_character":39,"end_line":1484,"end_character":48},"in_reply_to":"7faddb67_f3576c00","updated":"2019-08-19 14:22:05.000000000","message":"The same reason as the previous.","commit_id":"eb79c356aac364454381f1c2e8f9b0ad9cec7733"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"6222f23185580931ccec9c5b7ca5bdbb63aaf0db","unresolved":false,"context_lines":[{"line_number":1482,"context_line":"                         \u0027protected\u0027: 1,"},{"line_number":1483,"context_line":"                         \u0027virtual_size\u0027: None,"},{"line_number":1484,"context_line":"                         \u0027visibility\u0027: \u0027private\u0027,"},{"line_number":1485,"context_line":"                         \u0027os_hidden\u0027: 1,"},{"line_number":1486,"context_line":"                         \u0027os_hash_algo\u0027: None,"},{"line_number":1487,"context_line":"                         \u0027os_hash_value\u0027: None}"},{"line_number":1488,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_f3220ca3","line":1485,"range":{"start_line":1485,"start_character":38,"end_line":1485,"end_character":39},"updated":"2019-08-15 16:11:49.000000000","message":"Basically, same comment as for \u0027protected\u0027, above.","commit_id":"eb79c356aac364454381f1c2e8f9b0ad9cec7733"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"0eb35819b737b2bd83880e739a0d64b1470e8dd0","unresolved":false,"context_lines":[{"line_number":1482,"context_line":"                         \u0027protected\u0027: 1,"},{"line_number":1483,"context_line":"                         \u0027virtual_size\u0027: None,"},{"line_number":1484,"context_line":"                         \u0027visibility\u0027: \u0027private\u0027,"},{"line_number":1485,"context_line":"                         \u0027os_hidden\u0027: 1,"},{"line_number":1486,"context_line":"                         \u0027os_hash_algo\u0027: None,"},{"line_number":1487,"context_line":"                         \u0027os_hash_value\u0027: None}"},{"line_number":1488,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_fe4cec3f","line":1485,"range":{"start_line":1485,"start_character":38,"end_line":1485,"end_character":39},"in_reply_to":"7faddb67_f3220ca3","updated":"2019-08-19 14:22:05.000000000","message":"Again, I don\u0027t have a strong argument. Just felt a better value for an obfuscated image. But probably I\u0027m wrong.","commit_id":"eb79c356aac364454381f1c2e8f9b0ad9cec7733"}],"releasenotes/notes/1837200-ad7ed8c6c30e905f.yaml":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"6222f23185580931ccec9c5b7ca5bdbb63aaf0db","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Introduces a new glance-manage option ``obfuscate_images_table`` to"},{"line_number":5,"context_line":"    obfuscate deleted images from the images table that can\u0027t be purged because"},{"line_number":6,"context_line":"    OSSN-0075. The image id is preserved however all the other fields related"},{"line_number":7,"context_line":"    to the image are obfuscated."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7faddb67_33e2e4d6","line":5,"range":{"start_line":5,"start_character":72,"end_line":5,"end_character":79},"updated":"2019-08-15 16:11:49.000000000","message":"I\u0027d suggest changing to \u0027because of\u0027 or \u0027due to\u0027.","commit_id":"eb79c356aac364454381f1c2e8f9b0ad9cec7733"}]}
