)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"70dc33a9dafe68cf0f11a38b454dbcde6ec4b0c5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"project. Furthemore, the VIF object used by Nova to extract the port"},{"line_number":12,"context_line":"IPs [2] is not provided by os-vif."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The reason to move this field from Subnet to VIF is because the IP list"},{"line_number":15,"context_line":"should belong to the VIF object, which is linked with the port. The"},{"line_number":16,"context_line":"Subnet object contains the CIDR of the subnetwork, but shouldn\u0027t store"},{"line_number":17,"context_line":"the IPs given to an specific port."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f515b1d_5b3404fc","line":14,"updated":"2017-09-29 12:00:37.000000000","message":"I\u0027m not agree, the IPs belong a subnet CIDR","commit_id":"5cdd1e44438a61af37a2296bdb0ae9389ff42eb6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c2165a20309c8da04265b764136f1bf3f3f74759","unresolved":false,"context_lines":[{"line_number":11,"context_line":"project. Furthemore, the VIF object used by Nova to extract the port"},{"line_number":12,"context_line":"IPs [2] is not provided by os-vif."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The reason to move this field from Subnet to VIF is because the IP list"},{"line_number":15,"context_line":"should belong to the VIF object, which is linked with the port. The"},{"line_number":16,"context_line":"Subnet object contains the CIDR of the subnetwork, but shouldn\u0027t store"},{"line_number":17,"context_line":"the IPs given to an specific port."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f515b1d_afef2ee7","line":14,"in_reply_to":"7f515b1d_1eb55aee","updated":"2017-09-29 15:14:18.000000000","message":"nova has been incorrectly\nmodeling fixed ips associated with a neutron port via the subnet associated with a port due to legacy nova network modeling.\n\nthe subnet object is not intended to be a port specific view of the subnet but is ment to reflect the general properties of the subnet.\n\nNothing currently used the ips and we want to make sure we\nalign the model more closely with neutron modeling to make it more intuitive.","commit_id":"5cdd1e44438a61af37a2296bdb0ae9389ff42eb6"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4411db6d78e0d66f2c28011ea9eac63a1b09d3a0","unresolved":false,"context_lines":[{"line_number":11,"context_line":"project. Furthemore, the VIF object used by Nova to extract the port"},{"line_number":12,"context_line":"IPs [2] is not provided by os-vif."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The reason to move this field from Subnet to VIF is because the IP list"},{"line_number":15,"context_line":"should belong to the VIF object, which is linked with the port. The"},{"line_number":16,"context_line":"Subnet object contains the CIDR of the subnetwork, but shouldn\u0027t store"},{"line_number":17,"context_line":"the IPs given to an specific port."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f515b1d_1eb55aee","line":14,"in_reply_to":"7f515b1d_5b3404fc","updated":"2017-09-29 12:42:13.000000000","message":"That\u0027s the point, the IPs doesn\u0027t belong to a subnet. Those IPs are assigned to a port, not to a subnet. Of course, those IPs should be in the CIDR of the port\u0027s subnets, but as I said, the subnet doesn\u0027t own the IPs.\n\nYou can take a look at Neutron port definition [1]. The list of fixed IPs are defined in the port itself, not in the subnet.\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/objects/ports.py#L273","commit_id":"5cdd1e44438a61af37a2296bdb0ae9389ff42eb6"}],"os_vif/objects/subnet.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b513d37684bc30d7369d188e5845a97e7fcb6136","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        \u0027dhcp_server\u0027: fields.IPAddressField(),"},{"line_number":35,"context_line":"    }"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def obj_make_compatible_from_manifest(self, primitive, target_version,"},{"line_number":38,"context_line":"                                          version_manifest):"},{"line_number":39,"context_line":"        super(Subnet, self).obj_make_compatible_from_manifest("},{"line_number":40,"context_line":"            primitive, target_version, version_manifest)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_41b05fdd","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":41},"updated":"2017-10-03 10:45:15.000000000","message":"What\u0027s this now? I thought no one was using this field? Surely we can just ignore this?","commit_id":"1eb09f35c481c487786cdc427f028740a88165cf"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"9bb2bab571bfe2831621496ff9494da7ad45e055","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        \u0027dhcp_server\u0027: fields.IPAddressField(),"},{"line_number":35,"context_line":"    }"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def obj_make_compatible_from_manifest(self, primitive, target_version,"},{"line_number":38,"context_line":"                                          version_manifest):"},{"line_number":39,"context_line":"        super(Subnet, self).obj_make_compatible_from_manifest("},{"line_number":40,"context_line":"            primitive, target_version, version_manifest)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f4e5783_0d472320","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":41},"in_reply_to":"7f515b1d_3e31920c","updated":"2017-10-10 14:42:18.000000000","message":"You are just paraphrasing what I\u0027m saying.","commit_id":"1eb09f35c481c487786cdc427f028740a88165cf"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"82cbe92d3091c731311a122c960cde431dbd399e","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        \u0027dhcp_server\u0027: fields.IPAddressField(),"},{"line_number":35,"context_line":"    }"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def obj_make_compatible_from_manifest(self, primitive, target_version,"},{"line_number":38,"context_line":"                                          version_manifest):"},{"line_number":39,"context_line":"        super(Subnet, self).obj_make_compatible_from_manifest("},{"line_number":40,"context_line":"            primitive, target_version, version_manifest)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_7c78a48e","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":41},"in_reply_to":"7f515b1d_41b05fdd","updated":"2017-10-03 11:14:46.000000000","message":"I think that, this is even no necessary at all, as the VERSION change. The objects are so far no exchanged between nodes and not stored.\n\nThe version change is I guess for history and the obj_make_compatible is just a practicing we have inherited.","commit_id":"1eb09f35c481c487786cdc427f028740a88165cf"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d92b7d7f72c64ef30692e1dbaeab37abd35a3f26","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        \u0027dhcp_server\u0027: fields.IPAddressField(),"},{"line_number":35,"context_line":"    }"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def obj_make_compatible_from_manifest(self, primitive, target_version,"},{"line_number":38,"context_line":"                                          version_manifest):"},{"line_number":39,"context_line":"        super(Subnet, self).obj_make_compatible_from_manifest("},{"line_number":40,"context_line":"            primitive, target_version, version_manifest)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_3e31920c","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":41},"in_reply_to":"7f515b1d_66db6e21","updated":"2017-10-06 16:37:02.000000000","message":"it not that it was a best practice it was that we must always support downgrade so in the event this object is passed over rpc so that we can support rolling upgrades with mixed versions.\n\nin this case since this field was never used we should be able to omit this function though in general this should always be included if the field has ever been used.","commit_id":"1eb09f35c481c487786cdc427f028740a88165cf"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5f5696a774488cea793a82be242c4e2280c2e2b1","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        \u0027dhcp_server\u0027: fields.IPAddressField(),"},{"line_number":35,"context_line":"    }"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def obj_make_compatible_from_manifest(self, primitive, target_version,"},{"line_number":38,"context_line":"                                          version_manifest):"},{"line_number":39,"context_line":"        super(Subnet, self).obj_make_compatible_from_manifest("},{"line_number":40,"context_line":"            primitive, target_version, version_manifest)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_fcdc94e4","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":41},"in_reply_to":"7f515b1d_7c78a48e","updated":"2017-10-03 11:54:31.000000000","message":"Objects are going to be exchanged between services, that\u0027s why I made this function.\n\nOf course no one is using this field now but it should be mandatory to handle these version changes properly.","commit_id":"1eb09f35c481c487786cdc427f028740a88165cf"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ea1576c0cc1fb78f320a69efb749337d584a5cdf","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        \u0027dhcp_server\u0027: fields.IPAddressField(),"},{"line_number":35,"context_line":"    }"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def obj_make_compatible_from_manifest(self, primitive, target_version,"},{"line_number":38,"context_line":"                                          version_manifest):"},{"line_number":39,"context_line":"        super(Subnet, self).obj_make_compatible_from_manifest("},{"line_number":40,"context_line":"            primitive, target_version, version_manifest)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_66db6e21","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":41},"in_reply_to":"7f515b1d_e6719e79","updated":"2017-10-03 13:06:49.000000000","message":"\u003e Can we just drop it?\n\nI agree and I think we should until that part will be necessary.\n\nIf you look in the code you will see a lot of methods like that. As I mentioned I think they were like a consensus to add it for \"best practicing\" or something. Anyway let just stop that.","commit_id":"1eb09f35c481c487786cdc427f028740a88165cf"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"31ce12c803b6aeaf1806ba1b436f6e25fe2802c4","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        \u0027dhcp_server\u0027: fields.IPAddressField(),"},{"line_number":35,"context_line":"    }"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def obj_make_compatible_from_manifest(self, primitive, target_version,"},{"line_number":38,"context_line":"                                          version_manifest):"},{"line_number":39,"context_line":"        super(Subnet, self).obj_make_compatible_from_manifest("},{"line_number":40,"context_line":"            primitive, target_version, version_manifest)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_e6719e79","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":41},"in_reply_to":"7f515b1d_fcdc94e4","updated":"2017-10-03 12:44:58.000000000","message":"\u003e Objects are going to be\n\nThat\u0027s the second, unsaid part of my point - no one\u0027s actually exchanging these either. This is code that we\u0027re going to have to maintain that does nothing useful for us yet. Can we just drop it?","commit_id":"1eb09f35c481c487786cdc427f028740a88165cf"}],"os_vif/objects/vif.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"70dc33a9dafe68cf0f11a38b454dbcde6ec4b0c5","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                                           subclasses\u003dTrue),"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        # The list of allocated IPs for this port."},{"line_number":55,"context_line":"        \u0027fixed_ips\u0027: fields.ObjectField(\"FixedIPList\")"},{"line_number":56,"context_line":"    }"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def obj_make_compatible(self, primitive, target_version):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_5b1d2472","line":55,"updated":"2017-09-29 12:00:37.000000000","message":"I don\u0027t think we should do that.\n\nWhat we can do is to provide a dynamic property which is going to browse the subnets of the VIF network and so aggregates the IPs.","commit_id":"5cdd1e44438a61af37a2296bdb0ae9389ff42eb6"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4411db6d78e0d66f2c28011ea9eac63a1b09d3a0","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                                           subclasses\u003dTrue),"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        # The list of allocated IPs for this port."},{"line_number":55,"context_line":"        \u0027fixed_ips\u0027: fields.ObjectField(\"FixedIPList\")"},{"line_number":56,"context_line":"    }"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def obj_make_compatible(self, primitive, target_version):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_5e8d1230","line":55,"in_reply_to":"7f515b1d_5b1d2472","updated":"2017-09-29 12:42:13.000000000","message":"As I commented in [1], the list of fixed IPs doesn\u0027t belong to the subnet, but to the port. IMO, the current definition is just a legacy migration from Nova networks. This object definition was superseeded in Neutron storing the IPs in Port object.\n\n[1] https://review.openstack.org/#/c/508498/1//COMMIT_MSG","commit_id":"5cdd1e44438a61af37a2296bdb0ae9389ff42eb6"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"e939d26e957736b34b76f421c70cc5e38be33ac6","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                                           subclasses\u003dTrue),"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        # The list of allocated IPs for this port."},{"line_number":55,"context_line":"        \u0027fixed_ips\u0027: fields.ObjectField(\"FixedIPList\")"},{"line_number":56,"context_line":"    }"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def obj_make_compatible(self, primitive, target_version):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_7762160c","line":55,"in_reply_to":"7f515b1d_5e8d1230","updated":"2017-10-02 10:00:05.000000000","message":"Thanks for the pointer [1] but I have read it, yes. I\u0027m trying to share my opinion.\n\nIf I do follow your point, we should also have a field subnets, right?\n\nWhat is the benefice of moving that field, is that possible for a port to have a floating ip which does not belong a network and subnet associated to it?","commit_id":"5cdd1e44438a61af37a2296bdb0ae9389ff42eb6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4b2d4401e5a8cdb8eb50d02062e35b16c17ca415","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                                           subclasses\u003dTrue),"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        # The list of allocated IPs for this port."},{"line_number":55,"context_line":"        \u0027fixed_ips\u0027: fields.ObjectField(\"FixedIPList\")"},{"line_number":56,"context_line":"    }"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def obj_make_compatible(self, primitive, target_version):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_9d0c9094","line":55,"in_reply_to":"7f515b1d_7762160c","updated":"2017-10-02 14:57:20.000000000","message":"floating ips will almost never be associated with a subnet that is attached to a port.(this only happens if you port is already on the same network the floatingips are allocated from.\n\nfixed_ips are not floating ips and must come for a subnet attached to a port however the subent object for any two ports attached to the same subnet should be identical. \n\nif we keep the fixed_ips in the subnet we are no longer creating a subnet object we are create a port specific view of the subnet which is logically a different thing. so no i do not think this should also appear in the subnet object.","commit_id":"5cdd1e44438a61af37a2296bdb0ae9389ff42eb6"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"5b6e7bb32f764c5ae1c9886aefab945f6e65e452","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                                           subclasses\u003dTrue),"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        # The list of allocated IPs for this port."},{"line_number":55,"context_line":"        \u0027fixed_ips\u0027: fields.ObjectField(\"FixedIPList\")"},{"line_number":56,"context_line":"    }"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def obj_make_compatible(self, primitive, target_version):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_cb7eb0ad","line":55,"in_reply_to":"7f515b1d_9d0c9094","updated":"2017-10-03 09:14:28.000000000","message":"\u003e floating ips will almost never be associated with a subnet that is attached to a port.(this only happens if you port is already on the same network the floatingips are allocated from.\n\nYou have completely right, my mistake.","commit_id":"5cdd1e44438a61af37a2296bdb0ae9389ff42eb6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b513d37684bc30d7369d188e5845a97e7fcb6136","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        \u0027fixed_ips\u0027: fields.ObjectField(\"FixedIPList\")"},{"line_number":56,"context_line":"    }"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":59,"context_line":"        super(VIFBase, self).obj_make_compatible(primitive, target_version)"},{"line_number":60,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":61,"context_line":"        if target_version \u003c (1, 1) and \u0027fixed_ips\u0027 in primitive:"},{"line_number":62,"context_line":"            del primitive[\u0027fixed_ips\u0027]"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"@base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_c1c32f37","line":62,"range":{"start_line":58,"start_character":0,"end_line":62,"end_character":38},"updated":"2017-10-03 10:45:15.000000000","message":"This one is probably necessary, yes","commit_id":"1eb09f35c481c487786cdc427f028740a88165cf"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c6f9b114ff7aba353a96b98b72571cfc41d92562","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        # The list of allocated IPs for this port."},{"line_number":55,"context_line":"        \u0027fixed_ips\u0027: fields.ObjectField(\"FixedIPList\")"},{"line_number":56,"context_line":"    }"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":59,"context_line":"        super(VIFBase, self).obj_make_compatible(primitive, target_version)"},{"line_number":60,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":61,"context_line":"        if target_version \u003c (1, 1) and \u0027fixed_ips\u0027 in primitive:"},{"line_number":62,"context_line":"            del primitive[\u0027fixed_ips\u0027]"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"@base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_ec25ff0b","line":62,"range":{"start_line":57,"start_character":0,"end_line":62,"end_character":38},"updated":"2017-10-03 14:28:03.000000000","message":"Sahid - you think we need this?","commit_id":"e9e8dd49284b6362ade77c17593543d4ffb4176b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2ad0a27b76240cecf09d1195ba9b74e42eda5a7a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        # The list of allocated IPs for this port."},{"line_number":55,"context_line":"        \u0027fixed_ips\u0027: fields.ObjectField(\"FixedIPList\")"},{"line_number":56,"context_line":"    }"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":59,"context_line":"        super(VIFBase, self).obj_make_compatible(primitive, target_version)"},{"line_number":60,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":61,"context_line":"        if target_version \u003c (1, 1) and \u0027fixed_ips\u0027 in primitive:"},{"line_number":62,"context_line":"            del primitive[\u0027fixed_ips\u0027]"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"@base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_d11bbec7","line":62,"range":{"start_line":57,"start_character":0,"end_line":62,"end_character":38},"in_reply_to":"7f515b1d_b072b548","updated":"2017-10-05 11:23:02.000000000","message":"Sahid is right. Objects inheriting from VIFBase are not stored nor  shared between services currently.\n\nBut this could happen as soon as Neutron start sending the VIF information during the port binding. If Nova has an old version of os-vif and Neutron a new one, we should remove \u0027fixed_ips\u0027 from the object to make it compatible.","commit_id":"e9e8dd49284b6362ade77c17593543d4ffb4176b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"fae67e01f182d260857cf97314ffa76c32320cdb","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        # The list of allocated IPs for this port."},{"line_number":55,"context_line":"        \u0027fixed_ips\u0027: fields.ObjectField(\"FixedIPList\")"},{"line_number":56,"context_line":"    }"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":59,"context_line":"        super(VIFBase, self).obj_make_compatible(primitive, target_version)"},{"line_number":60,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":61,"context_line":"        if target_version \u003c (1, 1) and \u0027fixed_ips\u0027 in primitive:"},{"line_number":62,"context_line":"            del primitive[\u0027fixed_ips\u0027]"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"@base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_71e9aa7e","line":62,"range":{"start_line":57,"start_character":0,"end_line":62,"end_character":38},"in_reply_to":"7f515b1d_d11bbec7","updated":"2017-10-05 11:26:17.000000000","message":"But using the same argument as in [1], we should remove this make_compatible function.\n\nBut it\u0027s mandatory to bump os-vif version both in Neutron and Nova.\n\n[1] https://review.openstack.org/#/c/508498/2/os_vif/objects/subnet.py","commit_id":"e9e8dd49284b6362ade77c17593543d4ffb4176b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"25ddb93d2807670553905c587d258c2448085ed9","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        # The list of allocated IPs for this port."},{"line_number":55,"context_line":"        \u0027fixed_ips\u0027: fields.ObjectField(\"FixedIPList\")"},{"line_number":56,"context_line":"    }"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":59,"context_line":"        super(VIFBase, self).obj_make_compatible(primitive, target_version)"},{"line_number":60,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":61,"context_line":"        if target_version \u003c (1, 1) and \u0027fixed_ips\u0027 in primitive:"},{"line_number":62,"context_line":"            del primitive[\u0027fixed_ips\u0027]"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"@base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_b072b548","line":62,"range":{"start_line":57,"start_character":0,"end_line":62,"end_character":38},"in_reply_to":"7f515b1d_ec25ff0b","updated":"2017-10-03 20:10:55.000000000","message":"I would say no. The obj_make_compatible() is either not going to be used while the osvif objects are not stored or shared between services - But, let also have Jay on it he might have a different point of view since previously we merged some of these functions.","commit_id":"e9e8dd49284b6362ade77c17593543d4ffb4176b"}]}
