)]}'
{"glance/api/v2/image_data.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"0cb2f71028aa97dc39d81f4771b23760d64c1bee","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"import cursive"},{"line_number":16,"context_line":"import glance_store"},{"line_number":17,"context_line":"from oslo_config import cfg"},{"line_number":18,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_988e6977","line":15,"updated":"2016-08-17 12:56:04.000000000","message":"As the cursive library currently is at 0.1.1, you need to have \"from cursive import exception as cursive_exception\" (or something like that) in order to access cursive exceptions, since \"import cursive\" doesn\u0027t import cursive.exceptions or cursive.signature_utils\n\nIn order to just use \"import cursive\" the cursive __init__.py file would have to be modified to be more like glance_store\u0027s __init__.py file (see https://github.com/openstack/glance_store/blob/master/glance_store/__init__.py).","commit_id":"7cdd459b0a7a45a471d231832facf291ece9d970"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"249f9c40788bfadf80c3726d2e2698237a7d49a2","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"import cursive"},{"line_number":16,"context_line":"import glance_store"},{"line_number":17,"context_line":"from oslo_config import cfg"},{"line_number":18,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_fab3a6e7","line":15,"in_reply_to":"3ac371cc_988e6977","updated":"2016-08-18 21:02:09.000000000","message":"I\u0027ve made a patch for cursive which does this:\n\nhttps://review.openstack.org/#/c/357493/","commit_id":"7cdd459b0a7a45a471d231832facf291ece9d970"}],"glance/location.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"27312242b7753a098bb501b997b304f96bfa12ae","unresolved":false,"context_lines":[{"line_number":415,"context_line":"                self.image.extra_properties)):"},{"line_number":416,"context_line":"            # NOTE(bpoulos): if creating verifier fails, exception will be"},{"line_number":417,"context_line":"            # raised"},{"line_number":418,"context_line":"            verifier \u003d signature_utils.get_verifier("},{"line_number":419,"context_line":"                self.context, self.image.extra_properties)"},{"line_number":420,"context_line":"        else:"},{"line_number":421,"context_line":"            verifier \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_447a0d89","line":418,"updated":"2016-08-11 17:53:46.000000000","message":"This get_verifier method is not available in cursive (cursive expects 5 arguments, not 2).  This code should be updated to use the cursive get_verifier method arguments.","commit_id":"b620a2ff1c1ea9dee7e1c2e0662c56bd64199697"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"9fea08179fb069a19c23c08b993081ee1121076a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import collections"},{"line_number":17,"context_line":"import copy"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from cryptography import exceptions as crypto_exception"},{"line_number":20,"context_line":"from cursive import signature_utils"},{"line_number":21,"context_line":"import glance_store as store"},{"line_number":22,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_434d9971","line":19,"range":{"start_line":19,"start_character":5,"end_line":19,"end_character":17},"updated":"2016-08-15 15:20:17.000000000","message":"cryptography was removed from requirements","commit_id":"1dfa4ad2ec996d3ff621a85503d24175ffe146dd"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"9fea08179fb069a19c23c08b993081ee1121076a","unresolved":false,"context_lines":[{"line_number":442,"context_line":"                LOG.info(_LI(\"Successfully verified signature for image %s\"),"},{"line_number":443,"context_line":"                         self.image.image_id)"},{"line_number":444,"context_line":"            except crypto_exception.InvalidSignature:"},{"line_number":445,"context_line":"                raise exception.SignatureVerificationError("},{"line_number":446,"context_line":"                    _(\u0027Signature verification failed\u0027)"},{"line_number":447,"context_line":"                )"},{"line_number":448,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_6844f473","line":445,"updated":"2016-08-15 15:20:17.000000000","message":"Should this be a cursive exception instead of a glance exception?\n\nLikewise, should SignatureVerificationError be deleted from glance\u0027s exception.py?\n\nAlso, SignatureVerificationError is used at http://git.openstack.org/cgit/openstack/glance/tree/glance/api/v2/image_data.py#n228","commit_id":"1dfa4ad2ec996d3ff621a85503d24175ffe146dd"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"63efc61e1444d1e23bc918ac3d87ae39493b1558","unresolved":false,"context_lines":[{"line_number":441,"context_line":"                verifier.verify()"},{"line_number":442,"context_line":"                LOG.info(_LI(\"Successfully verified signature for image %s\"),"},{"line_number":443,"context_line":"                         self.image.image_id)"},{"line_number":444,"context_line":"            except crypto_exception.InvalidSignature:"},{"line_number":445,"context_line":"                raise cursive.exception.SignatureVerificationError("},{"line_number":446,"context_line":"                    _(\u0027Signature verification failed\u0027)"},{"line_number":447,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_509a6b15","line":444,"range":{"start_line":444,"start_character":19,"end_line":444,"end_character":52},"updated":"2016-08-15 21:08:02.000000000","message":"Is there a unit test that exercises this code path? How did cryptography get removed from requirements in the first place?","commit_id":"7cdd459b0a7a45a471d231832facf291ece9d970"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"624baf47e915b608cc41826185e22599d0ea6623","unresolved":false,"context_lines":[{"line_number":441,"context_line":"                verifier.verify()"},{"line_number":442,"context_line":"                LOG.info(_LI(\"Successfully verified signature for image %s\"),"},{"line_number":443,"context_line":"                         self.image.image_id)"},{"line_number":444,"context_line":"            except crypto_exception.InvalidSignature:"},{"line_number":445,"context_line":"                raise cursive.exception.SignatureVerificationError("},{"line_number":446,"context_line":"                    _(\u0027Signature verification failed\u0027)"},{"line_number":447,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_c278202e","line":444,"range":{"start_line":444,"start_character":19,"end_line":444,"end_character":52},"in_reply_to":"3ac371cc_509a6b15","updated":"2016-08-16 16:48:05.000000000","message":"I believe that test_image_set_data_invalid_signature in glance/tests/unit/test_store_image.py exercises this code path.\n\nI removed cryptography from the requirements in the last patchset, but added it back in this patchset since the exception handling code requires that glance use cryptography (see Brianna\u0027s comments on the previous patchset).","commit_id":"7cdd459b0a7a45a471d231832facf291ece9d970"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9370791c41ba33e13253e76091168c5e9fa8ac16","unresolved":false,"context_lines":[{"line_number":421,"context_line":"            key_type \u003d extra_props[signature_utils.KEY_TYPE]"},{"line_number":422,"context_line":"            cert_uuid \u003d extra_props[signature_utils.CERT_UUID]"},{"line_number":423,"context_line":"            verifier \u003d signature_utils.get_verifier("},{"line_number":424,"context_line":"                self.context, cert_uuid, hash_method,"},{"line_number":425,"context_line":"                img_signature, key_type"},{"line_number":426,"context_line":"            )"},{"line_number":427,"context_line":"        else:"},{"line_number":428,"context_line":"            verifier \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa7ab95a_6f7799d4","line":425,"range":{"start_line":424,"start_character":16,"end_line":425,"end_character":39},"updated":"2016-08-31 21:22:05.000000000","message":"Nit: maybe pass these as named arguments instead of positional?  (I\u0027ve seen us burned recently on an upgrade that added an extra parameter in a weird place.)\n\n(Just considering this a nit because since you\u0027re also the maintainer of the cursive library, you probably won\u0027t do such a nefarious thing.)","commit_id":"5afb5d33ed7714aa2684ee9209d05f30655e2c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"118e4e12bf7bcdd2af0b1c17971970058e3a43aa","unresolved":false,"context_lines":[{"line_number":421,"context_line":"            key_type \u003d extra_props[signature_utils.KEY_TYPE]"},{"line_number":422,"context_line":"            cert_uuid \u003d extra_props[signature_utils.CERT_UUID]"},{"line_number":423,"context_line":"            verifier \u003d signature_utils.get_verifier("},{"line_number":424,"context_line":"                self.context, cert_uuid, hash_method,"},{"line_number":425,"context_line":"                img_signature, key_type"},{"line_number":426,"context_line":"            )"},{"line_number":427,"context_line":"        else:"},{"line_number":428,"context_line":"            verifier \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa7ab95a_c66247d8","line":425,"range":{"start_line":424,"start_character":16,"end_line":425,"end_character":39},"in_reply_to":"fa7ab95a_0104217c","updated":"2016-09-01 00:54:06.000000000","message":"created a separate patch to fix this","commit_id":"5afb5d33ed7714aa2684ee9209d05f30655e2c41"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"f23baaf51c2e3ee712082f9a8785eb231dd33f1a","unresolved":false,"context_lines":[{"line_number":421,"context_line":"            key_type \u003d extra_props[signature_utils.KEY_TYPE]"},{"line_number":422,"context_line":"            cert_uuid \u003d extra_props[signature_utils.CERT_UUID]"},{"line_number":423,"context_line":"            verifier \u003d signature_utils.get_verifier("},{"line_number":424,"context_line":"                self.context, cert_uuid, hash_method,"},{"line_number":425,"context_line":"                img_signature, key_type"},{"line_number":426,"context_line":"            )"},{"line_number":427,"context_line":"        else:"},{"line_number":428,"context_line":"            verifier \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa7ab95a_0104217c","line":425,"range":{"start_line":424,"start_character":16,"end_line":425,"end_character":39},"in_reply_to":"fa7ab95a_6f7799d4","updated":"2016-08-31 21:38:48.000000000","message":"+1\nI like Brian\u0027s suggestion.\nHowever, this is something that can be done in a follow up patch too.","commit_id":"5afb5d33ed7714aa2684ee9209d05f30655e2c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"15be5cff4bce59e9b8d9fcdf82b87b6e15c95fe5","unresolved":false,"context_lines":[{"line_number":421,"context_line":"            key_type \u003d extra_props[signature_utils.KEY_TYPE]"},{"line_number":422,"context_line":"            cert_uuid \u003d extra_props[signature_utils.CERT_UUID]"},{"line_number":423,"context_line":"            verifier \u003d signature_utils.get_verifier("},{"line_number":424,"context_line":"                self.context, cert_uuid, hash_method,"},{"line_number":425,"context_line":"                img_signature, key_type"},{"line_number":426,"context_line":"            )"},{"line_number":427,"context_line":"        else:"},{"line_number":428,"context_line":"            verifier \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa7ab95a_e1ec9df5","line":425,"range":{"start_line":424,"start_character":16,"end_line":425,"end_character":39},"in_reply_to":"fa7ab95a_6f7799d4","updated":"2016-08-31 21:32:32.000000000","message":"Ha, nice catch.\n\nIt\u0027s quite feasible for such 3rd party dependency to behave weirdly.","commit_id":"5afb5d33ed7714aa2684ee9209d05f30655e2c41"}],"releasenotes/notes/bug-1528349-c6b15d94845232da.yaml":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"1f6786ba90f88dae79be02ea3d7d0e9c620ec91a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Glance and Nova contain nearly identical digital signature modules. In"},{"line_number":4,"context_line":"    order to reduce the effort required to maintain this code and to eliminate"},{"line_number":5,"context_line":"    the possibility that the modules diverge, we propose removing this code"},{"line_number":6,"context_line":"    and instead using the cursive library."},{"line_number":7,"context_line":"other:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa7ab95a_a08168c5","line":4,"range":{"start_line":3,"start_character":72,"end_line":4,"end_character":61},"updated":"2016-08-29 14:20:42.000000000","message":"In order to better maintain and evolve this piece of code","commit_id":"f04a8e04b4749b3d78a99ca245f294297d995f66"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"1c013d28056c02747adcb3fa08a0e6f2034386e4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Glance and Nova contain nearly identical digital signature modules. In"},{"line_number":4,"context_line":"    order to reduce the effort required to maintain this code and to eliminate"},{"line_number":5,"context_line":"    the possibility that the modules diverge, we propose removing this code"},{"line_number":6,"context_line":"    and instead using the cursive library."},{"line_number":7,"context_line":"other:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa7ab95a_e19d8e5a","line":4,"range":{"start_line":3,"start_character":72,"end_line":4,"end_character":61},"in_reply_to":"fa7ab95a_a08168c5","updated":"2016-08-31 16:33:09.000000000","message":"Done","commit_id":"f04a8e04b4749b3d78a99ca245f294297d995f66"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"1f6786ba90f88dae79be02ea3d7d0e9c620ec91a","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    Glance and Nova contain nearly identical digital signature modules. In"},{"line_number":4,"context_line":"    order to reduce the effort required to maintain this code and to eliminate"},{"line_number":5,"context_line":"    the possibility that the modules diverge, we propose removing this code"},{"line_number":6,"context_line":"    and instead using the cursive library."},{"line_number":7,"context_line":"other:"},{"line_number":8,"context_line":"  - The cursive library is a Stackforge project which implements"},{"line_number":9,"context_line":"    OpenStack-specific verification of digital signatures. In Newton, the"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa7ab95a_8019c4d9","line":6,"range":{"start_line":6,"start_character":41,"end_line":6,"end_character":42},"updated":"2016-08-29 14:20:42.000000000","message":"Please read the other section for more details.","commit_id":"f04a8e04b4749b3d78a99ca245f294297d995f66"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"1f6786ba90f88dae79be02ea3d7d0e9c620ec91a","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    Glance and Nova contain nearly identical digital signature modules. In"},{"line_number":4,"context_line":"    order to reduce the effort required to maintain this code and to eliminate"},{"line_number":5,"context_line":"    the possibility that the modules diverge, we propose removing this code"},{"line_number":6,"context_line":"    and instead using the cursive library."},{"line_number":7,"context_line":"other:"},{"line_number":8,"context_line":"  - The cursive library is a Stackforge project which implements"},{"line_number":9,"context_line":"    OpenStack-specific verification of digital signatures. In Newton, the"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa7ab95a_20f1d895","line":6,"range":{"start_line":6,"start_character":22,"end_line":6,"end_character":33},"updated":"2016-08-29 14:20:42.000000000","message":"the new cursive..","commit_id":"f04a8e04b4749b3d78a99ca245f294297d995f66"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"1c013d28056c02747adcb3fa08a0e6f2034386e4","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    Glance and Nova contain nearly identical digital signature modules. In"},{"line_number":4,"context_line":"    order to reduce the effort required to maintain this code and to eliminate"},{"line_number":5,"context_line":"    the possibility that the modules diverge, we propose removing this code"},{"line_number":6,"context_line":"    and instead using the cursive library."},{"line_number":7,"context_line":"other:"},{"line_number":8,"context_line":"  - The cursive library is a Stackforge project which implements"},{"line_number":9,"context_line":"    OpenStack-specific verification of digital signatures. In Newton, the"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa7ab95a_41ad5a87","line":6,"range":{"start_line":6,"start_character":22,"end_line":6,"end_character":33},"in_reply_to":"fa7ab95a_20f1d895","updated":"2016-08-31 16:33:09.000000000","message":"Done","commit_id":"f04a8e04b4749b3d78a99ca245f294297d995f66"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"1c013d28056c02747adcb3fa08a0e6f2034386e4","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    Glance and Nova contain nearly identical digital signature modules. In"},{"line_number":4,"context_line":"    order to reduce the effort required to maintain this code and to eliminate"},{"line_number":5,"context_line":"    the possibility that the modules diverge, we propose removing this code"},{"line_number":6,"context_line":"    and instead using the cursive library."},{"line_number":7,"context_line":"other:"},{"line_number":8,"context_line":"  - The cursive library is a Stackforge project which implements"},{"line_number":9,"context_line":"    OpenStack-specific verification of digital signatures. In Newton, the"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa7ab95a_61aa5e72","line":6,"range":{"start_line":6,"start_character":41,"end_line":6,"end_character":42},"in_reply_to":"fa7ab95a_8019c4d9","updated":"2016-08-31 16:33:09.000000000","message":"Done","commit_id":"f04a8e04b4749b3d78a99ca245f294297d995f66"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"1f6786ba90f88dae79be02ea3d7d0e9c620ec91a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    the possibility that the modules diverge, we propose removing this code"},{"line_number":6,"context_line":"    and instead using the cursive library."},{"line_number":7,"context_line":"other:"},{"line_number":8,"context_line":"  - The cursive library is a Stackforge project which implements"},{"line_number":9,"context_line":"    OpenStack-specific verification of digital signatures. In Newton, the"},{"line_number":10,"context_line":"    majority of the signature verification code was removed from Glance."},{"line_number":11,"context_line":"    Cursive has been added to Glance as a dependency, and Glance uses the"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa7ab95a_6033e014","line":8,"range":{"start_line":8,"start_character":29,"end_line":8,"end_character":39},"updated":"2016-08-29 14:20:42.000000000","message":"OpenStack","commit_id":"f04a8e04b4749b3d78a99ca245f294297d995f66"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"1c013d28056c02747adcb3fa08a0e6f2034386e4","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    the possibility that the modules diverge, we propose removing this code"},{"line_number":6,"context_line":"    and instead using the cursive library."},{"line_number":7,"context_line":"other:"},{"line_number":8,"context_line":"  - The cursive library is a Stackforge project which implements"},{"line_number":9,"context_line":"    OpenStack-specific verification of digital signatures. In Newton, the"},{"line_number":10,"context_line":"    majority of the signature verification code was removed from Glance."},{"line_number":11,"context_line":"    Cursive has been added to Glance as a dependency, and Glance uses the"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa7ab95a_81b5a2d1","line":8,"range":{"start_line":8,"start_character":29,"end_line":8,"end_character":39},"in_reply_to":"fa7ab95a_6033e014","updated":"2016-08-31 16:33:09.000000000","message":"Done","commit_id":"f04a8e04b4749b3d78a99ca245f294297d995f66"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"1f6786ba90f88dae79be02ea3d7d0e9c620ec91a","unresolved":false,"context_lines":[{"line_number":8,"context_line":"  - The cursive library is a Stackforge project which implements"},{"line_number":9,"context_line":"    OpenStack-specific verification of digital signatures. In Newton, the"},{"line_number":10,"context_line":"    majority of the signature verification code was removed from Glance."},{"line_number":11,"context_line":"    Cursive has been added to Glance as a dependency, and Glance uses the"},{"line_number":12,"context_line":"    Cursive library\u0027s functionality to verify digital signatures."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa7ab95a_231c8269","line":11,"range":{"start_line":11,"start_character":42,"end_line":11,"end_character":53},"updated":"2016-08-29 14:20:42.000000000","message":"dependency and will be installed by default","commit_id":"f04a8e04b4749b3d78a99ca245f294297d995f66"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"1c013d28056c02747adcb3fa08a0e6f2034386e4","unresolved":false,"context_lines":[{"line_number":8,"context_line":"  - The cursive library is a Stackforge project which implements"},{"line_number":9,"context_line":"    OpenStack-specific verification of digital signatures. In Newton, the"},{"line_number":10,"context_line":"    majority of the signature verification code was removed from Glance."},{"line_number":11,"context_line":"    Cursive has been added to Glance as a dependency, and Glance uses the"},{"line_number":12,"context_line":"    Cursive library\u0027s functionality to verify digital signatures."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa7ab95a_e1b4aed2","line":11,"range":{"start_line":11,"start_character":42,"end_line":11,"end_character":53},"in_reply_to":"fa7ab95a_231c8269","updated":"2016-08-31 16:33:09.000000000","message":"Done","commit_id":"f04a8e04b4749b3d78a99ca245f294297d995f66"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"1f6786ba90f88dae79be02ea3d7d0e9c620ec91a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    OpenStack-specific verification of digital signatures. In Newton, the"},{"line_number":10,"context_line":"    majority of the signature verification code was removed from Glance."},{"line_number":11,"context_line":"    Cursive has been added to Glance as a dependency, and Glance uses the"},{"line_number":12,"context_line":"    Cursive library\u0027s functionality to verify digital signatures."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa7ab95a_a0424866","line":12,"updated":"2016-08-29 14:20:42.000000000","message":"To familiarize yourself with this new dependency and see the list of transitive dependencies, please visit \u003clink\u003e.\n\nis this the right one : https://git.openstack.org/openstack/cursive or do you have other docs or preferred pypi link?","commit_id":"f04a8e04b4749b3d78a99ca245f294297d995f66"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"1c013d28056c02747adcb3fa08a0e6f2034386e4","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    OpenStack-specific verification of digital signatures. In Newton, the"},{"line_number":10,"context_line":"    majority of the signature verification code was removed from Glance."},{"line_number":11,"context_line":"    Cursive has been added to Glance as a dependency, and Glance uses the"},{"line_number":12,"context_line":"    Cursive library\u0027s functionality to verify digital signatures."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa7ab95a_01ca724f","line":12,"in_reply_to":"fa7ab95a_a0424866","updated":"2016-08-31 16:33:09.000000000","message":"Done","commit_id":"f04a8e04b4749b3d78a99ca245f294297d995f66"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"d14017a3044d126a9a5d91ea2bcb4ee7dac50649","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    default. Glance uses the Cursive library\u0027s functionality to verify digital"},{"line_number":14,"context_line":"    signatures. To familiarize yourself with this new dependency and see the"},{"line_number":15,"context_line":"    list of transitive dependencies visit"},{"line_number":16,"context_line":"    https://git.openstack.org/openstack/cursive"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"fa7ab95a_7a90414f","line":16,"range":{"start_line":16,"start_character":4,"end_line":16,"end_character":47},"updated":"2016-08-31 18:51:42.000000000","message":"I think the following websites would be better:\n\nhttps://github.com/openstack/cursive\n\nor\n\nhttp://git.openstack.org/cgit/openstack/cursive/","commit_id":"306c47eeafd4cbcc239cea1d34ccb582c1c2b629"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"b08860f9a93d68bee29530158bb17f8911ed5b39","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    default. Glance uses the Cursive library\u0027s functionality to verify digital"},{"line_number":14,"context_line":"    signatures. To familiarize yourself with this new dependency and see the"},{"line_number":15,"context_line":"    list of transitive dependencies visit"},{"line_number":16,"context_line":"    https://git.openstack.org/openstack/cursive"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"fa7ab95a_207cc671","line":16,"range":{"start_line":16,"start_character":4,"end_line":16,"end_character":47},"in_reply_to":"fa7ab95a_7a90414f","updated":"2016-08-31 19:20:54.000000000","message":"Done","commit_id":"306c47eeafd4cbcc239cea1d34ccb582c1c2b629"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"266e0f17ce56a0571d3ca48e753db410af5cc6b2","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    default. Glance uses the Cursive library\u0027s functionality to verify digital"},{"line_number":14,"context_line":"    signatures. To familiarize yourself with this new dependency and see the"},{"line_number":15,"context_line":"    list of transitive dependencies visit"},{"line_number":16,"context_line":"    https://github.com/openstack/cursive"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"fa7ab95a_299f5104","line":16,"updated":"2016-08-31 20:39:13.000000000","message":"From next time onward, please keep in mind to link git.openstack.org based project site as that\u0027s your official place and this is a redirect.\n\nSo, may be we don\u0027t hold off this patch and take Brianna\u0027s suggestion to link the other git.openstack.org link as an update.","commit_id":"5afb5d33ed7714aa2684ee9209d05f30655e2c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"118e4e12bf7bcdd2af0b1c17971970058e3a43aa","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    default. Glance uses the Cursive library\u0027s functionality to verify digital"},{"line_number":14,"context_line":"    signatures. To familiarize yourself with this new dependency and see the"},{"line_number":15,"context_line":"    list of transitive dependencies visit"},{"line_number":16,"context_line":"    https://github.com/openstack/cursive"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"fa7ab95a_667fbb66","line":16,"in_reply_to":"fa7ab95a_299f5104","updated":"2016-09-01 00:54:06.000000000","message":"also the notes need text wrapping at width of 60 for release notes. not mandatory but just a general practice.\n\nthe file name can be updated to something more discoverable.\n\n\nall this fixed in a separate patch.","commit_id":"5afb5d33ed7714aa2684ee9209d05f30655e2c41"}],"requirements.txt":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"b05f6cbf549129c96035631a8a70e54f9e0f6958","unresolved":false,"context_lines":[{"line_number":54,"context_line":"# Artifact repository"},{"line_number":55,"context_line":"semantic-version\u003e\u003d2.3.1 # BSD"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"castellan\u003e\u003d0.4.0 # Apache-2.0"},{"line_number":58,"context_line":"cryptography!\u003d1.3.0,\u003e\u003d1.0 # BSD/Apache-2.0"},{"line_number":59,"context_line":"debtcollector\u003e\u003d1.2.0 # Apache-2.0"},{"line_number":60,"context_line":"cursive\u003e\u003d0.1.1 # Apache-2.0"},{"line_number":61,"context_line":""}],"source_content_type":"text/plain","patch_set":1,"id":"9ad45d7e_ee1125b1","line":58,"range":{"start_line":57,"start_character":0,"end_line":58,"end_character":42},"updated":"2016-08-08 15:34:41.000000000","message":"Can castellan and cryptography be removed?  Are they used elsewhere outside of signature_utils?","commit_id":"647321d1705b9e271c0077f36037c1dfb7c3cdba"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"b05f6cbf549129c96035631a8a70e54f9e0f6958","unresolved":false,"context_lines":[{"line_number":57,"context_line":"castellan\u003e\u003d0.4.0 # Apache-2.0"},{"line_number":58,"context_line":"cryptography!\u003d1.3.0,\u003e\u003d1.0 # BSD/Apache-2.0"},{"line_number":59,"context_line":"debtcollector\u003e\u003d1.2.0 # Apache-2.0"},{"line_number":60,"context_line":"cursive\u003e\u003d0.1.1 # Apache-2.0"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# timeutils"},{"line_number":63,"context_line":"iso8601\u003e\u003d0.1.11 # MIT"}],"source_content_type":"text/plain","patch_set":1,"id":"9ad45d7e_6ea3759f","line":60,"updated":"2016-08-08 15:34:41.000000000","message":"This patch should be dependent on a patch which adds cursive to global-requirements.","commit_id":"647321d1705b9e271c0077f36037c1dfb7c3cdba"}]}
