)]}'
{"monasca_setup/detection/plugins/kafka_consumer.py":[{"author":{"_account_id":20033,"name":"Artur Basiak","email":"artur.basiak@ts.fujitsu.com","username":"abasiak"},"change_message_id":"4c3f50d73944488f8e58b1d3e16d46e4984d0644","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# (C) Copyright 2015,2016 Hewlett Packard Enterprise Development LP"},{"line_number":2,"context_line":"# Copyright 2016 FUJITSU LIMITED"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"import logging"},{"line_number":5,"context_line":"import subprocess as sp"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_4e738ab2","line":2,"range":{"start_line":2,"start_character":12,"end_line":2,"end_character":16},"updated":"2017-04-18 13:45:20.000000000","message":"2016-2017","commit_id":"3e27f42b396f2176c13e6dbe340ed6446626642c"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"fc036d1700a3176704804c49d7478a42eb089072","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    \u0027/opt/kafka/bin\u0027"},{"line_number":27,"context_line":")"},{"line_number":28,"context_line":"_KAFKA_CONSUMER_GROUP_BIN \u003d \u0027kafka-consumer-groups.sh\u0027"},{"line_number":29,"context_line":"_KAFKA_ZOOKEEPER_GROUP_BIN \u003d \u0027zookeeper-shell.sh\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"_CONSUMER_GROUP_COMMAND_LINE_VALUES_LEN \u003d 7"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_8108352c","line":29,"range":{"start_line":29,"start_character":17,"end_line":29,"end_character":22},"updated":"2017-04-18 22:29:00.000000000","message":"Why is GROUP better than SHELL?","commit_id":"3e27f42b396f2176c13e6dbe340ed6446626642c"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"8ac853770184e55e4aa072af1dc1596945c8862b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    \u0027/opt/kafka/bin\u0027"},{"line_number":27,"context_line":")"},{"line_number":28,"context_line":"_KAFKA_CONSUMER_GROUP_BIN \u003d \u0027kafka-consumer-groups.sh\u0027"},{"line_number":29,"context_line":"_KAFKA_ZOOKEEPER_GROUP_BIN \u003d \u0027zookeeper-shell.sh\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"_CONSUMER_GROUP_COMMAND_LINE_VALUES_LEN \u003d 7"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_8bf16ed0","line":29,"range":{"start_line":29,"start_character":17,"end_line":29,"end_character":22},"in_reply_to":"7ffa3b31_8108352c","updated":"2017-04-19 04:47:48.000000000","message":"Done","commit_id":"3e27f42b396f2176c13e6dbe340ed6446626642c"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"fc036d1700a3176704804c49d7478a42eb089072","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        for location in _KAFKA_BIN_LOCATIONS:"},{"line_number":231,"context_line":"            if not kafka_bin:"},{"line_number":232,"context_line":"                kafka_bin \u003d self._verify_callable("},{"line_number":233,"context_line":"                        \u0027%s%s%s\u0027 % (location, \u0027/\u0027 if location else \u0027\u0027,"},{"line_number":234,"context_line":"                                    _KAFKA_CONSUMER_GROUP_BIN))"},{"line_number":235,"context_line":"            if not zookeper_bin:"},{"line_number":236,"context_line":"                zookeper_bin \u003d self._verify_callable("}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_64b41736","line":233,"range":{"start_line":233,"start_character":24,"end_line":233,"end_character":32},"updated":"2017-04-18 22:29:00.000000000","message":"os.path.join would be more platform independent","commit_id":"3e27f42b396f2176c13e6dbe340ed6446626642c"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"8ac853770184e55e4aa072af1dc1596945c8862b","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        for location in _KAFKA_BIN_LOCATIONS:"},{"line_number":231,"context_line":"            if not kafka_bin:"},{"line_number":232,"context_line":"                kafka_bin \u003d self._verify_callable("},{"line_number":233,"context_line":"                        \u0027%s%s%s\u0027 % (location, \u0027/\u0027 if location else \u0027\u0027,"},{"line_number":234,"context_line":"                                    _KAFKA_CONSUMER_GROUP_BIN))"},{"line_number":235,"context_line":"            if not zookeper_bin:"},{"line_number":236,"context_line":"                zookeper_bin \u003d self._verify_callable("}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_cbdbf6ea","line":233,"range":{"start_line":233,"start_character":24,"end_line":233,"end_character":32},"in_reply_to":"7ffa3b31_64b41736","updated":"2017-04-19 04:47:48.000000000","message":"Done","commit_id":"3e27f42b396f2176c13e6dbe340ed6446626642c"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"fc036d1700a3176704804c49d7478a42eb089072","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            return None"},{"line_number":259,"context_line":"        except Exception as ex:"},{"line_number":260,"context_line":"            log.warning(\u0027Skipping exception %s\u0027, str(ex))"},{"line_number":261,"context_line":"            pass  # we are not interested in other problems"},{"line_number":262,"context_line":"        return path  # return path if if it can be launched"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    def build_config(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_c46acbb1","line":261,"range":{"start_line":261,"start_character":12,"end_line":261,"end_character":16},"updated":"2017-04-18 22:29:00.000000000","message":"This will cause path to be returned. I think you want a return None","commit_id":"3e27f42b396f2176c13e6dbe340ed6446626642c"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"ed2141226940d06e1103ab582a4ae1e41f275766","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            return None"},{"line_number":259,"context_line":"        except Exception as ex:"},{"line_number":260,"context_line":"            log.warning(\u0027Skipping exception %s\u0027, str(ex))"},{"line_number":261,"context_line":"            pass  # we are not interested in other problems"},{"line_number":262,"context_line":"        return path  # return path if if it can be launched"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    def build_config(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_321a6dcb","line":261,"range":{"start_line":261,"start_character":12,"end_line":261,"end_character":16},"in_reply_to":"7ffa3b31_0b10be00","updated":"2017-04-21 16:22:06.000000000","message":"Ok. Maybe update your comment to be clearer that this exception means the executable is there?","commit_id":"3e27f42b396f2176c13e6dbe340ed6446626642c"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"54cf647b94b8bec27b42fdc577a3aaead7c3ef2a","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            return None"},{"line_number":259,"context_line":"        except Exception as ex:"},{"line_number":260,"context_line":"            log.warning(\u0027Skipping exception %s\u0027, str(ex))"},{"line_number":261,"context_line":"            pass  # we are not interested in other problems"},{"line_number":262,"context_line":"        return path  # return path if if it can be launched"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    def build_config(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_eacdfc65","line":261,"range":{"start_line":261,"start_character":12,"end_line":261,"end_character":16},"in_reply_to":"7ffa3b31_321a6dcb","updated":"2017-05-02 09:56:05.000000000","message":"Done","commit_id":"3e27f42b396f2176c13e6dbe340ed6446626642c"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"e885e8859bd75ab50954f755f3de2407bd7b7788","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            return None"},{"line_number":259,"context_line":"        except Exception as ex:"},{"line_number":260,"context_line":"            log.warning(\u0027Skipping exception %s\u0027, str(ex))"},{"line_number":261,"context_line":"            pass  # we are not interested in other problems"},{"line_number":262,"context_line":"        return path  # return path if if it can be launched"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    def build_config(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_0b10be00","line":261,"range":{"start_line":261,"start_character":12,"end_line":261,"end_character":16},"in_reply_to":"7ffa3b31_c46acbb1","updated":"2017-04-19 04:20:50.000000000","message":"Actually I want to return unmodified path as passed to this method, return None (false like) only if OSError is caught.","commit_id":"3e27f42b396f2176c13e6dbe340ed6446626642c"},{"author":{"_account_id":23043,"name":"Jakub Wachowski","email":"jakub.wachowski@ts.fujitsu.com","username":"wachowskij"},"change_message_id":"35ee848f056cf6c487de597921a356755b3ce9a4","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    @staticmethod"},{"line_number":252,"context_line":"    def _verify_callable(path):"},{"line_number":253,"context_line":"        try:"},{"line_number":254,"context_line":"            sp.check_call(args\u003d[path])"},{"line_number":255,"context_line":"        except sp.CalledProcessError:"},{"line_number":256,"context_line":"            log.debug(\u0027\\tExecutable %s exists\u0027, path)"},{"line_number":257,"context_line":"        except OSError:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_462c7b01","line":254,"range":{"start_line":254,"start_character":11,"end_line":254,"end_character":38},"updated":"2017-04-19 05:28:21.000000000","message":"I guess this line prints usage help to stdout, maybe it would be possible to redirect it to /dev/null ?","commit_id":"217498741ad6a26b305432f3e4fcd2570b2a14d6"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"0f96031f98859a707f33322a835ecc434b563fa5","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    @staticmethod"},{"line_number":252,"context_line":"    def _verify_callable(path):"},{"line_number":253,"context_line":"        try:"},{"line_number":254,"context_line":"            sp.check_call(args\u003d[path])"},{"line_number":255,"context_line":"        except sp.CalledProcessError:"},{"line_number":256,"context_line":"            log.debug(\u0027\\tExecutable %s exists\u0027, path)"},{"line_number":257,"context_line":"        except OSError:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_11d6ac50","line":254,"range":{"start_line":254,"start_character":11,"end_line":254,"end_character":38},"in_reply_to":"7ffa3b31_462c7b01","updated":"2017-04-19 07:55:27.000000000","message":"Done","commit_id":"217498741ad6a26b305432f3e4fcd2570b2a14d6"}]}
