)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8903972ac6f6e21cf0141d466ab2633819b3cf70","unresolved":false,"context_lines":[{"line_number":15,"context_line":"bridge vif type, instead of for all types. The stale network info cache"},{"line_number":16,"context_line":"shouldn\u0027t be harmful in that we only wait for events for vifs that are"},{"line_number":17,"context_line":"active\u003dFalse and a stale cache with active\u003dTrue would simply be a no-op"},{"line_number":18,"context_line":"for us and we wouldn\u0027t wait for any events in that case. When we begin"},{"line_number":19,"context_line":"a reboot, we see vifs as active\u003dTrue but network-changed events from"},{"line_number":20,"context_line":"neutron cause us to refresh the info cache to reflect active\u003dFalse"},{"line_number":21,"context_line":"during the reboot."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Related-Bug: #1744361"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa0c359_b2f86fc4","line":21,"range":{"start_line":18,"start_character":57,"end_line":21,"end_character":18},"updated":"2018-02-06 20:51:18.000000000","message":"This is true, but the network-changed event and when we process it, rebuild the nw info cache and store that on the instance in the db, is totally separate from the hard reboot code in the driver that\u0027s using the stale version of the instance.info_cache. Or did you mean something else here? Like, that we don\u0027t need to care about the stale cache in the context of this change in the reboot code, and you\u0027re just telling us that the info cache is updated separately from all of this so we shouldn\u0027t worry about that?","commit_id":"aa3b3573486ed3a5ace1cc41a42e6baaf299ea06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8a6ae8ee54ef5756a68c52f8fecdffe96f45044a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"bridge vif type, instead of for all types. The stale network info cache"},{"line_number":16,"context_line":"shouldn\u0027t be harmful in that we only wait for events for vifs that are"},{"line_number":17,"context_line":"active\u003dFalse and a stale cache with active\u003dTrue would simply be a no-op"},{"line_number":18,"context_line":"for us and we wouldn\u0027t wait for any events in that case. When we begin"},{"line_number":19,"context_line":"a reboot, we see vifs as active\u003dTrue but network-changed events from"},{"line_number":20,"context_line":"neutron cause us to refresh the info cache to reflect active\u003dFalse"},{"line_number":21,"context_line":"during the reboot."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Related-Bug: #1744361"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa0c359_26aac5d1","line":21,"range":{"start_line":18,"start_character":57,"end_line":21,"end_character":18},"in_reply_to":"3fa0c359_03045b49","updated":"2018-02-07 18:05:46.000000000","message":"I\u0027m just speaking about what we _should_ be doing, independent of what we _are_ doing. If we\u0027re not waiting for all of them after a reboot I would expect that we should be, unless there are some that won\u0027t get sent (like the bridge ones).","commit_id":"aa3b3573486ed3a5ace1cc41a42e6baaf299ea06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ed31255ff74800fb941475febd9a592f585b86cf","unresolved":false,"context_lines":[{"line_number":15,"context_line":"bridge vif type, instead of for all types. The stale network info cache"},{"line_number":16,"context_line":"shouldn\u0027t be harmful in that we only wait for events for vifs that are"},{"line_number":17,"context_line":"active\u003dFalse and a stale cache with active\u003dTrue would simply be a no-op"},{"line_number":18,"context_line":"for us and we wouldn\u0027t wait for any events in that case. When we begin"},{"line_number":19,"context_line":"a reboot, we see vifs as active\u003dTrue but network-changed events from"},{"line_number":20,"context_line":"neutron cause us to refresh the info cache to reflect active\u003dFalse"},{"line_number":21,"context_line":"during the reboot."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Related-Bug: #1744361"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa0c359_43ab4388","line":21,"range":{"start_line":18,"start_character":57,"end_line":21,"end_character":18},"in_reply_to":"3fa0c359_0398dbbd","updated":"2018-02-07 17:44:38.000000000","message":"Okay, but I\u0027m saying independent of what is in network_cache before we start the reboot, shouldn\u0027t we be waiting for events for all the VIFs that will be triggered from the reboot (aside from VIF_BRIDGE ones apparently)?","commit_id":"aa3b3573486ed3a5ace1cc41a42e6baaf299ea06"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a3947518b6a25276ddd88c74e239f203f067130b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"bridge vif type, instead of for all types. The stale network info cache"},{"line_number":16,"context_line":"shouldn\u0027t be harmful in that we only wait for events for vifs that are"},{"line_number":17,"context_line":"active\u003dFalse and a stale cache with active\u003dTrue would simply be a no-op"},{"line_number":18,"context_line":"for us and we wouldn\u0027t wait for any events in that case. When we begin"},{"line_number":19,"context_line":"a reboot, we see vifs as active\u003dTrue but network-changed events from"},{"line_number":20,"context_line":"neutron cause us to refresh the info cache to reflect active\u003dFalse"},{"line_number":21,"context_line":"during the reboot."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Related-Bug: #1744361"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa0c359_e6fdbdb1","line":21,"range":{"start_line":18,"start_character":57,"end_line":21,"end_character":18},"in_reply_to":"3fa0c359_26aac5d1","updated":"2018-02-07 18:11:42.000000000","message":"I see. Sorry, I was thinking since we\u0027ve always used network_info active status to decide when to wait, I wasn\u0027t thinking about changing that part.\n\nSince network_info will be active\u003dTrue in the great majority of reboot cases, we indeed would need to do something different in order to wait for plug events, like maybe adding a reboot\u003dTrue flag to get_neutron_events. I can add that and see what everyone thinks.","commit_id":"aa3b3573486ed3a5ace1cc41a42e6baaf299ea06"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"dc0d745f28fb769c56eaa5e58bdf50b1049e9654","unresolved":false,"context_lines":[{"line_number":15,"context_line":"bridge vif type, instead of for all types. The stale network info cache"},{"line_number":16,"context_line":"shouldn\u0027t be harmful in that we only wait for events for vifs that are"},{"line_number":17,"context_line":"active\u003dFalse and a stale cache with active\u003dTrue would simply be a no-op"},{"line_number":18,"context_line":"for us and we wouldn\u0027t wait for any events in that case. When we begin"},{"line_number":19,"context_line":"a reboot, we see vifs as active\u003dTrue but network-changed events from"},{"line_number":20,"context_line":"neutron cause us to refresh the info cache to reflect active\u003dFalse"},{"line_number":21,"context_line":"during the reboot."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Related-Bug: #1744361"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa0c359_0398dbbd","line":21,"range":{"start_line":18,"start_character":57,"end_line":21,"end_character":18},"in_reply_to":"3fa0c359_30ad1b31","updated":"2018-02-07 17:37:34.000000000","message":"What I mean is that when we *begin* a reboot, we query for network_info from neutron and pass that down to the driver, and we never refresh it. So normally, when we query that network_info, it will have all vifs as active\u003dTrue because we\u0027re querying network_info *before* we unplug anything. And if active\u003dTrue, we will not wait for plug events.\n\nI was saying that sometimes active\u003dFalse when be begin rebooting and that might be because maybe there\u0027s lag in the status change and we rebooted immediately after the instance booted the first time.","commit_id":"aa3b3573486ed3a5ace1cc41a42e6baaf299ea06"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"eb943ac1f98cba3e178c8f3c32082ce0f452f631","unresolved":false,"context_lines":[{"line_number":15,"context_line":"bridge vif type, instead of for all types. The stale network info cache"},{"line_number":16,"context_line":"shouldn\u0027t be harmful in that we only wait for events for vifs that are"},{"line_number":17,"context_line":"active\u003dFalse and a stale cache with active\u003dTrue would simply be a no-op"},{"line_number":18,"context_line":"for us and we wouldn\u0027t wait for any events in that case. When we begin"},{"line_number":19,"context_line":"a reboot, we see vifs as active\u003dTrue but network-changed events from"},{"line_number":20,"context_line":"neutron cause us to refresh the info cache to reflect active\u003dFalse"},{"line_number":21,"context_line":"during the reboot."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Related-Bug: #1744361"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa0c359_4d1f106c","line":21,"range":{"start_line":18,"start_character":57,"end_line":21,"end_character":18},"in_reply_to":"3fa0c359_32c77f15","updated":"2018-02-06 22:00:41.000000000","message":"You know what? Probably what\u0027s happening is that we are indeed starting the reboot with active\u003dFalse for the vif because the tempest test is rebooting the instance *immediately* and the vif status hasn\u0027t even had a chance to go to active\u003dTrue yet. I think that\u0027s unexpected considering we do wait for vif plug events during instance boot. But it seems the case that the vif is *not* active when we start rebooting.\n\nIf that\u0027s the case, then in any normal usage (not hard rebooting immediately after the instance comes up), we would *never* be waiting for vif plug events because active\u003dTrue for the vif in the network_info when the reboot begins.","commit_id":"aa3b3573486ed3a5ace1cc41a42e6baaf299ea06"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2cb96928e5cbb749aa578377ac8b352808f27070","unresolved":false,"context_lines":[{"line_number":15,"context_line":"bridge vif type, instead of for all types. The stale network info cache"},{"line_number":16,"context_line":"shouldn\u0027t be harmful in that we only wait for events for vifs that are"},{"line_number":17,"context_line":"active\u003dFalse and a stale cache with active\u003dTrue would simply be a no-op"},{"line_number":18,"context_line":"for us and we wouldn\u0027t wait for any events in that case. When we begin"},{"line_number":19,"context_line":"a reboot, we see vifs as active\u003dTrue but network-changed events from"},{"line_number":20,"context_line":"neutron cause us to refresh the info cache to reflect active\u003dFalse"},{"line_number":21,"context_line":"during the reboot."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Related-Bug: #1744361"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa0c359_03045b49","line":21,"range":{"start_line":18,"start_character":57,"end_line":21,"end_character":18},"in_reply_to":"3fa0c359_43ab4388","updated":"2018-02-07 17:56:59.000000000","message":"Yes, but what we wait for has always been determined by the network_info cache status. I take this to mean you\u0027re suggesting we change how we decide what to wait for and not only use network_info cache status.","commit_id":"aa3b3573486ed3a5ace1cc41a42e6baaf299ea06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d89b855c2b5587537d618899c63fa7cc2b0fef7d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"bridge vif type, instead of for all types. The stale network info cache"},{"line_number":16,"context_line":"shouldn\u0027t be harmful in that we only wait for events for vifs that are"},{"line_number":17,"context_line":"active\u003dFalse and a stale cache with active\u003dTrue would simply be a no-op"},{"line_number":18,"context_line":"for us and we wouldn\u0027t wait for any events in that case. When we begin"},{"line_number":19,"context_line":"a reboot, we see vifs as active\u003dTrue but network-changed events from"},{"line_number":20,"context_line":"neutron cause us to refresh the info cache to reflect active\u003dFalse"},{"line_number":21,"context_line":"during the reboot."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Related-Bug: #1744361"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa0c359_30ad1b31","line":21,"range":{"start_line":18,"start_character":57,"end_line":21,"end_character":18},"in_reply_to":"3fa0c359_4d1f106c","updated":"2018-02-07 17:28:47.000000000","message":"Wait, what? On reboot, the VIFs will be re-plugged and should all trigger new events and go to active\u003dTrue, right? Why shouldn\u0027t we wait on all of them?","commit_id":"aa3b3573486ed3a5ace1cc41a42e6baaf299ea06"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"31b4846fa2668c3e0341b022f3a0fef5efa0163b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"bridge vif type, instead of for all types. The stale network info cache"},{"line_number":16,"context_line":"shouldn\u0027t be harmful in that we only wait for events for vifs that are"},{"line_number":17,"context_line":"active\u003dFalse and a stale cache with active\u003dTrue would simply be a no-op"},{"line_number":18,"context_line":"for us and we wouldn\u0027t wait for any events in that case. When we begin"},{"line_number":19,"context_line":"a reboot, we see vifs as active\u003dTrue but network-changed events from"},{"line_number":20,"context_line":"neutron cause us to refresh the info cache to reflect active\u003dFalse"},{"line_number":21,"context_line":"during the reboot."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Related-Bug: #1744361"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa0c359_32c77f15","line":21,"range":{"start_line":18,"start_character":57,"end_line":21,"end_character":18},"in_reply_to":"3fa0c359_b2f86fc4","updated":"2018-02-06 21:12:14.000000000","message":"Hm, good point. Well, I actually meant that we\u0027re seeing the active\u003dFalse reflected in the info_cache we use to wait for events (else we wouldn\u0027t wait for events). When we begin the reboot, active\u003dTrue. But somehow, we do see active\u003dFalse by the time we decide to wait for vif plug events. I\u0027m not yet sure how that\u0027s possible if we never get an updated info_cache in the reboot path.","commit_id":"aa3b3573486ed3a5ace1cc41a42e6baaf299ea06"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2b3579da2421296adfaf37c09b4759f2f9d66f10","unresolved":false,"context_lines":[{"line_number":12,"context_line":"the stale network info cache."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This refines the logic not to wait for vif plug events only for the"},{"line_number":15,"context_line":"bridge vif type, instead of for all types. We also add a flag to"},{"line_number":16,"context_line":"_create_domain_and_network to indicate that we\u0027re in the middle of a"},{"line_number":17,"context_line":"reboot and to expect to wait for plug events for all vif types except"},{"line_number":18,"context_line":"the bridge vif type, regardless of the vif\u0027s \u0027active\u0027 status."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa0c359_9684030e","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":6},"updated":"2018-02-08 19:53:16.000000000","message":"nit: something in the commit message about why we\u0027re blacklisting bridge vif types here would be useful for posterity (the linuxbridge agent polls for changes unlike the OVS agent which gets notifications from native OVS itself, so the polling mechanism in the LB agent can miss some changes and then we never get notified). At least that\u0027s my understanding.","commit_id":"b60958ad0a66fd5e642039ce9bfae236f5128550"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fe652e18c70552ce2b9414f9de0c8d1c114c68ea","unresolved":false,"context_lines":[{"line_number":12,"context_line":"the stale network info cache."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This refines the logic not to wait for vif plug events only for the"},{"line_number":15,"context_line":"bridge vif type, instead of for all types. We also add a flag to"},{"line_number":16,"context_line":"_create_domain_and_network to indicate that we\u0027re in the middle of a"},{"line_number":17,"context_line":"reboot and to expect to wait for plug events for all vif types except"},{"line_number":18,"context_line":"the bridge vif type, regardless of the vif\u0027s \u0027active\u0027 status."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa0c359_b6a25f4a","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":6},"in_reply_to":"3fa0c359_9684030e","updated":"2018-02-08 19:53:45.000000000","message":"This is clarified with a comment in the code, so you could ignore this comment.","commit_id":"b60958ad0a66fd5e642039ce9bfae236f5128550"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f1924026f080964679657d9c3822f0bc1a15983c","unresolved":false,"context_lines":[{"line_number":12,"context_line":"the stale network info cache."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This refines the logic not to wait for vif plug events only for the"},{"line_number":15,"context_line":"bridge vif type, instead of for all types. We also add a flag to"},{"line_number":16,"context_line":"_create_domain_and_network to indicate that we\u0027re in the middle of a"},{"line_number":17,"context_line":"reboot and to expect to wait for plug events for all vif types except"},{"line_number":18,"context_line":"the bridge vif type, regardless of the vif\u0027s \u0027active\u0027 status."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa0c359_6c23abbe","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":6},"in_reply_to":"3fa0c359_b6a25f4a","updated":"2018-02-08 20:31:42.000000000","message":"WILL DO","commit_id":"b60958ad0a66fd5e642039ce9bfae236f5128550"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8903972ac6f6e21cf0141d466ab2633819b3cf70","unresolved":false,"context_lines":[{"line_number":2712,"context_line":"        # here even though we\u0027ve unplugged vifs earlier. The behavior of"},{"line_number":2713,"context_line":"        # neutron plug events depends on which vif type we\u0027re using and we are"},{"line_number":2714,"context_line":"        # working with a stale network info cache here, so don\u0027t rely on"},{"line_number":2715,"context_line":"        # waiting for neutron plug events."},{"line_number":2716,"context_line":"        # vifs_already_plugged\u003dTrue means \"do not wait for neutron plug events\""},{"line_number":2717,"context_line":"        vifs_already_plugged \u003d False"},{"line_number":2718,"context_line":"        for vif in network_info:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_322e9f43","line":2715,"range":{"start_line":2715,"start_character":35,"end_line":2715,"end_character":42},"updated":"2018-02-06 20:51:18.000000000","message":"events for bridge vifs?","commit_id":"aa3b3573486ed3a5ace1cc41a42e6baaf299ea06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d89b855c2b5587537d618899c63fa7cc2b0fef7d","unresolved":false,"context_lines":[{"line_number":2717,"context_line":"        vifs_already_plugged \u003d False"},{"line_number":2718,"context_line":"        for vif in network_info:"},{"line_number":2719,"context_line":"            if vif.get(\u0027type\u0027) \u003d\u003d network_model.VIF_TYPE_BRIDGE:"},{"line_number":2720,"context_line":"                vifs_already_plugged \u003d True"},{"line_number":2721,"context_line":"                break"},{"line_number":2722,"context_line":"        self._create_domain_and_network("},{"line_number":2723,"context_line":"            context, xml, instance, network_info,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_f07b33bb","line":2720,"updated":"2018-02-07 17:28:47.000000000","message":"We assume they\u0027re already plugged if any one of them is a bridge type? That doesn\u0027t seem right to me. Shouldn\u0027t we be waiting for events from any non-bridge VIFs (if that\u0027s the right thing to do)?\n\nIf we\u0027re doing a hard reboot, the VIFs got torn down and definitely have to be re-plugged, no?","commit_id":"aa3b3573486ed3a5ace1cc41a42e6baaf299ea06"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"dc0d745f28fb769c56eaa5e58bdf50b1049e9654","unresolved":false,"context_lines":[{"line_number":2717,"context_line":"        vifs_already_plugged \u003d False"},{"line_number":2718,"context_line":"        for vif in network_info:"},{"line_number":2719,"context_line":"            if vif.get(\u0027type\u0027) \u003d\u003d network_model.VIF_TYPE_BRIDGE:"},{"line_number":2720,"context_line":"                vifs_already_plugged \u003d True"},{"line_number":2721,"context_line":"                break"},{"line_number":2722,"context_line":"        self._create_domain_and_network("},{"line_number":2723,"context_line":"            context, xml, instance, network_info,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_83e94b1b","line":2720,"in_reply_to":"3fa0c359_f07b33bb","updated":"2018-02-07 17:37:34.000000000","message":"Yeah, that would make more sense, to wait for each independently if it\u0027s not of bridge type.","commit_id":"aa3b3573486ed3a5ace1cc41a42e6baaf299ea06"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2b3579da2421296adfaf37c09b4759f2f9d66f10","unresolved":false,"context_lines":[{"line_number":2710,"context_line":"        # start the instance."},{"line_number":2711,"context_line":"        self._create_domain_and_network("},{"line_number":2712,"context_line":"            context, xml, instance, network_info,"},{"line_number":2713,"context_line":"            block_device_info\u003dblock_device_info, vifs_already_plugged\u003dFalse,"},{"line_number":2714,"context_line":"            reboot\u003dTrue)"},{"line_number":2715,"context_line":"        self._prepare_pci_devices_for_use("},{"line_number":2716,"context_line":"            pci_manager.get_instance_pci_devs(instance, \u0027all\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_b6033f73","line":2713,"range":{"start_line":2713,"start_character":49,"end_line":2713,"end_character":75},"updated":"2018-02-08 19:53:16.000000000","message":"nit: this is the default value for the parameter so we could just omit this in the call.","commit_id":"b60958ad0a66fd5e642039ce9bfae236f5128550"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f7f10460a7640a7b7f8a6768f06497aa05dd42f6","unresolved":false,"context_lines":[{"line_number":5359,"context_line":"            raise exception.VirtualInterfaceCreateException()"},{"line_number":5360,"context_line":""},{"line_number":5361,"context_line":"    def _get_neutron_events(self, network_info, reboot\u003dFalse):"},{"line_number":5362,"context_line":"        def eventable(vif, reboot):"},{"line_number":5363,"context_line":"            if reboot:"},{"line_number":5364,"context_line":"                # NOTE(melwitt): We won\u0027t expect events for the bridge vif"},{"line_number":5365,"context_line":"                # type during a reboot because the neutron agent might not"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_a46f9490","line":5362,"range":{"start_line":5362,"start_character":27,"end_line":5362,"end_character":33},"updated":"2018-02-08 14:46:58.000000000","message":"You don\u0027t need to pass reboot into here :)","commit_id":"b60958ad0a66fd5e642039ce9bfae236f5128550"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3e6cc60c2e50c101e4e318b7fb2f06cbd28cd157","unresolved":false,"context_lines":[{"line_number":5359,"context_line":"            raise exception.VirtualInterfaceCreateException()"},{"line_number":5360,"context_line":""},{"line_number":5361,"context_line":"    def _get_neutron_events(self, network_info, reboot\u003dFalse):"},{"line_number":5362,"context_line":"        def eventable(vif, reboot):"},{"line_number":5363,"context_line":"            if reboot:"},{"line_number":5364,"context_line":"                # NOTE(melwitt): We won\u0027t expect events for the bridge vif"},{"line_number":5365,"context_line":"                # type during a reboot because the neutron agent might not"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_a7e793e4","line":5362,"range":{"start_line":5362,"start_character":27,"end_line":5362,"end_character":33},"in_reply_to":"3fa0c359_a46f9490","updated":"2018-02-08 16:52:26.000000000","message":"Oh, derp.","commit_id":"b60958ad0a66fd5e642039ce9bfae236f5128550"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2b3579da2421296adfaf37c09b4759f2f9d66f10","unresolved":false,"context_lines":[{"line_number":5397,"context_line":""},{"line_number":5398,"context_line":"        \"\"\"Do required network setup and create domain."},{"line_number":5399,"context_line":""},{"line_number":5400,"context_line":"        :param context: nova.context.RequestContext for database queries"},{"line_number":5401,"context_line":"        :param xml: Guest domain XML"},{"line_number":5402,"context_line":"        :param instance: nova.objects.Instance object"},{"line_number":5403,"context_line":"        :param network_info: nova.network.model.NetworkInfo for the instance"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_36ef2fb1","line":5400,"range":{"start_line":5400,"start_character":52,"end_line":5400,"end_character":72},"updated":"2018-02-08 19:53:16.000000000","message":"I hope we aren\u0027t calling the DB from here.","commit_id":"b60958ad0a66fd5e642039ce9bfae236f5128550"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f1924026f080964679657d9c3822f0bc1a15983c","unresolved":false,"context_lines":[{"line_number":5397,"context_line":""},{"line_number":5398,"context_line":"        \"\"\"Do required network setup and create domain."},{"line_number":5399,"context_line":""},{"line_number":5400,"context_line":"        :param context: nova.context.RequestContext for database queries"},{"line_number":5401,"context_line":"        :param xml: Guest domain XML"},{"line_number":5402,"context_line":"        :param instance: nova.objects.Instance object"},{"line_number":5403,"context_line":"        :param network_info: nova.network.model.NetworkInfo for the instance"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_6c5e4b45","line":5400,"range":{"start_line":5400,"start_character":52,"end_line":5400,"end_character":72},"in_reply_to":"3fa0c359_36ef2fb1","updated":"2018-02-08 20:31:42.000000000","message":"You\u0027re right, turns out it\u0027s for volume API calls. Will correct.","commit_id":"b60958ad0a66fd5e642039ce9bfae236f5128550"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2b3579da2421296adfaf37c09b4759f2f9d66f10","unresolved":false,"context_lines":[{"line_number":5401,"context_line":"        :param xml: Guest domain XML"},{"line_number":5402,"context_line":"        :param instance: nova.objects.Instance object"},{"line_number":5403,"context_line":"        :param network_info: nova.network.model.NetworkInfo for the instance"},{"line_number":5404,"context_line":"        :param block_device_info: List of legacy block device info dicts"},{"line_number":5405,"context_line":"        :param power_on: Whether to power on the guest after creating the XML"},{"line_number":5406,"context_line":"        :param vifs_already_plugged: False means \"wait for neutron plug events\""},{"line_number":5407,"context_line":"        :param post_xml_callback: Optional callback to call after creating the"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_f67c67ec","line":5404,"range":{"start_line":5404,"start_character":34,"end_line":5404,"end_character":72},"updated":"2018-02-08 19:53:16.000000000","message":"It\u0027s not really, it\u0027s a dict:\n\nhttps://github.com/openstack/nova/blob/51048a3e69a53fdd8b93e2d30c3d7a057b1330ef/nova/virt/driver.py#L37\n\nThis is what you get for trying to describe what a block_device_* anything is in nova.","commit_id":"b60958ad0a66fd5e642039ce9bfae236f5128550"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f1924026f080964679657d9c3822f0bc1a15983c","unresolved":false,"context_lines":[{"line_number":5401,"context_line":"        :param xml: Guest domain XML"},{"line_number":5402,"context_line":"        :param instance: nova.objects.Instance object"},{"line_number":5403,"context_line":"        :param network_info: nova.network.model.NetworkInfo for the instance"},{"line_number":5404,"context_line":"        :param block_device_info: List of legacy block device info dicts"},{"line_number":5405,"context_line":"        :param power_on: Whether to power on the guest after creating the XML"},{"line_number":5406,"context_line":"        :param vifs_already_plugged: False means \"wait for neutron plug events\""},{"line_number":5407,"context_line":"        :param post_xml_callback: Optional callback to call after creating the"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_8cb5d780","line":5404,"range":{"start_line":5404,"start_character":34,"end_line":5404,"end_character":72},"in_reply_to":"3fa0c359_f67c67ec","updated":"2018-02-08 20:31:42.000000000","message":"I actually traced this all the way back to compute manager and STILL missed that it\u0027s a dict and not a list of dicts. Each dict entry is a list of dicts. Urgh.","commit_id":"b60958ad0a66fd5e642039ce9bfae236f5128550"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2b3579da2421296adfaf37c09b4759f2f9d66f10","unresolved":false,"context_lines":[{"line_number":5403,"context_line":"        :param network_info: nova.network.model.NetworkInfo for the instance"},{"line_number":5404,"context_line":"        :param block_device_info: List of legacy block device info dicts"},{"line_number":5405,"context_line":"        :param power_on: Whether to power on the guest after creating the XML"},{"line_number":5406,"context_line":"        :param vifs_already_plugged: False means \"wait for neutron plug events\""},{"line_number":5407,"context_line":"        :param post_xml_callback: Optional callback to call after creating the"},{"line_number":5408,"context_line":"                                  guest domain XML"},{"line_number":5409,"context_line":"        :param destroy_disks_on_failure: Whether to destroy the disks if we"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_3672cf12","line":5406,"range":{"start_line":5406,"start_character":49,"end_line":5406,"end_character":79},"updated":"2018-02-08 19:53:16.000000000","message":"Well, among other things (like a timeout being set, and power_on\u003dTrue, etc).","commit_id":"b60958ad0a66fd5e642039ce9bfae236f5128550"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f1924026f080964679657d9c3822f0bc1a15983c","unresolved":false,"context_lines":[{"line_number":5403,"context_line":"        :param network_info: nova.network.model.NetworkInfo for the instance"},{"line_number":5404,"context_line":"        :param block_device_info: List of legacy block device info dicts"},{"line_number":5405,"context_line":"        :param power_on: Whether to power on the guest after creating the XML"},{"line_number":5406,"context_line":"        :param vifs_already_plugged: False means \"wait for neutron plug events\""},{"line_number":5407,"context_line":"        :param post_xml_callback: Optional callback to call after creating the"},{"line_number":5408,"context_line":"                                  guest domain XML"},{"line_number":5409,"context_line":"        :param destroy_disks_on_failure: Whether to destroy the disks if we"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_6cb08b8b","line":5406,"range":{"start_line":5406,"start_character":49,"end_line":5406,"end_character":79},"in_reply_to":"3fa0c359_3672cf12","updated":"2018-02-08 20:31:42.000000000","message":"Yes. Guess I can be more detailed.","commit_id":"b60958ad0a66fd5e642039ce9bfae236f5128550"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"236bbd0947a2c8e4199afc0059d95b372fc3b95d","unresolved":false,"context_lines":[{"line_number":5396,"context_line":""},{"line_number":5397,"context_line":"        \"\"\"Do required network setup and create domain."},{"line_number":5398,"context_line":""},{"line_number":5399,"context_line":"        :param context: nova.context.RequestContext for volume API calls"},{"line_number":5400,"context_line":"        :param xml: Guest domain XML"},{"line_number":5401,"context_line":"        :param instance: nova.objects.Instance object"},{"line_number":5402,"context_line":"        :param network_info: nova.network.model.NetworkInfo for the instance"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa0c359_5229a4e3","line":5399,"range":{"start_line":5399,"start_character":52,"end_line":5399,"end_character":72},"updated":"2018-02-08 21:37:49.000000000","message":"This will rot over time, but meh.","commit_id":"70368f7555fc089dfd65fc9a4219d3b69e5de43e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"236bbd0947a2c8e4199afc0059d95b372fc3b95d","unresolved":false,"context_lines":[{"line_number":5400,"context_line":"        :param xml: Guest domain XML"},{"line_number":5401,"context_line":"        :param instance: nova.objects.Instance object"},{"line_number":5402,"context_line":"        :param network_info: nova.network.model.NetworkInfo for the instance"},{"line_number":5403,"context_line":"        :param block_device_info: Legacy block device info dict"},{"line_number":5404,"context_line":"        :param power_on: Whether to power on the guest after creating the XML"},{"line_number":5405,"context_line":"        :param vifs_already_plugged: False means \"wait for neutron plug events\""},{"line_number":5406,"context_line":"                                     if using neutron, qemu/kvm, power_on\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa0c359_b21028aa","line":5403,"range":{"start_line":5403,"start_character":34,"end_line":5403,"end_character":40},"updated":"2018-02-08 21:37:49.000000000","message":"It\u0027s not really legacy, but meh.","commit_id":"70368f7555fc089dfd65fc9a4219d3b69e5de43e"}]}
