)]}'
{"doc/source/user/usage.rst":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f10b26e998b1a597847101eb26f521cdd59866e8","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Once the `os_vif` library is initialized, there are only two other library"},{"line_number":16,"context_line":"functions: `os_vif.plug()` and `os_vif.unplug()`. Both methods accept an"},{"line_number":17,"context_line":"argument of type `os_vif.objects.VIF` and an argument of type"},{"line_number":18,"context_line":"`os_vif.objects.InstanceInfo`:"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":".. code-block:: python"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f7c97a3_01935ba4","line":18,"range":{"start_line":18,"start_character":1,"end_line":18,"end_character":28},"updated":"2018-06-14 12:41:56.000000000","message":"It should be \u0027os_vif.objects.instance_info.InstanceInfo\u0027.\nIn nova, there is a processing maintaining nova.objects.$OBJECT [1].\nBut there is not the same processing in os-vif.\n\n[1] https://github.com/openstack/nova/blob/a1e01a247c4f7d4da44d8d84a54bc92eda49aca8/nova/objects/base.py#L45-L56\n\nIn addition, there was a patch to fix the object paths in comments.\n\nhttps://review.openstack.org/#/c/433433/","commit_id":"e34d88ef79d4369cabab94faa83267a3b72e4b2f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0bd732d3eee7d468ed0eb18a4056046c45a69fe8","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Once the `os_vif` library is initialized, there are only two other library"},{"line_number":16,"context_line":"functions: `os_vif.plug()` and `os_vif.unplug()`. Both methods accept an"},{"line_number":17,"context_line":"argument of type `os_vif.objects.VIF` and an argument of type"},{"line_number":18,"context_line":"`os_vif.objects.InstanceInfo`:"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":".. code-block:: python"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f7c97a3_3c21de9e","line":18,"range":{"start_line":18,"start_character":1,"end_line":18,"end_character":28},"in_reply_to":"5f7c97a3_01935ba4","updated":"2018-06-14 13:23:45.000000000","message":"the usage of the os-vif instance object is not the same as the nova one.\n\nwe should not need to have the same functionality in os-vif as its the client responciblity to pass in  the correct version as part of the call to os-vif.\n\nyou are correct however that it should be os_vif.objects.instance_info.InstanceInfo\ngood catch.","commit_id":"e34d88ef79d4369cabab94faa83267a3b72e4b2f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ef627c81f92fd6d51b52c3cab04e082360366130","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Once the `os_vif` library is initialized, there are only two other library"},{"line_number":16,"context_line":"functions: `os_vif.plug()` and `os_vif.unplug()`. Both methods accept an"},{"line_number":17,"context_line":"argument of type `os_vif.objects.VIF` and an argument of type"},{"line_number":18,"context_line":"`os_vif.objects.InstanceInfo`:"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":".. code-block:: python"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f7c97a3_dc21ca4e","line":18,"range":{"start_line":18,"start_character":1,"end_line":18,"end_character":28},"in_reply_to":"5f7c97a3_3c21de9e","updated":"2018-06-14 13:28:00.000000000","message":"Just so I\u0027m clear, the `os_vif.objects.VIF` is wrong too - here and in the docstrings for plug and unplug.  It should actually be (subclass of) `os_vif.objects.vif.VIFBase`.\n\nIf I\u0027m getting that right, I\u0027ll respin to fix in both places.","commit_id":"e34d88ef79d4369cabab94faa83267a3b72e4b2f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ff8cde5df437743b08722c065c0e7f9e09df4370","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    from nova import objects as nova_objects"},{"line_number":25,"context_line":"    from os_vif import exception as vif_exc"},{"line_number":26,"context_line":"    from os_vif import objects as vif_objects"},{"line_number":27,"context_line":"    from os_vif import vnic_types"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    instance_uuid \u003d \u0027d7a730ca-3c28-49c3-8f26-4662b909fe8a\u0027"},{"line_number":30,"context_line":"    instance \u003d nova_objects.Instance.get_by_uuid(instance_uuid)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_42d7f5c1","line":27,"range":{"start_line":27,"start_character":23,"end_line":27,"end_character":33},"updated":"2018-06-15 15:24:36.000000000","message":"not used","commit_id":"96c8b0cff10698802d22ebaadd147bc603daa3f2"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9d518c3e7900f72e97bd3eb77c751d578d48a89f","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    instance_uuid \u003d \u0027d7a730ca-3c28-49c3-8f26-4662b909fe8a\u0027"},{"line_number":30,"context_line":"    instance \u003d nova_objects.Instance.get_by_uuid(instance_uuid)"},{"line_number":31,"context_line":"    instance_info \u003d vif_objects.InstanceInfo("},{"line_number":32,"context_line":"        uuid\u003dinstance.uuid,"},{"line_number":33,"context_line":"        name\u003dinstance.name,"},{"line_number":34,"context_line":"        project_id\u003dinstance.project_id)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_74b441d5","line":31,"range":{"start_line":31,"start_character":20,"end_line":31,"end_character":44},"updated":"2018-06-15 01:49:18.000000000","message":"It should be fixed.","commit_id":"96c8b0cff10698802d22ebaadd147bc603daa3f2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ff8cde5df437743b08722c065c0e7f9e09df4370","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    instance_uuid \u003d \u0027d7a730ca-3c28-49c3-8f26-4662b909fe8a\u0027"},{"line_number":30,"context_line":"    instance \u003d nova_objects.Instance.get_by_uuid(instance_uuid)"},{"line_number":31,"context_line":"    instance_info \u003d vif_objects.InstanceInfo("},{"line_number":32,"context_line":"        uuid\u003dinstance.uuid,"},{"line_number":33,"context_line":"        name\u003dinstance.name,"},{"line_number":34,"context_line":"        project_id\u003dinstance.project_id)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_624f91be","line":31,"range":{"start_line":31,"start_character":20,"end_line":31,"end_character":44},"in_reply_to":"5f7c97a3_74b441d5","updated":"2018-06-15 15:24:36.000000000","message":"Done","commit_id":"96c8b0cff10698802d22ebaadd147bc603daa3f2"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9d518c3e7900f72e97bd3eb77c751d578d48a89f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        name\u003dinstance.name,"},{"line_number":34,"context_line":"        project_id\u003dinstance.project_id)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    subnet \u003d vif_objects.Subnet(cidr\u003d\u0027192.168.1.0/24\u0027)"},{"line_number":37,"context_line":"    subnets \u003d vif_objects.SubnetList([subnet])"},{"line_number":38,"context_line":"    network \u003d vif_objects.Network(label\u003d\u0027tenantnet\u0027,"},{"line_number":39,"context_line":"                                  subnets\u003dsubnets,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_94b9ddcc","line":36,"range":{"start_line":36,"start_character":13,"end_line":36,"end_character":31},"updated":"2018-06-15 01:49:18.000000000","message":"ditto","commit_id":"96c8b0cff10698802d22ebaadd147bc603daa3f2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ff8cde5df437743b08722c065c0e7f9e09df4370","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        name\u003dinstance.name,"},{"line_number":34,"context_line":"        project_id\u003dinstance.project_id)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    subnet \u003d vif_objects.Subnet(cidr\u003d\u0027192.168.1.0/24\u0027)"},{"line_number":37,"context_line":"    subnets \u003d vif_objects.SubnetList([subnet])"},{"line_number":38,"context_line":"    network \u003d vif_objects.Network(label\u003d\u0027tenantnet\u0027,"},{"line_number":39,"context_line":"                                  subnets\u003dsubnets,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_024c9dc6","line":36,"range":{"start_line":36,"start_character":13,"end_line":36,"end_character":31},"in_reply_to":"5f7c97a3_94b9ddcc","updated":"2018-06-15 15:24:36.000000000","message":"Done","commit_id":"96c8b0cff10698802d22ebaadd147bc603daa3f2"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9d518c3e7900f72e97bd3eb77c751d578d48a89f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        project_id\u003dinstance.project_id)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    subnet \u003d vif_objects.Subnet(cidr\u003d\u0027192.168.1.0/24\u0027)"},{"line_number":37,"context_line":"    subnets \u003d vif_objects.SubnetList([subnet])"},{"line_number":38,"context_line":"    network \u003d vif_objects.Network(label\u003d\u0027tenantnet\u0027,"},{"line_number":39,"context_line":"                                  subnets\u003dsubnets,"},{"line_number":40,"context_line":"                                  multi_host\u003dFalse,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_34aec981","line":37,"range":{"start_line":37,"start_character":14,"end_line":37,"end_character":36},"updated":"2018-06-15 01:49:18.000000000","message":"ditto","commit_id":"96c8b0cff10698802d22ebaadd147bc603daa3f2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ff8cde5df437743b08722c065c0e7f9e09df4370","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        project_id\u003dinstance.project_id)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    subnet \u003d vif_objects.Subnet(cidr\u003d\u0027192.168.1.0/24\u0027)"},{"line_number":37,"context_line":"    subnets \u003d vif_objects.SubnetList([subnet])"},{"line_number":38,"context_line":"    network \u003d vif_objects.Network(label\u003d\u0027tenantnet\u0027,"},{"line_number":39,"context_line":"                                  subnets\u003dsubnets,"},{"line_number":40,"context_line":"                                  multi_host\u003dFalse,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_224999b6","line":37,"range":{"start_line":37,"start_character":14,"end_line":37,"end_character":36},"in_reply_to":"5f7c97a3_34aec981","updated":"2018-06-15 15:24:36.000000000","message":"Done","commit_id":"96c8b0cff10698802d22ebaadd147bc603daa3f2"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9d518c3e7900f72e97bd3eb77c751d578d48a89f","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    subnet \u003d vif_objects.Subnet(cidr\u003d\u0027192.168.1.0/24\u0027)"},{"line_number":37,"context_line":"    subnets \u003d vif_objects.SubnetList([subnet])"},{"line_number":38,"context_line":"    network \u003d vif_objects.Network(label\u003d\u0027tenantnet\u0027,"},{"line_number":39,"context_line":"                                  subnets\u003dsubnets,"},{"line_number":40,"context_line":"                                  multi_host\u003dFalse,"},{"line_number":41,"context_line":"                                  should_provide_vlan\u003dFalse,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_54b345ea","line":38,"range":{"start_line":38,"start_character":14,"end_line":38,"end_character":33},"updated":"2018-06-15 01:49:18.000000000","message":"ditto","commit_id":"96c8b0cff10698802d22ebaadd147bc603daa3f2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ff8cde5df437743b08722c065c0e7f9e09df4370","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    subnet \u003d vif_objects.Subnet(cidr\u003d\u0027192.168.1.0/24\u0027)"},{"line_number":37,"context_line":"    subnets \u003d vif_objects.SubnetList([subnet])"},{"line_number":38,"context_line":"    network \u003d vif_objects.Network(label\u003d\u0027tenantnet\u0027,"},{"line_number":39,"context_line":"                                  subnets\u003dsubnets,"},{"line_number":40,"context_line":"                                  multi_host\u003dFalse,"},{"line_number":41,"context_line":"                                  should_provide_vlan\u003dFalse,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_c2c30506","line":38,"range":{"start_line":38,"start_character":14,"end_line":38,"end_character":33},"in_reply_to":"5f7c97a3_54b345ea","updated":"2018-06-15 15:24:36.000000000","message":"Done","commit_id":"96c8b0cff10698802d22ebaadd147bc603daa3f2"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9d518c3e7900f72e97bd3eb77c751d578d48a89f","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                                  should_provide_bridge\u003dFalse)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    vif_uuid \u003d uuid.uuid4()"},{"line_number":45,"context_line":"    vif \u003d vif_objects.VIFVHostUser(id\u003dvif_uuid,"},{"line_number":46,"context_line":"                                   address\u003dNone,"},{"line_number":47,"context_line":"                                   network\u003dnetwork,"},{"line_number":48,"context_line":"                                   plugin\u003d\u0027vhostuser\u0027,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_f4c7f145","line":45,"range":{"start_line":45,"start_character":10,"end_line":45,"end_character":34},"updated":"2018-06-15 01:49:18.000000000","message":"ditto","commit_id":"96c8b0cff10698802d22ebaadd147bc603daa3f2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ff8cde5df437743b08722c065c0e7f9e09df4370","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                                  should_provide_bridge\u003dFalse)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    vif_uuid \u003d uuid.uuid4()"},{"line_number":45,"context_line":"    vif \u003d vif_objects.VIFVHostUser(id\u003dvif_uuid,"},{"line_number":46,"context_line":"                                   address\u003dNone,"},{"line_number":47,"context_line":"                                   network\u003dnetwork,"},{"line_number":48,"context_line":"                                   plugin\u003d\u0027vhostuser\u0027,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_e2c88122","line":45,"range":{"start_line":45,"start_character":10,"end_line":45,"end_character":34},"in_reply_to":"5f7c97a3_f4c7f145","updated":"2018-06-15 15:24:36.000000000","message":"Done","commit_id":"96c8b0cff10698802d22ebaadd147bc603daa3f2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c2a0f84d1cd54056eeec2c737ee6f45d0e19559f","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    os_vif.initialize()"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Once the `os_vif` library is initialized, there are only two other library"},{"line_number":16,"context_line":"functions: `os_vif.plug()` and `os_vif.unplug()`. Both methods accept an"},{"line_number":17,"context_line":"argument of (a subclass of) type `os_vif.objects.vif.VIFBase` and an argument"},{"line_number":18,"context_line":"of type `os_vif.objects.instance_info.InstanceInfo`:"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_5bd4a947","line":16,"range":{"start_line":16,"start_character":11,"end_line":16,"end_character":26},"updated":"2018-06-18 09:03:58.000000000","message":"These should be ``literals``","commit_id":"7b83df1d5eb5f854cba542947772354fdac45dcf"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2b276837fd34782ab8be804299b572ea15ec7264","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    os_vif.initialize()"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Once the `os_vif` library is initialized, there are only two other library"},{"line_number":16,"context_line":"functions: `os_vif.plug()` and `os_vif.unplug()`. Both methods accept an"},{"line_number":17,"context_line":"argument of (a subclass of) type `os_vif.objects.vif.VIFBase` and an argument"},{"line_number":18,"context_line":"of type `os_vif.objects.instance_info.InstanceInfo`:"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_26b89f0f","line":16,"range":{"start_line":16,"start_character":11,"end_line":16,"end_character":26},"in_reply_to":"5f7c97a3_5bd4a947","updated":"2018-06-18 23:30:25.000000000","message":"Done","commit_id":"7b83df1d5eb5f854cba542947772354fdac45dcf"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c2a0f84d1cd54056eeec2c737ee6f45d0e19559f","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Once the `os_vif` library is initialized, there are only two other library"},{"line_number":16,"context_line":"functions: `os_vif.plug()` and `os_vif.unplug()`. Both methods accept an"},{"line_number":17,"context_line":"argument of (a subclass of) type `os_vif.objects.vif.VIFBase` and an argument"},{"line_number":18,"context_line":"of type `os_vif.objects.instance_info.InstanceInfo`:"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":".. code-block:: python"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_1bce31b4","line":17,"range":{"start_line":17,"start_character":33,"end_line":17,"end_character":61},"updated":"2018-06-18 09:03:58.000000000","message":"``literal``","commit_id":"7b83df1d5eb5f854cba542947772354fdac45dcf"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2b276837fd34782ab8be804299b572ea15ec7264","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Once the `os_vif` library is initialized, there are only two other library"},{"line_number":16,"context_line":"functions: `os_vif.plug()` and `os_vif.unplug()`. Both methods accept an"},{"line_number":17,"context_line":"argument of (a subclass of) type `os_vif.objects.vif.VIFBase` and an argument"},{"line_number":18,"context_line":"of type `os_vif.objects.instance_info.InstanceInfo`:"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":".. code-block:: python"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_c6344baf","line":17,"range":{"start_line":17,"start_character":33,"end_line":17,"end_character":61},"in_reply_to":"5f7c97a3_1bce31b4","updated":"2018-06-18 23:30:25.000000000","message":"Done","commit_id":"7b83df1d5eb5f854cba542947772354fdac45dcf"}],"os_vif/__init__.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c2a0f84d1cd54056eeec2c737ee6f45d0e19559f","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    \"\"\""},{"line_number":54,"context_line":"    Given a model of a VIF, perform operations to plug the VIF properly."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    :param vif: Instance of a subclass of `os_vif.objects.vif.VIFBase`."},{"line_number":57,"context_line":"    :param instance_info: `os_vif.objects.instance_info.InstanceInfo` object."},{"line_number":58,"context_line":"    :raises `exception.LibraryNotInitialized` if the user of the library"},{"line_number":59,"context_line":"            did not call os_vif.initialize(**config) before trying to"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_7bbc0506","line":56,"range":{"start_line":56,"start_character":41,"end_line":56,"end_character":70},"updated":"2018-06-18 09:03:58.000000000","message":"technically ``literal`` here too and below, but this is already wrong so I won\u0027t block on this if you don\u0027t fancy fixing","commit_id":"7b83df1d5eb5f854cba542947772354fdac45dcf"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2b276837fd34782ab8be804299b572ea15ec7264","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    \"\"\""},{"line_number":54,"context_line":"    Given a model of a VIF, perform operations to plug the VIF properly."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    :param vif: Instance of a subclass of `os_vif.objects.vif.VIFBase`."},{"line_number":57,"context_line":"    :param instance_info: `os_vif.objects.instance_info.InstanceInfo` object."},{"line_number":58,"context_line":"    :raises `exception.LibraryNotInitialized` if the user of the library"},{"line_number":59,"context_line":"            did not call os_vif.initialize(**config) before trying to"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_264dff3a","line":56,"range":{"start_line":56,"start_character":41,"end_line":56,"end_character":70},"in_reply_to":"5f7c97a3_7bbc0506","updated":"2018-06-18 23:30:25.000000000","message":"Done","commit_id":"7b83df1d5eb5f854cba542947772354fdac45dcf"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"185093a4939c8e8d2cabb5a7183d5e6e9d457039","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def plug(vif, instance_info):"},{"line_number":53,"context_line":"    \"\"\""},{"line_number":54,"context_line":"    Given a model of a VIF, perform operations to plug the VIF properly."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    :param vif: Instance of a subclass of ``os_vif.objects.vif.VIFBase``."},{"line_number":57,"context_line":"    :param instance_info: ``os_vif.objects.instance_info.InstanceInfo`` object."},{"line_number":58,"context_line":"    :raises ``exception.LibraryNotInitialized`` if the user of the library"},{"line_number":59,"context_line":"            did not call ``os_vif.initialize(**config)`` before trying to"},{"line_number":60,"context_line":"            plug a VIF."},{"line_number":61,"context_line":"    :raises ``exception.NoMatchingPlugin`` if there is no plugin for the"},{"line_number":62,"context_line":"            type of VIF supplied."},{"line_number":63,"context_line":"    :raises ``exception.PlugException`` if anything fails during unplug"},{"line_number":64,"context_line":"            operations."},{"line_number":65,"context_line":"    \"\"\""},{"line_number":66,"context_line":"    if _EXT_MANAGER is None:"},{"line_number":67,"context_line":"        raise os_vif.exception.LibraryNotInitialized()"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_6752d16a","line":65,"range":{"start_line":54,"start_character":0,"end_line":65,"end_character":7},"updated":"2018-07-17 09:15:14.000000000","message":"Proper type annotations (as opposed to the Python 2.7-compatible comment ones) are probably the thing I\u0027m looking to most with Python 3.4+","commit_id":"8d7c0d548dbf5b2548b3a283a13631e60f3f1d9e"}]}
