)]}'
{"dragonflow/db/api_nb.py":[{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"29e1f68ca0e292b5f68070ee7fe9146ce75b077b","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    def _start_subsciber(self):"},{"line_number":115,"context_line":"        self.subscriber.initialize(self.db_change_callback)"},{"line_number":116,"context_line":"        # TODO(oanson) Move publishers_ips to DF DB."},{"line_number":117,"context_line":"        publishers_ips \u003d cfg.CONF.df.publishers_ips"},{"line_number":118,"context_line":"        for ip in publishers_ips:"},{"line_number":119,"context_line":"            uri \u003d \u0027%s://%s:%s\u0027 % ("},{"line_number":120,"context_line":"                cfg.CONF.df.publisher_transport,"},{"line_number":121,"context_line":"                ip,"},{"line_number":122,"context_line":"                cfg.CONF.df.publisher_port"},{"line_number":123,"context_line":"            )"},{"line_number":124,"context_line":"            self.subscriber.register_listen_address(uri)"},{"line_number":125,"context_line":"        publishers \u003d self.get_publishers()"},{"line_number":126,"context_line":"        for publisher in publishers:"},{"line_number":127,"context_line":"            uri \u003d publisher.get_uri()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_83e8457e","line":124,"range":{"start_line":117,"start_character":8,"end_line":124,"end_character":56},"updated":"2016-04-16 14:01:56.000000000","message":"why read publishers from both conf and db? is it good to subscribe to the same publisher twice? if the subscriber doesn\u0027t support it, it may raise exceptions. if a publisher starts and registers to the db, is it necessary to read it from conf?","commit_id":"4138fbf6444e9d5cd1e9c2a3aeb2fe0daea94485"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"462073f4791c40db3b4b0be01eccc87a40fee1b0","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    def _start_subsciber(self):"},{"line_number":115,"context_line":"        self.subscriber.initialize(self.db_change_callback)"},{"line_number":116,"context_line":"        # TODO(oanson) Move publishers_ips to DF DB."},{"line_number":117,"context_line":"        publishers_ips \u003d cfg.CONF.df.publishers_ips"},{"line_number":118,"context_line":"        for ip in publishers_ips:"},{"line_number":119,"context_line":"            uri \u003d \u0027%s://%s:%s\u0027 % ("},{"line_number":120,"context_line":"                cfg.CONF.df.publisher_transport,"},{"line_number":121,"context_line":"                ip,"},{"line_number":122,"context_line":"                cfg.CONF.df.publisher_port"},{"line_number":123,"context_line":"            )"},{"line_number":124,"context_line":"            self.subscriber.register_listen_address(uri)"},{"line_number":125,"context_line":"        publishers \u003d self.get_publishers()"},{"line_number":126,"context_line":"        for publisher in publishers:"},{"line_number":127,"context_line":"            uri \u003d publisher.get_uri()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_c5207d4c","line":124,"range":{"start_line":117,"start_character":8,"end_line":124,"end_character":56},"in_reply_to":"1a122d0e_83e8457e","updated":"2016-04-17 05:16:56.000000000","message":"\u003e why read publishers from both conf and db? \n\nI didn\u0027t want to remove the option of adding a publisher by configuration.\n\nI\u0027ll add a mechanism to avoid adding the same publisher twice.","commit_id":"4138fbf6444e9d5cd1e9c2a3aeb2fe0daea94485"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"3f1abf39d1fe79287e206dc84642118ca2025228","unresolved":false,"context_lines":[{"line_number":619,"context_line":"            return None"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"    def get_publishers(self, topic\u003dNone):"},{"line_number":622,"context_line":"        publishers_values \u003d self.driver.get_all_entries("},{"line_number":623,"context_line":"            pub_sub_api.PUBLISHER_TABLE,"},{"line_number":624,"context_line":"            topic,"},{"line_number":625,"context_line":"        )"},{"line_number":626,"context_line":"        publishers \u003d [Publisher(value) for value in publishers_values]"},{"line_number":627,"context_line":"        return publishers"},{"line_number":628,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_c1934ea2","line":625,"range":{"start_line":622,"start_character":7,"end_line":625,"end_character":9},"updated":"2016-05-06 15:03:41.000000000","message":"We need to check that all the publishers are still alive before registering it, check the last heartbeat is in the time window","commit_id":"ac68baeab1eaef67c8dddfc1de123e65ce754ee3"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"de38ebdbd0c23c2724317800b8d6a734561e0e99","unresolved":false,"context_lines":[{"line_number":619,"context_line":"            return None"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"    def get_publishers(self, topic\u003dNone):"},{"line_number":622,"context_line":"        publishers_values \u003d self.driver.get_all_entries("},{"line_number":623,"context_line":"            pub_sub_api.PUBLISHER_TABLE,"},{"line_number":624,"context_line":"            topic,"},{"line_number":625,"context_line":"        )"},{"line_number":626,"context_line":"        publishers \u003d [Publisher(value) for value in publishers_values]"},{"line_number":627,"context_line":"        return publishers"},{"line_number":628,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_dc969593","line":625,"range":{"start_line":622,"start_character":7,"end_line":625,"end_character":9},"in_reply_to":"dab17558_c1934ea2","updated":"2016-05-06 15:24:09.000000000","message":"Done","commit_id":"ac68baeab1eaef67c8dddfc1de123e65ce754ee3"}]}
