)]}'
{"glance/cmd/replicator.py":[{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"a166c05a3c4826fb125bb34c78dbeb38e41df397","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"    server, port \u003d utils.parse_valid_host_port(args.pop())"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    if not options.slavetoken:"},{"line_number":331,"context_line":"        raise exception.MissingCredentialError(required\u003d\u0027slavetoken\u0027)"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"    total_size \u003d 0"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_0217ceed","line":330,"updated":"2016-07-05 17:30:20.000000000","message":"Would be safer to catch Unauthorized exception here and re-raise it with appropriate message if slavetoken is \u0027\u0027?","commit_id":"dc5c8f360e025c7eec0299dcb4b1e7fa8a161f55"},{"author":{"_account_id":7369,"name":"Sergey Skripnick","email":"sskripnick@mirantis.com","username":"redixin"},"change_message_id":"70e422836c8bd2caa0ad88fe9f782bac487703e2","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"    server, port \u003d utils.parse_valid_host_port(args.pop())"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    if not options.slavetoken:"},{"line_number":331,"context_line":"        raise exception.MissingCredentialError(required\u003d\u0027slavetoken\u0027)"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"    total_size \u003d 0"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_89f5fecc","line":330,"in_reply_to":"1aa78d24_0217ceed","updated":"2016-07-08 09:54:03.000000000","message":"It safe enough if this option is really required. Is it really required?","commit_id":"dc5c8f360e025c7eec0299dcb4b1e7fa8a161f55"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"89fce37e175179a4ce88a28bd65c2095d0013796","unresolved":false,"context_lines":[{"line_number":336,"context_line":"    server, port \u003d utils.parse_valid_host_port(args.pop())"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    if not options.slavetoken:"},{"line_number":339,"context_line":"        raise exception.MissingCredentialError(required\u003d\u0027slavetoken\u0027)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    total_size \u003d 0"},{"line_number":342,"context_line":"    count \u003d 0"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_5918ef84","line":339,"range":{"start_line":339,"start_character":8,"end_line":339,"end_character":13},"updated":"2016-07-18 14:59:36.000000000","message":"Same question as Sergey: is this really required?\n\nAlso, some other options might be required, could we do the same for all of them?","commit_id":"650bdcd356dfd3443d0133f8b9d8180a37151306"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"cbe3894fe44a27e3a43ddfd88ceb01bdf8e87298","unresolved":false,"context_lines":[{"line_number":349,"context_line":"                count +\u003d 1"},{"line_number":350,"context_line":"    except exc.HTTPUnauthorized:"},{"line_number":351,"context_line":"        if not options.slavetoken:"},{"line_number":352,"context_line":"            raise exception.MissingCredentialError(required\u003d\u0027slavetoken\u0027)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    print(_(\u0027Total size is %(size)d bytes (%(human_size)s) across \u0027"},{"line_number":355,"context_line":"            \u0027%(img_count)d images\u0027) %"}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_68c32d58","line":352,"updated":"2016-07-25 09:29:36.000000000","message":"So I am ok with this change(I think dependency on the client is the different and more complex topic). The only point that bother me is that if there is any user that tried to catch Unauth exception then he needs to update their code to catch new exception.","commit_id":"1a31ba0d144601655d3516841c5c8c4690533246"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"eb8a7c8386bc83c7233461b5c0cde5a47d5b36cc","unresolved":false,"context_lines":[{"line_number":349,"context_line":"                count +\u003d 1"},{"line_number":350,"context_line":"    except exc.HTTPUnauthorized:"},{"line_number":351,"context_line":"        if not options.slavetoken:"},{"line_number":352,"context_line":"            raise exception.MissingCredentialError(required\u003d\u0027slavetoken\u0027)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    print(_(\u0027Total size is %(size)d bytes (%(human_size)s) across \u0027"},{"line_number":355,"context_line":"            \u0027%(img_count)d images\u0027) %"}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_93a336b1","line":352,"in_reply_to":"dada55a8_68c32d58","updated":"2016-07-25 09:53:53.000000000","message":"Is a missing slavetoken the only thing that could lead to an HTTPUnauthorized exception? In other words, could the user still get an ugly backtrace here?","commit_id":"1a31ba0d144601655d3516841c5c8c4690533246"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"e43bb37859a06ce013b39616396b534aa1c46e47","unresolved":false,"context_lines":[{"line_number":349,"context_line":"                count +\u003d 1"},{"line_number":350,"context_line":"    except exc.HTTPUnauthorized:"},{"line_number":351,"context_line":"        if not options.slavetoken:"},{"line_number":352,"context_line":"            raise exception.MissingCredentialError(required\u003d\u0027slavetoken\u0027)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    print(_(\u0027Total size is %(size)d bytes (%(human_size)s) across \u0027"},{"line_number":355,"context_line":"            \u0027%(img_count)d images\u0027) %"}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_204ad3ac","line":352,"in_reply_to":"dada55a8_93a336b1","updated":"2016-07-25 18:15:11.000000000","message":"As I don\u0027t know this bit of the code that well either I\u0027d like to hear the answer to Cyril\u0027s question as well before +2. If this is the only case, I\u0027m happy with it as it is.","commit_id":"1a31ba0d144601655d3516841c5c8c4690533246"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"af3b15d7b21f936d30a7d6f26885c05165becd8f","unresolved":false,"context_lines":[{"line_number":371,"context_line":"        if not options.targettoken:"},{"line_number":372,"context_line":"            raise exception.MissingCredentialError(required\u003d\u0027targettoken\u0027)"},{"line_number":373,"context_line":"        else:"},{"line_number":374,"context_line":"            raise"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"    print(_(\u0027Total size is %(size)d bytes (%(human_size)s) across \u0027"},{"line_number":377,"context_line":"            \u0027%(img_count)d images\u0027) %"}],"source_content_type":"text/x-python","patch_set":8,"id":"ffe62b97_2bce9781","line":374,"range":{"start_line":374,"start_character":12,"end_line":374,"end_character":17},"updated":"2017-03-28 19:00:01.000000000","message":"re-raise with a message maybe?","commit_id":"df7ab7869b80227a2e5bf82e73bd3283725275bd"},{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"2e86d0339463455686345c7d7f5a449fec8a67b2","unresolved":false,"context_lines":[{"line_number":371,"context_line":"        if not options.targettoken:"},{"line_number":372,"context_line":"            raise exception.MissingCredentialError(required\u003d\u0027targettoken\u0027)"},{"line_number":373,"context_line":"        else:"},{"line_number":374,"context_line":"            raise"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"    print(_(\u0027Total size is %(size)d bytes (%(human_size)s) across \u0027"},{"line_number":377,"context_line":"            \u0027%(img_count)d images\u0027) %"}],"source_content_type":"text/x-python","patch_set":8,"id":"ffe62b97_b6532e17","line":374,"range":{"start_line":374,"start_character":12,"end_line":374,"end_character":17},"in_reply_to":"ffe62b97_2bce9781","updated":"2017-03-28 19:12:22.000000000","message":"There is appropriate exception handling above this layer (hence the raise) so it seems like a message would create redundancy.","commit_id":"df7ab7869b80227a2e5bf82e73bd3283725275bd"}],"glance/tests/unit/test_glance_replicator.py":[{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"b76e30047c5383862d34c674c95b7584bc436f6c","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        options.slavetoken \u003d None"},{"line_number":405,"context_line":"        args \u003d [\u0027localhost:9292\u0027]"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"        # To make this test work, we\u0027d have to simulate an HTTPUnauthorized"},{"line_number":408,"context_line":"        # exception"},{"line_number":409,"context_line":"        with mock.patch.object(glance_replicator,"},{"line_number":410,"context_line":"                               \u0027get_image_service\u0027) as get_image_service:"},{"line_number":411,"context_line":"            imageservice \u003d get_image_service.return_value"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_4f85a9ab","line":408,"range":{"start_line":407,"start_character":8,"end_line":408,"end_character":19},"updated":"2016-08-15 23:10:38.000000000","message":"nit: perhaps move this comment above line 413 and remove \"we\u0027d have to\"","commit_id":"8d1e1033d919b2866e225577bc36f6b6786f3e18"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"af3b15d7b21f936d30a7d6f26885c05165becd8f","unresolved":false,"context_lines":[{"line_number":401,"context_line":"        self.assertEqual(\u0027117.7 MiB\u0027, _human_readable_size(123456789))"},{"line_number":402,"context_line":"        self.assertEqual(\u002736.3 GiB\u0027, _human_readable_size(39022543360))"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    def test_replication_size_with_no_slavetoken(self):"},{"line_number":405,"context_line":"        options \u003d moves.UserDict()"},{"line_number":406,"context_line":"        options.slavetoken \u003d None"},{"line_number":407,"context_line":"        args \u003d [\u0027localhost:9292\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"ffe62b97_2bf8d778","line":404,"range":{"start_line":404,"start_character":38,"end_line":404,"end_character":48},"updated":"2017-03-28 19:00:01.000000000","message":"targettoken","commit_id":"df7ab7869b80227a2e5bf82e73bd3283725275bd"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"af3b15d7b21f936d30a7d6f26885c05165becd8f","unresolved":false,"context_lines":[{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    def test_replication_size_with_no_slavetoken(self):"},{"line_number":405,"context_line":"        options \u003d moves.UserDict()"},{"line_number":406,"context_line":"        options.slavetoken \u003d None"},{"line_number":407,"context_line":"        args \u003d [\u0027localhost:9292\u0027]"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"        # To make this test work, we\u0027d have to simulate an HTTPUnauthorized"}],"source_content_type":"text/x-python","patch_set":8,"id":"ffe62b97_ab0ce7a4","line":406,"range":{"start_line":406,"start_character":16,"end_line":406,"end_character":26},"updated":"2017-03-28 19:00:01.000000000","message":"Since code-wise we are going with \u0027targettoken\u0027 and even recommending a targettoken to be set, I would prefer the test to use \u0027targettoken\u0027 as well.","commit_id":"df7ab7869b80227a2e5bf82e73bd3283725275bd"},{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"2e86d0339463455686345c7d7f5a449fec8a67b2","unresolved":false,"context_lines":[{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    def test_replication_size_with_no_slavetoken(self):"},{"line_number":405,"context_line":"        options \u003d moves.UserDict()"},{"line_number":406,"context_line":"        options.slavetoken \u003d None"},{"line_number":407,"context_line":"        args \u003d [\u0027localhost:9292\u0027]"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"        # To make this test work, we\u0027d have to simulate an HTTPUnauthorized"}],"source_content_type":"text/x-python","patch_set":8,"id":"ffe62b97_5642a23f","line":406,"range":{"start_line":406,"start_character":16,"end_line":406,"end_character":26},"in_reply_to":"ffe62b97_ab0ce7a4","updated":"2017-03-28 19:12:22.000000000","message":"great catches on both of these. the rebase just worked so I didn\u0027t eyeball this file closely.","commit_id":"df7ab7869b80227a2e5bf82e73bd3283725275bd"}]}
