)]}'
{"devstack/df-ext-services.sh":[{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"7ce7b62256af69932ab352643d45a2465ad941db","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Locate devstack directory"},{"line_number":4,"context_line":"TOP_DIR\u003d/home/gal/devstack"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"# Detect path for this script file"},{"line_number":7,"context_line":"DF_DIR\u003d$(cd $(dirname \"$0\") \u0026\u0026 pwd)"}],"source_content_type":"text/x-sh","patch_set":4,"id":"9aed3d3a_657e5e1a","line":4,"range":{"start_line":4,"start_character":9,"end_line":4,"end_character":13},"updated":"2016-02-29 16:25:59.000000000","message":"Please remove this","commit_id":"526b5db107255f16ef01edac6084c7d1714b3763"}],"dragonflow/db/api_nb.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"c47111bd49d0bb5ed9e1c34906ead814a9315e93","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    def _send_db_change_event(self, table, key, action, value, topic):"},{"line_number":113,"context_line":"        if self.use_pubsub:"},{"line_number":114,"context_line":"            update \u003d DbUpdate(table, key, action, value)"},{"line_number":115,"context_line":"            self.publisher.send_event(update)"},{"line_number":116,"context_line":"            eventlet.sleep(0)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def allocate_tunnel_key(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_b10f352d","line":115,"updated":"2016-02-28 12:48:07.000000000","message":"Consider passing topic to send_event.","commit_id":"1376ba9a5288e5121d87b4dc9911b3f9dbc674d3"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"8730518a4ad02e54ce0a70b8c95c88becd6c888e","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        self._send_db_change_event(\u0027secgroup\u0027, name, \u0027delete\u0027, name,"},{"line_number":225,"context_line":"                                   topic)"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    def add_security_group_rules(self, sg_name, new_rules):"},{"line_number":228,"context_line":"        secgroup_json \u003d self.driver.get_key(\u0027secgroup\u0027, sg_name)"},{"line_number":229,"context_line":"        secgroup \u003d jsonutils.loads(secgroup_json)"},{"line_number":230,"context_line":"        rules \u003d secgroup.get(\u0027rules\u0027, [])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_ca10295c","line":227,"range":{"start_line":227,"start_character":8,"end_line":227,"end_character":32},"updated":"2016-02-29 11:50:33.000000000","message":"need a topic para, because without topic, driver doesn\u0027t know which db node the record is in, it has to query all the db nodes.","commit_id":"3d8f28eddbdc2ee8b4f165bcb9a7866838e0f924"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"8730518a4ad02e54ce0a70b8c95c88becd6c888e","unresolved":false,"context_lines":[{"line_number":270,"context_line":"        chassis_json \u003d jsonutils.dumps(chassis)"},{"line_number":271,"context_line":"        self.driver.create_key(\u0027chassis\u0027, name, chassis_json, None)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def get_lswitch(self, name):"},{"line_number":274,"context_line":"        try:"},{"line_number":275,"context_line":"            lswitch_value \u003d self.driver.get_key(\u0027lswitch\u0027, name)"},{"line_number":276,"context_line":"            return LogicalSwitch(lswitch_value)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_aad4c5bc","line":273,"range":{"start_line":273,"start_character":8,"end_line":273,"end_character":19},"updated":"2016-02-29 11:50:33.000000000","message":"need a topic para, because without topic, driver doesn\u0027t know which db node the record is in, it has to query all the db nodes.","commit_id":"3d8f28eddbdc2ee8b4f165bcb9a7866838e0f924"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"8730518a4ad02e54ce0a70b8c95c88becd6c888e","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        self._send_db_change_event(\u0027lswitch\u0027, lswitch_name, \u0027set\u0027,"},{"line_number":330,"context_line":"                                   lswitch_json, lswitch[\u0027topic\u0027])"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"    def get_logical_port(self, port_id):"},{"line_number":333,"context_line":"        try:"},{"line_number":334,"context_line":"            port_value \u003d self.driver.get_key(\u0027lport\u0027, port_id)"},{"line_number":335,"context_line":"            return LogicalPort(port_value)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_ea252d09","line":332,"range":{"start_line":332,"start_character":8,"end_line":332,"end_character":24},"updated":"2016-02-29 11:50:33.000000000","message":"need a topic para","commit_id":"3d8f28eddbdc2ee8b4f165bcb9a7866838e0f924"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"8730518a4ad02e54ce0a70b8c95c88becd6c888e","unresolved":false,"context_lines":[{"line_number":336,"context_line":"        except Exception:"},{"line_number":337,"context_line":"            return None"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def get_all_logical_ports(self):"},{"line_number":340,"context_line":"        res \u003d []"},{"line_number":341,"context_line":"        for lport_value in self.driver.get_all_entries(\u0027lport\u0027):"},{"line_number":342,"context_line":"            lport \u003d LogicalPort(lport_value)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_0a2971e6","line":339,"range":{"start_line":339,"start_character":8,"end_line":339,"end_character":29},"updated":"2016-02-29 11:50:33.000000000","message":"need a topic para in order to query all ports of a tenant.","commit_id":"3d8f28eddbdc2ee8b4f165bcb9a7866838e0f924"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"8730518a4ad02e54ce0a70b8c95c88becd6c888e","unresolved":false,"context_lines":[{"line_number":453,"context_line":"            res.append(LogicalRouter(lrouter_value))"},{"line_number":454,"context_line":"        return res"},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"    def get_security_groups(self):"},{"line_number":457,"context_line":"        res \u003d []"},{"line_number":458,"context_line":"        for secgroup_value in self.driver.get_all_entries(\u0027secgroup\u0027):"},{"line_number":459,"context_line":"            res.append(SecurityGroup(secgroup_value))"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_eac9ad5a","line":456,"range":{"start_line":456,"start_character":8,"end_line":456,"end_character":27},"updated":"2016-02-29 11:50:33.000000000","message":"need a topic para","commit_id":"3d8f28eddbdc2ee8b4f165bcb9a7866838e0f924"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"8730518a4ad02e54ce0a70b8c95c88becd6c888e","unresolved":false,"context_lines":[{"line_number":459,"context_line":"            res.append(SecurityGroup(secgroup_value))"},{"line_number":460,"context_line":"        return res"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":"    def get_all_logical_switches(self):"},{"line_number":463,"context_line":"        res \u003d []"},{"line_number":464,"context_line":"        for lswitch_value in self.driver.get_all_entries(\u0027lswitch\u0027):"},{"line_number":465,"context_line":"            res.append(LogicalSwitch(lswitch_value))"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_6ae47de0","line":462,"range":{"start_line":462,"start_character":8,"end_line":462,"end_character":32},"updated":"2016-02-29 11:50:33.000000000","message":"need a topic para","commit_id":"3d8f28eddbdc2ee8b4f165bcb9a7866838e0f924"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"8730518a4ad02e54ce0a70b8c95c88becd6c888e","unresolved":false,"context_lines":[{"line_number":499,"context_line":"        except Exception:"},{"line_number":500,"context_line":"            return None"},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"    def get_floatingips(self):"},{"line_number":503,"context_line":"        res \u003d []"},{"line_number":504,"context_line":"        for floatingip in self.driver.get_all_entries(\u0027floatingip\u0027):"},{"line_number":505,"context_line":"            res.append(Floatingip(floatingip))"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aed3d3a_6a0bdd8e","line":502,"range":{"start_line":502,"start_character":8,"end_line":502,"end_character":23},"updated":"2016-02-29 11:50:33.000000000","message":"need a topic para","commit_id":"3d8f28eddbdc2ee8b4f165bcb9a7866838e0f924"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"02c47e981d6ee462a1e3dce73640fedc26e9f62f","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def _send_db_change_event(self, table, key, action, value, topic):"},{"line_number":115,"context_line":"        if self.use_pubsub:"},{"line_number":116,"context_line":"            update \u003d DbUpdate(table, key, action, value, topic)"},{"line_number":117,"context_line":"            self.multiproc_publisher.send_event(update)"},{"line_number":118,"context_line":"            eventlet.sleep(0)"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7af24918_63e49fab","line":116,"range":{"start_line":116,"start_character":57,"end_line":116,"end_character":62},"updated":"2016-03-03 07:50:23.000000000","message":"Gal I think that @hujie is correct you need to cal topic\u003dtopic","commit_id":"a407e1254c85c86f7196b894b541c9af7b044da4"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"a7e1c1c34004ea69e8cd8abede878ba1b83d55d0","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def _send_db_change_event(self, table, key, action, value, topic):"},{"line_number":115,"context_line":"        if self.use_pubsub:"},{"line_number":116,"context_line":"            update \u003d DbUpdate(table, key, action, value, topic)"},{"line_number":117,"context_line":"            self.multiproc_publisher.send_event(update)"},{"line_number":118,"context_line":"            eventlet.sleep(0)"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7af24918_da7e4218","line":116,"range":{"start_line":116,"start_character":55,"end_line":116,"end_character":63},"updated":"2016-03-03 03:16:02.000000000","message":"code here has one problem, the topic could not override the default topic value in the DbUpdate init function, it should write like this here:update \u003d DbUpdate(table, key, action, value, topic\u003dtopic)","commit_id":"a407e1254c85c86f7196b894b541c9af7b044da4"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"b17cf6fd0bd5b07c0ae79b9c795b2e1d14739fae","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def _send_db_change_event(self, table, key, action, value, topic):"},{"line_number":115,"context_line":"        if self.use_pubsub:"},{"line_number":116,"context_line":"            update \u003d DbUpdate(table, key, action, value, topic)"},{"line_number":117,"context_line":"            self.multiproc_publisher.send_event(update)"},{"line_number":118,"context_line":"            eventlet.sleep(0)"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7af24918_d6c9f65a","line":116,"range":{"start_line":116,"start_character":55,"end_line":116,"end_character":63},"in_reply_to":"7af24918_a5299239","updated":"2016-03-03 06:59:11.000000000","message":"well, that\u0027s not what I mean, the DbUpdate init func is:__init__(self, table, key, action, value, priority\u003d5,\n                 timestamp\u003dNone, topic\u003dSEND_ALL_TOPIC)\nwhile the topic is the 7th arg but you put it as 5th arg, so if input topic directly, the topic\u003dSEND_ALL_TOPIC will not be overrided:)","commit_id":"a407e1254c85c86f7196b894b541c9af7b044da4"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"b7cab42b166bc3d95196d19e3734dcc3f3a06c37","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def _send_db_change_event(self, table, key, action, value, topic):"},{"line_number":115,"context_line":"        if self.use_pubsub:"},{"line_number":116,"context_line":"            update \u003d DbUpdate(table, key, action, value, topic)"},{"line_number":117,"context_line":"            self.multiproc_publisher.send_event(update)"},{"line_number":118,"context_line":"            eventlet.sleep(0)"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7af24918_a5299239","line":116,"range":{"start_line":116,"start_character":55,"end_line":116,"end_character":63},"in_reply_to":"7af24918_da7e4218","updated":"2016-03-03 05:30:45.000000000","message":"The following example i think proves otherwise:\n\n\u003e\u003e\u003e def test(a\u003d0):\n...     print a\n... \n\u003e\u003e\u003e test(8)\n8\n\u003e\u003e\u003e test()\n0\n\u003e\u003e\u003e def test2(a):\n...     test(a)\n... \n\u003e\u003e\u003e test2(9)\n9\n\u003e\u003e\u003e test2()\nTraceback (most recent call last):\n  File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\nTypeError: test2() takes exactly 1 argument (0 given)","commit_id":"a407e1254c85c86f7196b894b541c9af7b044da4"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"63e2a97e7430116bf3e87c7f977437d106b93db0","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def _send_db_change_event(self, table, key, action, value, topic):"},{"line_number":115,"context_line":"        if self.use_pubsub:"},{"line_number":116,"context_line":"            update \u003d DbUpdate(table, key, action, value, topic)"},{"line_number":117,"context_line":"            self.multiproc_publisher.send_event(update)"},{"line_number":118,"context_line":"            eventlet.sleep(0)"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7af24918_b1b5c67f","line":116,"updated":"2016-03-06 07:10:28.000000000","message":"Consider passing common as a named parameter (i.e. topic\u003dtopic), as the fifth positional parameter is prioirty.","commit_id":"2e5473faab7623913917523279aad1172864cc50"}],"dragonflow/db/drivers/ramcloud_db_driver.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"9a0900a9c93959a47189619bcf5232aacd8ff27a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    def support_publish_subscribe(self):"},{"line_number":39,"context_line":"        return False"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def get_key(self, table, key):"},{"line_number":42,"context_line":"        table_id \u003d self.client.get_table_id(table)"},{"line_number":43,"context_line":"        value, version \u003d self.client.read(table_id, key)"},{"line_number":44,"context_line":"        return value"}],"source_content_type":"text/x-python","patch_set":7,"id":"7af24918_761cad13","line":41,"updated":"2016-03-02 09:31:53.000000000","message":"Consider adding parameter topic\u003dNone here as well.","commit_id":"3db35ee2e408bc7ffd7641e4b59f2c1ed1b984da"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"25350c26b64a63ff31422605c4384effc2f8f9f4","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    def support_publish_subscribe(self):"},{"line_number":39,"context_line":"        return False"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def get_key(self, table, key):"},{"line_number":42,"context_line":"        table_id \u003d self.client.get_table_id(table)"},{"line_number":43,"context_line":"        value, version \u003d self.client.read(table_id, key)"},{"line_number":44,"context_line":"        return value"}],"source_content_type":"text/x-python","patch_set":7,"id":"7af24918_31006f01","line":41,"in_reply_to":"7af24918_761cad13","updated":"2016-03-02 09:42:16.000000000","message":"Done","commit_id":"3db35ee2e408bc7ffd7641e4b59f2c1ed1b984da"}]}
