)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"83f0f551f1a72b74bb788a1ba385de6874dcfabe","unresolved":false,"context_lines":[{"line_number":17,"context_line":"   incomplete instance. In that case, the fallback is single queue"},{"line_number":18,"context_line":"   anyway."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Depends-On: Ifbc44337c09e0f2ccf421798803ff7e794ed0b70"},{"line_number":21,"context_line":"Change-Id: I1a449c3d77309193b22caadb9e48323d7b1510c6"},{"line_number":22,"context_line":"Signed-off-by: Jan Gutter \u003cjan.gutter@netronome.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f7c97a3_7dde946d","line":20,"range":{"start_line":20,"start_character":12,"end_line":20,"end_character":53},"updated":"2018-05-31 16:31:57.000000000","message":"we should proably be useing the new zuul v3 version of the depends on.\nwe also will need a depends-on for the release of the new os-vif version that has this change.\n\n\ni have a list of several changes i want to target to the next os-vif release but i was thinking of targeting rocky milestone 2 for a release.","commit_id":"7b699b4d966108b639fe29b203dfe5b34798fbd8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0d1e02d738f9b75d1a511ec83c2d6e6b4a3a731f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Pass virtio multiqueue info to os-vif plugins"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":" * The VIFGeneric os-vif type is used for the kernel TAP based"},{"line_number":10,"context_line":"   plugging. The os-vif plugin has to create a multiqueue TAP device if"},{"line_number":11,"context_line":"   multiqueue is desired."},{"line_number":12,"context_line":" * This hint is passed by checking the port_profile of the os-vif object"},{"line_number":13,"context_line":"   for the \u0027virtio_multiqueue\u0027 field before plugging. If it exists and"},{"line_number":14,"context_line":"   is \u0027None\u0027, it is updated with the result from the multiqueue check."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_e59f62b1","line":11,"range":{"start_line":9,"start_character":3,"end_line":11,"end_character":25},"updated":"2018-06-01 02:48:09.000000000","message":"in this case is the tap actully created by the os-vif plugin or is it created by libvirt and configured by the os-vif plugin. normaly the hyperviors actully creates teh port and the vif plugin just wires it up.","commit_id":"571993df5be6b5bb74dcef1b95f0017b34edeb60"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ce05fceea5cda7464ec29d6f2f9e7c73d9d4aefd","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Pass virtio multiqueue info to os-vif plugins"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":" * The VIFGeneric os-vif type is used for the kernel TAP based"},{"line_number":10,"context_line":"   plugging. The os-vif plugin has to create a multiqueue TAP device if"},{"line_number":11,"context_line":"   multiqueue is desired."},{"line_number":12,"context_line":" * This hint is passed by checking the port_profile of the os-vif object"},{"line_number":13,"context_line":"   for the \u0027virtio_multiqueue\u0027 field before plugging. If it exists and"},{"line_number":14,"context_line":"   is \u0027None\u0027, it is updated with the result from the multiqueue check."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_70146d4d","line":11,"range":{"start_line":9,"start_character":3,"end_line":11,"end_character":25},"in_reply_to":"5f7c97a3_9d004203","updated":"2018-06-01 11:24:43.000000000","message":"im fine with either options i was more interested in as the statement accurate in general and it looks like the anser is it depends on the libvirt version and the order in which we call os-vif. currently (presuably always) we call os-vif first.","commit_id":"571993df5be6b5bb74dcef1b95f0017b34edeb60"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"4c8cc412da7b08b90b312e3c5ae85cc34c2e0240","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Pass virtio multiqueue info to os-vif plugins"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":" * The VIFGeneric os-vif type is used for the kernel TAP based"},{"line_number":10,"context_line":"   plugging. The os-vif plugin has to create a multiqueue TAP device if"},{"line_number":11,"context_line":"   multiqueue is desired."},{"line_number":12,"context_line":" * This hint is passed by checking the port_profile of the os-vif object"},{"line_number":13,"context_line":"   for the \u0027virtio_multiqueue\u0027 field before plugging. If it exists and"},{"line_number":14,"context_line":"   is \u0027None\u0027, it is updated with the result from the multiqueue check."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_9d004203","line":11,"range":{"start_line":9,"start_character":3,"end_line":11,"end_character":25},"in_reply_to":"5f7c97a3_e59f62b1","updated":"2018-06-01 09:32:53.000000000","message":"This is the case if the os-vif plugin has to create the TAP device, and libvirt plugs it into the VM.\n\nBut it turns out that you\u0027re right yet again. Looks like since libvirt 1.3.3 libvirt will either connect to an existing TAP device, or create a correctly named one. The key being that the in-tree vrouter plugin pre-creates the TAP device.\n\n ref: https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1574957\n\nI think this is highly likely a vestigial thing that the vrouter vif type did to work around some very old libivrt bugs.\n\nHeh, so it turns out there\u0027s two choices here - mandate that the hypervisor should always create the port, or support the \"os-vif plugin creates the TAP\" method as well.\n\nThe former is a no-op, and I have no objection. And the latter patches have been \"written\" too :-p","commit_id":"571993df5be6b5bb74dcef1b95f0017b34edeb60"}],"nova/virt/libvirt/vif.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c071f94d5e9f2a36be9d340c5c11cdae0916b587","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        designer.set_vif_host_backend_hostdev_pci_config(conf, pci_slot)"},{"line_number":184,"context_line":"        return conf"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def _is_multiqueue_enabled(self, instance):"},{"line_number":187,"context_line":"        # Tests can omit image_meta and flavor"},{"line_number":188,"context_line":"        if \u0027image_meta\u0027 not in instance or \u0027flavor\u0027 not in instance:"},{"line_number":189,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_c48115fd","line":186,"range":{"start_line":186,"start_character":4,"end_line":186,"end_character":46},"updated":"2018-05-31 14:20:59.000000000","message":"So it seems that we do not have any unit test for this method since you did not update one  ...It will be better if you can provide one. Is that reasonable? that should be relatively small.","commit_id":"7b699b4d966108b639fe29b203dfe5b34798fbd8"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"f3b89d29211cfe5142fb38dc4d63746a618fe2d3","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        designer.set_vif_host_backend_hostdev_pci_config(conf, pci_slot)"},{"line_number":184,"context_line":"        return conf"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def _is_multiqueue_enabled(self, instance):"},{"line_number":187,"context_line":"        # Tests can omit image_meta and flavor"},{"line_number":188,"context_line":"        if \u0027image_meta\u0027 not in instance or \u0027flavor\u0027 not in instance:"},{"line_number":189,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_c70b577a","line":186,"range":{"start_line":186,"start_character":4,"end_line":186,"end_character":46},"in_reply_to":"5f7c97a3_c48115fd","updated":"2018-05-31 15:20:07.000000000","message":"Will do. I think the test cases covering this function is the vrouter_plug/vrouter_unplug code, but they\u0027re not \"unit\" tests.","commit_id":"7b699b4d966108b639fe29b203dfe5b34798fbd8"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c071f94d5e9f2a36be9d340c5c11cdae0916b587","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        return conf"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def _is_multiqueue_enabled(self, instance):"},{"line_number":187,"context_line":"        # Tests can omit image_meta and flavor"},{"line_number":188,"context_line":"        if \u0027image_meta\u0027 not in instance or \u0027flavor\u0027 not in instance:"},{"line_number":189,"context_line":"            return False"},{"line_number":190,"context_line":"        image_meta \u003d instance.image_meta"},{"line_number":191,"context_line":"        flavor \u003d instance.flavor"},{"line_number":192,"context_line":"        _, vhost_queues \u003d self._get_virtio_mq_settings(image_meta, flavor)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_8429dde6","line":189,"range":{"start_line":187,"start_character":0,"end_line":189,"end_character":24},"updated":"2018-05-31 14:20:59.000000000","message":"I think that never can happen, why do you added that condition?","commit_id":"7b699b4d966108b639fe29b203dfe5b34798fbd8"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"f3b89d29211cfe5142fb38dc4d63746a618fe2d3","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        return conf"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def _is_multiqueue_enabled(self, instance):"},{"line_number":187,"context_line":"        # Tests can omit image_meta and flavor"},{"line_number":188,"context_line":"        if \u0027image_meta\u0027 not in instance or \u0027flavor\u0027 not in instance:"},{"line_number":189,"context_line":"            return False"},{"line_number":190,"context_line":"        image_meta \u003d instance.image_meta"},{"line_number":191,"context_line":"        flavor \u003d instance.flavor"},{"line_number":192,"context_line":"        _, vhost_queues \u003d self._get_virtio_mq_settings(image_meta, flavor)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_8761df07","line":189,"range":{"start_line":187,"start_character":0,"end_line":189,"end_character":24},"in_reply_to":"5f7c97a3_8429dde6","updated":"2018-05-31 15:20:07.000000000","message":"It\u0027s a knock-on failure on the os-vif plug/unplug test case not mocking the Instance object correctly. I\u0027m having trouble getting this to work correctly for the legacy vif case _and_ the os-vif case. I should be respinning soon.","commit_id":"7b699b4d966108b639fe29b203dfe5b34798fbd8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"83f0f551f1a72b74bb788a1ba385de6874dcfabe","unresolved":false,"context_lines":[{"line_number":729,"context_line":""},{"line_number":730,"context_line":"    def _plug_os_vif(self, instance, vif):"},{"line_number":731,"context_line":"        instance_info \u003d os_vif_util.nova_to_osvif_instance(instance)"},{"line_number":732,"context_line":"        multiqueue \u003d self._is_multiqueue_enabled(instance)"},{"line_number":733,"context_line":"        if \u0027virtio_multiqueue\u0027 in instance_info:"},{"line_number":734,"context_line":"            # TODO(jangutter): Check can be removed when"},{"line_number":735,"context_line":"            # https://review.openstack.org/#/c/570959"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_1dd7604d","line":732,"range":{"start_line":732,"start_character":8,"end_line":732,"end_character":58},"updated":"2018-05-31 16:31:57.000000000","message":"i think it would be better to test for the version of the instance_info object.","commit_id":"7b699b4d966108b639fe29b203dfe5b34798fbd8"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c071f94d5e9f2a36be9d340c5c11cdae0916b587","unresolved":false,"context_lines":[{"line_number":734,"context_line":"            # TODO(jangutter): Check can be removed when"},{"line_number":735,"context_line":"            # https://review.openstack.org/#/c/570959"},{"line_number":736,"context_line":"            # has been merged, released and added to requirements"},{"line_number":737,"context_line":"            instance_info.multiqueue \u003d multiqueue"},{"line_number":738,"context_line":""},{"line_number":739,"context_line":"        try:"},{"line_number":740,"context_line":"            os_vif.plug(vif, instance_info)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_24bd69b6","line":737,"updated":"2018-05-31 14:20:59.000000000","message":"Honestly I don\u0027t know how do we proceed in such situation to test that... I think we will have to wait that the osvif patch is merged.\n\nFor example here, you made a mistake the name will be \u0027virtio_multiqueue\u0027 :)","commit_id":"7b699b4d966108b639fe29b203dfe5b34798fbd8"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"f3b89d29211cfe5142fb38dc4d63746a618fe2d3","unresolved":false,"context_lines":[{"line_number":734,"context_line":"            # TODO(jangutter): Check can be removed when"},{"line_number":735,"context_line":"            # https://review.openstack.org/#/c/570959"},{"line_number":736,"context_line":"            # has been merged, released and added to requirements"},{"line_number":737,"context_line":"            instance_info.multiqueue \u003d multiqueue"},{"line_number":738,"context_line":""},{"line_number":739,"context_line":"        try:"},{"line_number":740,"context_line":"            os_vif.plug(vif, instance_info)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_27680bf3","line":737,"in_reply_to":"5f7c97a3_24bd69b6","updated":"2018-05-31 15:20:07.000000000","message":"(facepalm), yes.... correct.\nWe plan to set up a full integrated devstack run with an end-to-end demonstration soon, so this guard is trying to trick the CI into testing the rest of the code.\n\nThe sequence of merging will probably be:\nos-vif merge, os-vif release tag, nova requirements bump, then this gets to merge. But, testing the integrated system is not possible until everything is up.","commit_id":"7b699b4d966108b639fe29b203dfe5b34798fbd8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"83f0f551f1a72b74bb788a1ba385de6874dcfabe","unresolved":false,"context_lines":[{"line_number":734,"context_line":"            # TODO(jangutter): Check can be removed when"},{"line_number":735,"context_line":"            # https://review.openstack.org/#/c/570959"},{"line_number":736,"context_line":"            # has been merged, released and added to requirements"},{"line_number":737,"context_line":"            instance_info.multiqueue \u003d multiqueue"},{"line_number":738,"context_line":""},{"line_number":739,"context_line":"        try:"},{"line_number":740,"context_line":"            os_vif.plug(vif, instance_info)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_bd3e6c88","line":737,"in_reply_to":"5f7c97a3_27680bf3","updated":"2018-05-31 16:31:57.000000000","message":"we can do some testing using the nova-experimental job.\nassuming the depends on stuff works i think that will pull  in the patched os-vif instead of master which the experimental nova-os-vif job normally uses.","commit_id":"7b699b4d966108b639fe29b203dfe5b34798fbd8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0d1e02d738f9b75d1a511ec83c2d6e6b4a3a731f","unresolved":false,"context_lines":[{"line_number":752,"context_line":"        # Try os-vif codepath first"},{"line_number":753,"context_line":"        vif_obj \u003d os_vif_util.nova_to_osvif_vif(vif)"},{"line_number":754,"context_line":"        if vif_obj is not None:"},{"line_number":755,"context_line":"            if (\u0027port_profile\u0027 in vif_obj and"},{"line_number":756,"context_line":"              \u0027virtio_multiqueue\u0027 in vif_obj.port_profile and"},{"line_number":757,"context_line":"              vif_obj.port_profile.virtio_multiqueue is None):"},{"line_number":758,"context_line":"                # Populate multiqueue info on VIF"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_856d4ecd","line":755,"range":{"start_line":755,"start_character":16,"end_line":755,"end_character":41},"updated":"2018-06-01 02:48:09.000000000","message":"port_profile will always be a field in a vif object but it may be set to none so this should be if(vif_obj.port_profile ...)\n\nthe rest of the if looks correct to me and will mean if we add the multi_queue flag to other port profiles in the future we wont have to update nova.","commit_id":"571993df5be6b5bb74dcef1b95f0017b34edeb60"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"4c8cc412da7b08b90b312e3c5ae85cc34c2e0240","unresolved":false,"context_lines":[{"line_number":752,"context_line":"        # Try os-vif codepath first"},{"line_number":753,"context_line":"        vif_obj \u003d os_vif_util.nova_to_osvif_vif(vif)"},{"line_number":754,"context_line":"        if vif_obj is not None:"},{"line_number":755,"context_line":"            if (\u0027port_profile\u0027 in vif_obj and"},{"line_number":756,"context_line":"              \u0027virtio_multiqueue\u0027 in vif_obj.port_profile and"},{"line_number":757,"context_line":"              vif_obj.port_profile.virtio_multiqueue is None):"},{"line_number":758,"context_line":"                # Populate multiqueue info on VIF"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_fd42963a","line":755,"range":{"start_line":755,"start_character":16,"end_line":755,"end_character":41},"in_reply_to":"5f7c97a3_856d4ecd","updated":"2018-06-01 09:32:53.000000000","message":"BTW, I got:\n\n from os_vif import objects as o\n o.register_all()\n v \u003d o.vif.VIFGeneric(port_profile\u003dNone)\n Traceback (most recent call last):\n ...\n ValueError: Field `port_profile\u0027 cannot be None\n\n v \u003d o.vif.VIFGeneric()\n v.port_profile\n Traceback (most recent call last):\n  ...\n NotImplementedError: Cannot load \u0027port_profile\u0027 in the base class\n\n v \u003d o.vif.VIFGeneric(port_profile\u003do.vif.VIFPortProfileBase())\n v.port_profile\n (no traceback)\n result: VIFPortProfileBase()","commit_id":"571993df5be6b5bb74dcef1b95f0017b34edeb60"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ce05fceea5cda7464ec29d6f2f9e7c73d9d4aefd","unresolved":false,"context_lines":[{"line_number":752,"context_line":"        # Try os-vif codepath first"},{"line_number":753,"context_line":"        vif_obj \u003d os_vif_util.nova_to_osvif_vif(vif)"},{"line_number":754,"context_line":"        if vif_obj is not None:"},{"line_number":755,"context_line":"            if (\u0027port_profile\u0027 in vif_obj and"},{"line_number":756,"context_line":"              \u0027virtio_multiqueue\u0027 in vif_obj.port_profile and"},{"line_number":757,"context_line":"              vif_obj.port_profile.virtio_multiqueue is None):"},{"line_number":758,"context_line":"                # Populate multiqueue info on VIF"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_5043716c","line":755,"range":{"start_line":755,"start_character":16,"end_line":755,"end_character":41},"in_reply_to":"5f7c97a3_dd731a15","updated":"2018-06-01 11:24:43.000000000","message":"ok if it result in a traceback im fine with it.\nVIFPortProfileBase is not actully an abstract class its just a class with no fields or methods that are not inherited from its ancestors.\n\nif this works correctly then lets leave it as is.","commit_id":"571993df5be6b5bb74dcef1b95f0017b34edeb60"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"040fcd06a067add01c8a70951c164e573ea32e1e","unresolved":false,"context_lines":[{"line_number":752,"context_line":"        # Try os-vif codepath first"},{"line_number":753,"context_line":"        vif_obj \u003d os_vif_util.nova_to_osvif_vif(vif)"},{"line_number":754,"context_line":"        if vif_obj is not None:"},{"line_number":755,"context_line":"            if (\u0027port_profile\u0027 in vif_obj and"},{"line_number":756,"context_line":"              \u0027virtio_multiqueue\u0027 in vif_obj.port_profile and"},{"line_number":757,"context_line":"              vif_obj.port_profile.virtio_multiqueue is None):"},{"line_number":758,"context_line":"                # Populate multiqueue info on VIF"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_dd731a15","line":755,"range":{"start_line":755,"start_character":16,"end_line":755,"end_character":41},"in_reply_to":"5f7c97a3_fd42963a","updated":"2018-06-01 09:56:07.000000000","message":"Yeah it\u0027s our object framework which behaves like that.\n\nI would prefer to always set the port_profile attribute with vif.VIFGeneric(). But I can\u0027t really say that will be the preference for everyone. so I think the check that you are doing is good.","commit_id":"571993df5be6b5bb74dcef1b95f0017b34edeb60"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"4c8cc412da7b08b90b312e3c5ae85cc34c2e0240","unresolved":false,"context_lines":[{"line_number":754,"context_line":"        if vif_obj is not None:"},{"line_number":755,"context_line":"            if (\u0027port_profile\u0027 in vif_obj and"},{"line_number":756,"context_line":"              \u0027virtio_multiqueue\u0027 in vif_obj.port_profile and"},{"line_number":757,"context_line":"              vif_obj.port_profile.virtio_multiqueue is None):"},{"line_number":758,"context_line":"                # Populate multiqueue info on VIF"},{"line_number":759,"context_line":"                multiqueue \u003d self._is_multiqueue_enabled(instance)"},{"line_number":760,"context_line":"                vif_obj.port_profile.virtio_multiqueue \u003d multiqueue"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_9d29228b","line":757,"range":{"start_line":757,"start_character":14,"end_line":757,"end_character":60},"updated":"2018-06-01 09:32:53.000000000","message":"This is why I wanted to set Nullable on the boolean. Basically I intended a tristate to be there. But I\u0027m completely agnostic on this: if Nullable is dropped from the os-vif port profile, it just means that the \"conversion section\" in Nova can\u0027t override this section.","commit_id":"571993df5be6b5bb74dcef1b95f0017b34edeb60"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ce05fceea5cda7464ec29d6f2f9e7c73d9d4aefd","unresolved":false,"context_lines":[{"line_number":754,"context_line":"        if vif_obj is not None:"},{"line_number":755,"context_line":"            if (\u0027port_profile\u0027 in vif_obj and"},{"line_number":756,"context_line":"              \u0027virtio_multiqueue\u0027 in vif_obj.port_profile and"},{"line_number":757,"context_line":"              vif_obj.port_profile.virtio_multiqueue is None):"},{"line_number":758,"context_line":"                # Populate multiqueue info on VIF"},{"line_number":759,"context_line":"                multiqueue \u003d self._is_multiqueue_enabled(instance)"},{"line_number":760,"context_line":"                vif_obj.port_profile.virtio_multiqueue \u003d multiqueue"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_305cb549","line":757,"range":{"start_line":757,"start_character":14,"end_line":757,"end_character":60},"in_reply_to":"5f7c97a3_9d29228b","updated":"2018-06-01 11:24:43.000000000","message":"right so with out nullable\u003dtrue it can have the unset value when its initallised interanlly but it cant be set to None. \nim ok with keeping it this way.","commit_id":"571993df5be6b5bb74dcef1b95f0017b34edeb60"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f95f969720e5d7c831ae2363bb77cb5f62a171f8","unresolved":false,"context_lines":[{"line_number":697,"context_line":"        # Try os-vif codepath first"},{"line_number":698,"context_line":"        vif_obj \u003d os_vif_util.nova_to_osvif_vif(vif)"},{"line_number":699,"context_line":"        if vif_obj is not None:"},{"line_number":700,"context_line":"            if (\u0027port_profile\u0027 in vif_obj and"},{"line_number":701,"context_line":"              \u0027virtio_multiqueue\u0027 in vif_obj.port_profile and"},{"line_number":702,"context_line":"              vif_obj.port_profile.virtio_multiqueue is None):"},{"line_number":703,"context_line":"                # Populate multiqueue info on VIF"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_f4c85157","line":700,"updated":"2018-06-04 10:15:06.000000000","message":"Based on [0] I don\u0027t think we need all of this.\n\n[0] https://review.openstack.org/#/c/571325/4//COMMIT_MSG@25","commit_id":"eff2b0b59ca22f4c633e2dd124313f7dd4de1c03"}]}
