)]}'
{"devstack/plugin.sh":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"818bfeb00057822ee5cfb98409890434187b14a7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#@IgnoreInspection BashAddShebang"},{"line_number":2,"context_line":"# dragonflow.sh - Devstack extras script to install Dragonflow"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Enable DPDK for Open vSwitch user space datapath"}],"source_content_type":"text/x-sh","patch_set":20,"id":"bf659307_cd83e2a8","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":33},"updated":"2018-04-10 12:57:24.000000000","message":"What\u0027s this?","commit_id":"4370e1d0a6cfdd7a974f61efb5b92289afc96015"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"28441f96980d45b942df0b3e0e5859eb518d1af2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#@IgnoreInspection BashAddShebang"},{"line_number":2,"context_line":"# dragonflow.sh - Devstack extras script to install Dragonflow"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Enable DPDK for Open vSwitch user space datapath"}],"source_content_type":"text/x-sh","patch_set":20,"id":"bf659307_2fd7daf0","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":33},"in_reply_to":"bf659307_63297e99","updated":"2018-04-11 07:17:38.000000000","message":"nit: Technically, should go in another patch. Since this is  a one-liner, it may as well stay.","commit_id":"4370e1d0a6cfdd7a974f61efb5b92289afc96015"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"c3e71a7fe6f6fbf950244aa71970e3ea609361be","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#@IgnoreInspection BashAddShebang"},{"line_number":2,"context_line":"# dragonflow.sh - Devstack extras script to install Dragonflow"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Enable DPDK for Open vSwitch user space datapath"}],"source_content_type":"text/x-sh","patch_set":20,"id":"bf659307_63297e99","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":33},"in_reply_to":"bf659307_cd83e2a8","updated":"2018-04-10 16:20:46.000000000","message":"This tells pycharm to ignore the fact that the #! is missing.","commit_id":"4370e1d0a6cfdd7a974f61efb5b92289afc96015"}],"dragonflow/cmd/df_skydive_service.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"818bfeb00057822ee5cfb98409890434187b14a7","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            password\u003dcfg.CONF.df_skydive.password"},{"line_number":48,"context_line":"        )"},{"line_number":49,"context_line":"        if register_service:"},{"line_number":50,"context_line":"            df_service.register_service(\u0027df-skydive-service\u0027, nb_api, self)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            self.websocket_client.connect()"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf659307_4d1d9271","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":75},"updated":"2018-04-10 12:57:24.000000000","message":"This should be external to the service.","commit_id":"4370e1d0a6cfdd7a974f61efb5b92289afc96015"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"6c03bb5084804aeff310df66f491b0019fca59e6","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            password\u003dcfg.CONF.df_skydive.password"},{"line_number":48,"context_line":"        )"},{"line_number":49,"context_line":"        if register_service:"},{"line_number":50,"context_line":"            df_service.register_service(\u0027df-skydive-service\u0027, nb_api, self)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            self.websocket_client.connect()"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf659307_e347b976","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":75},"in_reply_to":"bf659307_059bd517","updated":"2018-04-11 08:32:14.000000000","message":"Done","commit_id":"4370e1d0a6cfdd7a974f61efb5b92289afc96015"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"28441f96980d45b942df0b3e0e5859eb518d1af2","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            password\u003dcfg.CONF.df_skydive.password"},{"line_number":48,"context_line":"        )"},{"line_number":49,"context_line":"        if register_service:"},{"line_number":50,"context_line":"            df_service.register_service(\u0027df-skydive-service\u0027, nb_api, self)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            self.websocket_client.connect()"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf659307_059bd517","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":75},"in_reply_to":"bf659307_152b1582","updated":"2018-04-11 07:17:38.000000000","message":"The third parameter to register_service is optional. And if the argument is passed, it is stored and never used.\n\nI think you can go ahead and call it in the main (below) without passing an instance.","commit_id":"4370e1d0a6cfdd7a974f61efb5b92289afc96015"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"c3e71a7fe6f6fbf950244aa71970e3ea609361be","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            password\u003dcfg.CONF.df_skydive.password"},{"line_number":48,"context_line":"        )"},{"line_number":49,"context_line":"        if register_service:"},{"line_number":50,"context_line":"            df_service.register_service(\u0027df-skydive-service\u0027, nb_api, self)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            self.websocket_client.connect()"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf659307_152b1582","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":75},"in_reply_to":"bf659307_4d1d9271","updated":"2018-04-10 16:20:46.000000000","message":"This is problematic.\nThe instance is generated automatically by the cotyledon when the run starts, so I have no place to inject this.\nI can try some lambda function but it might not work.\nLet\u0027s discuss it offline.","commit_id":"4370e1d0a6cfdd7a974f61efb5b92289afc96015"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"818bfeb00057822ee5cfb98409890434187b14a7","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            df_service.register_service(\u0027df-skydive-service\u0027, nb_api, self)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            self.websocket_client.connect()"},{"line_number":54,"context_line":"        except RuntimeError:"},{"line_number":55,"context_line":"            LOG.error(\u0027Failed connecting with SkyDive analyzer at %s\u0027,"},{"line_number":56,"context_line":"                      cfg.CONF.df_skydive.analyzer_endpoint)"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf659307_912420c8","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":43},"updated":"2018-04-10 12:57:24.000000000","message":"Not sure this should be in __init__. Maybe move to run/start?","commit_id":"4370e1d0a6cfdd7a974f61efb5b92289afc96015"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"28441f96980d45b942df0b3e0e5859eb518d1af2","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            df_service.register_service(\u0027df-skydive-service\u0027, nb_api, self)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            self.websocket_client.connect()"},{"line_number":54,"context_line":"        except RuntimeError:"},{"line_number":55,"context_line":"            LOG.error(\u0027Failed connecting with SkyDive analyzer at %s\u0027,"},{"line_number":56,"context_line":"                      cfg.CONF.df_skydive.analyzer_endpoint)"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf659307_65dbb1ec","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":43},"in_reply_to":"bf659307_43079a1d","updated":"2018-04-11 07:17:38.000000000","message":"\u003e Why?\n\nI find that doing more than just \u0027constructing\u0027 the object (e.g. connecting, starting asynchronous processes) hinders maintainability.\n\n\u003e This is the equivalent to the login and connect that we had previously?\n\nFair point. If it was already here, it can stay (for now).","commit_id":"4370e1d0a6cfdd7a974f61efb5b92289afc96015"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"c3e71a7fe6f6fbf950244aa71970e3ea609361be","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            df_service.register_service(\u0027df-skydive-service\u0027, nb_api, self)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            self.websocket_client.connect()"},{"line_number":54,"context_line":"        except RuntimeError:"},{"line_number":55,"context_line":"            LOG.error(\u0027Failed connecting with SkyDive analyzer at %s\u0027,"},{"line_number":56,"context_line":"                      cfg.CONF.df_skydive.analyzer_endpoint)"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf659307_43079a1d","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":43},"in_reply_to":"bf659307_912420c8","updated":"2018-04-10 16:20:46.000000000","message":"Why? This is the equivalent to the login and connect that we had previously?","commit_id":"4370e1d0a6cfdd7a974f61efb5b92289afc96015"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"818bfeb00057822ee5cfb98409890434187b14a7","unresolved":false,"context_lines":[{"line_number":281,"context_line":"    \"\"\"main method\"\"\""},{"line_number":282,"context_line":"    df_config.init(sys.argv)"},{"line_number":283,"context_line":"    df_utils.config_parse()"},{"line_number":284,"context_line":"    nb_api \u003d api_nb.NbApi.get_instance(False, True)"},{"line_number":285,"context_line":"    service_manager \u003d cotyledon.ServiceManager()"},{"line_number":286,"context_line":"    service_manager.add(SkydiveClient, workers\u003d1, args\u003d(nb_api, is_service))"},{"line_number":287,"context_line":"    service_manager.run()"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf659307_b43b52c6","line":284,"updated":"2018-04-10 12:57:24.000000000","message":"I think calling `register_service` should be done here.","commit_id":"4370e1d0a6cfdd7a974f61efb5b92289afc96015"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"28441f96980d45b942df0b3e0e5859eb518d1af2","unresolved":false,"context_lines":[{"line_number":281,"context_line":"    \"\"\"main method\"\"\""},{"line_number":282,"context_line":"    df_config.init(sys.argv)"},{"line_number":283,"context_line":"    df_utils.config_parse()"},{"line_number":284,"context_line":"    nb_api \u003d api_nb.NbApi.get_instance(False, True)"},{"line_number":285,"context_line":"    service_manager \u003d cotyledon.ServiceManager()"},{"line_number":286,"context_line":"    service_manager.add(SkydiveClient, workers\u003d1, args\u003d(nb_api, is_service))"},{"line_number":287,"context_line":"    service_manager.run()"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf659307_858605b9","line":284,"in_reply_to":"bf659307_753b71d0","updated":"2018-04-11 07:17:38.000000000","message":"As I said above, the instance is optional. Maybe we should remove that parameter altogether, as it\u0027s not really used...","commit_id":"4370e1d0a6cfdd7a974f61efb5b92289afc96015"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"6c03bb5084804aeff310df66f491b0019fca59e6","unresolved":false,"context_lines":[{"line_number":281,"context_line":"    \"\"\"main method\"\"\""},{"line_number":282,"context_line":"    df_config.init(sys.argv)"},{"line_number":283,"context_line":"    df_utils.config_parse()"},{"line_number":284,"context_line":"    nb_api \u003d api_nb.NbApi.get_instance(False, True)"},{"line_number":285,"context_line":"    service_manager \u003d cotyledon.ServiceManager()"},{"line_number":286,"context_line":"    service_manager.add(SkydiveClient, workers\u003d1, args\u003d(nb_api, is_service))"},{"line_number":287,"context_line":"    service_manager.run()"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf659307_a35d4148","line":284,"in_reply_to":"bf659307_858605b9","updated":"2018-04-11 08:32:14.000000000","message":"Done","commit_id":"4370e1d0a6cfdd7a974f61efb5b92289afc96015"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"c3e71a7fe6f6fbf950244aa71970e3ea609361be","unresolved":false,"context_lines":[{"line_number":281,"context_line":"    \"\"\"main method\"\"\""},{"line_number":282,"context_line":"    df_config.init(sys.argv)"},{"line_number":283,"context_line":"    df_utils.config_parse()"},{"line_number":284,"context_line":"    nb_api \u003d api_nb.NbApi.get_instance(False, True)"},{"line_number":285,"context_line":"    service_manager \u003d cotyledon.ServiceManager()"},{"line_number":286,"context_line":"    service_manager.add(SkydiveClient, workers\u003d1, args\u003d(nb_api, is_service))"},{"line_number":287,"context_line":"    service_manager.run()"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf659307_753b71d0","line":284,"in_reply_to":"bf659307_b43b52c6","updated":"2018-04-10 16:20:46.000000000","message":"I do not have the instance at hand here...","commit_id":"4370e1d0a6cfdd7a974f61efb5b92289afc96015"}]}
