)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"92915bfafb88c4b45ec16f65771a871c89eac8ce","unresolved":false,"context_lines":[{"line_number":12,"context_line":"not know it."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ib9ace1cc9654d4a32c9110eb5452c895605caf95"},{"line_number":15,"context_line":"Closes-bug: 147059"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa1b9901_cde257a0","line":15,"updated":"2015-08-25 21:12:26.000000000","message":"I don\u0027t think this is pointing to the right bug?","commit_id":"8595f07365993897c6f389c732daa05bcb7fb674"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"8266bee9cc54e5391c262b8dbbdbdac767cc9225","unresolved":false,"context_lines":[{"line_number":12,"context_line":"not know it."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ib9ace1cc9654d4a32c9110eb5452c895605caf95"},{"line_number":15,"context_line":"Closes-bug: 147059"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_7a2fbaa1","line":15,"in_reply_to":"fa1b9901_cde257a0","updated":"2015-08-27 04:54:25.000000000","message":"haha.... 1472059","commit_id":"8595f07365993897c6f389c732daa05bcb7fb674"}],"keystone/cmd/cli.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"bf75f5b5b2df5b5c9602d629aac6d0fa0074e0be","unresolved":false,"context_lines":[{"line_number":485,"context_line":"                        LOG.warn(_LW(\u0027Ignoring file (%s) while scanning \u0027"},{"line_number":486,"context_line":"                                     \u0027domain config directory\u0027), fname)"},{"line_number":487,"context_line":"        if num_uploaded \u003d\u003d 0:"},{"line_number":488,"context_line":"            LOG.warn(_LW(\u0027No domain configs found in %r\u0027), conf_dir)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"    def run(self):"},{"line_number":491,"context_line":"        # First off, let\u0027s just check we can talk to the domain database"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_707d6a1b","line":488,"updated":"2015-08-18 18:21:47.000000000","message":"It would be nice to add a LOG.info() here indicating how many files were successfully uploaded","commit_id":"9059df15ffe4a13d918b7c3614baf66817e2069f"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b1bce1aab762574435f805886aeb313c9633434f","unresolved":false,"context_lines":[{"line_number":485,"context_line":"                        LOG.warn(_LW(\u0027Ignoring file (%s) while scanning \u0027"},{"line_number":486,"context_line":"                                     \u0027domain config directory\u0027), fname)"},{"line_number":487,"context_line":"        if num_uploaded \u003d\u003d 0:"},{"line_number":488,"context_line":"            LOG.warn(_LW(\u0027No domain configs found in %r\u0027), conf_dir)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"    def run(self):"},{"line_number":491,"context_line":"        # First off, let\u0027s just check we can talk to the domain database"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_b0c3408a","line":488,"in_reply_to":"fa1b9901_707d6a1b","updated":"2015-09-01 19:34:55.000000000","message":"Done","commit_id":"9059df15ffe4a13d918b7c3614baf66817e2069f"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"91dc48ddaae88477b5b482cbc95ee73b046092f9","unresolved":false,"context_lines":[{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        \"\"\""},{"line_number":383,"context_line":"        try:"},{"line_number":384,"context_line":"            domain_ref \u003d ("},{"line_number":385,"context_line":"                self.resource_manager.get_domain_by_name(domain_name))"},{"line_number":386,"context_line":"        except exception.DomainNotFound:"},{"line_number":387,"context_line":"            print(_(\u0027Invalid domain name: %(domain)s found in config file \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_658216ca","line":384,"updated":"2015-08-31 13:53:43.000000000","message":"maybe we can can add some logs here to verify that was uploaded correctly, makes sense?","commit_id":"905011e0fdad536a0f268e24efaf9924b2cbf8cf"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"05046defcc75bc63de061052e599a73473175558","unresolved":false,"context_lines":[{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        \"\"\""},{"line_number":383,"context_line":"        try:"},{"line_number":384,"context_line":"            domain_ref \u003d ("},{"line_number":385,"context_line":"                self.resource_manager.get_domain_by_name(domain_name))"},{"line_number":386,"context_line":"        except exception.DomainNotFound:"},{"line_number":387,"context_line":"            print(_(\u0027Invalid domain name: %(domain)s found in config file \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_30b5f0cf","line":384,"in_reply_to":"da20952f_10454c16","updated":"2015-09-01 19:39:15.000000000","message":"Yes, makes sense for me. Thanks","commit_id":"905011e0fdad536a0f268e24efaf9924b2cbf8cf"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2ddeb26428f9bfc60e2b3c54c3ad547074f5d388","unresolved":false,"context_lines":[{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        \"\"\""},{"line_number":383,"context_line":"        try:"},{"line_number":384,"context_line":"            domain_ref \u003d ("},{"line_number":385,"context_line":"                self.resource_manager.get_domain_by_name(domain_name))"},{"line_number":386,"context_line":"        except exception.DomainNotFound:"},{"line_number":387,"context_line":"            print(_(\u0027Invalid domain name: %(domain)s found in config file \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_10454c16","line":384,"in_reply_to":"da20952f_658216ca","updated":"2015-09-01 19:35:48.000000000","message":"I added something for gyee in the most recent patchset. Is that sufficient?","commit_id":"905011e0fdad536a0f268e24efaf9924b2cbf8cf"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"823e100696100fe93d3b10b656683d53b2fa2fb4","unresolved":false,"context_lines":[{"line_number":487,"context_line":"        if num_uploaded \u003d\u003d 0:"},{"line_number":488,"context_line":"            LOG.warn(_LW(\u0027No domain configs found in %r\u0027), conf_dir)"},{"line_number":489,"context_line":"        else:"},{"line_number":490,"context_line":"            LOG.info(_LI(\u0027%(num_uploaded)d configs uploaded from %(conf_dir)r\u0027)"},{"line_number":491,"context_line":"                     % dict(num_uploaded\u003dnum_uploaded, conf_dir\u003dconf_dir))"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"    def run(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_2b32b6a7","line":490,"updated":"2015-09-05 05:07:05.000000000","message":"It\u0027s more like configs file *processed* instead of *uploaded*. If the file is something like \u0027keystone.invalid.conf\u0027, this patch still tell me there is  1 configs uploaded.","commit_id":"53c8bba2f142e49a002ff08c770caf68bd7e0b60"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"7702ca2e180d69c9df236971bbc901b8f0772cd3","unresolved":false,"context_lines":[{"line_number":487,"context_line":"        if num_uploaded \u003d\u003d 0:"},{"line_number":488,"context_line":"            LOG.warn(_LW(\u0027No domain configs found in %r\u0027), conf_dir)"},{"line_number":489,"context_line":"        else:"},{"line_number":490,"context_line":"            LOG.info(_LI(\u0027%(num_uploaded)d configs uploaded from %(conf_dir)r\u0027)"},{"line_number":491,"context_line":"                     % dict(num_uploaded\u003dnum_uploaded, conf_dir\u003dconf_dir))"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"    def run(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_859aca60","line":490,"in_reply_to":"da20952f_2b32b6a7","updated":"2015-09-05 20:31:33.000000000","message":"Processed is probably a better word. That\u0027s probably true. I\u0027m going to delete this message here and submit a new patch to do a bit of refactoring to make this possible. It doesn\u0027t address the bug anyway and I only included it since it was requested in an earlier patchset.","commit_id":"53c8bba2f142e49a002ff08c770caf68bd7e0b60"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"8a577240526a74a5c4f5a559c0b4c6e4e816d130","unresolved":false,"context_lines":[{"line_number":487,"context_line":"        if num_uploaded \u003d\u003d 0:"},{"line_number":488,"context_line":"            LOG.warn(_LW(\u0027No domain configs found in %r\u0027), conf_dir)"},{"line_number":489,"context_line":"        else:"},{"line_number":490,"context_line":"            LOG.info(_LI(\u0027%(num_uploaded)d configs uploaded from %(conf_dir)r\u0027)"},{"line_number":491,"context_line":"                     % dict(num_uploaded\u003dnum_uploaded, conf_dir\u003dconf_dir))"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"    def run(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_c46cad0a","line":490,"in_reply_to":"da20952f_859aca60","updated":"2015-10-04 18:10:39.000000000","message":"++ And we don\u0027t need to add another test to test_cli for this (this test is currently missing)","commit_id":"53c8bba2f142e49a002ff08c770caf68bd7e0b60"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"91ec1532d8345ed5dbd6d12ebe8ec3fc3d356e76","unresolved":false,"context_lines":[{"line_number":487,"context_line":"        if num_uploaded \u003d\u003d 0:"},{"line_number":488,"context_line":"            LOG.warn(_LW(\u0027No domain configs found in %r\u0027), conf_dir)"},{"line_number":489,"context_line":"        else:"},{"line_number":490,"context_line":"            LOG.info(_LI(\u0027%(num_uploaded)d configs uploaded from %(conf_dir)r\u0027)"},{"line_number":491,"context_line":"                     % dict(num_uploaded\u003dnum_uploaded, conf_dir\u003dconf_dir))"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"    def run(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba15a1d1_234ebf96","line":490,"in_reply_to":"da20952f_859aca60","updated":"2015-09-15 16:14:48.000000000","message":"I like this message because it give user an idea what has been done. This is basic feedback that one shouldn\u0027t have to turn on debug logging in order to see.","commit_id":"53c8bba2f142e49a002ff08c770caf68bd7e0b60"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"98bb8af1ae48251f41b490203b34b07b1fb4264f","unresolved":false,"context_lines":[{"line_number":769,"context_line":"            return True"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":"        success_cnt \u003d 0"},{"line_number":772,"context_line":"        failure_cnt \u003d 0"},{"line_number":773,"context_line":"        for filename, domain_name in self._domain_config_finder(conf_dir):"},{"line_number":774,"context_line":"            if self._upload_config_to_database(filename, domain_name):"},{"line_number":775,"context_line":"                success_cnt +\u003d 1"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba0121b8_1b116652","line":772,"updated":"2016-04-01 16:33:40.000000000","message":"We can short hand this even more with: \n\n    \u003e\u003e\u003e a, b \u003d 1, 1\n    \u003e\u003e\u003e a \n    1\n    \u003e\u003e\u003e b\n    1","commit_id":"ad7757fae8a0d66444f7ea9cb26e286309b7a355"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"9064b5c4151ced85912b07d2976cb56b3e31088e","unresolved":false,"context_lines":[{"line_number":769,"context_line":"            return True"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":"        success_cnt \u003d 0"},{"line_number":772,"context_line":"        failure_cnt \u003d 0"},{"line_number":773,"context_line":"        for filename, domain_name in self._domain_config_finder(conf_dir):"},{"line_number":774,"context_line":"            if self._upload_config_to_database(filename, domain_name):"},{"line_number":775,"context_line":"                success_cnt +\u003d 1"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba0121b8_d4303feb","line":772,"in_reply_to":"ba0121b8_1b116652","updated":"2016-04-03 01:09:07.000000000","message":"Don\u0027t make this overly complex/hard to read :P","commit_id":"ad7757fae8a0d66444f7ea9cb26e286309b7a355"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"aa9be1c30e3df38ce1e4044a5f0d2896250d592d","unresolved":false,"context_lines":[{"line_number":776,"context_line":"            else:"},{"line_number":777,"context_line":"                failure_cnt +\u003d 1"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"        if success_cnt \u003d\u003d 0:"},{"line_number":780,"context_line":"            LOG.warning(_LW(\u0027No domain configs uploaded from %r\u0027), conf_dir)"},{"line_number":781,"context_line":""},{"line_number":782,"context_line":"        if failure_cnt:"}],"source_content_type":"text/x-python","patch_set":9,"id":"5aef4532_3cb5447d","line":779,"range":{"start_line":779,"start_character":8,"end_line":779,"end_character":10},"updated":"2016-03-10 19:27:38.000000000","message":"Nit: why not just log the warning in the if statement above (ln 774)?  And return true else return false.","commit_id":"ad7757fae8a0d66444f7ea9cb26e286309b7a355"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6f1472f1727e91d83d479cb506f965ec4b897cd7","unresolved":false,"context_lines":[{"line_number":776,"context_line":"            else:"},{"line_number":777,"context_line":"                failure_cnt +\u003d 1"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"        if success_cnt \u003d\u003d 0:"},{"line_number":780,"context_line":"            LOG.warning(_LW(\u0027No domain configs uploaded from %r\u0027), conf_dir)"},{"line_number":781,"context_line":""},{"line_number":782,"context_line":"        if failure_cnt:"}],"source_content_type":"text/x-python","patch_set":9,"id":"5aef4532_a52da7ff","line":779,"range":{"start_line":779,"start_character":8,"end_line":779,"end_character":10},"in_reply_to":"5aef4532_3cb5447d","updated":"2016-03-11 03:37:52.000000000","message":"true, could just log:\n\n  domain config %s %s not uploaded % filename, domain_name\n\nat line 777","commit_id":"ad7757fae8a0d66444f7ea9cb26e286309b7a355"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"98bb8af1ae48251f41b490203b34b07b1fb4264f","unresolved":false,"context_lines":[{"line_number":776,"context_line":"            else:"},{"line_number":777,"context_line":"                failure_cnt +\u003d 1"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"        if success_cnt \u003d\u003d 0:"},{"line_number":780,"context_line":"            LOG.warning(_LW(\u0027No domain configs uploaded from %r\u0027), conf_dir)"},{"line_number":781,"context_line":""},{"line_number":782,"context_line":"        if failure_cnt:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba0121b8_fbc8f2a9","line":779,"in_reply_to":"5aef4532_a52da7ff","updated":"2016-04-01 16:33:40.000000000","message":"++ to this because it will give the user the exact config that failed to load. We could also be more verbose with our successful logging: \n\n\n    for filename, domain_name in self._domain_config_finder(conf_dir):\n        if self._upload_config_to_database(filename, domain_name):\n            LOG.info(_LI(\u0027Successfully uploaded domain config %r\u0027), filename)\n        else:\n            LOG.warning(_LW(\u0027Unable to upload domain config %r\u0027), filename)","commit_id":"ad7757fae8a0d66444f7ea9cb26e286309b7a355"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"079415d8babf21a426afb069aedf72f100f506d9","unresolved":false,"context_lines":[{"line_number":776,"context_line":"            else:"},{"line_number":777,"context_line":"                failure_cnt +\u003d 1"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"        if success_cnt \u003d\u003d 0:"},{"line_number":780,"context_line":"            LOG.warning(_LW(\u0027No domain configs uploaded from %r\u0027), conf_dir)"},{"line_number":781,"context_line":""},{"line_number":782,"context_line":"        if failure_cnt:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa6399be_40ba70e2","line":779,"in_reply_to":"7aa08908_0b292e8a","updated":"2016-10-19 19:29:52.000000000","message":"Even if I do the suggested output I still need the warning below. That was we are explicitly saying that nothing happened. Sure you could say the lack of output already says that, but that\u0027s not currently true. Also failures are already logged above so there is no reason to do that here too.","commit_id":"ad7757fae8a0d66444f7ea9cb26e286309b7a355"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"b48602dd53cdbf101f59c71861b11136977c120d","unresolved":false,"context_lines":[{"line_number":776,"context_line":"            else:"},{"line_number":777,"context_line":"                failure_cnt +\u003d 1"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"        if success_cnt \u003d\u003d 0:"},{"line_number":780,"context_line":"            LOG.warning(_LW(\u0027No domain configs uploaded from %r\u0027), conf_dir)"},{"line_number":781,"context_line":""},{"line_number":782,"context_line":"        if failure_cnt:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_0b292e8a","line":779,"in_reply_to":"ba0121b8_1451170f","updated":"2016-06-09 00:18:21.000000000","message":"I agree with Lance and Steve\u0027s suggestion, this way it will be clear what configs were successful to upload and what weren\u0027t. Also, keep this statement here to warn the case no configs were found at all in the specified dir (wrong permissions/wrong dir was specified)","commit_id":"ad7757fae8a0d66444f7ea9cb26e286309b7a355"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"9064b5c4151ced85912b07d2976cb56b3e31088e","unresolved":false,"context_lines":[{"line_number":776,"context_line":"            else:"},{"line_number":777,"context_line":"                failure_cnt +\u003d 1"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"        if success_cnt \u003d\u003d 0:"},{"line_number":780,"context_line":"            LOG.warning(_LW(\u0027No domain configs uploaded from %r\u0027), conf_dir)"},{"line_number":781,"context_line":""},{"line_number":782,"context_line":"        if failure_cnt:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba0121b8_1451170f","line":779,"in_reply_to":"ba0121b8_fbc8f2a9","updated":"2016-04-03 01:09:07.000000000","message":"++","commit_id":"ad7757fae8a0d66444f7ea9cb26e286309b7a355"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"8433f91b80f29c2b7e55a40aff271cc8cc0aa6f8","unresolved":false,"context_lines":[{"line_number":776,"context_line":"            else:"},{"line_number":777,"context_line":"                failure_cnt +\u003d 1"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"        if success_cnt \u003d\u003d 0:"},{"line_number":780,"context_line":"            LOG.warning(_LW(\u0027No domain configs uploaded from %r\u0027), conf_dir)"},{"line_number":781,"context_line":""},{"line_number":782,"context_line":"        if failure_cnt:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa6399be_7bd1e9cc","line":779,"in_reply_to":"fa6399be_40ba70e2","updated":"2016-10-19 20:16:55.000000000","message":"Looking at this again, I see your point. I\u0027m okay with this part as is.","commit_id":"ad7757fae8a0d66444f7ea9cb26e286309b7a355"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"3247d7a1fd022d57ba152a6b95ac3f890a44805b","unresolved":false,"context_lines":[{"line_number":779,"context_line":"        if success_cnt \u003d\u003d 0:"},{"line_number":780,"context_line":"            LOG.warning(_LW(\u0027No domain configs uploaded from %r\u0027), conf_dir)"},{"line_number":781,"context_line":""},{"line_number":782,"context_line":"        if failure_cnt:"},{"line_number":783,"context_line":"            return False"},{"line_number":784,"context_line":"        return True"},{"line_number":785,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5aef4532_839ea261","line":782,"range":{"start_line":782,"start_character":22,"end_line":782,"end_character":23},"updated":"2016-03-11 06:05:31.000000000","message":"What happened between patch #6 and #7? There used to be pretty good logging here indicated how many config files found and how many were successfully uploaded. What was the reason to take those out?","commit_id":"ad7757fae8a0d66444f7ea9cb26e286309b7a355"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"9064b5c4151ced85912b07d2976cb56b3e31088e","unresolved":false,"context_lines":[{"line_number":779,"context_line":"        if success_cnt \u003d\u003d 0:"},{"line_number":780,"context_line":"            LOG.warning(_LW(\u0027No domain configs uploaded from %r\u0027), conf_dir)"},{"line_number":781,"context_line":""},{"line_number":782,"context_line":"        if failure_cnt:"},{"line_number":783,"context_line":"            return False"},{"line_number":784,"context_line":"        return True"},{"line_number":785,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba0121b8_74569307","line":782,"range":{"start_line":782,"start_character":22,"end_line":782,"end_character":23},"in_reply_to":"5aef4532_839ea261","updated":"2016-04-03 01:09:07.000000000","message":"Go with steve and lance\u0027s suggestion ^","commit_id":"ad7757fae8a0d66444f7ea9cb26e286309b7a355"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3e7657e45962d3cd4d8e822e8dbe5d156bb30ae0","unresolved":false,"context_lines":[{"line_number":995,"context_line":"        failure_cnt \u003d 0"},{"line_number":996,"context_line":"        for filename, domain_name in self._domain_config_finder(conf_dir):"},{"line_number":997,"context_line":"            if self._upload_config_to_database(filename, domain_name):"},{"line_number":998,"context_line":"                success_cnt +\u003d 1"},{"line_number":999,"context_line":"                LOG.info(_LI(\u0027Successfully uploaded domain config %r\u0027),"},{"line_number":1000,"context_line":"                         filename)"},{"line_number":1001,"context_line":"            else:"},{"line_number":1002,"context_line":"                failure_cnt +\u003d 1"},{"line_number":1003,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"da6895a0_0aa527b4","line":1000,"range":{"start_line":998,"start_character":0,"end_line":1000,"end_character":34},"updated":"2016-10-24 03:11:58.000000000","message":"would love to see those piece of code is tested as well.","commit_id":"1c38db61ec116eea552fe88afd48eeac32574ad4"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d1f78c668814c2459af37809fb9a13f487acd3f8","unresolved":false,"context_lines":[{"line_number":1004,"context_line":"        if success_cnt \u003d\u003d 0:"},{"line_number":1005,"context_line":"            LOG.warning(_LW(\u0027No domain configs uploaded from %r\u0027), conf_dir)"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"        if failure_cnt:"},{"line_number":1008,"context_line":"            return False"},{"line_number":1009,"context_line":"        return True"},{"line_number":1010,"context_line":""},{"line_number":1011,"context_line":"    def run(self):"},{"line_number":1012,"context_line":"        # First off, let\u0027s just check we can talk to the domain database"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_df5656d1","line":1009,"range":{"start_line":1007,"start_character":8,"end_line":1009,"end_character":19},"updated":"2016-11-01 10:50:37.000000000","message":"\u0027return not failure_cnt\u0027 could do the magic too :)","commit_id":"1c38db61ec116eea552fe88afd48eeac32574ad4"}],"keystone/tests/unit/test_cli.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"92915bfafb88c4b45ec16f65771a871c89eac8ce","unresolved":false,"context_lines":[{"line_number":281,"context_line":"        self.logging \u003d self.useFixture("},{"line_number":282,"context_line":"            fixtures.FakeLogger(level\u003dlogging.DEBUG))"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    def test_uploading_all_from_an_empty_directory_fails(self):"},{"line_number":285,"context_line":"        CONF(args\u003d[\u0027domain_config_upload\u0027, \u0027--all\u0027], project\u003d\u0027keystone\u0027,"},{"line_number":286,"context_line":"             default_config_files\u003d[])"},{"line_number":287,"context_line":"        cli.DomainConfigUpload.main()"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_ad9b6317","line":284,"updated":"2015-08-25 21:12:26.000000000","message":"This doesn\u0027t fail does it? \n\n    def test_uploading_all_from_empty_directory_logs_warning(self):\n\nmaybe?","commit_id":"8595f07365993897c6f389c732daa05bcb7fb674"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"8266bee9cc54e5391c262b8dbbdbdac767cc9225","unresolved":false,"context_lines":[{"line_number":281,"context_line":"        self.logging \u003d self.useFixture("},{"line_number":282,"context_line":"            fixtures.FakeLogger(level\u003dlogging.DEBUG))"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    def test_uploading_all_from_an_empty_directory_fails(self):"},{"line_number":285,"context_line":"        CONF(args\u003d[\u0027domain_config_upload\u0027, \u0027--all\u0027], project\u003d\u0027keystone\u0027,"},{"line_number":286,"context_line":"             default_config_files\u003d[])"},{"line_number":287,"context_line":"        cli.DomainConfigUpload.main()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_da092633","line":284,"in_reply_to":"fa1b9901_ad9b6317","updated":"2015-08-27 04:54:25.000000000","message":"Done","commit_id":"8595f07365993897c6f389c732daa05bcb7fb674"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"823e100696100fe93d3b10b656683d53b2fa2fb4","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        self.useFixture(mockpatch.PatchObject("},{"line_number":283,"context_line":"            cli.DomainConfigUploadFiles, \u0027load_backends\u0027, fake_load_backends))"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        tempdir \u003d self.useFixture(fixtures.TempDir())"},{"line_number":286,"context_line":"        config_fixture.config(group\u003d\u0027identity\u0027, domain_config_dir\u003dtempdir.path)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        self.logging \u003d self.useFixture("}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_abcc8689","line":285,"updated":"2015-09-05 05:07:05.000000000","message":"suggest to use temporaryfile.SecureTempFile() here.","commit_id":"53c8bba2f142e49a002ff08c770caf68bd7e0b60"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"6c9409b09c0dff6535e412706f7d4ec93d3838c6","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        self.useFixture(mockpatch.PatchObject("},{"line_number":283,"context_line":"            cli.DomainConfigUploadFiles, \u0027load_backends\u0027, fake_load_backends))"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        tempdir \u003d self.useFixture(fixtures.TempDir())"},{"line_number":286,"context_line":"        config_fixture.config(group\u003d\u0027identity\u0027, domain_config_dir\u003dtempdir.path)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        self.logging \u003d self.useFixture("}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_1decceb9","line":285,"in_reply_to":"da20952f_0599da78","updated":"2015-09-06 07:33:56.000000000","message":"@David, I properly miss that you are trying to create a dir instead of a temp file. :)","commit_id":"53c8bba2f142e49a002ff08c770caf68bd7e0b60"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"7702ca2e180d69c9df236971bbc901b8f0772cd3","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        self.useFixture(mockpatch.PatchObject("},{"line_number":283,"context_line":"            cli.DomainConfigUploadFiles, \u0027load_backends\u0027, fake_load_backends))"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        tempdir \u003d self.useFixture(fixtures.TempDir())"},{"line_number":286,"context_line":"        config_fixture.config(group\u003d\u0027identity\u0027, domain_config_dir\u003dtempdir.path)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        self.logging \u003d self.useFixture("}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_0599da78","line":285,"in_reply_to":"da20952f_abcc8689","updated":"2015-09-05 20:31:33.000000000","message":"what is temporaryfile and why would i not want to use the fixture?","commit_id":"53c8bba2f142e49a002ff08c770caf68bd7e0b60"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3e7657e45962d3cd4d8e822e8dbe5d156bb30ae0","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import fixtures"},{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":"import oslo_config.fixture"},{"line_number":22,"context_line":"from oslo_log import log"},{"line_number":23,"context_line":"from oslotest import mockpatch"},{"line_number":24,"context_line":"from six.moves import range"}],"source_content_type":"text/x-python","patch_set":10,"id":"da6895a0_8af5b7cc","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":26},"updated":"2016-10-24 03:11:58.000000000","message":"what\u0027s the purpose of this change?","commit_id":"1c38db61ec116eea552fe88afd48eeac32574ad4"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3e7657e45962d3cd4d8e822e8dbe5d156bb30ae0","unresolved":false,"context_lines":[{"line_number":314,"context_line":"            domain_config_dir\u003dunit.TESTCONF + \u0027/domain_configs_multi_ldap\u0027)"},{"line_number":315,"context_line":"        self.domain_count \u003d 3"},{"line_number":316,"context_line":"        self.setup_initial_domains()"},{"line_number":317,"context_line":"        self.logging \u003d self.useFixture("},{"line_number":318,"context_line":"            fixtures.FakeLogger(level\u003dlogging.INFO))"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def config_files(self):"},{"line_number":321,"context_line":"        self.config_fixture.register_cli_opt(cli.command_opt)"}],"source_content_type":"text/x-python","patch_set":10,"id":"da6895a0_2ade6b3f","line":318,"range":{"start_line":317,"start_character":0,"end_line":318,"end_character":52},"updated":"2016-10-24 03:11:58.000000000","message":"Take out the change here the testcase can still pass, any reason to add it here?","commit_id":"1c38db61ec116eea552fe88afd48eeac32574ad4"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d1f78c668814c2459af37809fb9a13f487acd3f8","unresolved":false,"context_lines":[{"line_number":314,"context_line":"            domain_config_dir\u003dunit.TESTCONF + \u0027/domain_configs_multi_ldap\u0027)"},{"line_number":315,"context_line":"        self.domain_count \u003d 3"},{"line_number":316,"context_line":"        self.setup_initial_domains()"},{"line_number":317,"context_line":"        self.logging \u003d self.useFixture("},{"line_number":318,"context_line":"            fixtures.FakeLogger(level\u003dlogging.INFO))"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def config_files(self):"},{"line_number":321,"context_line":"        self.config_fixture.register_cli_opt(cli.command_opt)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_ffeddaef","line":318,"range":{"start_line":317,"start_character":0,"end_line":318,"end_character":52},"in_reply_to":"da6895a0_2ade6b3f","updated":"2016-11-01 10:50:37.000000000","message":"It just to make sure the info messages (when a config was successfully upload) get logged","commit_id":"1c38db61ec116eea552fe88afd48eeac32574ad4"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3e7657e45962d3cd4d8e822e8dbe5d156bb30ae0","unresolved":false,"context_lines":[{"line_number":398,"context_line":"        self.assertEqual(domain1_config, res)"},{"line_number":399,"context_line":"        res \u003d self.domain_config_api.get_config_with_sensitive_info("},{"line_number":400,"context_line":"            self.domains[\u0027domain2\u0027][\u0027id\u0027])"},{"line_number":401,"context_line":"        self.assertEqual(domain2_config, res)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"class CliDomainConfigSingleDomainTestCase(CliDomainConfigAllTestCase):"}],"source_content_type":"text/x-python","patch_set":10,"id":"da6895a0_aac99b7a","line":401,"updated":"2016-10-24 03:11:58.000000000","message":"possible to inspect the message \"Successfully uploaded domain config...\" here like you did in CliDomainConfigUploadNothing? Ideally, all logic that is being changed should be tested.","commit_id":"1c38db61ec116eea552fe88afd48eeac32574ad4"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d1f78c668814c2459af37809fb9a13f487acd3f8","unresolved":false,"context_lines":[{"line_number":398,"context_line":"        self.assertEqual(domain1_config, res)"},{"line_number":399,"context_line":"        res \u003d self.domain_config_api.get_config_with_sensitive_info("},{"line_number":400,"context_line":"            self.domains[\u0027domain2\u0027][\u0027id\u0027])"},{"line_number":401,"context_line":"        self.assertEqual(domain2_config, res)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"class CliDomainConfigSingleDomainTestCase(CliDomainConfigAllTestCase):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_1fa28eae","line":401,"in_reply_to":"da6895a0_aac99b7a","updated":"2016-11-01 10:50:37.000000000","message":"++ could be done using self.logging object. I am actually fine with this being addressed in a follow up","commit_id":"1c38db61ec116eea552fe88afd48eeac32574ad4"}]}
