)]}'
{"nova/virt/libvirt/imagecache.py":[{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"af5a49a88f6d288abdadb560b3c03b71b0c15518","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    manager considers the file to be in use if it matches an instance\u0027s"},{"line_number":74,"context_line":"    image_ref, kernel_id or ramdisk_id property."},{"line_number":75,"context_line":"    \"\"\""},{"line_number":76,"context_line":"    return hashlib.sha1(image_id).hexdigest()"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def get_cache_fname_from_image_id(image_id):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a18252c_c76d2134","line":76,"range":{"start_line":76,"start_character":4,"end_line":76,"end_character":45},"updated":"2016-04-12 17:55:35.000000000","message":"Just a question. Before this commit, the image_id was necessarily string, as str() method was called. So calling hashlib.sha1() method was safe as the parameter always converted to string (even if actually None was given to it). Now, if you pass None to the method hashlib.sha1() gives a TypeError:\n\nprint(hashlib.sha1(None))\nTypeError: object supporting the buffer API required\n\nSo I\u0027d like to ask some information. Can this happen, or is its just a theorical scenario? If so, why converting needed in the past? Thanks for the informations.","commit_id":"bf1c5f055d5d34ede48d24f8a8cea895d177891f"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"b9984dd9055ac37b7ac9d242bca86d9902bc3568","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    return hashlib.sha1(image_id).hexdigest()"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def get_cache_fname_from_image_id(image_id):"},{"line_number":80,"context_line":"    return hashlib.sha1(image_id).hexdigest()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"def get_info_filename(base_path):"}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_708fdecc","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":45},"updated":"2016-02-19 02:28:35.000000000","message":"It is the same as \u0027get_cache_fname\u0027 function.\nJust a different method name.\nAnd I could not find where it is called.\nSo it is not necessary.","commit_id":"bf1c5f055d5d34ede48d24f8a8cea895d177891f"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"54243ee3fe4bc74111d252a077683bfa4b5b32bd","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    return hashlib.sha1(image_id).hexdigest()"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def get_cache_fname_from_image_id(image_id):"},{"line_number":80,"context_line":"    return hashlib.sha1(image_id).hexdigest()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"def get_info_filename(base_path):"}],"source_content_type":"text/x-python","patch_set":7,"id":"bae84128_fe860464","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":45},"in_reply_to":"dae33548_708fdecc","updated":"2016-02-19 17:19:08.000000000","message":"Yup. No idea where this came from :)","commit_id":"bf1c5f055d5d34ede48d24f8a8cea895d177891f"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"6fb29f6bf9d69b7c6e9ea07f17b3262ff51f5f74","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    manager considers the file to be in use if it matches an instance\u0027s"},{"line_number":74,"context_line":"    image_ref, kernel_id or ramdisk_id property."},{"line_number":75,"context_line":"    \"\"\""},{"line_number":76,"context_line":"    return hashlib.sha1(image_id).hexdigest()"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def get_info_filename(base_path):"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a18252c_ed7c7b74","line":76,"range":{"start_line":76,"start_character":4,"end_line":76,"end_character":45},"updated":"2016-04-12 17:56:26.000000000","message":"Just a question. Before this commit, the image_id was necessarily string, as str() method was called. So calling hashlib.sha1() method was safe as the parameter always converted to string (even if actually None was given to it). Now, if you pass None to the method hashlib.sha1() gives a TypeError:\n\nprint(hashlib.sha1(None))\nTypeError: object supporting the buffer API required\n\nSo I\u0027d like to ask some information. Can this happen, or is its just a theorical scenario? If so, why converting needed in the past? Thanks for the information.","commit_id":"b3f4522fab1a547a017fd752f44dc6eae9fd3ee8"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"4ff8cd6b7834f5aa0692e36ab66d309dafb94f75","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    manager considers the file to be in use if it matches an instance\u0027s"},{"line_number":74,"context_line":"    image_ref, kernel_id or ramdisk_id property."},{"line_number":75,"context_line":"    \"\"\""},{"line_number":76,"context_line":"    return hashlib.sha1(image_id).hexdigest()"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def get_info_filename(base_path):"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a18252c_5a71ccdf","line":76,"range":{"start_line":76,"start_character":4,"end_line":76,"end_character":45},"in_reply_to":"5a18252c_ed7c7b74","updated":"2016-04-13 08:46:28.000000000","message":"Good question. It\u0027s safe to say that passing None here makes no sense. While it wasn\u0027t intentional on my part, I think that throwing a TypeError is safer than a headscratcher caused by a file existing in the image cache whose name is the sha1 hash of \u0027None\u0027.\n\nSo, not intentional, but a happy accident. If I was going to \u0027fix\u0027 this, I would do it by checking for None and raising a TypeError. It\u0027s not a bug, it\u0027s a feature :)","commit_id":"b3f4522fab1a547a017fd752f44dc6eae9fd3ee8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5befe2ddd37f8f1237025e57b28e28dde907f568","unresolved":false,"context_lines":[{"line_number":44,"context_line":"CONF \u003d nova.conf.CONF"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"def get_cache_fname(image_id):"},{"line_number":48,"context_line":"    \"\"\"Return a filename based on the SHA1 hash of a given image ID."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    Image files stored in the _base directory that match this pattern"}],"source_content_type":"text/x-python","patch_set":16,"id":"dab17558_95473bbb","line":47,"updated":"2016-05-10 17:57:08.000000000","message":"There are no test changes for this?","commit_id":"57249e724542b877974d69c9fac0460731fd14ad"}],"releasenotes/notes/remove-deprecated-remove_unused_kernels-b663aa6829761f1e.yaml":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e8eeedf272ba501faccc8a520d661ce8ccba5e25","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - The deprecated config option ``remove_unused_kernels`` has been removed from the"},{"line_number":4,"context_line":"    ``[libvirt]`` config section. No replacement is required, as this behaviour"},{"line_number":5,"context_line":"    is no longer relevant."}],"source_content_type":"text/x-yaml","patch_set":20,"id":"dab17558_58a9558f","line":4,"range":{"start_line":4,"start_character":70,"end_line":4,"end_character":79},"updated":"2016-05-17 14:04:48.000000000","message":"\"behavior\" is misspelled :)","commit_id":"547dc45044e3c0b8d25ab8f584e8a5141f541547"}]}
