)]}'
{"nova/virt/hyperv/vmops.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b722ad02876578aa876cc83d06d0e4411063f16a","unresolved":false,"context_lines":[{"line_number":338,"context_line":"            raise exception.VirtualInterfaceCreateException()"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def _get_neutron_events(self, network_info):"},{"line_number":341,"context_line":"        # NOTE(danms): We need to collect any VIFs that are currently"},{"line_number":342,"context_line":"        # down that we expect a down-\u003eup event for. Anything that is"},{"line_number":343,"context_line":"        # already up will not undergo that transition, and for"},{"line_number":344,"context_line":"        # anything that might be stale (cache-wise) assume it\u0027s"},{"line_number":345,"context_line":"        # already up so we don\u0027t block on it."},{"line_number":346,"context_line":"        if utils.is_neutron() and CONF.vif_plugging_timeout:"},{"line_number":347,"context_line":"            return [(\u0027network-vif-plugged\u0027, vif[\u0027id\u0027])"},{"line_number":348,"context_line":"                    for vif in network_info if vif.get(\u0027active\u0027) is False]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_3e13485e","line":345,"range":{"start_line":341,"start_character":0,"end_line":345,"end_character":45},"updated":"2016-11-23 02:58:54.000000000","message":"nit: This NOTE comes from libvirt and this seems to fit to line 347+ block.","commit_id":"00fdf284085866c77590255059ae74b672dd5a85"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b6f9e29f47a00c7c9f8ec0c3abcfe16517feb825","unresolved":false,"context_lines":[{"line_number":331,"context_line":"            if CONF.vif_plugging_is_fatal:"},{"line_number":332,"context_line":"                raise exception.VirtualInterfaceCreateException()"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    def _neutron_failed_callback(self, event_name, instance):"},{"line_number":335,"context_line":"        LOG.error(_LE(\u0027Neutron Reported failure on event %s\u0027),"},{"line_number":336,"context_line":"                  event_name, instance\u003dinstance)"},{"line_number":337,"context_line":"        if CONF.vif_plugging_is_fatal:"},{"line_number":338,"context_line":"            raise exception.VirtualInterfaceCreateException()"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def _get_neutron_events(self, network_info):"},{"line_number":341,"context_line":"        # NOTE(danms): We need to collect any VIFs that are currently"},{"line_number":342,"context_line":"        # down that we expect a down-\u003eup event for. Anything that is"},{"line_number":343,"context_line":"        # already up will not undergo that transition, and for"},{"line_number":344,"context_line":"        # anything that might be stale (cache-wise) assume it\u0027s"},{"line_number":345,"context_line":"        # already up so we don\u0027t block on it."},{"line_number":346,"context_line":"        if utils.is_neutron() and CONF.vif_plugging_timeout:"},{"line_number":347,"context_line":"            return [(\u0027network-vif-plugged\u0027, vif[\u0027id\u0027])"},{"line_number":348,"context_line":"                    for vif in network_info if vif.get(\u0027active\u0027) is False]"},{"line_number":349,"context_line":"        else:"},{"line_number":350,"context_line":"            return []"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    def create_instance(self, instance, network_info, root_device,"},{"line_number":353,"context_line":"                        block_device_info, vm_gen, image_meta):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a77a97e_d1b715f3","line":350,"range":{"start_line":334,"start_character":4,"end_line":350,"end_character":21},"updated":"2016-11-17 13:15:38.000000000","message":"This is probably fine for now. It looks like this is lifted straight out of the libvirt driver, so maybe later on in a follow up patch we pull this common code up into the base ComputeDriver class.","commit_id":"00fdf284085866c77590255059ae74b672dd5a85"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b722ad02876578aa876cc83d06d0e4411063f16a","unresolved":false,"context_lines":[{"line_number":331,"context_line":"            if CONF.vif_plugging_is_fatal:"},{"line_number":332,"context_line":"                raise exception.VirtualInterfaceCreateException()"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    def _neutron_failed_callback(self, event_name, instance):"},{"line_number":335,"context_line":"        LOG.error(_LE(\u0027Neutron Reported failure on event %s\u0027),"},{"line_number":336,"context_line":"                  event_name, instance\u003dinstance)"},{"line_number":337,"context_line":"        if CONF.vif_plugging_is_fatal:"},{"line_number":338,"context_line":"            raise exception.VirtualInterfaceCreateException()"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def _get_neutron_events(self, network_info):"},{"line_number":341,"context_line":"        # NOTE(danms): We need to collect any VIFs that are currently"},{"line_number":342,"context_line":"        # down that we expect a down-\u003eup event for. Anything that is"},{"line_number":343,"context_line":"        # already up will not undergo that transition, and for"},{"line_number":344,"context_line":"        # anything that might be stale (cache-wise) assume it\u0027s"},{"line_number":345,"context_line":"        # already up so we don\u0027t block on it."},{"line_number":346,"context_line":"        if utils.is_neutron() and CONF.vif_plugging_timeout:"},{"line_number":347,"context_line":"            return [(\u0027network-vif-plugged\u0027, vif[\u0027id\u0027])"},{"line_number":348,"context_line":"                    for vif in network_info if vif.get(\u0027active\u0027) is False]"},{"line_number":349,"context_line":"        else:"},{"line_number":350,"context_line":"            return []"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    def create_instance(self, instance, network_info, root_device,"},{"line_number":353,"context_line":"                        block_device_info, vm_gen, image_meta):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_1e25acaa","line":350,"range":{"start_line":334,"start_character":4,"end_line":350,"end_character":21},"in_reply_to":"7a77a97e_d1b715f3","updated":"2016-11-23 02:58:54.000000000","message":"Yeah, xenapi also has the similar code, so it is nice to define common code later.","commit_id":"00fdf284085866c77590255059ae74b672dd5a85"}]}
