)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"58cd9d2ac811079622c2caea299bfe672c202367","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Cyril Roelandt \u003ccyril@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-08-08 14:56:43 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"When deleting an image, also delete the associated encryption key"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Iacd0b3785ad4cdd06961e6d11967775806e009ff"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_a081fffd","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":65},"updated":"2019-08-09 05:29:32.000000000","message":"Delete secret key on image deletion\n\nNeed some description about implementation, also need to add DocImpact flag\nNeed to tag associated blueprint","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"}],"glance/api/v2/images.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"4812d2395e273fceb4157e3bbc4f65f9341aac11","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            auth \u003d ka_loading.load_auth_from_conf_options(CONF,"},{"line_number":67,"context_line":"                                                          \u0027keystone_authtoken\u0027)"},{"line_number":68,"context_line":"            session \u003d ka_session.Session(auth\u003dauth)"},{"line_number":69,"context_line":"            self.barbican \u003d barbican_client.Client(session\u003dsession)"},{"line_number":70,"context_line":"        except Exception as e:"},{"line_number":71,"context_line":"            msg \u003d (_LW(\u0027Failed to initialize the Barbican client: \"%s\"\u0027) % e)"},{"line_number":72,"context_line":"            LOG.warn(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_c114c5eb","line":69,"range":{"start_line":69,"start_character":28,"end_line":69,"end_character":50},"updated":"2019-08-01 05:08:40.000000000","message":"Do we want to add dependency of barbican client? Even for image signature verification we are not using barbican client.\n\nIf yes we need to make changes to signature verification process as well.\n\nIf no, you can use castellan library directly to use key_manager API directly. (I guess cinder is doing same).","commit_id":"97e28544ff5e670210d0b98323de859b13572285"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"5e16418f751ddcb8cd5494cb61458fcb03914981","unresolved":false,"context_lines":[{"line_number":343,"context_line":"                raise webob.exc.HTTPConflict(msg % path_root)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def _delete_barbican_secret(self, image):"},{"line_number":346,"context_line":"        props \u003d image.get(\u0027properties\u0027, {})"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"        cinder_encryption_key_id \u003d props.get(\u0027cinder_encryption_key_id\u0027)"},{"line_number":349,"context_line":"        if cinder_encryption_key_id is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_9f3908a5","line":346,"range":{"start_line":346,"start_character":27,"end_line":346,"end_character":37},"updated":"2019-07-18 23:10:05.000000000","message":"props \u003d image.get(\u0027properties\u0027, {})\nAttributeError: \u0027ImageProxy\u0027 object has no attribute \u0027get\u0027\n\nOops. How do we access Glance Common Image Properties again? Is there an interface to access these values?","commit_id":"97e28544ff5e670210d0b98323de859b13572285"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"922de93b68835747d1a3203c5578f48e22f92da8","unresolved":false,"context_lines":[{"line_number":343,"context_line":"                raise webob.exc.HTTPConflict(msg % path_root)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def _delete_barbican_secret(self, image):"},{"line_number":346,"context_line":"        props \u003d image.get(\u0027properties\u0027, {})"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"        cinder_encryption_key_id \u003d props.get(\u0027cinder_encryption_key_id\u0027)"},{"line_number":349,"context_line":"        if cinder_encryption_key_id is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_58009402","line":346,"range":{"start_line":346,"start_character":27,"end_line":346,"end_character":37},"in_reply_to":"7faddb67_81332dab","updated":"2019-08-08 01:05:27.000000000","message":"Done","commit_id":"97e28544ff5e670210d0b98323de859b13572285"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"4812d2395e273fceb4157e3bbc4f65f9341aac11","unresolved":false,"context_lines":[{"line_number":343,"context_line":"                raise webob.exc.HTTPConflict(msg % path_root)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def _delete_barbican_secret(self, image):"},{"line_number":346,"context_line":"        props \u003d image.get(\u0027properties\u0027, {})"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"        cinder_encryption_key_id \u003d props.get(\u0027cinder_encryption_key_id\u0027)"},{"line_number":349,"context_line":"        if cinder_encryption_key_id is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_81332dab","line":346,"range":{"start_line":346,"start_character":27,"end_line":346,"end_character":37},"in_reply_to":"7faddb67_9f3908a5","updated":"2019-08-01 05:08:40.000000000","message":"you can access it like,\n\nextra_properties \u003d image.extra_properties","commit_id":"97e28544ff5e670210d0b98323de859b13572285"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"967940fadb79d32200e25f28fd753ea9db4aaa5d","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                else:"},{"line_number":381,"context_line":"                    self.store_api.delete_from_backend(file_path)"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"            self._delete_barbican_secret(image)"},{"line_number":384,"context_line":"            image.delete()"},{"line_number":385,"context_line":"            image_repo.remove(image)"},{"line_number":386,"context_line":"        except (glance_store.Forbidden, exception.Forbidden) as e:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_a56e3cfd","line":383,"updated":"2019-07-18 15:05:52.000000000","message":"I think we need to move this to *after* the image.delete() call, otherwise, if the delete fails, the image will be unusable because the key has been removed from barbican.","commit_id":"97e28544ff5e670210d0b98323de859b13572285"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"922de93b68835747d1a3203c5578f48e22f92da8","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                else:"},{"line_number":381,"context_line":"                    self.store_api.delete_from_backend(file_path)"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"            self._delete_barbican_secret(image)"},{"line_number":384,"context_line":"            image.delete()"},{"line_number":385,"context_line":"            image_repo.remove(image)"},{"line_number":386,"context_line":"        except (glance_store.Forbidden, exception.Forbidden) as e:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_18bd3cb6","line":383,"in_reply_to":"7faddb67_7ff44cf1","updated":"2019-08-08 01:05:27.000000000","message":"Done","commit_id":"97e28544ff5e670210d0b98323de859b13572285"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"5e16418f751ddcb8cd5494cb61458fcb03914981","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                else:"},{"line_number":381,"context_line":"                    self.store_api.delete_from_backend(file_path)"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"            self._delete_barbican_secret(image)"},{"line_number":384,"context_line":"            image.delete()"},{"line_number":385,"context_line":"            image_repo.remove(image)"},{"line_number":386,"context_line":"        except (glance_store.Forbidden, exception.Forbidden) as e:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_7ff44cf1","line":383,"in_reply_to":"7faddb67_a56e3cfd","updated":"2019-07-18 23:10:05.000000000","message":"Oh yeah, I had not thought of that. Good catch, thanks!","commit_id":"97e28544ff5e670210d0b98323de859b13572285"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"58cd9d2ac811079622c2caea299bfe672c202367","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        if cinder_encryption_key_id is None:"},{"line_number":342,"context_line":"            return"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        policy \u003d props.get(\u0027cinder_encryption_key_deletion_policy\u0027, \u0027\u0027)"},{"line_number":345,"context_line":"        if policy !\u003d \u0027on_image_deletion\u0027:"},{"line_number":346,"context_line":"            return"},{"line_number":347,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_c09bdb63","line":344,"range":{"start_line":344,"start_character":8,"end_line":344,"end_character":14},"updated":"2019-08-09 05:29:32.000000000","message":"can we rename it to something else like deleteion_policy as policy variable is attribute of this controller.","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"563401c2a68b6373014146a32515a7592f617638","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        if cinder_encryption_key_id is None:"},{"line_number":342,"context_line":"            return"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        policy \u003d props.get(\u0027cinder_encryption_key_deletion_policy\u0027, \u0027\u0027)"},{"line_number":345,"context_line":"        if policy !\u003d \u0027on_image_deletion\u0027:"},{"line_number":346,"context_line":"            return"},{"line_number":347,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_a546cabf","line":344,"range":{"start_line":344,"start_character":8,"end_line":344,"end_character":14},"in_reply_to":"7faddb67_9595198b","updated":"2019-08-12 18:08:12.000000000","message":"Done","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"17aa71d9b46014c0837826fdeef86b3f376e5c96","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        if cinder_encryption_key_id is None:"},{"line_number":342,"context_line":"            return"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        policy \u003d props.get(\u0027cinder_encryption_key_deletion_policy\u0027, \u0027\u0027)"},{"line_number":345,"context_line":"        if policy !\u003d \u0027on_image_deletion\u0027:"},{"line_number":346,"context_line":"            return"},{"line_number":347,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_9595198b","line":344,"range":{"start_line":344,"start_character":8,"end_line":344,"end_character":14},"in_reply_to":"7faddb67_c09bdb63","updated":"2019-08-09 16:46:16.000000000","message":"Will do.","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"58cd9d2ac811079622c2caea299bfe672c202367","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        try:"},{"line_number":349,"context_line":"            self._key_manager.delete(context, cinder_encryption_key_id)"},{"line_number":350,"context_line":"        except castellan_exception.Forbidden as e:"},{"line_number":351,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.message)"},{"line_number":352,"context_line":"        except (castellan_exception.ManagedObjectNotFoundError, KeyError):"},{"line_number":353,"context_line":"            msg \u003d (_LW(\u0027Could not find encryption key %s\u0027) %"},{"line_number":354,"context_line":"                   cinder_encryption_key_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_809de358","line":351,"range":{"start_line":351,"start_character":12,"end_line":351,"end_character":64},"updated":"2019-08-09 05:29:32.000000000","message":"We don\u0027t want to fail image delete call if something is wrong with secret deletion, so I guess unlike other exceptions we should caught this and log it as a warning.","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"17aa71d9b46014c0837826fdeef86b3f376e5c96","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        try:"},{"line_number":349,"context_line":"            self._key_manager.delete(context, cinder_encryption_key_id)"},{"line_number":350,"context_line":"        except castellan_exception.Forbidden as e:"},{"line_number":351,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.message)"},{"line_number":352,"context_line":"        except (castellan_exception.ManagedObjectNotFoundError, KeyError):"},{"line_number":353,"context_line":"            msg \u003d (_LW(\u0027Could not find encryption key %s\u0027) %"},{"line_number":354,"context_line":"                   cinder_encryption_key_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_953e79b7","line":351,"range":{"start_line":351,"start_character":12,"end_line":351,"end_character":64},"in_reply_to":"7faddb67_809de358","updated":"2019-08-09 16:46:16.000000000","message":"Ok, this makes sense, I will change it.","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"563401c2a68b6373014146a32515a7592f617638","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        try:"},{"line_number":349,"context_line":"            self._key_manager.delete(context, cinder_encryption_key_id)"},{"line_number":350,"context_line":"        except castellan_exception.Forbidden as e:"},{"line_number":351,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.message)"},{"line_number":352,"context_line":"        except (castellan_exception.ManagedObjectNotFoundError, KeyError):"},{"line_number":353,"context_line":"            msg \u003d (_LW(\u0027Could not find encryption key %s\u0027) %"},{"line_number":354,"context_line":"                   cinder_encryption_key_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_0538fe38","line":351,"range":{"start_line":351,"start_character":12,"end_line":351,"end_character":64},"in_reply_to":"7faddb67_953e79b7","updated":"2019-08-12 18:08:12.000000000","message":"Done","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"58cd9d2ac811079622c2caea299bfe672c202367","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        except castellan_exception.Forbidden as e:"},{"line_number":351,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.message)"},{"line_number":352,"context_line":"        except (castellan_exception.ManagedObjectNotFoundError, KeyError):"},{"line_number":353,"context_line":"            msg \u003d (_LW(\u0027Could not find encryption key %s\u0027) %"},{"line_number":354,"context_line":"                   cinder_encryption_key_id)"},{"line_number":355,"context_line":"            LOG.warn(msg)"},{"line_number":356,"context_line":"        except castellan_exception.KeyManagerError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_00bb33c4","line":353,"range":{"start_line":353,"start_character":20,"end_line":353,"end_character":22},"updated":"2019-08-09 05:29:32.000000000","message":"No need to translate log messages, only user facing messages (e.g. exceptions) needs to be translated.\n\nhttps://docs.openstack.org/oslo.i18n/latest/user/guidelines.html","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"17aa71d9b46014c0837826fdeef86b3f376e5c96","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        except castellan_exception.Forbidden as e:"},{"line_number":351,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.message)"},{"line_number":352,"context_line":"        except (castellan_exception.ManagedObjectNotFoundError, KeyError):"},{"line_number":353,"context_line":"            msg \u003d (_LW(\u0027Could not find encryption key %s\u0027) %"},{"line_number":354,"context_line":"                   cinder_encryption_key_id)"},{"line_number":355,"context_line":"            LOG.warn(msg)"},{"line_number":356,"context_line":"        except castellan_exception.KeyManagerError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_3579c592","line":353,"range":{"start_line":353,"start_character":20,"end_line":353,"end_character":22},"in_reply_to":"7faddb67_00bb33c4","updated":"2019-08-09 16:46:16.000000000","message":"Thanks, I forgot about that!","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"563401c2a68b6373014146a32515a7592f617638","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        except castellan_exception.Forbidden as e:"},{"line_number":351,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.message)"},{"line_number":352,"context_line":"        except (castellan_exception.ManagedObjectNotFoundError, KeyError):"},{"line_number":353,"context_line":"            msg \u003d (_LW(\u0027Could not find encryption key %s\u0027) %"},{"line_number":354,"context_line":"                   cinder_encryption_key_id)"},{"line_number":355,"context_line":"            LOG.warn(msg)"},{"line_number":356,"context_line":"        except castellan_exception.KeyManagerError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_e53cc231","line":353,"range":{"start_line":353,"start_character":20,"end_line":353,"end_character":22},"in_reply_to":"7faddb67_3579c592","updated":"2019-08-12 18:08:12.000000000","message":"Done","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"58cd9d2ac811079622c2caea299bfe672c202367","unresolved":false,"context_lines":[{"line_number":354,"context_line":"                   cinder_encryption_key_id)"},{"line_number":355,"context_line":"            LOG.warn(msg)"},{"line_number":356,"context_line":"        except castellan_exception.KeyManagerError:"},{"line_number":357,"context_line":"            msg \u003d (_LW(\u0027Failed to delete cinder encryption key %s\u0027) %"},{"line_number":358,"context_line":"                   cinder_encryption_key_id)"},{"line_number":359,"context_line":"            LOG.warn(msg)"},{"line_number":360,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_a0afbf7b","line":357,"range":{"start_line":357,"start_character":20,"end_line":357,"end_character":22},"updated":"2019-08-09 05:29:32.000000000","message":"ditto","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"563401c2a68b6373014146a32515a7592f617638","unresolved":false,"context_lines":[{"line_number":354,"context_line":"                   cinder_encryption_key_id)"},{"line_number":355,"context_line":"            LOG.warn(msg)"},{"line_number":356,"context_line":"        except castellan_exception.KeyManagerError:"},{"line_number":357,"context_line":"            msg \u003d (_LW(\u0027Failed to delete cinder encryption key %s\u0027) %"},{"line_number":358,"context_line":"                   cinder_encryption_key_id)"},{"line_number":359,"context_line":"            LOG.warn(msg)"},{"line_number":360,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_4536f653","line":357,"range":{"start_line":357,"start_character":20,"end_line":357,"end_character":22},"in_reply_to":"7faddb67_a0afbf7b","updated":"2019-08-12 18:08:12.000000000","message":"Done","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"}],"glance/tests/unit/keymgr/fake.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"58cd9d2ac811079622c2caea299bfe672c202367","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 Justin Santa Barbara"},{"line_number":2,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_20c3cf3a","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":37},"updated":"2019-08-09 05:29:32.000000000","message":"This should be\n\n# Copyright 2019 Red Hat","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"563401c2a68b6373014146a32515a7592f617638","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 Justin Santa Barbara"},{"line_number":2,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_e50b6228","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":37},"in_reply_to":"7faddb67_15184982","updated":"2019-08-12 18:08:12.000000000","message":"I added the Red Hat copyright, but it seems wrong to me to remove a Copyright held by other people. Should we disagree on this, I think we should seek other core developpers\u0027 opinions on this.","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"17aa71d9b46014c0837826fdeef86b3f376e5c96","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 Justin Santa Barbara"},{"line_number":2,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_758c1d7f","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":37},"in_reply_to":"7faddb67_20c3cf3a","updated":"2019-08-09 16:46:16.000000000","message":"I literally copied this from Cinder, so I think I should at least retain the Copyright notice. What do you think?","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"fe301749d2a8ce3f18e6e3482b99c3f13a54b137","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 Justin Santa Barbara"},{"line_number":2,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_15184982","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":37},"in_reply_to":"7faddb67_758c1d7f","updated":"2019-08-09 17:23:10.000000000","message":"Even it is copied, its a new file in source repo, so should have new copyrights","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"667c12d0864fa7c9f7aecc01d2a2aa6d563593f4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 Justin Santa Barbara"},{"line_number":2,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_02067787","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":37},"in_reply_to":"7faddb67_e50b6228","updated":"2019-08-15 09:49:56.000000000","message":"That\u0027s fine, always good practice to maintain credit where it\u0027s due. You don\u0027t rewrite all copyrights just because you cloned the git repo (copied the files over) either.","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"}],"glance/tests/unit/v2/test_images_resource.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"58cd9d2ac811079622c2caea299bfe672c202367","unresolved":false,"context_lines":[{"line_number":2734,"context_line":"            created_at\u003dDATETIME, updated_at\u003dDATETIME, size\u003d1024,"},{"line_number":2735,"context_line":"            virtual_size\u003d3072, extra_properties\u003d{})"},{"line_number":2736,"context_line":"        self.controller._delete_encryption_key(request.context, image)"},{"line_number":2737,"context_line":"        # Make sure the encrytion key is still there"},{"line_number":2738,"context_line":"        self.controller._key_manager.get(request.context, fake_encryption_key)"},{"line_number":2739,"context_line":""},{"line_number":2740,"context_line":"    def test_delete_encryption_key_no_deletion_policy(self):"},{"line_number":2741,"context_line":"        request \u003d unit_test_utils.get_fake_request()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_c0e99bb7","line":2738,"range":{"start_line":2737,"start_character":52,"end_line":2738,"end_character":8},"updated":"2019-08-09 05:29:32.000000000","message":"We are not asserting anything here, so how we should know whether this pass or fails, I guess this will pass every time","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"563401c2a68b6373014146a32515a7592f617638","unresolved":false,"context_lines":[{"line_number":2734,"context_line":"            created_at\u003dDATETIME, updated_at\u003dDATETIME, size\u003d1024,"},{"line_number":2735,"context_line":"            virtual_size\u003d3072, extra_properties\u003d{})"},{"line_number":2736,"context_line":"        self.controller._delete_encryption_key(request.context, image)"},{"line_number":2737,"context_line":"        # Make sure the encrytion key is still there"},{"line_number":2738,"context_line":"        self.controller._key_manager.get(request.context, fake_encryption_key)"},{"line_number":2739,"context_line":""},{"line_number":2740,"context_line":"    def test_delete_encryption_key_no_deletion_policy(self):"},{"line_number":2741,"context_line":"        request \u003d unit_test_utils.get_fake_request()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_708bb21d","line":2738,"range":{"start_line":2737,"start_character":52,"end_line":2738,"end_character":8},"in_reply_to":"7faddb67_382bfc82","updated":"2019-08-12 18:08:12.000000000","message":"Done","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"17aa71d9b46014c0837826fdeef86b3f376e5c96","unresolved":false,"context_lines":[{"line_number":2734,"context_line":"            created_at\u003dDATETIME, updated_at\u003dDATETIME, size\u003d1024,"},{"line_number":2735,"context_line":"            virtual_size\u003d3072, extra_properties\u003d{})"},{"line_number":2736,"context_line":"        self.controller._delete_encryption_key(request.context, image)"},{"line_number":2737,"context_line":"        # Make sure the encrytion key is still there"},{"line_number":2738,"context_line":"        self.controller._key_manager.get(request.context, fake_encryption_key)"},{"line_number":2739,"context_line":""},{"line_number":2740,"context_line":"    def test_delete_encryption_key_no_deletion_policy(self):"},{"line_number":2741,"context_line":"        request \u003d unit_test_utils.get_fake_request()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_f5cecdb2","line":2738,"range":{"start_line":2737,"start_character":52,"end_line":2738,"end_character":8},"in_reply_to":"7faddb67_c0e99bb7","updated":"2019-08-09 16:46:16.000000000","message":"So the idea here is that self.controller._key_manager.get(...) will raise an exception if the key was deleted, making this test fail.\n\nI could make this more explicit by checking the result. What do you think?","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"fe301749d2a8ce3f18e6e3482b99c3f13a54b137","unresolved":false,"context_lines":[{"line_number":2734,"context_line":"            created_at\u003dDATETIME, updated_at\u003dDATETIME, size\u003d1024,"},{"line_number":2735,"context_line":"            virtual_size\u003d3072, extra_properties\u003d{})"},{"line_number":2736,"context_line":"        self.controller._delete_encryption_key(request.context, image)"},{"line_number":2737,"context_line":"        # Make sure the encrytion key is still there"},{"line_number":2738,"context_line":"        self.controller._key_manager.get(request.context, fake_encryption_key)"},{"line_number":2739,"context_line":""},{"line_number":2740,"context_line":"    def test_delete_encryption_key_no_deletion_policy(self):"},{"line_number":2741,"context_line":"        request \u003d unit_test_utils.get_fake_request()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_382bfc82","line":2738,"range":{"start_line":2737,"start_character":52,"end_line":2738,"end_character":8},"in_reply_to":"7faddb67_f5cecdb2","updated":"2019-08-09 17:23:10.000000000","message":"It should be better if you check results explicitly","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"58cd9d2ac811079622c2caea299bfe672c202367","unresolved":false,"context_lines":[{"line_number":2752,"context_line":"            virtual_size\u003d3072, extra_properties\u003dprops)"},{"line_number":2753,"context_line":"        self.controller._delete_encryption_key(request.context, image)"},{"line_number":2754,"context_line":"        # Make sure the encrytion key is still there"},{"line_number":2755,"context_line":"        self.controller._key_manager.get(request.context, fake_encryption_key)"},{"line_number":2756,"context_line":""},{"line_number":2757,"context_line":"    def test_delete_encryption_key_do_not_delete(self):"},{"line_number":2758,"context_line":"        request \u003d unit_test_utils.get_fake_request()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_20d8af1c","line":2755,"updated":"2019-08-09 05:29:32.000000000","message":"ditto","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"563401c2a68b6373014146a32515a7592f617638","unresolved":false,"context_lines":[{"line_number":2752,"context_line":"            virtual_size\u003d3072, extra_properties\u003dprops)"},{"line_number":2753,"context_line":"        self.controller._delete_encryption_key(request.context, image)"},{"line_number":2754,"context_line":"        # Make sure the encrytion key is still there"},{"line_number":2755,"context_line":"        self.controller._key_manager.get(request.context, fake_encryption_key)"},{"line_number":2756,"context_line":""},{"line_number":2757,"context_line":"    def test_delete_encryption_key_do_not_delete(self):"},{"line_number":2758,"context_line":"        request \u003d unit_test_utils.get_fake_request()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_30853a08","line":2755,"in_reply_to":"7faddb67_20d8af1c","updated":"2019-08-12 18:08:12.000000000","message":"Done","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"58cd9d2ac811079622c2caea299bfe672c202367","unresolved":false,"context_lines":[{"line_number":2770,"context_line":"            virtual_size\u003d3072, extra_properties\u003dprops)"},{"line_number":2771,"context_line":"        self.controller._delete_encryption_key(request.context, image)"},{"line_number":2772,"context_line":"        # Make sure the encrytion key is still there"},{"line_number":2773,"context_line":"        self.controller._key_manager.get(request.context, fake_encryption_key)"},{"line_number":2774,"context_line":""},{"line_number":2775,"context_line":"    def test_delete_encryption_key_forbidden(self):"},{"line_number":2776,"context_line":"        request \u003d unit_test_utils.get_fake_request()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_40d5abe4","line":2773,"updated":"2019-08-09 05:29:32.000000000","message":"ditto","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"563401c2a68b6373014146a32515a7592f617638","unresolved":false,"context_lines":[{"line_number":2770,"context_line":"            virtual_size\u003d3072, extra_properties\u003dprops)"},{"line_number":2771,"context_line":"        self.controller._delete_encryption_key(request.context, image)"},{"line_number":2772,"context_line":"        # Make sure the encrytion key is still there"},{"line_number":2773,"context_line":"        self.controller._key_manager.get(request.context, fake_encryption_key)"},{"line_number":2774,"context_line":""},{"line_number":2775,"context_line":"    def test_delete_encryption_key_forbidden(self):"},{"line_number":2776,"context_line":"        request \u003d unit_test_utils.get_fake_request()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_d07b8626","line":2773,"in_reply_to":"7faddb67_40d5abe4","updated":"2019-08-12 18:08:12.000000000","message":"Done","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"58cd9d2ac811079622c2caea299bfe672c202367","unresolved":false,"context_lines":[{"line_number":2793,"context_line":"                              request.context,"},{"line_number":2794,"context_line":"                              image)"},{"line_number":2795,"context_line":"        # Make sure the encrytion key is still there"},{"line_number":2796,"context_line":"        self.controller._key_manager.get(request.context, fake_encryption_key)"},{"line_number":2797,"context_line":""},{"line_number":2798,"context_line":"    def test_delete_encryption_key_not_found(self):"},{"line_number":2799,"context_line":"        request \u003d unit_test_utils.get_fake_request()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_e0037775","line":2796,"updated":"2019-08-09 05:29:32.000000000","message":"ditto","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"563401c2a68b6373014146a32515a7592f617638","unresolved":false,"context_lines":[{"line_number":2793,"context_line":"                              request.context,"},{"line_number":2794,"context_line":"                              image)"},{"line_number":2795,"context_line":"        # Make sure the encrytion key is still there"},{"line_number":2796,"context_line":"        self.controller._key_manager.get(request.context, fake_encryption_key)"},{"line_number":2797,"context_line":""},{"line_number":2798,"context_line":"    def test_delete_encryption_key_not_found(self):"},{"line_number":2799,"context_line":"        request \u003d unit_test_utils.get_fake_request()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_f076c23f","line":2796,"in_reply_to":"7faddb67_e0037775","updated":"2019-08-12 18:08:12.000000000","message":"Done","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"58cd9d2ac811079622c2caea299bfe672c202367","unresolved":false,"context_lines":[{"line_number":2813,"context_line":"                               side_effect\u003dcastellan_exception.ManagedObjectNotFoundError):  # noqa"},{"line_number":2814,"context_line":"            self.controller._delete_encryption_key(request.context, image)"},{"line_number":2815,"context_line":"        # Make sure the encrytion key is still there"},{"line_number":2816,"context_line":"        self.controller._key_manager.get(request.context, fake_encryption_key)"},{"line_number":2817,"context_line":""},{"line_number":2818,"context_line":"    def test_delete_encryption_key_error(self):"},{"line_number":2819,"context_line":"        request \u003d unit_test_utils.get_fake_request()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_a0fd7f6f","line":2816,"updated":"2019-08-09 05:29:32.000000000","message":"ditto","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"563401c2a68b6373014146a32515a7592f617638","unresolved":false,"context_lines":[{"line_number":2813,"context_line":"                               side_effect\u003dcastellan_exception.ManagedObjectNotFoundError):  # noqa"},{"line_number":2814,"context_line":"            self.controller._delete_encryption_key(request.context, image)"},{"line_number":2815,"context_line":"        # Make sure the encrytion key is still there"},{"line_number":2816,"context_line":"        self.controller._key_manager.get(request.context, fake_encryption_key)"},{"line_number":2817,"context_line":""},{"line_number":2818,"context_line":"    def test_delete_encryption_key_error(self):"},{"line_number":2819,"context_line":"        request \u003d unit_test_utils.get_fake_request()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_b0704a42","line":2816,"in_reply_to":"7faddb67_a0fd7f6f","updated":"2019-08-12 18:08:12.000000000","message":"Done","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"58cd9d2ac811079622c2caea299bfe672c202367","unresolved":false,"context_lines":[{"line_number":2833,"context_line":"                               side_effect\u003dcastellan_exception.KeyManagerError):  # noqa"},{"line_number":2834,"context_line":"            self.controller._delete_encryption_key(request.context, image)"},{"line_number":2835,"context_line":"        # Make sure the encrytion key is still there"},{"line_number":2836,"context_line":"        self.controller._key_manager.get(request.context, fake_encryption_key)"},{"line_number":2837,"context_line":""},{"line_number":2838,"context_line":"    def test_delete_encryption_key(self):"},{"line_number":2839,"context_line":"        request \u003d unit_test_utils.get_fake_request()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_c002fb6f","line":2836,"updated":"2019-08-09 05:29:32.000000000","message":"ditto","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"563401c2a68b6373014146a32515a7592f617638","unresolved":false,"context_lines":[{"line_number":2833,"context_line":"                               side_effect\u003dcastellan_exception.KeyManagerError):  # noqa"},{"line_number":2834,"context_line":"            self.controller._delete_encryption_key(request.context, image)"},{"line_number":2835,"context_line":"        # Make sure the encrytion key is still there"},{"line_number":2836,"context_line":"        self.controller._key_manager.get(request.context, fake_encryption_key)"},{"line_number":2837,"context_line":""},{"line_number":2838,"context_line":"    def test_delete_encryption_key(self):"},{"line_number":2839,"context_line":"        request \u003d unit_test_utils.get_fake_request()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_508d5628","line":2836,"in_reply_to":"7faddb67_c002fb6f","updated":"2019-08-12 18:08:12.000000000","message":"Done","commit_id":"177fd4f30fd6a919029ab132052273567e2028f0"}]}
