)]}'
{"novaclient/tests/unit/fixture_data/images.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"4d78ccf3425f47c7eb8a56caa3b2d519232a018f","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from novaclient.tests.unit.fixture_data import base"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class V1(base.Fixture):"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    base_url \u003d \u0027v2/images\u0027"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"da36d5c6_2e865465","line":17,"range":{"start_line":17,"start_character":6,"end_line":17,"end_character":8},"updated":"2017-02-22 17:55:35.000000000","message":"I have a little cognitive dissonance with this; should the class be renamed \"V2\" given the base_url?","commit_id":"92765deafb6dd5bac19d03d445c17d6e24f375f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7019eca503bc0d4ad8049518104ff28954b74a83","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from novaclient.tests.unit.fixture_data import base"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class V1(base.Fixture):"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    base_url \u003d \u0027v2/images\u0027"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"da36d5c6_d35d5c48","line":17,"range":{"start_line":17,"start_character":6,"end_line":17,"end_character":8},"in_reply_to":"da36d5c6_2e865465","updated":"2017-02-22 20:28:10.000000000","message":"It could be I suppose. Given the V3 below I think this was actually related to nova v1(.1) vs v3 (now 2.1).","commit_id":"92765deafb6dd5bac19d03d445c17d6e24f375f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1a059ff6f381765f23412da65635e0cd213cd65b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from novaclient.tests.unit.fixture_data import base"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class V1(base.Fixture):"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    base_url \u003d \u0027v2/images\u0027"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"da36d5c6_e2944744","line":17,"range":{"start_line":17,"start_character":6,"end_line":17,"end_character":8},"in_reply_to":"da36d5c6_d35d5c48","updated":"2017-02-22 20:49:32.000000000","message":"Actually I\u0027m going to just leave this since we have these V1 fixtures all over the tests, not just for images, but I think it\u0027s for nova v1 rather than v2, so changing these should probably all be done in bulk if we care.","commit_id":"92765deafb6dd5bac19d03d445c17d6e24f375f0"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"e0b7ca895012973df4f575ec71b666a51a09c088","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from novaclient.tests.unit.fixture_data import base"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class V1(base.Fixture):"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    base_url \u003d \u0027v2/images\u0027"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"da36d5c6_a57099dd","line":17,"range":{"start_line":17,"start_character":6,"end_line":17,"end_character":8},"in_reply_to":"da36d5c6_e2944744","updated":"2017-02-22 21:20:20.000000000","message":"Yeah, fair enough :)  We should probably consider picking a more descriptive name than \"V1\" anyway, at some point ;)","commit_id":"92765deafb6dd5bac19d03d445c17d6e24f375f0"}],"novaclient/v2/images.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e920b46ea0a10dc43ab7da00434cf70925566be","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    # TODO(mriedem): This needs to move to GlanceManager since _match_image in"},{"line_number":80,"context_line":"    # the shell uses this."},{"line_number":81,"context_line":"    def list(self, detailed\u003dTrue, limit\u003dNone, marker\u003dNone):"},{"line_number":82,"context_line":"        \"\"\""},{"line_number":83,"context_line":"        Get a list of all images."},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_e53ba8e9","line":81,"range":{"start_line":81,"start_character":19,"end_line":81,"end_character":57},"updated":"2017-02-21 16:59:37.000000000","message":"_match_image doesn\u0027t pass kwargs so we can inline these.","commit_id":"5313d0d0c35a68b4c3dd3b3ade9fd3f3473c6a0b"}],"novaclient/v2/shell.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6abf91910ab5c501a9ee2536b9b9b59d22823e74","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    match \u003d set(wanted_properties)"},{"line_number":117,"context_line":"    for img in image_list:"},{"line_number":118,"context_line":"        try:"},{"line_number":119,"context_line":"            if match \u003d\u003d match.intersection(set(img.metadata.items())):"},{"line_number":120,"context_line":"                images_matched.append(img)"},{"line_number":121,"context_line":"        except AttributeError:"},{"line_number":122,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":4,"id":"da36d5c6_a860a536","line":119,"range":{"start_line":119,"start_character":51,"end_line":119,"end_character":59},"updated":"2017-02-21 17:05:12.000000000","message":"I\u0027m pretty sure this won\u0027t work with /v2/images because the image metadata is flat in glance v2.","commit_id":"35609902b19a120b54ab2796187fe95e9c481c50"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3a5539fb2b19d1b1c6681e5b401040fbe29fb41","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            try:"},{"line_number":122,"context_line":"                set([key, value])"},{"line_number":123,"context_line":"            except TypeError:"},{"line_number":124,"context_line":"                del img_dict[key]"},{"line_number":125,"context_line":"        if match \u003d\u003d match.intersection(set(img_dict.items())):"},{"line_number":126,"context_line":"            images_matched.append(img)"},{"line_number":127,"context_line":"    return images_matched"}],"source_content_type":"text/x-python","patch_set":11,"id":"da36d5c6_fba08da1","line":124,"updated":"2017-02-22 12:23:08.000000000","message":"Can\u0027t do this on py35:\n\nhttp://logs.openstack.org/94/436494/10/check/gate-python-novaclient-python35/3abc496/console.html#_2017-02-22_03_44_13_158887","commit_id":"83cc31af39c30394e6b3325bd8756cdfe4e80d96"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"4d78ccf3425f47c7eb8a56caa3b2d519232a018f","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    images_matched \u003d []"},{"line_number":116,"context_line":"    match \u003d set(wanted_properties)"},{"line_number":117,"context_line":"    for img in image_list:"},{"line_number":118,"context_line":"        img_dict \u003d {}"},{"line_number":119,"context_line":"        # exclude any unhashable entries"},{"line_number":120,"context_line":"        for key, value in img.to_dict().items():"},{"line_number":121,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"da36d5c6_cea058a2","line":118,"updated":"2017-02-22 17:55:35.000000000","message":"Why not make img_dict into a set off the top?  Then this could be simplified to:\n\n    img_match \u003d set()\n    for key, value in img.to_dict().items():\n        try:\n            img_match |\u003d set((key, value))\n        except TypeError:\n            # Ignore unhashable entries\n    if match \u003d\u003d match \u0026 img_match:\n        images_matched.append(img)","commit_id":"92765deafb6dd5bac19d03d445c17d6e24f375f0"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"e0b7ca895012973df4f575ec71b666a51a09c088","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    images_matched \u003d []"},{"line_number":116,"context_line":"    match \u003d set(wanted_properties)"},{"line_number":117,"context_line":"    for img in image_list:"},{"line_number":118,"context_line":"        img_dict \u003d {}"},{"line_number":119,"context_line":"        # exclude any unhashable entries"},{"line_number":120,"context_line":"        for key, value in img.to_dict().items():"},{"line_number":121,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"da36d5c6_25a66953","line":118,"in_reply_to":"da36d5c6_22457fb2","updated":"2017-02-22 21:20:20.000000000","message":"I did typo—I accidentally left out a \"pass\" in the \u0027except\u0027 block.  What was the test failure?","commit_id":"92765deafb6dd5bac19d03d445c17d6e24f375f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f3e35fda2c458f8182c44311ed75221b24b0eb11","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    images_matched \u003d []"},{"line_number":116,"context_line":"    match \u003d set(wanted_properties)"},{"line_number":117,"context_line":"    for img in image_list:"},{"line_number":118,"context_line":"        img_dict \u003d {}"},{"line_number":119,"context_line":"        # exclude any unhashable entries"},{"line_number":120,"context_line":"        for key, value in img.to_dict().items():"},{"line_number":121,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"da36d5c6_b5ea740d","line":118,"in_reply_to":"da36d5c6_25a66953","updated":"2017-02-23 13:51:15.000000000","message":"Yeah I caught the pass thing, but was still getting an unhashable type failure.","commit_id":"92765deafb6dd5bac19d03d445c17d6e24f375f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0597a8b737f6ef14411a26a44723f840d0224f56","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    images_matched \u003d []"},{"line_number":116,"context_line":"    match \u003d set(wanted_properties)"},{"line_number":117,"context_line":"    for img in image_list:"},{"line_number":118,"context_line":"        img_dict \u003d {}"},{"line_number":119,"context_line":"        # exclude any unhashable entries"},{"line_number":120,"context_line":"        for key, value in img.to_dict().items():"},{"line_number":121,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"da36d5c6_22457fb2","line":118,"in_reply_to":"da36d5c6_ae3cfbc8","updated":"2017-02-22 20:56:54.000000000","message":"Hmm, this fails the unit test associated with this too...what you\u0027ve proposed I mean.","commit_id":"92765deafb6dd5bac19d03d445c17d6e24f375f0"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"99194e18b88479b712dbce6a0a1de9084a4f8d65","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    images_matched \u003d []"},{"line_number":116,"context_line":"    match \u003d set(wanted_properties)"},{"line_number":117,"context_line":"    for img in image_list:"},{"line_number":118,"context_line":"        img_dict \u003d {}"},{"line_number":119,"context_line":"        # exclude any unhashable entries"},{"line_number":120,"context_line":"        for key, value in img.to_dict().items():"},{"line_number":121,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"da36d5c6_dea8e08e","line":118,"in_reply_to":"da36d5c6_b5ea740d","updated":"2017-02-23 16:32:54.000000000","message":"Interesting.  Something to follow up on in the future, I guess…","commit_id":"92765deafb6dd5bac19d03d445c17d6e24f375f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7019eca503bc0d4ad8049518104ff28954b74a83","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    images_matched \u003d []"},{"line_number":116,"context_line":"    match \u003d set(wanted_properties)"},{"line_number":117,"context_line":"    for img in image_list:"},{"line_number":118,"context_line":"        img_dict \u003d {}"},{"line_number":119,"context_line":"        # exclude any unhashable entries"},{"line_number":120,"context_line":"        for key, value in img.to_dict().items():"},{"line_number":121,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"da36d5c6_ae3cfbc8","line":118,"in_reply_to":"da36d5c6_cea058a2","updated":"2017-02-22 20:28:10.000000000","message":"Because I wrote this after 10pm and haven\u0027t dealt with unhashable set entries in python much, so I needed someone to show me a better way. :) I will change this.","commit_id":"92765deafb6dd5bac19d03d445c17d6e24f375f0"}],"releasenotes/notes/pike-rm-deprecated-img-d58e9ae2d774cbfc.yaml":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"4d78ccf3425f47c7eb8a56caa3b2d519232a018f","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    The following deprecated image commands have been removed::"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    * nova image-list"},{"line_number":9,"context_line":"    * nova image-show`"},{"line_number":10,"context_line":"    * nova image-meta"},{"line_number":11,"context_line":"    * nova image-delete"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":12,"id":"da36d5c6_ae78842c","line":9,"range":{"start_line":9,"start_character":21,"end_line":9,"end_character":22},"updated":"2017-02-22 17:55:35.000000000","message":"trailing backtick","commit_id":"92765deafb6dd5bac19d03d445c17d6e24f375f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7019eca503bc0d4ad8049518104ff28954b74a83","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    The following deprecated image commands have been removed::"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    * nova image-list"},{"line_number":9,"context_line":"    * nova image-show`"},{"line_number":10,"context_line":"    * nova image-meta"},{"line_number":11,"context_line":"    * nova image-delete"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":12,"id":"da36d5c6_2e4f2b6c","line":9,"range":{"start_line":9,"start_character":21,"end_line":9,"end_character":22},"in_reply_to":"da36d5c6_ae78842c","updated":"2017-02-22 20:28:10.000000000","message":"Done","commit_id":"92765deafb6dd5bac19d03d445c17d6e24f375f0"}]}
