)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"604fe123a9f5901aa7c2a3f1dfb08b0743f11483","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support image signature verification"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add image singature verification support when"},{"line_number":10,"context_line":"creating from image."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I37b7a795da18e3ddb18e9f293a9c795e207e7b7e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5f7c97a3_d08f8172","line":9,"range":{"start_line":9,"start_character":10,"end_line":9,"end_character":19},"updated":"2018-05-15 20:23:29.000000000","message":"signature","commit_id":"2c3d4e9eab6d6cbf76812e1ab74fcd1093e7fd51"}],"cinder/exception.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"24841f2eb473d99ff65755dc0358e5911c40518e","unresolved":false,"context_lines":[{"line_number":435,"context_line":"    message \u003d _(\"Invalid image href %(image_href)s.\")"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"class InvalidSignatureImage(Invalid):"},{"line_number":439,"context_line":"    message \u003d _(\"Signature metadata is not found in image: %(image_id)s.\")"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_06e5c437","line":438,"range":{"start_line":438,"start_character":6,"end_line":438,"end_character":28},"updated":"2018-05-15 17:55:44.000000000","message":"This exception is not used.","commit_id":"2c3d4e9eab6d6cbf76812e1ab74fcd1093e7fd51"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a29814d079cdf1f124106e84449075c491049d29","unresolved":false,"context_lines":[{"line_number":436,"context_line":""},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"class InvalidSignatureImage(Invalid):"},{"line_number":439,"context_line":"    message \u003d _(\"Signature metadata is incomplete, image: \""},{"line_number":440,"context_line":"                \"%(image_id)s.\")"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_a71cc4c1","line":439,"range":{"start_line":439,"start_character":49,"end_line":439,"end_character":51},"updated":"2018-06-05 18:38:35.000000000","message":"Probably cleaner to just use \"incomplete for image\" instead of having a comma here","commit_id":"d401b8fd481009ffaf9a5234d5f206324906da5a"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"0d5a18ddef953ee4fe5efe823068a49b2cabb923","unresolved":false,"context_lines":[{"line_number":436,"context_line":""},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"class InvalidSignatureImage(Invalid):"},{"line_number":439,"context_line":"    message \u003d _(\"Signature metadata is incomplete, image: \""},{"line_number":440,"context_line":"                \"%(image_id)s.\")"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_739c296a","line":439,"range":{"start_line":439,"start_character":49,"end_line":439,"end_character":51},"in_reply_to":"5f7c97a3_a71cc4c1","updated":"2018-06-06 02:30:50.000000000","message":"Done","commit_id":"d401b8fd481009ffaf9a5234d5f206324906da5a"}],"cinder/image/glance.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"594989f15a8e59ffba143779464c7a3ff19017a7","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                     \u0027via the direct_url.  Currently supported schemes: \u0027"},{"line_number":53,"context_line":"                     \u0027[file, cinder].\u0027),"},{"line_number":54,"context_line":"    cfg.StrOpt(\u0027verify_glance_signatures\u0027,"},{"line_number":55,"context_line":"               choices\u003d[\u0027disable\u0027, \u0027optional\u0027, \u0027required\u0027],"},{"line_number":56,"context_line":"               default\u003d\u0027optional\u0027,"},{"line_number":57,"context_line":"               help\u003d\"\"\""},{"line_number":58,"context_line":"Enable image signature verification."}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_58e03d97","line":55,"range":{"start_line":55,"start_character":25,"end_line":55,"end_character":32},"updated":"2018-03-19 14:40:26.000000000","message":"disabled","commit_id":"f6130df6677642fd486a54a3543c1efc7b4213cc"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"594989f15a8e59ffba143779464c7a3ff19017a7","unresolved":false,"context_lines":[{"line_number":57,"context_line":"               help\u003d\"\"\""},{"line_number":58,"context_line":"Enable image signature verification."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Cinder uses the image signature metadata from glance and verifies the signature"},{"line_number":61,"context_line":"of a signed image while downloading that image. There are three options here."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"1. ``required``: verification is turned on and any image has to provide"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_18f4055b","line":60,"range":{"start_line":60,"start_character":46,"end_line":60,"end_character":47},"updated":"2018-03-19 14:40:26.000000000","message":"G","commit_id":"f6130df6677642fd486a54a3543c1efc7b4213cc"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"001bd61fb0b4aec5de7159f1cc26cd764e3b8d65","unresolved":false,"context_lines":[{"line_number":406,"context_line":"                except cryptography.exceptions.InvalidSignature:"},{"line_number":407,"context_line":"                    with excutils.save_and_reraise_exception():"},{"line_number":408,"context_line":"                        LOG.error(\u0027Image signature verification failed \u0027"},{"line_number":409,"context_line":"                                  \u0027for image: %s.\u0027, image_id)"},{"line_number":410,"context_line":"            return image_chunks"},{"line_number":411,"context_line":"        else:"},{"line_number":412,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_5b8d9779","line":409,"updated":"2018-03-19 14:51:30.000000000","message":"We should fire async error messages when this happens, so it\u0027s obvious to the user why this failed.","commit_id":"f6130df6677642fd486a54a3543c1efc7b4213cc"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"594989f15a8e59ffba143779464c7a3ff19017a7","unresolved":false,"context_lines":[{"line_number":419,"context_line":"                    LOG.info(\u0027Image signature verification succeeded \u0027"},{"line_number":420,"context_line":"                             \u0027for image %s\u0027, image_id)"},{"line_number":421,"context_line":"            except cryptography.exceptions.InvalidSignature:"},{"line_number":422,"context_line":"                data.truncate(0)"},{"line_number":423,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":424,"context_line":"                    LOG.error(\u0027Image signature verification failed \u0027"},{"line_number":425,"context_line":"                              \u0027for image: %s\u0027, image_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_b8b6398a","line":422,"range":{"start_line":422,"start_character":16,"end_line":422,"end_character":32},"updated":"2018-03-19 14:40:26.000000000","message":"Is \"data\" always something that supports truncate?","commit_id":"f6130df6677642fd486a54a3543c1efc7b4213cc"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"e494ad5690d31e8972396d184ad0ce147288d26b","unresolved":false,"context_lines":[{"line_number":419,"context_line":"                    LOG.info(\u0027Image signature verification succeeded \u0027"},{"line_number":420,"context_line":"                             \u0027for image %s\u0027, image_id)"},{"line_number":421,"context_line":"            except cryptography.exceptions.InvalidSignature:"},{"line_number":422,"context_line":"                data.truncate(0)"},{"line_number":423,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":424,"context_line":"                    LOG.error(\u0027Image signature verification failed \u0027"},{"line_number":425,"context_line":"                              \u0027for image: %s\u0027, image_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_2c75f498","line":422,"range":{"start_line":422,"start_character":16,"end_line":422,"end_character":32},"in_reply_to":"df7087c5_b8b6398a","updated":"2018-03-20 08:17:31.000000000","message":"Only file object will be used for parameter \"data\" now [1]\n[1]: https://github.com/openstack/cinder/blob/85ae0336c38c35078a1ecd890a1876bf591f8c03/cinder/image/image_utils.py#L300","commit_id":"f6130df6677642fd486a54a3543c1efc7b4213cc"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"001bd61fb0b4aec5de7159f1cc26cd764e3b8d65","unresolved":false,"context_lines":[{"line_number":422,"context_line":"                data.truncate(0)"},{"line_number":423,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":424,"context_line":"                    LOG.error(\u0027Image signature verification failed \u0027"},{"line_number":425,"context_line":"                              \u0027for image: %s\u0027, image_id)"},{"line_number":426,"context_line":"            except Exception as ex:"},{"line_number":427,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":428,"context_line":"                    LOG.error(\u0027Image signature verification failed \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_bbf15304","line":425,"updated":"2018-03-19 14:51:30.000000000","message":"We should fire async error messages when this happens, so it\u0027s obvious to the user why this failed.","commit_id":"f6130df6677642fd486a54a3543c1efc7b4213cc"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f7ca0a90c30d758106b0f629698ddc723f9d3225","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Cinder uses the image signature metadata from Glance and verifies the signature"},{"line_number":57,"context_line":"of a signed image while downloading that image. There are three options here."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"1. ``required``: verification is turned on and any image has to provide"},{"line_number":60,"context_line":"   signature metadata when creating volume from image."},{"line_number":61,"context_line":"2. ``optional``: verify when image has complete signature metadata."},{"line_number":62,"context_line":"3. ``disabled``: verification is turned off."},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_b541090e","line":60,"range":{"start_line":59,"start_character":17,"end_line":60,"end_character":54},"updated":"2018-03-28 14:20:35.000000000","message":"Except this isn\u0027t true for all drivers.  Let\u0027s sort out how to handle this in the spec.","commit_id":"9d943a7955bbfe83d54c9c02572abcce353e2f2b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"39f488b83fdcb990ac5e8f5b8cb6a5b40dcf4d2c","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    cfg.StrOpt(\u0027verify_glance_signatures\u0027,"},{"line_number":51,"context_line":"               choices\u003d[\u0027disabled\u0027, \u0027enabled\u0027],"},{"line_number":52,"context_line":"               default\u003d\u0027enabled\u0027,"},{"line_number":53,"context_line":"               help\u003d\"\"\""},{"line_number":54,"context_line":"Enable image signature verification."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Cinder uses the image signature metadata from Glance and verifies the signature"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_f50bcf26","line":53,"updated":"2018-05-11 21:03:58.000000000","message":"If you do an update, please use textwrap.dedent for this.","commit_id":"c409b5dedc67d9af00942d900df5e84c256db218"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"6fa96103ff9ebd7b3c612fee354371d696de83ba","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                help\u003d\u0027A list of url schemes that can be downloaded directly \u0027"},{"line_number":49,"context_line":"                     \u0027via the direct_url.  Currently supported schemes: \u0027"},{"line_number":50,"context_line":"                     \u0027[file, cinder].\u0027),"},{"line_number":51,"context_line":"    cfg.StrOpt(\u0027verify_glance_signatures\u0027,"},{"line_number":52,"context_line":"               choices\u003d[\u0027disabled\u0027, \u0027enabled\u0027],"},{"line_number":53,"context_line":"               default\u003d\u0027enabled\u0027,"},{"line_number":54,"context_line":"               help\u003dtextwrap.dedent("}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_4d8f81cc","line":51,"updated":"2018-06-12 12:31:15.000000000","message":"I\u0027m not sure what is the best solution for this option, just one more possible way:\nenable_glance_signature_verification \u003d True/False","commit_id":"e8c24577b8bd98d86358abf543010b76229c8757"}],"cinder/image/image_utils.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d52ef4f4c53391ea4c4723b375f9e43b92bfc015","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                                   img_sig_cert_uuid,"},{"line_number":305,"context_line":"                                   img_sig_hash_method,"},{"line_number":306,"context_line":"                                   img_sig_key_type]):"},{"line_number":307,"context_line":"                # NOTE(tommylikehu): We will verify the image signature"},{"line_number":308,"context_line":"                # only when metadata is complete."},{"line_number":309,"context_line":"                LOG.info(\u0027Image signature verification canceled due to \u0027"},{"line_number":310,"context_line":"                         \u0027incomplete signature metadata for image %s\u0027,"},{"line_number":311,"context_line":"                         image_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_860d54e9","line":308,"range":{"start_line":307,"start_character":0,"end_line":308,"end_character":49},"updated":"2018-05-15 18:00:00.000000000","message":"I don\u0027t think this is safe.\n\nIf the image signature is partially present, we should assume that the user intended to have the signature validated, and therefore fail validation here.\n\nAllowing this to pass risks users believing that signatures are being verified when they actually are not.","commit_id":"2c3d4e9eab6d6cbf76812e1ab74fcd1093e7fd51"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"2ddc3c2d12cf9742cad01a3e58de643e48d6f9a8","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                                   img_sig_cert_uuid,"},{"line_number":305,"context_line":"                                   img_sig_hash_method,"},{"line_number":306,"context_line":"                                   img_sig_key_type]):"},{"line_number":307,"context_line":"                # NOTE(tommylikehu): We will verify the image signature"},{"line_number":308,"context_line":"                # only when metadata is complete."},{"line_number":309,"context_line":"                LOG.info(\u0027Image signature verification canceled due to \u0027"},{"line_number":310,"context_line":"                         \u0027incomplete signature metadata for image %s\u0027,"},{"line_number":311,"context_line":"                         image_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_ca024f0c","line":308,"range":{"start_line":307,"start_character":0,"end_line":308,"end_character":49},"in_reply_to":"5f7c97a3_860d54e9","updated":"2018-05-17 06:34:25.000000000","message":"Done","commit_id":"2c3d4e9eab6d6cbf76812e1ab74fcd1093e7fd51"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0f4afd185b138e20c0b74edbb04d447ba8d2725e","unresolved":false,"context_lines":[{"line_number":290,"context_line":""},{"line_number":291,"context_line":"def verify_glance_image_signature(context, image_service, image_id, path):"},{"line_number":292,"context_line":"    verifier \u003d None"},{"line_number":293,"context_line":"    if CONF.verify_glance_signatures \u003d\u003d \u0027enabled\u0027:"},{"line_number":294,"context_line":"        image_meta \u003d image_service.show(context, image_id)"},{"line_number":295,"context_line":"        image_properties \u003d image_meta.get(\u0027properties\u0027, {})"},{"line_number":296,"context_line":"        img_signature \u003d image_properties.get(\u0027img_signature\u0027, None)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_1a16af4a","line":293,"range":{"start_line":293,"start_character":4,"end_line":293,"end_character":50},"updated":"2018-05-29 19:36:20.000000000","message":"Should just check this and immediately return rather than indenting the whole function","commit_id":"31e5eeecc0c5536846bbd64439ca2bb29aaf9745"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"df28afc8c7c5b0a77606e3b78c63458efa35ba82","unresolved":false,"context_lines":[{"line_number":290,"context_line":""},{"line_number":291,"context_line":"def verify_glance_image_signature(context, image_service, image_id, path):"},{"line_number":292,"context_line":"    verifier \u003d None"},{"line_number":293,"context_line":"    if CONF.verify_glance_signatures \u003d\u003d \u0027enabled\u0027:"},{"line_number":294,"context_line":"        image_meta \u003d image_service.show(context, image_id)"},{"line_number":295,"context_line":"        image_properties \u003d image_meta.get(\u0027properties\u0027, {})"},{"line_number":296,"context_line":"        img_signature \u003d image_properties.get(\u0027img_signature\u0027, None)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_068c16d5","line":293,"range":{"start_line":293,"start_character":4,"end_line":293,"end_character":50},"in_reply_to":"5f7c97a3_1a16af4a","updated":"2018-05-30 01:29:54.000000000","message":"Done","commit_id":"31e5eeecc0c5536846bbd64439ca2bb29aaf9745"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a29814d079cdf1f124106e84449075c491049d29","unresolved":false,"context_lines":[{"line_number":342,"context_line":"                    LOG.info(\u0027Image signature verification succeeded \u0027"},{"line_number":343,"context_line":"                             \u0027for image %s\u0027, image_id)"},{"line_number":344,"context_line":"                    return True"},{"line_number":345,"context_line":"                except cryptography.exceptions.InvalidSignature:"},{"line_number":346,"context_line":"                    with excutils.save_and_reraise_exception():"},{"line_number":347,"context_line":"                        LOG.error(\u0027Image signature verification failed \u0027"},{"line_number":348,"context_line":"                                  \u0027for image: %s\u0027, image_id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_67f30c75","line":345,"range":{"start_line":345,"start_character":23,"end_line":345,"end_character":63},"updated":"2018-06-05 18:38:35.000000000","message":"IMO this method shouldn\u0027t reraise cryptography.exceptions.InvalidSignature or cursive_exception.SignatureVerificationError.\n\nThis makes it too complex to handle exceptions elsewhere in Cinder from this method.  It should wrap those and only raise a Cinder exception instead.","commit_id":"d401b8fd481009ffaf9a5234d5f206324906da5a"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c78773281b2ca1de46389ba34f5950fbd5be2c75","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        return False"},{"line_number":295,"context_line":"    image_meta \u003d image_service.show(context, image_id)"},{"line_number":296,"context_line":"    image_properties \u003d image_meta.get(\u0027properties\u0027, {})"},{"line_number":297,"context_line":"    img_signature \u003d image_properties.get(\u0027img_signature\u0027, None)"},{"line_number":298,"context_line":"    img_sig_hash_method \u003d image_properties.get("},{"line_number":299,"context_line":"        \u0027img_signature_hash_method\u0027, None)"},{"line_number":300,"context_line":"    img_sig_cert_uuid \u003d image_properties.get("}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_e0ca6b9f","line":297,"range":{"start_line":297,"start_character":56,"end_line":297,"end_character":62},"updated":"2018-06-07 16:49:40.000000000","message":"no need to mention None, get will return None if key is not present in the dictionary","commit_id":"42c23952f83ec404d2db62744906212a6aae5565"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c78773281b2ca1de46389ba34f5950fbd5be2c75","unresolved":false,"context_lines":[{"line_number":296,"context_line":"    image_properties \u003d image_meta.get(\u0027properties\u0027, {})"},{"line_number":297,"context_line":"    img_signature \u003d image_properties.get(\u0027img_signature\u0027, None)"},{"line_number":298,"context_line":"    img_sig_hash_method \u003d image_properties.get("},{"line_number":299,"context_line":"        \u0027img_signature_hash_method\u0027, None)"},{"line_number":300,"context_line":"    img_sig_cert_uuid \u003d image_properties.get("},{"line_number":301,"context_line":"        \u0027img_signature_certificate_uuid\u0027, None)"},{"line_number":302,"context_line":"    img_sig_key_type \u003d image_properties.get("}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_00ce87b3","line":299,"range":{"start_line":299,"start_character":37,"end_line":299,"end_character":41},"updated":"2018-06-07 16:49:40.000000000","message":"ditto","commit_id":"42c23952f83ec404d2db62744906212a6aae5565"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c78773281b2ca1de46389ba34f5950fbd5be2c75","unresolved":false,"context_lines":[{"line_number":298,"context_line":"    img_sig_hash_method \u003d image_properties.get("},{"line_number":299,"context_line":"        \u0027img_signature_hash_method\u0027, None)"},{"line_number":300,"context_line":"    img_sig_cert_uuid \u003d image_properties.get("},{"line_number":301,"context_line":"        \u0027img_signature_certificate_uuid\u0027, None)"},{"line_number":302,"context_line":"    img_sig_key_type \u003d image_properties.get("},{"line_number":303,"context_line":"        \u0027img_signature_key_type\u0027, None)"},{"line_number":304,"context_line":"    if all(m is None for m in [img_signature,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_60be5b00","line":301,"range":{"start_line":301,"start_character":42,"end_line":301,"end_character":46},"updated":"2018-06-07 16:49:40.000000000","message":"ditto","commit_id":"42c23952f83ec404d2db62744906212a6aae5565"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c78773281b2ca1de46389ba34f5950fbd5be2c75","unresolved":false,"context_lines":[{"line_number":300,"context_line":"    img_sig_cert_uuid \u003d image_properties.get("},{"line_number":301,"context_line":"        \u0027img_signature_certificate_uuid\u0027, None)"},{"line_number":302,"context_line":"    img_sig_key_type \u003d image_properties.get("},{"line_number":303,"context_line":"        \u0027img_signature_key_type\u0027, None)"},{"line_number":304,"context_line":"    if all(m is None for m in [img_signature,"},{"line_number":305,"context_line":"                               img_sig_cert_uuid,"},{"line_number":306,"context_line":"                               img_sig_hash_method,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_80b93716","line":303,"range":{"start_line":303,"start_character":34,"end_line":303,"end_character":38},"updated":"2018-06-07 16:49:40.000000000","message":"ditto","commit_id":"42c23952f83ec404d2db62744906212a6aae5565"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c78773281b2ca1de46389ba34f5950fbd5be2c75","unresolved":false,"context_lines":[{"line_number":325,"context_line":"            img_signature_key_type\u003dimg_sig_key_type,"},{"line_number":326,"context_line":"        )"},{"line_number":327,"context_line":"    except cursive_exception.SignatureVerificationError:"},{"line_number":328,"context_line":"        message \u003d _(\u0027Failed to ger verifier for image: %s\u0027) % image_id"},{"line_number":329,"context_line":"        LOG.error(message)"},{"line_number":330,"context_line":"        raise exception.ImageSignatureVerificationException("},{"line_number":331,"context_line":"            reason\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_6053bbe3","line":328,"range":{"start_line":328,"start_character":31,"end_line":328,"end_character":35},"updated":"2018-06-07 16:49:40.000000000","message":"s/ger/get","commit_id":"42c23952f83ec404d2db62744906212a6aae5565"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"3c91f86e62b0468e1f609d4e083e7a0ff01995c2","unresolved":false,"context_lines":[{"line_number":29,"context_line":"import math"},{"line_number":30,"context_line":"import os"},{"line_number":31,"context_line":"import re"},{"line_number":32,"context_line":"import six"},{"line_number":33,"context_line":"import tempfile"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"import cryptography"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_1d4edcc0","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":10},"updated":"2018-06-08 13:42:38.000000000","message":"\"six\" is a site-packages module, should go in the next import section.","commit_id":"254e9786922bd5aa4586c7424ef28b385987d40b"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"fc04c54e767a42b9dd4f2381e9f202af63a0bec5","unresolved":false,"context_lines":[{"line_number":29,"context_line":"import math"},{"line_number":30,"context_line":"import os"},{"line_number":31,"context_line":"import re"},{"line_number":32,"context_line":"import six"},{"line_number":33,"context_line":"import tempfile"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"import cryptography"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_df3b6035","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":10},"in_reply_to":"5f7c97a3_1d4edcc0","updated":"2018-06-11 04:36:17.000000000","message":"Done","commit_id":"254e9786922bd5aa4586c7424ef28b385987d40b"}],"cinder/tests/unit/test_image_utils.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0f4afd185b138e20c0b74edbb04d447ba8d2725e","unresolved":false,"context_lines":[{"line_number":367,"context_line":""},{"line_number":368,"context_line":"class TestVerifyImageSignature(test.TestCase):"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    @mock.patch(\u0027cursive.signature_utils.get_verifier\u0027)"},{"line_number":371,"context_line":"    @mock.patch(\u0027oslo_utils.fileutils.remove_path_on_error\u0027)"},{"line_number":372,"context_line":"    def test_image_signature_verify_failed(self, mock_remove, mock_get):"},{"line_number":373,"context_line":"        self.mock_object(builtins, \u0027open\u0027, mock.mock_open())"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_7737beff","line":370,"range":{"start_line":370,"start_character":17,"end_line":370,"end_character":24},"updated":"2018-05-29 19:36:20.000000000","message":"This file should \"import cursive\" since it\u0027s mocked here.","commit_id":"31e5eeecc0c5536846bbd64439ca2bb29aaf9745"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"df28afc8c7c5b0a77606e3b78c63458efa35ba82","unresolved":false,"context_lines":[{"line_number":367,"context_line":""},{"line_number":368,"context_line":"class TestVerifyImageSignature(test.TestCase):"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    @mock.patch(\u0027cursive.signature_utils.get_verifier\u0027)"},{"line_number":371,"context_line":"    @mock.patch(\u0027oslo_utils.fileutils.remove_path_on_error\u0027)"},{"line_number":372,"context_line":"    def test_image_signature_verify_failed(self, mock_remove, mock_get):"},{"line_number":373,"context_line":"        self.mock_object(builtins, \u0027open\u0027, mock.mock_open())"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_06f7365b","line":370,"range":{"start_line":370,"start_character":17,"end_line":370,"end_character":24},"in_reply_to":"5f7c97a3_7737beff","updated":"2018-05-30 01:29:54.000000000","message":"I guess we don\u0027t need to import cursive here?","commit_id":"31e5eeecc0c5536846bbd64439ca2bb29aaf9745"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0f4afd185b138e20c0b74edbb04d447ba8d2725e","unresolved":false,"context_lines":[{"line_number":377,"context_line":"                    \u0027protected\u0027: False,"},{"line_number":378,"context_line":"                    \u0027properties\u0027:"},{"line_number":379,"context_line":"                        {\u0027img_signature_certificate_uuid\u0027: \u0027fake_uuid\u0027,"},{"line_number":380,"context_line":"                         \u0027img_signature_hash_method\u0027: \u0027SHA-224\u0027,"},{"line_number":381,"context_line":"                         \u0027img_signature\u0027: \u0027signature\u0027,"},{"line_number":382,"context_line":"                         \u0027img_signature_key_type\u0027: \u0027RSA-PSS\u0027}}"},{"line_number":383,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_b71a367a","line":380,"range":{"start_line":380,"start_character":55,"end_line":380,"end_character":62},"updated":"2018-05-29 19:36:20.000000000","message":"I\u0027m fairly sure nobody actually uses SHA-224 and this should be SHA-256 just for consistency.  We don\u0027t want to encourage its use, regardless.","commit_id":"31e5eeecc0c5536846bbd64439ca2bb29aaf9745"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"df28afc8c7c5b0a77606e3b78c63458efa35ba82","unresolved":false,"context_lines":[{"line_number":377,"context_line":"                    \u0027protected\u0027: False,"},{"line_number":378,"context_line":"                    \u0027properties\u0027:"},{"line_number":379,"context_line":"                        {\u0027img_signature_certificate_uuid\u0027: \u0027fake_uuid\u0027,"},{"line_number":380,"context_line":"                         \u0027img_signature_hash_method\u0027: \u0027SHA-224\u0027,"},{"line_number":381,"context_line":"                         \u0027img_signature\u0027: \u0027signature\u0027,"},{"line_number":382,"context_line":"                         \u0027img_signature_key_type\u0027: \u0027RSA-PSS\u0027}}"},{"line_number":383,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_a69522e6","line":380,"range":{"start_line":380,"start_character":55,"end_line":380,"end_character":62},"in_reply_to":"5f7c97a3_b71a367a","updated":"2018-05-30 01:29:54.000000000","message":"Done","commit_id":"31e5eeecc0c5536846bbd64439ca2bb29aaf9745"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0f4afd185b138e20c0b74edbb04d447ba8d2725e","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        mock_get.assert_called_once_with("},{"line_number":396,"context_line":"            context\u003dctxt,"},{"line_number":397,"context_line":"            img_signature_certificate_uuid\u003d\u0027fake_uuid\u0027,"},{"line_number":398,"context_line":"            img_signature_hash_method\u003d\u0027SHA-224\u0027,"},{"line_number":399,"context_line":"            img_signature\u003d\u0027signature\u0027,"},{"line_number":400,"context_line":"            img_signature_key_type\u003d\u0027RSA-PSS\u0027)"},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_77101e5a","line":398,"range":{"start_line":398,"start_character":39,"end_line":398,"end_character":46},"updated":"2018-05-29 19:36:20.000000000","message":"ditto","commit_id":"31e5eeecc0c5536846bbd64439ca2bb29aaf9745"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"df28afc8c7c5b0a77606e3b78c63458efa35ba82","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        mock_get.assert_called_once_with("},{"line_number":396,"context_line":"            context\u003dctxt,"},{"line_number":397,"context_line":"            img_signature_certificate_uuid\u003d\u0027fake_uuid\u0027,"},{"line_number":398,"context_line":"            img_signature_hash_method\u003d\u0027SHA-224\u0027,"},{"line_number":399,"context_line":"            img_signature\u003d\u0027signature\u0027,"},{"line_number":400,"context_line":"            img_signature_key_type\u003d\u0027RSA-PSS\u0027)"},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_c69a9e12","line":398,"range":{"start_line":398,"start_character":39,"end_line":398,"end_character":46},"in_reply_to":"5f7c97a3_77101e5a","updated":"2018-05-30 01:29:54.000000000","message":"Done","commit_id":"31e5eeecc0c5536846bbd64439ca2bb29aaf9745"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0f4afd185b138e20c0b74edbb04d447ba8d2725e","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                    \u0027protected\u0027: False,"},{"line_number":427,"context_line":"                    \u0027properties\u0027:"},{"line_number":428,"context_line":"                        {\u0027img_signature_certificate_uuid\u0027: None,"},{"line_number":429,"context_line":"                         \u0027img_signature_hash_method\u0027: \u0027SHA-224\u0027,"},{"line_number":430,"context_line":"                         \u0027img_signature\u0027: \u0027signature\u0027,"},{"line_number":431,"context_line":"                         \u0027img_signature_key_type\u0027: \u0027RSA-PSS\u0027}}"},{"line_number":432,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_9715ba4b","line":429,"range":{"start_line":429,"start_character":59,"end_line":429,"end_character":62},"updated":"2018-05-29 19:36:20.000000000","message":"^","commit_id":"31e5eeecc0c5536846bbd64439ca2bb29aaf9745"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"df28afc8c7c5b0a77606e3b78c63458efa35ba82","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                    \u0027protected\u0027: False,"},{"line_number":427,"context_line":"                    \u0027properties\u0027:"},{"line_number":428,"context_line":"                        {\u0027img_signature_certificate_uuid\u0027: None,"},{"line_number":429,"context_line":"                         \u0027img_signature_hash_method\u0027: \u0027SHA-224\u0027,"},{"line_number":430,"context_line":"                         \u0027img_signature\u0027: \u0027signature\u0027,"},{"line_number":431,"context_line":"                         \u0027img_signature_key_type\u0027: \u0027RSA-PSS\u0027}}"},{"line_number":432,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_669b8a16","line":429,"range":{"start_line":429,"start_character":59,"end_line":429,"end_character":62},"in_reply_to":"5f7c97a3_9715ba4b","updated":"2018-05-30 01:29:54.000000000","message":"Done","commit_id":"31e5eeecc0c5536846bbd64439ca2bb29aaf9745"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0f4afd185b138e20c0b74edbb04d447ba8d2725e","unresolved":false,"context_lines":[{"line_number":460,"context_line":"                    \u0027protected\u0027: False,"},{"line_number":461,"context_line":"                    \u0027properties\u0027:"},{"line_number":462,"context_line":"                        {\u0027img_signature_certificate_uuid\u0027: \u0027fake_uuid\u0027,"},{"line_number":463,"context_line":"                         \u0027img_signature_hash_method\u0027: \u0027SHA-224\u0027,"},{"line_number":464,"context_line":"                         \u0027img_signature\u0027: \u0027signature\u0027,"},{"line_number":465,"context_line":"                         \u0027img_signature_key_type\u0027: \u0027RSA-PSS\u0027}}"},{"line_number":466,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_370e263b","line":463,"range":{"start_line":463,"start_character":59,"end_line":463,"end_character":62},"updated":"2018-05-29 19:36:20.000000000","message":"^","commit_id":"31e5eeecc0c5536846bbd64439ca2bb29aaf9745"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"df28afc8c7c5b0a77606e3b78c63458efa35ba82","unresolved":false,"context_lines":[{"line_number":460,"context_line":"                    \u0027protected\u0027: False,"},{"line_number":461,"context_line":"                    \u0027properties\u0027:"},{"line_number":462,"context_line":"                        {\u0027img_signature_certificate_uuid\u0027: \u0027fake_uuid\u0027,"},{"line_number":463,"context_line":"                         \u0027img_signature_hash_method\u0027: \u0027SHA-224\u0027,"},{"line_number":464,"context_line":"                         \u0027img_signature\u0027: \u0027signature\u0027,"},{"line_number":465,"context_line":"                         \u0027img_signature_key_type\u0027: \u0027RSA-PSS\u0027}}"},{"line_number":466,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_86a02644","line":463,"range":{"start_line":463,"start_character":59,"end_line":463,"end_character":62},"in_reply_to":"5f7c97a3_370e263b","updated":"2018-05-30 01:29:54.000000000","message":"Done","commit_id":"31e5eeecc0c5536846bbd64439ca2bb29aaf9745"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0f4afd185b138e20c0b74edbb04d447ba8d2725e","unresolved":false,"context_lines":[{"line_number":477,"context_line":"        mock_get.assert_called_once_with("},{"line_number":478,"context_line":"            context\u003dctxt,"},{"line_number":479,"context_line":"            img_signature_certificate_uuid\u003d\u0027fake_uuid\u0027,"},{"line_number":480,"context_line":"            img_signature_hash_method\u003d\u0027SHA-224\u0027,"},{"line_number":481,"context_line":"            img_signature\u003d\u0027signature\u0027,"},{"line_number":482,"context_line":"            img_signature_key_type\u003d\u0027RSA-PSS\u0027)"},{"line_number":483,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_570ba228","line":480,"range":{"start_line":480,"start_character":43,"end_line":480,"end_character":46},"updated":"2018-05-29 19:36:20.000000000","message":"^","commit_id":"31e5eeecc0c5536846bbd64439ca2bb29aaf9745"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"df28afc8c7c5b0a77606e3b78c63458efa35ba82","unresolved":false,"context_lines":[{"line_number":477,"context_line":"        mock_get.assert_called_once_with("},{"line_number":478,"context_line":"            context\u003dctxt,"},{"line_number":479,"context_line":"            img_signature_certificate_uuid\u003d\u0027fake_uuid\u0027,"},{"line_number":480,"context_line":"            img_signature_hash_method\u003d\u0027SHA-224\u0027,"},{"line_number":481,"context_line":"            img_signature\u003d\u0027signature\u0027,"},{"line_number":482,"context_line":"            img_signature_key_type\u003d\u0027RSA-PSS\u0027)"},{"line_number":483,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_268912c9","line":480,"range":{"start_line":480,"start_character":43,"end_line":480,"end_character":46},"in_reply_to":"5f7c97a3_570ba228","updated":"2018-05-30 01:29:54.000000000","message":"Done","commit_id":"31e5eeecc0c5536846bbd64439ca2bb29aaf9745"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c78773281b2ca1de46389ba34f5950fbd5be2c75","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"\"\"\"Unit tests for image utils.\"\"\""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import cryptography"},{"line_number":18,"context_line":"import ddt"},{"line_number":19,"context_line":"import errno"},{"line_number":20,"context_line":"import math"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_00b8c7e2","line":17,"range":{"start_line":17,"start_character":7,"end_line":17,"end_character":19},"updated":"2018-06-07 16:49:40.000000000","message":"IMO cryptography is a third party module and as per openstack standards for input it should be imported before line 22","commit_id":"42c23952f83ec404d2db62744906212a6aae5565"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"6c8013704bc266a13b6da24185f71a97e5dac787","unresolved":false,"context_lines":[{"line_number":15,"context_line":"\"\"\"Unit tests for image utils.\"\"\""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import cryptography"},{"line_number":18,"context_line":"import ddt"},{"line_number":19,"context_line":"import errno"},{"line_number":20,"context_line":"import math"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_5986ba67","line":18,"updated":"2018-06-07 18:51:51.000000000","message":"ddt is also in the wrong group in this regard.","commit_id":"42c23952f83ec404d2db62744906212a6aae5565"}],"cinder/volume/flows/manager/create_volume.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"6c8013704bc266a13b6da24185f71a97e5dac787","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            exception.ImageUnacceptable,"},{"line_number":102,"context_line":"            exception.ImageTooBig,"},{"line_number":103,"context_line":"            exception.InvalidSignatureImage,"},{"line_number":104,"context_line":"            cursive_exception.SignatureVerificationError,"},{"line_number":105,"context_line":"            cryptography.exceptions.InvalidSignature"},{"line_number":106,"context_line":"        ]"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def execute(self, **kwargs):"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_b9490e33","line":105,"range":{"start_line":104,"start_character":12,"end_line":105,"end_character":52},"updated":"2018-06-07 18:51:51.000000000","message":"No longer needed here after a previous update?","commit_id":"42c23952f83ec404d2db62744906212a6aae5565"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c78773281b2ca1de46389ba34f5950fbd5be2c75","unresolved":false,"context_lines":[{"line_number":818,"context_line":"                            backend_name) as tmp_image:"},{"line_number":819,"context_line":"                        # Verify image signature via reading content from temp"},{"line_number":820,"context_line":"                        # image, and store the verification flag if required."},{"line_number":821,"context_line":"                        verified \u003d image_utils.verify_glance_image_signature("},{"line_number":822,"context_line":"                            context, image_service, image_id, tmp_image)"},{"line_number":823,"context_line":"                        if CONF.verify_glance_signatures !\u003d \u0027disabled\u0027:"},{"line_number":824,"context_line":"                            self.db.volume_glance_metadata_bulk_create("},{"line_number":825,"context_line":"                                context, volume.id,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_60abbb74","line":822,"range":{"start_line":821,"start_character":24,"end_line":822,"end_character":72},"updated":"2018-06-07 16:49:40.000000000","message":"I guess this line should be moved in the if block as there is no need verify signature if verify_glance_signatures option is disabled. (Sorry if I missing something)","commit_id":"42c23952f83ec404d2db62744906212a6aae5565"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"bf688cab72914c6e033888d3fabad41a07bf4b90","unresolved":false,"context_lines":[{"line_number":818,"context_line":"                            backend_name) as tmp_image:"},{"line_number":819,"context_line":"                        # Verify image signature via reading content from temp"},{"line_number":820,"context_line":"                        # image, and store the verification flag if required."},{"line_number":821,"context_line":"                        verified \u003d image_utils.verify_glance_image_signature("},{"line_number":822,"context_line":"                            context, image_service, image_id, tmp_image)"},{"line_number":823,"context_line":"                        if CONF.verify_glance_signatures !\u003d \u0027disabled\u0027:"},{"line_number":824,"context_line":"                            self.db.volume_glance_metadata_bulk_create("},{"line_number":825,"context_line":"                                context, volume.id,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_78428bad","line":822,"range":{"start_line":821,"start_character":24,"end_line":822,"end_character":72},"in_reply_to":"5f7c97a3_60abbb74","updated":"2018-06-08 00:53:16.000000000","message":"The logic you mentioned is in the method.","commit_id":"42c23952f83ec404d2db62744906212a6aae5565"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"cea3eddffc8ed02625c239a2f3bf973b9c4a03f6","unresolved":false,"context_lines":[{"line_number":815,"context_line":"                            backend_name) as tmp_image:"},{"line_number":816,"context_line":"                        # Verify image signature via reading content from temp"},{"line_number":817,"context_line":"                        # image, and store the verification flag if required."},{"line_number":818,"context_line":"                        verified \u003d image_utils.verify_glance_image_signature("},{"line_number":819,"context_line":"                            context, image_service, image_id, tmp_image)"},{"line_number":820,"context_line":"                        if CONF.verify_glance_signatures !\u003d \u0027disabled\u0027:"},{"line_number":821,"context_line":"                            self.db.volume_glance_metadata_bulk_create("},{"line_number":822,"context_line":"                                context, volume.id,"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_890cf742","line":819,"range":{"start_line":818,"start_character":24,"end_line":819,"end_character":72},"updated":"2018-06-08 05:33:56.000000000","message":"I still think this should be moved inside if condition after line #820\n\nPlease let me know your opinion if you think otherwise.","commit_id":"254e9786922bd5aa4586c7424ef28b385987d40b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"bea27a8fa26d6944f1c5e995fed8cfc7e44f5869","unresolved":false,"context_lines":[{"line_number":815,"context_line":"                            backend_name) as tmp_image:"},{"line_number":816,"context_line":"                        # Verify image signature via reading content from temp"},{"line_number":817,"context_line":"                        # image, and store the verification flag if required."},{"line_number":818,"context_line":"                        verified \u003d image_utils.verify_glance_image_signature("},{"line_number":819,"context_line":"                            context, image_service, image_id, tmp_image)"},{"line_number":820,"context_line":"                        if CONF.verify_glance_signatures !\u003d \u0027disabled\u0027:"},{"line_number":821,"context_line":"                            self.db.volume_glance_metadata_bulk_create("},{"line_number":822,"context_line":"                                context, volume.id,"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_9d5aec80","line":819,"range":{"start_line":818,"start_character":24,"end_line":819,"end_character":72},"in_reply_to":"5f7c97a3_890cf742","updated":"2018-06-08 13:41:10.000000000","message":"I agree -- we shouldn\u0027t call into verify_glance_image_signature() if it\u0027s disabled.","commit_id":"254e9786922bd5aa4586c7424ef28b385987d40b"}],"lower-constraints.txt":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b1ec8b1a58ded7e8958f98e8f0de4759d347e3c1","unresolved":false,"context_lines":[{"line_number":16,"context_line":"cmd2\u003d\u003d0.8.1"},{"line_number":17,"context_line":"contextlib2\u003d\u003d0.5.5"},{"line_number":18,"context_line":"coverage\u003d\u003d4.0"},{"line_number":19,"context_line":"cryptography\u003d\u003d2.1"},{"line_number":20,"context_line":"ddt\u003d\u003d1.0.1"},{"line_number":21,"context_line":"debtcollector\u003d\u003d1.19.0"},{"line_number":22,"context_line":"decorator\u003d\u003d3.4.0"}],"source_content_type":"text/plain","patch_set":4,"id":"9f6a8fd7_ededcd8b","line":19,"updated":"2018-04-27 19:25:39.000000000","message":"I think we need to add cursive here.","commit_id":"8c862819f1c9434f0898a40912e4904f602dfb6e"}],"releasenotes/notes/support-image-signature-verification-yu8qub7286et9dh4.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"39f488b83fdcb990ac5e8f5b8cb6a5b40dcf4d2c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add image signature verification support when create volume"},{"line_number":4,"context_line":"    from image, this depends on signature metadata from glance."},{"line_number":5,"context_line":"    This feature is turned on in default, administrators can"},{"line_number":6,"context_line":"    change behaviour by updating option ``verify_glance_signatures``."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f7c97a3_c813965b","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":7},"updated":"2018-05-11 21:03:58.000000000","message":"Added","commit_id":"c409b5dedc67d9af00942d900df5e84c256db218"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"39f488b83fdcb990ac5e8f5b8cb6a5b40dcf4d2c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add image signature verification support when create volume"},{"line_number":4,"context_line":"    from image, this depends on signature metadata from glance."},{"line_number":5,"context_line":"    This feature is turned on in default, administrators can"},{"line_number":6,"context_line":"    change behaviour by updating option ``verify_glance_signatures``."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f7c97a3_e810d250","line":3,"range":{"start_line":3,"start_character":50,"end_line":3,"end_character":56},"updated":"2018-05-11 21:03:58.000000000","message":"creating","commit_id":"c409b5dedc67d9af00942d900df5e84c256db218"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"39f488b83fdcb990ac5e8f5b8cb6a5b40dcf4d2c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add image signature verification support when create volume"},{"line_number":4,"context_line":"    from image, this depends on signature metadata from glance."},{"line_number":5,"context_line":"    This feature is turned on in default, administrators can"},{"line_number":6,"context_line":"    change behaviour by updating option ``verify_glance_signatures``."},{"line_number":7,"context_line":"    Also, an additional image metadata ``signature_verified`` has"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f7c97a3_88191e7b","line":4,"range":{"start_line":4,"start_character":14,"end_line":4,"end_character":17},"updated":"2018-05-11 21:03:58.000000000","message":". This","commit_id":"c409b5dedc67d9af00942d900df5e84c256db218"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"39f488b83fdcb990ac5e8f5b8cb6a5b40dcf4d2c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add image signature verification support when create volume"},{"line_number":4,"context_line":"    from image, this depends on signature metadata from glance."},{"line_number":5,"context_line":"    This feature is turned on in default, administrators can"},{"line_number":6,"context_line":"    change behaviour by updating option ``verify_glance_signatures``."},{"line_number":7,"context_line":"    Also, an additional image metadata ``signature_verified`` has"},{"line_number":8,"context_line":"    been added to indicated whether signature verification is performed"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f7c97a3_a8165a48","line":5,"range":{"start_line":5,"start_character":30,"end_line":5,"end_character":32},"updated":"2018-05-11 21:03:58.000000000","message":"by","commit_id":"c409b5dedc67d9af00942d900df5e84c256db218"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"39f488b83fdcb990ac5e8f5b8cb6a5b40dcf4d2c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    This feature is turned on in default, administrators can"},{"line_number":6,"context_line":"    change behaviour by updating option ``verify_glance_signatures``."},{"line_number":7,"context_line":"    Also, an additional image metadata ``signature_verified`` has"},{"line_number":8,"context_line":"    been added to indicated whether signature verification is performed"},{"line_number":9,"context_line":"    during creating process."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f7c97a3_4829c687","line":8,"range":{"start_line":8,"start_character":18,"end_line":8,"end_character":27},"updated":"2018-05-11 21:03:58.000000000","message":"indicate","commit_id":"c409b5dedc67d9af00942d900df5e84c256db218"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"39f488b83fdcb990ac5e8f5b8cb6a5b40dcf4d2c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    This feature is turned on in default, administrators can"},{"line_number":6,"context_line":"    change behaviour by updating option ``verify_glance_signatures``."},{"line_number":7,"context_line":"    Also, an additional image metadata ``signature_verified`` has"},{"line_number":8,"context_line":"    been added to indicated whether signature verification is performed"},{"line_number":9,"context_line":"    during creating process."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f7c97a3_682e0293","line":8,"range":{"start_line":8,"start_character":59,"end_line":8,"end_character":61},"updated":"2018-05-11 21:03:58.000000000","message":"was","commit_id":"c409b5dedc67d9af00942d900df5e84c256db218"}]}
