)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7790e17107bd8e0e59773c1b2b99df26971a22b1","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When vif_plug_ovs.linux_net.ensure_ovs_bridge function is called, the"},{"line_number":10,"context_line":"datapath_type of the bridge should be read from the VIF object, instead"},{"line_number":11,"context_line":"of statically corce a value."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Depends-On: Ief83150caf1a32a2c043b0245b36e5ebc3a16379"},{"line_number":14,"context_line":"Depends-On: I6194606498bff177d9856ed9f0c86ca0a4eef32f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1f1a1f67_8049fc60","line":11,"updated":"2017-07-18 17:17:19.000000000","message":"s/corce/coercing/","commit_id":"ac8e62579b1c8aa347a2712932f5090d01861c2e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f399a1e451e23986b1045a51d4ce493a204e5e83","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When vif_plug_ovs.linux_net.ensure_ovs_bridge function is called, the"},{"line_number":10,"context_line":"datapath_type of the bridge should be read from the VIF object, instead"},{"line_number":11,"context_line":"of statically corce a value."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Depends-On: Ief83150caf1a32a2c043b0245b36e5ebc3a16379"},{"line_number":14,"context_line":"Depends-On: I6194606498bff177d9856ed9f0c86ca0a4eef32f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1f1a1f67_34e57c0b","line":11,"in_reply_to":"1f1a1f67_8049fc60","updated":"2017-07-20 14:56:56.000000000","message":"Done","commit_id":"ac8e62579b1c8aa347a2712932f5090d01861c2e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"28fcd61d531aeaf1177e481211a5a5e8ea287e04","unresolved":false,"context_lines":[{"line_number":10,"context_line":"datapath_type of the bridge should be read from the VIF object, instead"},{"line_number":11,"context_line":"of statically coercing a value."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Depends-On: Ief83150caf1a32a2c043b0245b36e5ebc3a16379"},{"line_number":14,"context_line":"Closes-Bug: #1632372"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ia813c39e2917ff373f8e1f85c75fc22d109c94d3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ff346bd7_68ff5534","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":53},"updated":"2017-07-26 07:20:50.000000000","message":"technically this is not required by the way but it should me merged soon so no need to remove","commit_id":"6a8f6eb317d85fc40b5b78587dae9ddddf482869"}],"os_vif/objects/vif.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"207de29d63d74afab79f68f5e8bd7fe32cc659fe","unresolved":false,"context_lines":[{"line_number":165,"context_line":"class VIFPortProfileBase(osv_base.VersionedObject,"},{"line_number":166,"context_line":"                         base.ComparableVersionedObject):"},{"line_number":167,"context_line":"    # Base class for all types of port profile"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_a8472677","line":168,"range":{"start_line":168,"start_character":0,"end_line":168,"end_character":0},"updated":"2017-06-17 20:39:25.000000000","message":"unrelated change","commit_id":"b23d27d91670f28f3993c12e7092f38dd9e3b850"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"19e2b8354c87e4ee06c5a019aacc61931ce14504","unresolved":false,"context_lines":[{"line_number":165,"context_line":"class VIFPortProfileBase(osv_base.VersionedObject,"},{"line_number":166,"context_line":"                         base.ComparableVersionedObject):"},{"line_number":167,"context_line":"    # Base class for all types of port profile"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_3326b418","line":168,"range":{"start_line":168,"start_character":0,"end_line":168,"end_character":0},"in_reply_to":"7f231b9d_a8472677","updated":"2017-06-20 09:51:05.000000000","message":"Done","commit_id":"b23d27d91670f28f3993c12e7092f38dd9e3b850"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7790e17107bd8e0e59773c1b2b99df26971a22b1","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        # Datapath type of the bridge"},{"line_number":183,"context_line":"        \u0027datapath_type\u0027: fields.StringField(),"},{"line_number":184,"context_line":"    }"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"@base.VersionedObjectRegistry.register"},{"line_number":188,"context_line":"class VIFPortProfileFPOpenVSwitch(VIFPortProfileOpenVSwitch):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_4079a491","line":185,"updated":"2017-07-18 17:17:19.000000000","message":"@stephenfin: obj_make_compatible() is only for RPC interfaces. We don\u0027t send these objects over RPC (or any other interface) at the moment.","commit_id":"ac8e62579b1c8aa347a2712932f5090d01861c2e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5a9fe1a16b0c945752c1342e9caba5fb927fb501","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        # Datapath type of the bridge"},{"line_number":183,"context_line":"        \u0027datapath_type\u0027: fields.StringField(),"},{"line_number":184,"context_line":"    }"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"@base.VersionedObjectRegistry.register"},{"line_number":188,"context_line":"class VIFPortProfileFPOpenVSwitch(VIFPortProfileOpenVSwitch):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_81e62b44","line":185,"updated":"2017-07-13 15:28:40.000000000","message":"Don\u0027t you need a \u0027obj_make_compatible\u0027 function to handle nova versions that can\u0027t handle this field?","commit_id":"ac8e62579b1c8aa347a2712932f5090d01861c2e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4e2b7f330a68069328c7fd0c879359faff4faa8a","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    # Port profile info for OpenVSwitch networks using fastpath"},{"line_number":197,"context_line":"    # Version 1.0: Initial release"},{"line_number":198,"context_line":"    # Version 1.1: VIFPortProfileOpenVSwitch updated to 1.1"},{"line_number":199,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    fields \u003d {"},{"line_number":202,"context_line":"        # Name of the bridge (managed by fast path) to connect to"}],"source_content_type":"text/x-python","patch_set":7,"id":"df3967d1_20c6219c","line":199,"updated":"2017-08-01 17:49:44.000000000","message":"You do not need to update the version of derived subclasses.","commit_id":"3b606b06e138787c1b1ffd1dd0fb43e971ee7e29"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"932833f5874e100df1d1d1bc804541590a6ebbf9","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    # Port profile info for OpenVSwitch networks using fastpath"},{"line_number":197,"context_line":"    # Version 1.0: Initial release"},{"line_number":198,"context_line":"    # Version 1.1: VIFPortProfileOpenVSwitch updated to 1.1"},{"line_number":199,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    fields \u003d {"},{"line_number":202,"context_line":"        # Name of the bridge (managed by fast path) to connect to"}],"source_content_type":"text/x-python","patch_set":7,"id":"df3967d1_b637ce4d","line":199,"in_reply_to":"df3967d1_16323011","updated":"2017-08-02 21:27:46.000000000","message":"Yep, need a version bump since you\u0027re getting new stuff via the parent.","commit_id":"3b606b06e138787c1b1ffd1dd0fb43e971ee7e29"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"9920ac262bed3ca08d9ba16dbef70edb7321fc8a","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    # Port profile info for OpenVSwitch networks using fastpath"},{"line_number":197,"context_line":"    # Version 1.0: Initial release"},{"line_number":198,"context_line":"    # Version 1.1: VIFPortProfileOpenVSwitch updated to 1.1"},{"line_number":199,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    fields \u003d {"},{"line_number":202,"context_line":"        # Name of the bridge (managed by fast path) to connect to"}],"source_content_type":"text/x-python","patch_set":7,"id":"df3967d1_25386b3b","line":199,"in_reply_to":"df3967d1_20c6219c","updated":"2017-08-01 22:10:30.000000000","message":"Interesting, can you explain why? How would a consumer know whether or not they can expect the datapath_type field in a VIFPortProfileFPOpenVSwitch object if the version is the same for both?","commit_id":"3b606b06e138787c1b1ffd1dd0fb43e971ee7e29"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f66f5f8a51c0aa86a17f42b86a0de22a7d456dfc","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    # Port profile info for OpenVSwitch networks using fastpath"},{"line_number":197,"context_line":"    # Version 1.0: Initial release"},{"line_number":198,"context_line":"    # Version 1.1: VIFPortProfileOpenVSwitch updated to 1.1"},{"line_number":199,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    fields \u003d {"},{"line_number":202,"context_line":"        # Name of the bridge (managed by fast path) to connect to"}],"source_content_type":"text/x-python","patch_set":7,"id":"df3967d1_e70edd8b","line":199,"in_reply_to":"df3967d1_25386b3b","updated":"2017-08-02 08:04:08.000000000","message":"Sorry if I\u0027m missing something in the translation.\n\n@Jay, I always use the easiest rule to decide if an object has change: look at the object hash (in the unit tests). \"VIFPortProfileFPOpenVSwitch\" has a new field, so should have a new version.\n\nI think Kevin\u0027s comment is the answer to your question: a consumer can check the OVO version to know if there is information about the datapath type.","commit_id":"3b606b06e138787c1b1ffd1dd0fb43e971ee7e29"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ca2ac9abc5f8618407937450d79822ad46126a33","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    # Port profile info for OpenVSwitch networks using fastpath"},{"line_number":197,"context_line":"    # Version 1.0: Initial release"},{"line_number":198,"context_line":"    # Version 1.1: VIFPortProfileOpenVSwitch updated to 1.1"},{"line_number":199,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    fields \u003d {"},{"line_number":202,"context_line":"        # Name of the bridge (managed by fast path) to connect to"}],"source_content_type":"text/x-python","patch_set":7,"id":"df3967d1_cab4e2d3","line":199,"in_reply_to":"df3967d1_b637ce4d","updated":"2017-08-02 21:52:42.000000000","message":"Got it, thank you Dan.","commit_id":"3b606b06e138787c1b1ffd1dd0fb43e971ee7e29"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5ac61622256b0750418df41d6ef197a9d1cc8fb4","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    # Port profile info for OpenVSwitch networks using fastpath"},{"line_number":197,"context_line":"    # Version 1.0: Initial release"},{"line_number":198,"context_line":"    # Version 1.1: VIFPortProfileOpenVSwitch updated to 1.1"},{"line_number":199,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    fields \u003d {"},{"line_number":202,"context_line":"        # Name of the bridge (managed by fast path) to connect to"}],"source_content_type":"text/x-python","patch_set":7,"id":"df3967d1_16323011","line":199,"in_reply_to":"df3967d1_e70edd8b","updated":"2017-08-02 11:05:49.000000000","message":"all drived classes need to be updated beacuse the base class has a new field. verion bumps to base classes inherit down to child classes but not up.\n\nthis also holds true for composition of objects. if you include a filed of a specific ovo type and that ovo is updated you need to version the composed object also.","commit_id":"3b606b06e138787c1b1ffd1dd0fb43e971ee7e29"}],"os_vif/tests/unit/test_vif.py":[{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"2aba23d0b6f2cee501d45261698c83ac71b7abd6","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    \u0027VIFPortProfile8021Qbh\u0027: \u00271.0-4b945f07d2666ab00a48d1dc225669b1\u0027,"},{"line_number":170,"context_line":"    \u0027VIFPortProfileBase\u0027: \u00271.0-77509ea1ea0dd750d5864b9bd87d3f9d\u0027,"},{"line_number":171,"context_line":"    \u0027VIFPortProfileOpenVSwitch\u0027: \u00271.1-8a6e87ad559446d4069d020f477169df\u0027,"},{"line_number":172,"context_line":"    \u0027VIFPortProfileFPOpenVSwitch\u0027: \u00271.0-9c9cfbf5d830e0c77a7553e24ae07d2d\u0027,"},{"line_number":173,"context_line":"    \u0027VIFPortProfileFPBridge\u0027: \u00271.0-d50872b3cddd245ffebef6053dfbe27a\u0027,"},{"line_number":174,"context_line":"    \u0027VIFPortProfileFPTap\u0027: \u00271.0-11670d8dbabd772ff0da26961adadc5a\u0027,"},{"line_number":175,"context_line":"    \u0027VIFVHostUser\u0027: \u00271.1-1f95b43be1f884f090ca1f4d79adfd35\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f1a1f67_fabdab02","line":172,"range":{"start_line":172,"start_character":5,"end_line":172,"end_character":32},"updated":"2017-07-20 15:36:10.000000000","message":"If this class and VIFPortProfileOVSRepresentor both inherit from VIFPortProfileOpenVSwitch, they should both have their versions bumped up as they\u0027ll also inherit your change.","commit_id":"8e4f8fe6fcb4e269f1ee834e111ed2bdd0cff98d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f7d20d32f17fc16733cb595e232d12078aef00af","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    \u0027VIFPortProfile8021Qbh\u0027: \u00271.0-4b945f07d2666ab00a48d1dc225669b1\u0027,"},{"line_number":170,"context_line":"    \u0027VIFPortProfileBase\u0027: \u00271.0-77509ea1ea0dd750d5864b9bd87d3f9d\u0027,"},{"line_number":171,"context_line":"    \u0027VIFPortProfileOpenVSwitch\u0027: \u00271.1-8a6e87ad559446d4069d020f477169df\u0027,"},{"line_number":172,"context_line":"    \u0027VIFPortProfileFPOpenVSwitch\u0027: \u00271.0-9c9cfbf5d830e0c77a7553e24ae07d2d\u0027,"},{"line_number":173,"context_line":"    \u0027VIFPortProfileFPBridge\u0027: \u00271.0-d50872b3cddd245ffebef6053dfbe27a\u0027,"},{"line_number":174,"context_line":"    \u0027VIFPortProfileFPTap\u0027: \u00271.0-11670d8dbabd772ff0da26961adadc5a\u0027,"},{"line_number":175,"context_line":"    \u0027VIFVHostUser\u0027: \u00271.1-1f95b43be1f884f090ca1f4d79adfd35\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f1a1f67_44c16580","line":172,"range":{"start_line":172,"start_character":5,"end_line":172,"end_character":32},"in_reply_to":"1f1a1f67_31e58939","updated":"2017-07-20 16:51:16.000000000","message":"yes this is correct.\notherwise the rest of the patch looks good but you need to bump the version of the child OVOs too","commit_id":"8e4f8fe6fcb4e269f1ee834e111ed2bdd0cff98d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"fe0b0bc73e503f8cc4c1ea75f38839298a1cb0ff","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    \u0027VIFPortProfile8021Qbh\u0027: \u00271.0-4b945f07d2666ab00a48d1dc225669b1\u0027,"},{"line_number":170,"context_line":"    \u0027VIFPortProfileBase\u0027: \u00271.0-77509ea1ea0dd750d5864b9bd87d3f9d\u0027,"},{"line_number":171,"context_line":"    \u0027VIFPortProfileOpenVSwitch\u0027: \u00271.1-8a6e87ad559446d4069d020f477169df\u0027,"},{"line_number":172,"context_line":"    \u0027VIFPortProfileFPOpenVSwitch\u0027: \u00271.0-9c9cfbf5d830e0c77a7553e24ae07d2d\u0027,"},{"line_number":173,"context_line":"    \u0027VIFPortProfileFPBridge\u0027: \u00271.0-d50872b3cddd245ffebef6053dfbe27a\u0027,"},{"line_number":174,"context_line":"    \u0027VIFPortProfileFPTap\u0027: \u00271.0-11670d8dbabd772ff0da26961adadc5a\u0027,"},{"line_number":175,"context_line":"    \u0027VIFVHostUser\u0027: \u00271.1-1f95b43be1f884f090ca1f4d79adfd35\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f1a1f67_31e58939","line":172,"range":{"start_line":172,"start_character":5,"end_line":172,"end_character":32},"in_reply_to":"1f1a1f67_fabdab02","updated":"2017-07-20 16:22:33.000000000","message":"You are right David.\n\nIf the hash change, that means I need to push the version because the OVO changed.","commit_id":"8e4f8fe6fcb4e269f1ee834e111ed2bdd0cff98d"}],"vif_plug_ovs/ovs.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"207de29d63d74afab79f68f5e8bd7fe32cc659fe","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        linux_net.update_ovs_vif_port(vif_name, mtu)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    @staticmethod"},{"line_number":106,"context_line":"    def _get_vif_datapath_type(vif):"},{"line_number":107,"context_line":"        profile \u003d vif.port_profile"},{"line_number":108,"context_line":"        if \u0027datapath_type\u0027 not in profile.obj_fields:"},{"line_number":109,"context_line":"            return constants.OVS_DATAPATH_NETDEV"},{"line_number":110,"context_line":"        return (profile.datapath_type if profile.datapath_type else"},{"line_number":111,"context_line":"                constants.OVS_DATAPATH_NETDEV)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _plug_vhostuser(self, vif, instance_info):"},{"line_number":114,"context_line":"        linux_net.ensure_ovs_bridge(vif.network.bridge,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_2853163b","line":111,"range":{"start_line":106,"start_character":3,"end_line":111,"end_character":46},"updated":"2017-06-17 20:39:25.000000000","message":"this is incorrect this will make netdev the default if not set.\nwe should instead pass the default value as the second argument of the function\n\n\ndef _get_vif_datapath_type(vif,\ndatapath\u003dconstants.OVS_DATAPATH_SYSTEM):\n        profile \u003d vif.port_profile\n        if \u0027datapath_type\u0027 not in profile.obj_fields:\n            return datapath\n        return (profile.datapath_type if profile.datapath_type else datapath)","commit_id":"b23d27d91670f28f3993c12e7092f38dd9e3b850"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"19e2b8354c87e4ee06c5a019aacc61931ce14504","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        linux_net.update_ovs_vif_port(vif_name, mtu)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    @staticmethod"},{"line_number":106,"context_line":"    def _get_vif_datapath_type(vif):"},{"line_number":107,"context_line":"        profile \u003d vif.port_profile"},{"line_number":108,"context_line":"        if \u0027datapath_type\u0027 not in profile.obj_fields:"},{"line_number":109,"context_line":"            return constants.OVS_DATAPATH_NETDEV"},{"line_number":110,"context_line":"        return (profile.datapath_type if profile.datapath_type else"},{"line_number":111,"context_line":"                constants.OVS_DATAPATH_NETDEV)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _plug_vhostuser(self, vif, instance_info):"},{"line_number":114,"context_line":"        linux_net.ensure_ovs_bridge(vif.network.bridge,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_d34ae0aa","line":111,"range":{"start_line":106,"start_character":3,"end_line":111,"end_character":46},"in_reply_to":"7f231b9d_2853163b","updated":"2017-06-20 09:51:05.000000000","message":"Done","commit_id":"b23d27d91670f28f3993c12e7092f38dd9e3b850"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"207de29d63d74afab79f68f5e8bd7fe32cc659fe","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _plug_vhostuser(self, vif, instance_info):"},{"line_number":114,"context_line":"        linux_net.ensure_ovs_bridge(vif.network.bridge,"},{"line_number":115,"context_line":"                                    self._get_vif_datapath_type(vif))"},{"line_number":116,"context_line":"        vif_name \u003d OvsPlugin.gen_port_name("},{"line_number":117,"context_line":"            constants.OVS_VHOSTUSER_PREFIX, vif.id)"},{"line_number":118,"context_line":"        args \u003d {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_0834dafa","line":115,"range":{"start_line":115,"start_character":36,"end_line":115,"end_character":68},"updated":"2017-06-17 20:39:25.000000000","message":"replace with self._get_vif_datapath_type(vif,  datapath\u003dconstants.OVS_DATAPATH_NETDEV)","commit_id":"b23d27d91670f28f3993c12e7092f38dd9e3b850"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"19e2b8354c87e4ee06c5a019aacc61931ce14504","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _plug_vhostuser(self, vif, instance_info):"},{"line_number":114,"context_line":"        linux_net.ensure_ovs_bridge(vif.network.bridge,"},{"line_number":115,"context_line":"                                    self._get_vif_datapath_type(vif))"},{"line_number":116,"context_line":"        vif_name \u003d OvsPlugin.gen_port_name("},{"line_number":117,"context_line":"            constants.OVS_VHOSTUSER_PREFIX, vif.id)"},{"line_number":118,"context_line":"        args \u003d {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_93ca2818","line":115,"range":{"start_line":115,"start_character":36,"end_line":115,"end_character":68},"in_reply_to":"7f231b9d_0834dafa","updated":"2017-06-20 09:51:05.000000000","message":"Done","commit_id":"b23d27d91670f28f3993c12e7092f38dd9e3b850"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7790e17107bd8e0e59773c1b2b99df26971a22b1","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        if \u0027datapath_type\u0027 not in profile.obj_fields:"},{"line_number":113,"context_line":"            return datapath"},{"line_number":114,"context_line":"        return (profile.datapath_type if profile.datapath_type else"},{"line_number":115,"context_line":"                datapath)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def _plug_vhostuser(self, vif, instance_info):"},{"line_number":118,"context_line":"        linux_net.ensure_ovs_bridge("}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_6044a047","line":115,"updated":"2017-07-18 17:17:19.000000000","message":"Line 112 already takes care of the profile.datapath_type not being set case, so here we can just do:\n\n return profile.datapath_type\n\nAlso, with modern ovo, you can just do this to check for whether a field is set on an object:\n\n if \u0027datatype_path\u0027 in profile:\n\nBest,\n-jay","commit_id":"ac8e62579b1c8aa347a2712932f5090d01861c2e"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"1eb68c5ec093ec94df84e2672a3a4f68b8ec3acd","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        if \u0027datapath_type\u0027 not in profile.obj_fields:"},{"line_number":113,"context_line":"            return datapath"},{"line_number":114,"context_line":"        return (profile.datapath_type if profile.datapath_type else"},{"line_number":115,"context_line":"                datapath)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def _plug_vhostuser(self, vif, instance_info):"},{"line_number":118,"context_line":"        linux_net.ensure_ovs_bridge("}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_652af42c","line":115,"updated":"2017-07-10 22:20:23.000000000","message":"return profile.datapath_type or datapah","commit_id":"ac8e62579b1c8aa347a2712932f5090d01861c2e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f399a1e451e23986b1045a51d4ce493a204e5e83","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        if \u0027datapath_type\u0027 not in profile.obj_fields:"},{"line_number":113,"context_line":"            return datapath"},{"line_number":114,"context_line":"        return (profile.datapath_type if profile.datapath_type else"},{"line_number":115,"context_line":"                datapath)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def _plug_vhostuser(self, vif, instance_info):"},{"line_number":118,"context_line":"        linux_net.ensure_ovs_bridge("}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_79e88d7b","line":115,"in_reply_to":"1f1a1f67_6044a047","updated":"2017-07-20 14:56:56.000000000","message":"- The python syntax is not correct.\n- I also need to check if profile.datapath_type is empty\n\nThanks for the reviews.","commit_id":"ac8e62579b1c8aa347a2712932f5090d01861c2e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"637a5d117f4ce741d40f98706a157ae37fc6e14f","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        if \u0027datapath_type\u0027 not in profile.obj_fields:"},{"line_number":113,"context_line":"            return datapath"},{"line_number":114,"context_line":"        return (profile.datapath_type if profile.datapath_type else"},{"line_number":115,"context_line":"                datapath)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def _plug_vhostuser(self, vif, instance_info):"},{"line_number":118,"context_line":"        linux_net.ensure_ovs_bridge("}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_f8b7b439","line":115,"in_reply_to":"3f1d235d_652af42c","updated":"2017-07-11 12:45:23.000000000","message":"return profile.get(datapath_type,datapath) should also work i think but this is fine even if it is a little verbose. that said i do like having a single exit point form a function when appropriate.","commit_id":"ac8e62579b1c8aa347a2712932f5090d01861c2e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5a9fe1a16b0c945752c1342e9caba5fb927fb501","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        if \u0027datapath_type\u0027 not in profile.obj_fields:"},{"line_number":113,"context_line":"            return datapath"},{"line_number":114,"context_line":"        return (profile.datapath_type if profile.datapath_type else"},{"line_number":115,"context_line":"                datapath)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def _plug_vhostuser(self, vif, instance_info):"},{"line_number":118,"context_line":"        linux_net.ensure_ovs_bridge("}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_6119cf77","line":115,"in_reply_to":"3f1d235d_f8b7b439","updated":"2017-07-13 15:28:40.000000000","message":"I don\u0027t think so. With o.vo you need to check for the presence of the field to be sure you\u0027ll get it. If you don\u0027t do this, you could receive a version of the object that doesn\u0027t have this field set, in which case you\u0027d get an error. This is done all over the nova codebase","commit_id":"ac8e62579b1c8aa347a2712932f5090d01861c2e"}],"vif_plug_ovs/tests/unit/test_plugin.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7790e17107bd8e0e59773c1b2b99df26971a22b1","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        plugin.plug(self.vif_ovs, self.instance)"},{"line_number":143,"context_line":"        dp_type \u003d ovs.OvsPlugin._get_vif_datapath_type(self.vif_ovs)"},{"line_number":144,"context_line":"        ensure_ovs_bridge.assert_called_once_with(self.vif_ovs.network.bridge,"},{"line_number":145,"context_line":"                                                  dp_type)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    @mock.patch.object(linux_net, \u0027set_interface_state\u0027)"},{"line_number":148,"context_line":"    @mock.patch.object(linux_net, \u0027ensure_ovs_bridge\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_a03e38b5","line":145,"updated":"2017-07-18 17:17:19.000000000","message":"Meh, probably could have added a new separate unit test for the new method?","commit_id":"ac8e62579b1c8aa347a2712932f5090d01861c2e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f399a1e451e23986b1045a51d4ce493a204e5e83","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        plugin.plug(self.vif_ovs, self.instance)"},{"line_number":143,"context_line":"        dp_type \u003d ovs.OvsPlugin._get_vif_datapath_type(self.vif_ovs)"},{"line_number":144,"context_line":"        ensure_ovs_bridge.assert_called_once_with(self.vif_ovs.network.bridge,"},{"line_number":145,"context_line":"                                                  dp_type)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    @mock.patch.object(linux_net, \u0027set_interface_state\u0027)"},{"line_number":148,"context_line":"    @mock.patch.object(linux_net, \u0027ensure_ovs_bridge\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_54b918e7","line":145,"in_reply_to":"1f1a1f67_a03e38b5","updated":"2017-07-20 14:56:56.000000000","message":"Done, but I think I can keep the code added (if I check the function is working, I could use it in other tests, I think)","commit_id":"ac8e62579b1c8aa347a2712932f5090d01861c2e"}]}
