)]}'
{"ironic_tempest_plugin/config.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"74e74b7dfedbc4817c729c74bdc51d914520252c","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                help\u003d\"Defines if IPXE is enabled\"),"},{"line_number":150,"context_line":"    cfg.BoolOpt(\u0027adoption\u0027,"},{"line_number":151,"context_line":"                # Defaults to False since it\u0027s a destructive operation AND it"},{"line_number":152,"context_line":"                # requires the plugin to be able to read ipmi_password."},{"line_number":153,"context_line":"                default\u003dFalse,"},{"line_number":154,"context_line":"                help\u003d\"Defines if adoption is enabled\"),"},{"line_number":155,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_846bbe1d","line":152,"updated":"2019-07-23 20:51:24.000000000","message":"I think the alternative path may be just to \"guess\" at the default for devstack deployments instead of require reading.... But I ran into the same conundrum when I was hacking on this to begin with.","commit_id":"dbae4afb9bc6409e2beb394110dcb582bac0b533"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"34897595a5c8c60331a2ab2314f7e5996a2416f1","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                help\u003d\"Defines if IPXE is enabled\"),"},{"line_number":150,"context_line":"    cfg.BoolOpt(\u0027adoption\u0027,"},{"line_number":151,"context_line":"                # Defaults to False since it\u0027s a destructive operation AND it"},{"line_number":152,"context_line":"                # requires the plugin to be able to read ipmi_password."},{"line_number":153,"context_line":"                default\u003dFalse,"},{"line_number":154,"context_line":"                help\u003d\"Defines if adoption is enabled\"),"},{"line_number":155,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_e59f0963","line":152,"in_reply_to":"7faddb67_846bbe1d","updated":"2019-07-24 06:53:29.000000000","message":"Right, but people may run it on non-devstack environments as well.. If we assume \"******\" cannot be a valid IPMI password, I can check for it and fall back to \"password\".","commit_id":"dbae4afb9bc6409e2beb394110dcb582bac0b533"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ef2d7c851078bf4655b627c2e2b79aea7f433038","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                # Defaults to False since it\u0027s a destructive operation AND it"},{"line_number":152,"context_line":"                # requires the plugin to be able to read ipmi_password."},{"line_number":153,"context_line":"                default\u003dFalse,"},{"line_number":154,"context_line":"                help\u003d\"Defines if adoption is enabled\"),"},{"line_number":155,"context_line":"]"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"BaremetalIntrospectionGroup \u003d ["}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_9c9bbd15","line":154,"updated":"2019-07-30 11:54:41.000000000","message":"nit: Might be good to indicate the constraint and even the expectation in the help field. FWIW.","commit_id":"52ca009a4cf047c4da97066d435e29061934999a"}],"ironic_tempest_plugin/tests/scenario/ironic_standalone/test_adoption.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"74e74b7dfedbc4817c729c74bdc51d914520252c","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            if key.endswith(\u0027_interface\u0027) and value:"},{"line_number":59,"context_line":"                body[key] \u003d value"},{"line_number":60,"context_line":"        traits \u003d node[\u0027traits\u0027]"},{"line_number":61,"context_line":"        _, vifs \u003d self.baremetal_client.vif_list(node[\u0027uuid\u0027])"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        # Delete the active node using maintenance"},{"line_number":64,"context_line":"        self.update_node(node[\u0027uuid\u0027], [{\u0027op\u0027: \u0027replace\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_4475c6f9","line":61,"updated":"2019-07-23 20:51:24.000000000","message":"Delete the vif attachment first?","commit_id":"dbae4afb9bc6409e2beb394110dcb582bac0b533"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"34897595a5c8c60331a2ab2314f7e5996a2416f1","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            if key.endswith(\u0027_interface\u0027) and value:"},{"line_number":59,"context_line":"                body[key] \u003d value"},{"line_number":60,"context_line":"        traits \u003d node[\u0027traits\u0027]"},{"line_number":61,"context_line":"        _, vifs \u003d self.baremetal_client.vif_list(node[\u0027uuid\u0027])"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        # Delete the active node using maintenance"},{"line_number":64,"context_line":"        self.update_node(node[\u0027uuid\u0027], [{\u0027op\u0027: \u0027replace\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_e5886923","line":61,"in_reply_to":"7faddb67_4475c6f9","updated":"2019-07-24 06:53:29.000000000","message":"Won\u0027t we delete them anyway on forced node deletion?","commit_id":"dbae4afb9bc6409e2beb394110dcb582bac0b533"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"74e74b7dfedbc4817c729c74bdc51d914520252c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                                     timeout\u003d300, interval\u003d5)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        for vif in vifs[\u0027vifs\u0027]:"},{"line_number":79,"context_line":"            self.vif_attach(node[\u0027uuid\u0027], vif[\u0027id\u0027])"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        # Now adoption!"},{"line_number":82,"context_line":"        self.set_node_provision_state(node[\u0027uuid\u0027], \u0027adopt\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_444e26c2","line":79,"updated":"2019-07-23 20:51:24.000000000","message":"I guess it was never anticipated to work with vif attachments being registered, fwiw. Pre-existing externally provisioned that we would reclaim upon deletion.","commit_id":"dbae4afb9bc6409e2beb394110dcb582bac0b533"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"34897595a5c8c60331a2ab2314f7e5996a2416f1","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                                     timeout\u003d300, interval\u003d5)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        for vif in vifs[\u0027vifs\u0027]:"},{"line_number":79,"context_line":"            self.vif_attach(node[\u0027uuid\u0027], vif[\u0027id\u0027])"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        # Now adoption!"},{"line_number":82,"context_line":"        self.set_node_provision_state(node[\u0027uuid\u0027], \u0027adopt\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_a58271ff","line":79,"in_reply_to":"7faddb67_444e26c2","updated":"2019-07-24 06:53:29.000000000","message":"We\u0027ll see if it works or not :)","commit_id":"dbae4afb9bc6409e2beb394110dcb582bac0b533"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"a7f52c08ebbcb2b7a656afce1d7bf22d9f7c17e4","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                \u0027instance_info\u0027: cls.node[\u0027instance_info\u0027],"},{"line_number":51,"context_line":"                \u0027driver\u0027: cls.node[\u0027driver\u0027],"},{"line_number":52,"context_line":"                \u0027properties\u0027: cls.node[\u0027properties\u0027]}"},{"line_number":53,"context_line":"        if set(body[\u0027driver_info\u0027].get(\u0027ipmi_password\u0027)) \u003d\u003d {\u0027*\u0027}:"},{"line_number":54,"context_line":"            # A hack to enable devstack testing without showing secrets"},{"line_number":55,"context_line":"            # secrets. Use the hardcoded devstack value."},{"line_number":56,"context_line":"            body[\u0027driver_info\u0027][\u0027ipmi_password\u0027] \u003d \u0027password\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_ff0ae3cf","line":53,"updated":"2019-07-30 12:17:14.000000000","message":"maybe change policy to have clear password in our devstack environment? since it\u0027s not a production environment.","commit_id":"52ca009a4cf047c4da97066d435e29061934999a"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"85f42e8b2fd0a2b6c4b94a2b2647ae79f4f0d0d9","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                \u0027instance_info\u0027: cls.node[\u0027instance_info\u0027],"},{"line_number":51,"context_line":"                \u0027driver\u0027: cls.node[\u0027driver\u0027],"},{"line_number":52,"context_line":"                \u0027properties\u0027: cls.node[\u0027properties\u0027]}"},{"line_number":53,"context_line":"        if set(body[\u0027driver_info\u0027].get(\u0027ipmi_password\u0027)) \u003d\u003d {\u0027*\u0027}:"},{"line_number":54,"context_line":"            # A hack to enable devstack testing without showing secrets"},{"line_number":55,"context_line":"            # secrets. Use the hardcoded devstack value."},{"line_number":56,"context_line":"            body[\u0027driver_info\u0027][\u0027ipmi_password\u0027] \u003d \u0027password\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_4e633243","line":53,"in_reply_to":"7faddb67_ff0ae3cf","updated":"2019-07-31 13:27:09.000000000","message":"Tried that, but it increases the devstack part quite substantially, since we currently don\u0027t manage the policy.","commit_id":"52ca009a4cf047c4da97066d435e29061934999a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"a7f52c08ebbcb2b7a656afce1d7bf22d9f7c17e4","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            # secrets. Use the hardcoded devstack value."},{"line_number":56,"context_line":"            body[\u0027driver_info\u0027][\u0027ipmi_password\u0027] \u003d \u0027password\u0027"},{"line_number":57,"context_line":"        # configdrive is hidden and anyway should be supplied on rebuild"},{"line_number":58,"context_line":"        body[\u0027instance_info\u0027].pop(\u0027configdrive\u0027, None)"},{"line_number":59,"context_line":"        for key, value in cls.node.items():"},{"line_number":60,"context_line":"            if key.endswith(\u0027_interface\u0027) and value:"},{"line_number":61,"context_line":"                body[key] \u003d value"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_5c0ea53b","line":58,"range":{"start_line":58,"start_character":35,"end_line":58,"end_character":46},"updated":"2019-07-30 12:17:14.000000000","message":"Hmm, i just can\u0027t remember if this configdrive field is always there, it will raise if not there.","commit_id":"52ca009a4cf047c4da97066d435e29061934999a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"87af15e48d4d75387b87a3a7e19e3fb12a9b01d5","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            # secrets. Use the hardcoded devstack value."},{"line_number":56,"context_line":"            body[\u0027driver_info\u0027][\u0027ipmi_password\u0027] \u003d \u0027password\u0027"},{"line_number":57,"context_line":"        # configdrive is hidden and anyway should be supplied on rebuild"},{"line_number":58,"context_line":"        body[\u0027instance_info\u0027].pop(\u0027configdrive\u0027, None)"},{"line_number":59,"context_line":"        for key, value in cls.node.items():"},{"line_number":60,"context_line":"            if key.endswith(\u0027_interface\u0027) and value:"},{"line_number":61,"context_line":"                body[key] \u003d value"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_41e8d5b1","line":58,"range":{"start_line":58,"start_character":35,"end_line":58,"end_character":46},"in_reply_to":"7faddb67_0e59ba8c","updated":"2019-08-01 05:50:33.000000000","message":"Oh, yeah","commit_id":"52ca009a4cf047c4da97066d435e29061934999a"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"85f42e8b2fd0a2b6c4b94a2b2647ae79f4f0d0d9","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            # secrets. Use the hardcoded devstack value."},{"line_number":56,"context_line":"            body[\u0027driver_info\u0027][\u0027ipmi_password\u0027] \u003d \u0027password\u0027"},{"line_number":57,"context_line":"        # configdrive is hidden and anyway should be supplied on rebuild"},{"line_number":58,"context_line":"        body[\u0027instance_info\u0027].pop(\u0027configdrive\u0027, None)"},{"line_number":59,"context_line":"        for key, value in cls.node.items():"},{"line_number":60,"context_line":"            if key.endswith(\u0027_interface\u0027) and value:"},{"line_number":61,"context_line":"                body[key] \u003d value"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_0e59ba8c","line":58,"range":{"start_line":58,"start_character":35,"end_line":58,"end_character":46},"in_reply_to":"7faddb67_5c0ea53b","updated":"2019-07-31 13:27:09.000000000","message":"It won\u0027t raise because of the None argument","commit_id":"52ca009a4cf047c4da97066d435e29061934999a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"a7f52c08ebbcb2b7a656afce1d7bf22d9f7c17e4","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        # Delete the active node using maintenance"},{"line_number":67,"context_line":"        cls.update_node(cls.node[\u0027uuid\u0027], [{\u0027op\u0027: \u0027replace\u0027,"},{"line_number":68,"context_line":"                                            \u0027path\u0027: \u0027/maintenance\u0027,"},{"line_number":69,"context_line":"                                            \u0027value\u0027: True}])"},{"line_number":70,"context_line":"        cls.baremetal_client.delete_node(cls.node[\u0027uuid\u0027])"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        # Now create an identical node and attach VIFs"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_ff042317","line":69,"updated":"2019-07-30 12:17:14.000000000","message":"this seems to be in conflict with Julia\u0027s patch, we will not be able to remove node with existing vifs..","commit_id":"52ca009a4cf047c4da97066d435e29061934999a"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"85f42e8b2fd0a2b6c4b94a2b2647ae79f4f0d0d9","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        # Delete the active node using maintenance"},{"line_number":67,"context_line":"        cls.update_node(cls.node[\u0027uuid\u0027], [{\u0027op\u0027: \u0027replace\u0027,"},{"line_number":68,"context_line":"                                            \u0027path\u0027: \u0027/maintenance\u0027,"},{"line_number":69,"context_line":"                                            \u0027value\u0027: True}])"},{"line_number":70,"context_line":"        cls.baremetal_client.delete_node(cls.node[\u0027uuid\u0027])"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        # Now create an identical node and attach VIFs"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_2e5ef675","line":69,"in_reply_to":"7faddb67_ff042317","updated":"2019-07-31 13:27:09.000000000","message":"We should be able to do it in maintenance mode, I think","commit_id":"52ca009a4cf047c4da97066d435e29061934999a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"a7f52c08ebbcb2b7a656afce1d7bf22d9f7c17e4","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        cls.set_node_provision_state(cls.node[\u0027uuid\u0027], \u0027manage\u0027)"},{"line_number":81,"context_line":"        cls.wait_provisioning_state(cls.node[\u0027uuid\u0027], \u0027manageable\u0027,"},{"line_number":82,"context_line":"                                    timeout\u003d300, interval\u003d5)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        for vif in vifs[\u0027vifs\u0027]:"},{"line_number":85,"context_line":"            cls.vif_attach(cls.node[\u0027uuid\u0027], vif[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_5f3c57c7","line":82,"range":{"start_line":82,"start_character":44,"end_line":82,"end_character":47},"updated":"2019-07-30 12:17:14.000000000","message":"Recent ci breakage shows we use 120 seconds, which I think is longer enough for a power query, 300 seconds seem a bit longer to me.","commit_id":"52ca009a4cf047c4da97066d435e29061934999a"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"85f42e8b2fd0a2b6c4b94a2b2647ae79f4f0d0d9","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        cls.set_node_provision_state(cls.node[\u0027uuid\u0027], \u0027manage\u0027)"},{"line_number":81,"context_line":"        cls.wait_provisioning_state(cls.node[\u0027uuid\u0027], \u0027manageable\u0027,"},{"line_number":82,"context_line":"                                    timeout\u003d300, interval\u003d5)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        for vif in vifs[\u0027vifs\u0027]:"},{"line_number":85,"context_line":"            cls.vif_attach(cls.node[\u0027uuid\u0027], vif[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_ae4986b7","line":82,"range":{"start_line":82,"start_character":44,"end_line":82,"end_character":47},"in_reply_to":"7faddb67_5f3c57c7","updated":"2019-07-31 13:27:09.000000000","message":"Will fix here or in a follow-up","commit_id":"52ca009a4cf047c4da97066d435e29061934999a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"87af15e48d4d75387b87a3a7e19e3fb12a9b01d5","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        cls.set_node_provision_state(cls.node[\u0027uuid\u0027], \u0027manage\u0027)"},{"line_number":81,"context_line":"        cls.wait_provisioning_state(cls.node[\u0027uuid\u0027], \u0027manageable\u0027,"},{"line_number":82,"context_line":"                                    timeout\u003d300, interval\u003d5)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        for vif in vifs[\u0027vifs\u0027]:"},{"line_number":85,"context_line":"            cls.vif_attach(cls.node[\u0027uuid\u0027], vif[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_a1d669f1","line":82,"range":{"start_line":82,"start_character":44,"end_line":82,"end_character":47},"in_reply_to":"7faddb67_ae4986b7","updated":"2019-08-01 05:50:33.000000000","message":"follow up is fine","commit_id":"52ca009a4cf047c4da97066d435e29061934999a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"a7f52c08ebbcb2b7a656afce1d7bf22d9f7c17e4","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                                    timeout\u003d300, interval\u003d5)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        for vif in vifs[\u0027vifs\u0027]:"},{"line_number":85,"context_line":"            cls.vif_attach(cls.node[\u0027uuid\u0027], vif[\u0027id\u0027])"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        return cls.node"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_7fda7378","line":85,"updated":"2019-07-30 12:17:14.000000000","message":"May I ask why we need to attach vifs? Adoption is a simple logic, doesn\u0027t check many things.","commit_id":"52ca009a4cf047c4da97066d435e29061934999a"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"85f42e8b2fd0a2b6c4b94a2b2647ae79f4f0d0d9","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                                    timeout\u003d300, interval\u003d5)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        for vif in vifs[\u0027vifs\u0027]:"},{"line_number":85,"context_line":"            cls.vif_attach(cls.node[\u0027uuid\u0027], vif[\u0027id\u0027])"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        return cls.node"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_ee53fe69","line":85,"in_reply_to":"7faddb67_7fda7378","updated":"2019-07-31 13:27:09.000000000","message":"I\u0027m trying to reproduce the actual flow an operator would use.","commit_id":"52ca009a4cf047c4da97066d435e29061934999a"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"87af15e48d4d75387b87a3a7e19e3fb12a9b01d5","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                                    timeout\u003d300, interval\u003d5)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        for vif in vifs[\u0027vifs\u0027]:"},{"line_number":85,"context_line":"            cls.vif_attach(cls.node[\u0027uuid\u0027], vif[\u0027id\u0027])"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        return cls.node"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_210a7978","line":85,"in_reply_to":"7faddb67_ee53fe69","updated":"2019-08-01 05:50:33.000000000","message":"Okay, my concern is adoption doesn\u0027t involve network handling, but if that cover some use case, then it\u0027s fine.","commit_id":"52ca009a4cf047c4da97066d435e29061934999a"}]}
