)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"c6c409902c63fb5f829cf55dbaaa61790eeebd5c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"dada55a8_35296e8a","line":15,"updated":"2016-07-25 21:01:27.000000000","message":"Partially-Implements: blueprint adopt-oslo-versioned-objects-for-db","commit_id":"fb474edd27121f135f86931faa8d6996632ba7ca"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"e1bd49a39dc2395c858036e779a75edda2222052","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"bacf61ea_c5308d0a","line":15,"in_reply_to":"dada55a8_35296e8a","updated":"2016-07-27 16:58:16.000000000","message":"Done","commit_id":"fb474edd27121f135f86931faa8d6996632ba7ca"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"01b8870b6fd40c50b02e2ef35a29ca1647125df5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"9ad45d7e_c09dc05a","line":15,"updated":"2016-08-09 22:25:35.000000000","message":"Need to add the following line: \nPartially-Implements: blueprint adopt-oslo-versioned-objects-for-db\n\nPlease see: http://docs.openstack.org/developer/neutron/devref/effective_neutron.html#commit-messages","commit_id":"74c9c804e0e7e3f0dca97669251bd0f744d2c5a0"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"09e96f95f2be4882df54424fa46279f65b52e2e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"9ad45d7e_178d5b7b","line":15,"in_reply_to":"9ad45d7e_c09dc05a","updated":"2016-08-09 22:50:22.000000000","message":"Done","commit_id":"74c9c804e0e7e3f0dca97669251bd0f744d2c5a0"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"ccb4e63040476646be981199b423e6a0552a5ea4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add OVO for dns Objects"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch relocate db models for dns and"},{"line_number":10,"context_line":"implements  oslo versioned objects for NetworkDNSDomain,"},{"line_number":11,"context_line":"PortDNS. FloatingIPDNS have not been done in this patch"},{"line_number":12,"context_line":"because of complexiety and  will be covered in separate"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"7a8ec9b2_0bf3540b","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":19},"updated":"2016-09-20 17:27:30.000000000","message":"if this is relocating db models, it should be valuable to add the tag:\n\nPartial-Bug: #1597913","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d14947bf539148403ac28f4812022859c6f4a6de","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add OVO for dns Objects"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch relocate db models for dns and"},{"line_number":10,"context_line":"implements  oslo versioned objects for NetworkDNSDomain,"},{"line_number":11,"context_line":"PortDNS. FloatingIPDNS have not been done in this patch"},{"line_number":12,"context_line":"because of complexiety and  will be covered in separate"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"7a8ec9b2_84ad918a","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":19},"in_reply_to":"7a8ec9b2_0bf3540b","updated":"2016-09-20 18:33:19.000000000","message":"will add that too, this relocates models and have ovo as well","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1f916756c8b27862332d3561cce4d8a5b108c0df","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch relocate db models for dns and"},{"line_number":10,"context_line":"implements  oslo versioned objects for NetworkDNSDomain,"},{"line_number":11,"context_line":"PortDNS. FloatingIPDNS have not been done in this patch"},{"line_number":12,"context_line":"because of complexiety and  will be covered in separate"},{"line_number":13,"context_line":"patch."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"7a8ec9b2_c06e9ec8","line":11,"range":{"start_line":11,"start_character":23,"end_line":11,"end_character":27},"updated":"2016-09-20 21:39:09.000000000","message":"s/have/has","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"2b67ef7f37b156bf22f98598470a40236f9164a7","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch relocate db models for dns and"},{"line_number":10,"context_line":"implements  oslo versioned objects for NetworkDNSDomain,"},{"line_number":11,"context_line":"PortDNS. FloatingIPDNS have not been done in this patch"},{"line_number":12,"context_line":"because of complexiety and  will be covered in separate"},{"line_number":13,"context_line":"patch."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"7a8ec9b2_eea8ebdd","line":11,"range":{"start_line":11,"start_character":23,"end_line":11,"end_character":27},"in_reply_to":"7a8ec9b2_c06e9ec8","updated":"2016-09-22 18:04:50.000000000","message":"Done","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1f916756c8b27862332d3561cce4d8a5b108c0df","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch relocate db models for dns and"},{"line_number":10,"context_line":"implements  oslo versioned objects for NetworkDNSDomain,"},{"line_number":11,"context_line":"PortDNS. FloatingIPDNS have not been done in this patch"},{"line_number":12,"context_line":"because of complexiety and  will be covered in separate"},{"line_number":13,"context_line":"patch."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Co-Authored-By: Brandon Logan \u003cbrandon.logan@rackspace.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"7a8ec9b2_00b08642","line":12,"range":{"start_line":12,"start_character":11,"end_line":12,"end_character":22},"updated":"2016-09-20 21:39:09.000000000","message":"s/complexiety/complexity","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"2b67ef7f37b156bf22f98598470a40236f9164a7","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch relocate db models for dns and"},{"line_number":10,"context_line":"implements  oslo versioned objects for NetworkDNSDomain,"},{"line_number":11,"context_line":"PortDNS. FloatingIPDNS have not been done in this patch"},{"line_number":12,"context_line":"because of complexiety and  will be covered in separate"},{"line_number":13,"context_line":"patch."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Co-Authored-By: Brandon Logan \u003cbrandon.logan@rackspace.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"7a8ec9b2_4ebabf24","line":12,"range":{"start_line":12,"start_character":11,"end_line":12,"end_character":22},"in_reply_to":"7a8ec9b2_00b08642","updated":"2016-09-22 18:04:50.000000000","message":"Done","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"}],"neutron/db/dns_db.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"e55fd8aea7060813f455d6e8ad9722cf973b9b01","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def _get_internal_port_dns_data(self, context, floatingip_data):"},{"line_number":200,"context_line":"        port_dns \u003d dns_obj.PortDNS.get_object_one("},{"line_number":201,"context_line":"            context,"},{"line_number":202,"context_line":"            port_id\u003dfloatingip_data[\u0027port_id\u0027])"},{"line_number":203,"context_line":"        if not (port_dns and port_dns[\u0027dns_name\u0027]):"}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_1e79eff6","line":200,"range":{"start_line":200,"start_character":19,"end_line":200,"end_character":49},"updated":"2016-07-19 19:56:16.000000000","message":"Newbie question: so is the high-level/long-term idea that neutron objects will become our interface to the DB? \n\nI\u0027m trying to understand why we replaced this DB query with one via neutron.objects.","commit_id":"9bb5d4e87bc5cd5ffd0b12af70f40416c229c1ad"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"e2da1dfb3e4f6dde2a47078e14add52de16a07b3","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def _get_internal_port_dns_data(self, context, floatingip_data):"},{"line_number":200,"context_line":"        port_dns \u003d dns_obj.PortDNS.get_object_one("},{"line_number":201,"context_line":"            context,"},{"line_number":202,"context_line":"            port_id\u003dfloatingip_data[\u0027port_id\u0027])"},{"line_number":203,"context_line":"        if not (port_dns and port_dns[\u0027dns_name\u0027]):"}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_ef4a63ab","line":200,"range":{"start_line":200,"start_character":19,"end_line":200,"end_character":49},"in_reply_to":"dada55a8_1e79eff6","updated":"2016-07-20 04:48:44.000000000","message":"I think so that\u0027s the deal we will deal with versioned objects only for sqlalchemy interactions. object\u0027s base attributes will deal with queries, having that said those attributes can also be overriden in object class","commit_id":"9bb5d4e87bc5cd5ffd0b12af70f40416c229c1ad"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"84551dec42a8b102b71e70fa5969af4425495bea","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def _get_internal_port_dns_data(self, context, floatingip_data):"},{"line_number":200,"context_line":"        port_dns \u003d dns_obj.PortDNS.get_object_one("},{"line_number":201,"context_line":"            context,"},{"line_number":202,"context_line":"            port_id\u003dfloatingip_data[\u0027port_id\u0027])"},{"line_number":203,"context_line":"        if not (port_dns and port_dns[\u0027dns_name\u0027]):"}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_ffbcc707","line":200,"range":{"start_line":200,"start_character":19,"end_line":200,"end_character":49},"in_reply_to":"dada55a8_ef4a63ab","updated":"2016-07-20 06:15:42.000000000","message":"oslo versionedobjects are intended to replace the direct DB query as middle layer between software and database. In this manner, we can perform translation between db and software in one place. It is needed for rolling upgrades in case of changing DB schema and for online data migration.","commit_id":"9bb5d4e87bc5cd5ffd0b12af70f40416c229c1ad"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"0f18feb1ed56f5621ab68e3c3dae88216e8d5e4b","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            return"},{"line_number":124,"context_line":"        if not self.dns_driver:"},{"line_number":125,"context_line":"            return"},{"line_number":126,"context_line":"        dns_data_db \u003d context.session.query("},{"line_number":127,"context_line":"            dns_models.FloatingIPDNS).filter_by("},{"line_number":128,"context_line":"                floatingip_id\u003dfloatingip_data[\u0027id\u0027]).one_or_none()"},{"line_number":129,"context_line":"        if dns_data_db and dns_data_db[\u0027dns_name\u0027]:"},{"line_number":130,"context_line":"            # dns_name and dns_domain assigned for floating ip. It doesn\u0027t"},{"line_number":131,"context_line":"            # matter whether they are defined for internal port"}],"source_content_type":"text/x-python","patch_set":15,"id":"bacf61ea_177185a8","line":128,"range":{"start_line":126,"start_character":8,"end_line":128,"end_character":66},"updated":"2016-08-01 10:17:18.000000000","message":"No usage of OVO in this file?","commit_id":"557ba999599f2cffcc455a52e01c0d3984af9795"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d647566d5dfbe411468845f2bb6d2775aa730edd","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            return"},{"line_number":124,"context_line":"        if not self.dns_driver:"},{"line_number":125,"context_line":"            return"},{"line_number":126,"context_line":"        dns_data_db \u003d context.session.query("},{"line_number":127,"context_line":"            dns_models.FloatingIPDNS).filter_by("},{"line_number":128,"context_line":"                floatingip_id\u003dfloatingip_data[\u0027id\u0027]).one_or_none()"},{"line_number":129,"context_line":"        if dns_data_db and dns_data_db[\u0027dns_name\u0027]:"},{"line_number":130,"context_line":"            # dns_name and dns_domain assigned for floating ip. It doesn\u0027t"},{"line_number":131,"context_line":"            # matter whether they are defined for internal port"}],"source_content_type":"text/x-python","patch_set":15,"id":"bacf61ea_e7fd0ab2","line":128,"range":{"start_line":126,"start_character":8,"end_line":128,"end_character":66},"in_reply_to":"bacf61ea_177185a8","updated":"2016-08-01 21:49:48.000000000","message":"have\u0027nt integrated floating ip yet test requires creation of  external net, router and fip for it. Ill add it later once I add helpers in test_base","commit_id":"557ba999599f2cffcc455a52e01c0d3984af9795"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"cd3f9095a2fd41d3bb649e85ac5a72e6d17347d3","unresolved":false,"context_lines":[{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class NetworkDNSDomain(model_base.BASEV2):"},{"line_number":37,"context_line":"    network_id \u003d sa.Column(sa.String(36),"},{"line_number":38,"context_line":"                           sa.ForeignKey(\u0027networks.id\u0027, ondelete\u003d\"CASCADE\"),"},{"line_number":39,"context_line":"                           primary_key\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":24,"id":"3ac371cc_0972f410","side":"PARENT","line":36,"updated":"2016-08-18 09:35:59.000000000","message":"Looking at other patches, I realized that since you are removing these classes from this module, you also need to remove this line: https://github.com/openstack/neutron/blob/master/neutron/db/migration/models/head.py#L30","commit_id":"85260a882c8918c4d9aaee107010bfa91dee5cca"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d39dea60c80b3e83a66b93ce5fe3ffe5bcea71cb","unresolved":false,"context_lines":[{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class NetworkDNSDomain(model_base.BASEV2):"},{"line_number":37,"context_line":"    network_id \u003d sa.Column(sa.String(36),"},{"line_number":38,"context_line":"                           sa.ForeignKey(\u0027networks.id\u0027, ondelete\u003d\"CASCADE\"),"},{"line_number":39,"context_line":"                           primary_key\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":24,"id":"3ac371cc_4aff97aa","side":"PARENT","line":36,"in_reply_to":"3ac371cc_0972f410","updated":"2016-08-18 17:21:11.000000000","message":"thanks Miguel !! I did that change to other patches but forgot it is required here as well","commit_id":"85260a882c8918c4d9aaee107010bfa91dee5cca"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"ccb4e63040476646be981199b423e6a0552a5ea4","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                context, floatingip_data, req_data))"},{"line_number":97,"context_line":"        dns_actions_data \u003d None"},{"line_number":98,"context_line":"        if current_dns_name and current_dns_domain:"},{"line_number":99,"context_line":"            context.session.add(dns_models.FloatingIPDNS("},{"line_number":100,"context_line":"                floatingip_id\u003dfloatingip_data[\u0027id\u0027],"},{"line_number":101,"context_line":"                dns_name\u003dreq_data[dns.DNSNAME],"},{"line_number":102,"context_line":"                dns_domain\u003dreq_data[dns.DNSDOMAIN],"},{"line_number":103,"context_line":"                published_dns_name\u003dcurrent_dns_name,"},{"line_number":104,"context_line":"                published_dns_domain\u003dcurrent_dns_domain))"},{"line_number":105,"context_line":"            dns_actions_data \u003d DNSActionsData("},{"line_number":106,"context_line":"                current_dns_name\u003dcurrent_dns_name,"},{"line_number":107,"context_line":"                current_dns_domain\u003dcurrent_dns_domain)"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_6b685822","line":104,"range":{"start_line":99,"start_character":12,"end_line":104,"end_character":57},"updated":"2016-09-20 17:27:30.000000000","message":"shouldn\u0027t this code replaced with OVO methods?","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d14947bf539148403ac28f4812022859c6f4a6de","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                context, floatingip_data, req_data))"},{"line_number":97,"context_line":"        dns_actions_data \u003d None"},{"line_number":98,"context_line":"        if current_dns_name and current_dns_domain:"},{"line_number":99,"context_line":"            context.session.add(dns_models.FloatingIPDNS("},{"line_number":100,"context_line":"                floatingip_id\u003dfloatingip_data[\u0027id\u0027],"},{"line_number":101,"context_line":"                dns_name\u003dreq_data[dns.DNSNAME],"},{"line_number":102,"context_line":"                dns_domain\u003dreq_data[dns.DNSDOMAIN],"},{"line_number":103,"context_line":"                published_dns_name\u003dcurrent_dns_name,"},{"line_number":104,"context_line":"                published_dns_domain\u003dcurrent_dns_domain))"},{"line_number":105,"context_line":"            dns_actions_data \u003d DNSActionsData("},{"line_number":106,"context_line":"                current_dns_name\u003dcurrent_dns_name,"},{"line_number":107,"context_line":"                current_dns_domain\u003dcurrent_dns_domain)"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_0441810b","line":104,"range":{"start_line":99,"start_character":12,"end_line":104,"end_character":57},"in_reply_to":"7a8ec9b2_6b685822","updated":"2016-09-20 18:33:19.000000000","message":"fip is another patch https://review.openstack.org/#/c/369744/3/neutron/db/dns_db.py","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"ccb4e63040476646be981199b423e6a0552a5ea4","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            return"},{"line_number":128,"context_line":"        if not self.dns_driver:"},{"line_number":129,"context_line":"            return"},{"line_number":130,"context_line":"        dns_data_db \u003d context.session.query("},{"line_number":131,"context_line":"            dns_models.FloatingIPDNS).filter_by("},{"line_number":132,"context_line":"                floatingip_id\u003dfloatingip_data[\u0027id\u0027]).one_or_none()"},{"line_number":133,"context_line":"        if dns_data_db and dns_data_db[\u0027dns_name\u0027]:"},{"line_number":134,"context_line":"            # dns_name and dns_domain assigned for floating ip. It doesn\u0027t"},{"line_number":135,"context_line":"            # matter whether they are defined for internal port"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_cb5fac73","line":132,"range":{"start_line":130,"start_character":7,"end_line":132,"end_character":66},"updated":"2016-09-20 17:27:30.000000000","message":"ditto: line 99","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d14947bf539148403ac28f4812022859c6f4a6de","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            return"},{"line_number":128,"context_line":"        if not self.dns_driver:"},{"line_number":129,"context_line":"            return"},{"line_number":130,"context_line":"        dns_data_db \u003d context.session.query("},{"line_number":131,"context_line":"            dns_models.FloatingIPDNS).filter_by("},{"line_number":132,"context_line":"                floatingip_id\u003dfloatingip_data[\u0027id\u0027]).one_or_none()"},{"line_number":133,"context_line":"        if dns_data_db and dns_data_db[\u0027dns_name\u0027]:"},{"line_number":134,"context_line":"            # dns_name and dns_domain assigned for floating ip. It doesn\u0027t"},{"line_number":135,"context_line":"            # matter whether they are defined for internal port"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_845591c7","line":132,"range":{"start_line":130,"start_character":7,"end_line":132,"end_character":66},"in_reply_to":"7a8ec9b2_cb5fac73","updated":"2016-09-20 18:33:19.000000000","message":"ditto here","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"ccb4e63040476646be981199b423e6a0552a5ea4","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            else:"},{"line_number":155,"context_line":"                return"},{"line_number":156,"context_line":"        if current_dns_name and current_dns_domain:"},{"line_number":157,"context_line":"            context.session.add(dns_models.FloatingIPDNS("},{"line_number":158,"context_line":"                floatingip_id\u003dfloatingip_data[\u0027id\u0027],"},{"line_number":159,"context_line":"                dns_name\u003d\u0027\u0027,"},{"line_number":160,"context_line":"                dns_domain\u003d\u0027\u0027,"},{"line_number":161,"context_line":"                published_dns_name\u003dcurrent_dns_name,"},{"line_number":162,"context_line":"                published_dns_domain\u003dcurrent_dns_domain))"},{"line_number":163,"context_line":"            return DNSActionsData(current_dns_name\u003dcurrent_dns_name,"},{"line_number":164,"context_line":"                                  current_dns_domain\u003dcurrent_dns_domain)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_0b5a7483","line":162,"range":{"start_line":157,"start_character":12,"end_line":162,"end_character":57},"updated":"2016-09-20 17:27:30.000000000","message":"ditto: line 99","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"ccb4e63040476646be981199b423e6a0552a5ea4","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        if not utils.is_extension_supported(self._core_plugin,"},{"line_number":184,"context_line":"                                            dns.Dns.get_alias()):"},{"line_number":185,"context_line":"            return"},{"line_number":186,"context_line":"        dns_data_db \u003d context.session.query("},{"line_number":187,"context_line":"            dns_models.FloatingIPDNS).filter_by("},{"line_number":188,"context_line":"                floatingip_id\u003dfloatingip_data[\u0027id\u0027]).one_or_none()"},{"line_number":189,"context_line":"        if dns_data_db:"},{"line_number":190,"context_line":"            self._delete_floatingip_from_external_dns_service("},{"line_number":191,"context_line":"                context, dns_data_db[\u0027published_dns_domain\u0027],"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_2b5d7079","line":188,"range":{"start_line":186,"start_character":0,"end_line":188,"end_character":66},"updated":"2016-09-20 17:27:30.000000000","message":"ditto: line 99","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c0cab24846f8e71ee98fa40f6c2300f4ac43f8a7","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    def _get_internal_port_dns_data(self, context, floatingip_data):"},{"line_number":205,"context_line":"        port_dns \u003d context.session.query(dns_models.PortDNS).filter_by("},{"line_number":206,"context_line":"            port_id\u003dfloatingip_data[\u0027port_id\u0027])"},{"line_number":207,"context_line":"        if not (port_dns and port_dns[\u0027dns_name\u0027]):"},{"line_number":208,"context_line":"            return None, None"},{"line_number":209,"context_line":"        net_dns \u003d context.session.query("}],"source_content_type":"text/x-python","patch_set":38,"id":"3a98d1f4_57e63d44","line":206,"updated":"2016-10-04 09:19:01.000000000","message":"why do you remove one_or_one call here?","commit_id":"28a75d8dbf831a12f3c4576e28b9945b8f547d8d"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"b6785f94ef7e41b7b1e4040a925f3ccba32e8b90","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    def _get_internal_port_dns_data(self, context, floatingip_data):"},{"line_number":205,"context_line":"        port_dns \u003d context.session.query(dns_models.PortDNS).filter_by("},{"line_number":206,"context_line":"            port_id\u003dfloatingip_data[\u0027port_id\u0027])"},{"line_number":207,"context_line":"        if not (port_dns and port_dns[\u0027dns_name\u0027]):"},{"line_number":208,"context_line":"            return None, None"},{"line_number":209,"context_line":"        net_dns \u003d context.session.query("}],"source_content_type":"text/x-python","patch_set":38,"id":"1a95cdbc_95f99450","line":206,"in_reply_to":"3a98d1f4_57e63d44","updated":"2016-10-04 15:32:14.000000000","message":"my bad may be i screwed it up while rebasing or cherrypicking. thanks !! will fix it","commit_id":"28a75d8dbf831a12f3c4576e28b9945b8f547d8d"}],"neutron/db/extensions/dns_models.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"e55fd8aea7060813f455d6e8ad9722cf973b9b01","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"dada55a8_bb47151c","updated":"2016-07-19 19:56:16.000000000","message":"Is there a reason we decided to create this new neutron.db.extensions package for this?\n\nBased on the existing layout of neutron.db.* I was expecting this to perhaps go under neutron.db.dns.* or something similar.","commit_id":"9bb5d4e87bc5cd5ffd0b12af70f40416c229c1ad"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"45aa382ac2ff65227531a7e18bbffb79763dc533","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"bacf61ea_0e147df3","updated":"2016-07-27 20:20:48.000000000","message":"I think I asked this earlier, but why are we adding this under neutron.db.extensions.*  ?\n\n\nA lot of the code under neutron.db.* is for extensions so I\u0027m not understanding why we are treating this one differently.","commit_id":"f97b6615c522f62ec57eca2912e6d3cb95c51c0c"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"81faa99e5eaf93cd6d636e6cebe83b7180274d26","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"bacf61ea_8ee22d9e","in_reply_to":"bacf61ea_0e147df3","updated":"2016-07-27 20:30:25.000000000","message":"I think we should put all models under neutron/db/models. As first order modules, no embedding below this points. This should give us a reasonable and easy to manage tree with just models.","commit_id":"f97b6615c522f62ec57eca2912e6d3cb95c51c0c"}],"neutron/db/models/dns.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"df5fbb8c152989114ba48bd2f3f93fe41fb2fdaf","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    # Add a relationship to the FloatingIP model in order to instruct"},{"line_number":57,"context_line":"    # SQLAlchemy to eagerly load this association"},{"line_number":58,"context_line":"    floatingip \u003d orm.relationship(l3_db.FloatingIP,"},{"line_number":59,"context_line":"                                  backref\u003dorm.backref(\"dns\","},{"line_number":60,"context_line":"                                                      lazy\u003d\u0027joined\u0027,"},{"line_number":61,"context_line":"                                                      uselist\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":18,"id":"bacf61ea_4f8d0c30","line":58,"range":{"start_line":58,"start_character":34,"end_line":58,"end_character":39},"updated":"2016-08-05 23:39:07.000000000","message":"Pointing out that in https://review.openstack.org/#/c/348562/14/neutron/db/dns_db.py@73 you are changing this to \u0027l3_models\u0027. Maybe this patchset should have depended on the other one. But that\u0027s in an ideal world. I realize you started the other one later","commit_id":"8c295b92e3a3113f68796e7d35307c5ffb39e184"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"cdddd07256bee6d073c18e5618f0af4a4787aac5","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    # Add a relationship to the FloatingIP model in order to instruct"},{"line_number":57,"context_line":"    # SQLAlchemy to eagerly load this association"},{"line_number":58,"context_line":"    floatingip \u003d orm.relationship(l3_db.FloatingIP,"},{"line_number":59,"context_line":"                                  backref\u003dorm.backref(\"dns\","},{"line_number":60,"context_line":"                                                      lazy\u003d\u0027joined\u0027,"},{"line_number":61,"context_line":"                                                      uselist\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":18,"id":"bacf61ea_2fa9b824","line":58,"range":{"start_line":58,"start_character":34,"end_line":58,"end_character":39},"in_reply_to":"bacf61ea_4f8d0c30","updated":"2016-08-05 23:56:29.000000000","message":"yes, you got it right, this is totally ready to go in, I can change other one afterwards.","commit_id":"8c295b92e3a3113f68796e7d35307c5ffb39e184"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c0cab24846f8e71ee98fa40f6c2300f4ac43f8a7","unresolved":false,"context_lines":[{"line_number":13,"context_line":"import sqlalchemy as sa"},{"line_number":14,"context_line":"from sqlalchemy import orm"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from neutron_lib.db import model_base"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from neutron.db.models import l3 as l3_models"},{"line_number":19,"context_line":"from neutron.db import models_v2"}],"source_content_type":"text/x-python","patch_set":38,"id":"3a98d1f4_f76f49c1","line":16,"updated":"2016-10-04 09:19:01.000000000","message":"nit: this should have gone into line 12 where all 3party libraries are.","commit_id":"28a75d8dbf831a12f3c4576e28b9945b8f547d8d"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"b6785f94ef7e41b7b1e4040a925f3ccba32e8b90","unresolved":false,"context_lines":[{"line_number":13,"context_line":"import sqlalchemy as sa"},{"line_number":14,"context_line":"from sqlalchemy import orm"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from neutron_lib.db import model_base"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from neutron.db.models import l3 as l3_models"},{"line_number":19,"context_line":"from neutron.db import models_v2"}],"source_content_type":"text/x-python","patch_set":38,"id":"1a95cdbc_759328fb","line":16,"in_reply_to":"3a98d1f4_f76f49c1","updated":"2016-10-04 15:32:14.000000000","message":"Done","commit_id":"28a75d8dbf831a12f3c4576e28b9945b8f547d8d"}],"neutron/db/models/dns_models.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ccc01db1080e95ca383f91170cedcc58a5f2393d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"bacf61ea_779fc550","updated":"2016-08-02 18:59:46.000000000","message":"This is probably a nit, but I\u0027d opt to name this file \u0027dns.py\u0027 as its already under a \u0027models\u0027 subpackage so having \u0027model\u0027 in the name seems redundant.","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"2276dee7ac3d4d64894f286f68e0c75a43f38c28","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"bacf61ea_aaeb7daf","in_reply_to":"bacf61ea_779fc550","updated":"2016-08-03 08:57:39.000000000","message":"+1","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"f96761da0b3b721a28c75722d79f790de24cf8c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"bacf61ea_198949cb","in_reply_to":"bacf61ea_779fc550","updated":"2016-08-03 08:48:34.000000000","message":"Agree.","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"}],"neutron/objects/base.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"b225703b5a2cf835363073d56dacf3dab8f683a4","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            self[attrname] \u003d None"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"    @classmethod"},{"line_number":316,"context_line":"    def get_object(cls, context, **kwargs):"},{"line_number":317,"context_line":"        \"\"\""},{"line_number":318,"context_line":"        Fetch object from DB and convert it to a versioned object."},{"line_number":319,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_3d87c2d8","line":316,"range":{"start_line":316,"start_character":8,"end_line":316,"end_character":18},"updated":"2016-07-19 08:10:53.000000000","message":"can you modify get_object to have \u0027method\u0027 argument,\nand method can be: \u0027first\u0027, \u0027one\u0027 or \u0027one_or_none\u0027\n\nget_object(cls, context, method\u003d\u0027first\u0027, **kwargs)\n\nThen you can pass the \u0027method\u0027 to obj_db_api and in [1] \nyou can decide which first/one/one_or_none should be called.\n\nPlease note also my patch [2] that is refactoring the get_object method.\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/objects/db/api.py#L24\n[2] https://review.openstack.org/#/c/334381/5/neutron/objects/db/api.py","commit_id":"9bb5d4e87bc5cd5ffd0b12af70f40416c229c1ad"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"e55fd8aea7060813f455d6e8ad9722cf973b9b01","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            return [cls._load_object(context, db_obj) for db_obj in db_objs]"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    @classmethod"},{"line_number":357,"context_line":"    def get_object_one(cls, context, _one\u003dFalse, **kwargs):"},{"line_number":358,"context_line":"        \"\"\""},{"line_number":359,"context_line":"        Fetch one or one_one object from DB and convert to OVO."},{"line_number":360,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_bb139665","line":357,"range":{"start_line":357,"start_character":37,"end_line":357,"end_character":41},"updated":"2016-07-19 19:56:16.000000000","message":"Is there a reason to use the underscore on the kwarg name? I haven\u0027t seen that done much so I\u0027m tempted to think it\u0027s less than optimal practice.","commit_id":"9bb5d4e87bc5cd5ffd0b12af70f40416c229c1ad"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"b225703b5a2cf835363073d56dacf3dab8f683a4","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            return [cls._load_object(context, db_obj) for db_obj in db_objs]"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    @classmethod"},{"line_number":357,"context_line":"    def get_object_one(cls, context, _one\u003dFalse, **kwargs):"},{"line_number":358,"context_line":"        \"\"\""},{"line_number":359,"context_line":"        Fetch one or one_one object from DB and convert to OVO."},{"line_number":360,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_9ddceee5","line":357,"range":{"start_line":357,"start_character":8,"end_line":357,"end_character":22},"updated":"2016-07-19 08:10:53.000000000","message":"in my opinion we should refactor existing get_object method than adding new one.","commit_id":"9bb5d4e87bc5cd5ffd0b12af70f40416c229c1ad"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"aed5376e3c990aec9a025c3760dc36619a6946f6","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            return [cls._load_object(context, db_obj) for db_obj in db_objs]"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    @classmethod"},{"line_number":357,"context_line":"    def get_object_one(cls, context, _one\u003dFalse, **kwargs):"},{"line_number":358,"context_line":"        \"\"\""},{"line_number":359,"context_line":"        Fetch one or one_one object from DB and convert to OVO."},{"line_number":360,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_4551bd35","line":357,"range":{"start_line":357,"start_character":37,"end_line":357,"end_character":41},"in_reply_to":"dada55a8_bb139665","updated":"2016-07-20 09:19:40.000000000","message":"What\u0027s the rationale to add it at all? Which use case is not covered by existing methods?","commit_id":"9bb5d4e87bc5cd5ffd0b12af70f40416c229c1ad"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"b225703b5a2cf835363073d56dacf3dab8f683a4","unresolved":false,"context_lines":[{"line_number":356,"context_line":"    @classmethod"},{"line_number":357,"context_line":"    def get_object_one(cls, context, _one\u003dFalse, **kwargs):"},{"line_number":358,"context_line":"        \"\"\""},{"line_number":359,"context_line":"        Fetch one or one_one object from DB and convert to OVO."},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"        :param context:"},{"line_number":362,"context_line":"        :param _one: a param decide the to query one or one_or_none"}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_06755097","line":359,"range":{"start_line":359,"start_character":21,"end_line":359,"end_character":28},"updated":"2016-07-19 08:10:53.000000000","message":"one_or_none","commit_id":"9bb5d4e87bc5cd5ffd0b12af70f40416c229c1ad"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"e55fd8aea7060813f455d6e8ad9722cf973b9b01","unresolved":false,"context_lines":[{"line_number":363,"context_line":"        :param kwargs: multiple keys defined by key\u003dvalue pairs"},{"line_number":364,"context_line":"        :return: a object of NeutronDbObject class"},{"line_number":365,"context_line":"        \"\"\""},{"line_number":366,"context_line":"        cls.validate_filters(**kwargs)"},{"line_number":367,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":368,"context_line":"            query \u003d context.session.query(cls.db_model).filter_by(**kwargs)"},{"line_number":369,"context_line":"            if _one:"}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_7e02ab70","line":366,"updated":"2016-07-19 19:56:16.000000000","message":"Note if we decide to keep this method: currently its not covered as part of the neutron.tests.unit.objects.* unit tests. I realize it does get covered in other tests (outside of neutron.tests.unit.objects.*), so FYI in case our goal is to provide colocated coverage.","commit_id":"9bb5d4e87bc5cd5ffd0b12af70f40416c229c1ad"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"c3fda0cfadb72a9628c3af4974a8ff12ba226431","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            return [cls._load_object(context, db_obj) for db_obj in db_objs]"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    @classmethod"},{"line_number":357,"context_line":"    def get_one_object(cls, context, **kwargs):"},{"line_number":358,"context_line":"        \"\"\""},{"line_number":359,"context_line":"        Fetch one or one_one object from DB and convert to OVO."},{"line_number":360,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_6c0273b6","line":357,"range":{"start_line":357,"start_character":8,"end_line":357,"end_character":22},"updated":"2016-07-22 07:16:08.000000000","message":"It can be also called get_object_one. And where is usage of this method?","commit_id":"30df997a33af12f44c54261ece896d842b6ae4f1"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"4de96fc2765cc05e5df435e3344ed565b2dc54c6","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            return [cls._load_object(context, db_obj) for db_obj in db_objs]"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    @classmethod"},{"line_number":357,"context_line":"    def get_one_object(cls, context, **kwargs):"},{"line_number":358,"context_line":"        \"\"\""},{"line_number":359,"context_line":"        Fetch one or one_one object from DB and convert to OVO."},{"line_number":360,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_4e9ae3c6","line":357,"range":{"start_line":357,"start_character":8,"end_line":357,"end_character":22},"in_reply_to":"dada55a8_6c0273b6","updated":"2016-07-22 17:17:54.000000000","message":"it is used here \nhttps://review.openstack.org/#/c/334695/11/neutron/plugins/ml2/extensions/dns_integration.py@67","commit_id":"30df997a33af12f44c54261ece896d842b6ae4f1"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"2d9551d713ca421501a8f96093a700635261c4ab","unresolved":false,"context_lines":[{"line_number":356,"context_line":"    @classmethod"},{"line_number":357,"context_line":"    def get_one_object(cls, context, **kwargs):"},{"line_number":358,"context_line":"        \"\"\""},{"line_number":359,"context_line":"        Fetch one or one_one object from DB and convert to OVO."},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"        :param context:"},{"line_number":362,"context_line":"        :param kwargs: multiple keys defined by key\u003dvalue pairs"}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_f1848e5e","line":359,"range":{"start_line":359,"start_character":8,"end_line":359,"end_character":62},"updated":"2016-07-21 21:25:16.000000000","message":"need to update docstring once this method is accepted.","commit_id":"30df997a33af12f44c54261ece896d842b6ae4f1"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"45aa382ac2ff65227531a7e18bbffb79763dc533","unresolved":false,"context_lines":[{"line_number":407,"context_line":""},{"line_number":408,"context_line":"        :param context:"},{"line_number":409,"context_line":"        :param kwargs: multiple keys defined by key\u003dvalue pairs"},{"line_number":410,"context_line":"        :return: a object of NeutronDbObject class"},{"line_number":411,"context_line":"        \"\"\""},{"line_number":412,"context_line":"        cls.validate_filters(**kwargs)"},{"line_number":413,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":14,"id":"bacf61ea_ce3b859b","line":410,"range":{"start_line":410,"start_character":9,"end_line":410,"end_character":15},"updated":"2016-07-27 20:20:48.000000000","message":"As currently written, it\u0027ll also raise if not 1 object exists as per one() right? Maybe its worth noting this in the docstring?","commit_id":"f97b6615c522f62ec57eca2912e6d3cb95c51c0c"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ccc01db1080e95ca383f91170cedcc58a5f2393d","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        :return: a object of NeutronDbObject class"},{"line_number":417,"context_line":"        \"\"\""},{"line_number":418,"context_line":"        cls.validate_filters(**kwargs)"},{"line_number":419,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":420,"context_line":"            db_obj \u003d obj_db_api.get_one_object("},{"line_number":421,"context_line":"                context, cls.db_model,"},{"line_number":422,"context_line":"                **cls.modify_fields_to_db(kwargs)"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_b74addaa","line":419,"range":{"start_line":419,"start_character":13,"end_line":419,"end_character":34},"updated":"2016-08-02 18:59:46.000000000","message":"Newbie question: why do we use context.session.begin() here and in most other places we use db_api.autonested_transaction(context.session)?","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"7b70b3409cf316e3befdcc7291aad5b62d14e677","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        :return: a object of NeutronDbObject class"},{"line_number":417,"context_line":"        \"\"\""},{"line_number":418,"context_line":"        cls.validate_filters(**kwargs)"},{"line_number":419,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":420,"context_line":"            db_obj \u003d obj_db_api.get_one_object("},{"line_number":421,"context_line":"                context, cls.db_model,"},{"line_number":422,"context_line":"                **cls.modify_fields_to_db(kwargs)"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_c89a1dc5","line":419,"range":{"start_line":419,"start_character":13,"end_line":419,"end_character":34},"in_reply_to":"bacf61ea_392c0dab","updated":"2016-08-03 17:18:39.000000000","message":"Done","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"f96761da0b3b721a28c75722d79f790de24cf8c4","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        :return: a object of NeutronDbObject class"},{"line_number":417,"context_line":"        \"\"\""},{"line_number":418,"context_line":"        cls.validate_filters(**kwargs)"},{"line_number":419,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":420,"context_line":"            db_obj \u003d obj_db_api.get_one_object("},{"line_number":421,"context_line":"                context, cls.db_model,"},{"line_number":422,"context_line":"                **cls.modify_fields_to_db(kwargs)"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_392c0dab","line":419,"range":{"start_line":419,"start_character":13,"end_line":419,"end_character":34},"in_reply_to":"bacf61ea_b74addaa","updated":"2016-08-03 08:48:34.000000000","message":"It should be db_api.autonested_transaction.","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"}],"neutron/objects/db/api.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"c3fda0cfadb72a9628c3af4974a8ff12ba226431","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"def get_one_object(context, model, **kwargs):"},{"line_number":29,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"},{"line_number":30,"context_line":"        query \u003d context.session.query(model).filter_by(**kwargs)"},{"line_number":31,"context_line":"        return query.one()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def _kwargs_to_filters(**kwargs):"}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_a9e73d45","line":31,"range":{"start_line":30,"start_character":8,"end_line":31,"end_character":26},"updated":"2016-07-22 07:16:08.000000000","message":"Please take a look at my PS [1] and write this method like:\n\nplugin \u003d manager.NeutronManager.get_plugin()\n    with context.session.begin(subtransactions\u003dTrue):\n        filters \u003d _kwargs_to_filters(**kwargs)\n        query \u003d plugin._get_collection_query(context, model, filters)\n        return query.one()\n\nIt is important to properly apply the filters.\n\n[1] https://review.openstack.org/#/c/334381/5/neutron/objects/db/api.py","commit_id":"30df997a33af12f44c54261ece896d842b6ae4f1"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"4de96fc2765cc05e5df435e3344ed565b2dc54c6","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"def get_one_object(context, model, **kwargs):"},{"line_number":29,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"},{"line_number":30,"context_line":"        query \u003d context.session.query(model).filter_by(**kwargs)"},{"line_number":31,"context_line":"        return query.one()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def _kwargs_to_filters(**kwargs):"}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_8ec97baf","line":31,"range":{"start_line":30,"start_character":8,"end_line":31,"end_character":26},"in_reply_to":"dada55a8_a9e73d45","updated":"2016-07-22 17:17:54.000000000","message":"done","commit_id":"30df997a33af12f44c54261ece896d842b6ae4f1"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"45aa382ac2ff65227531a7e18bbffb79763dc533","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        return query.first()"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def get_one_object(context, model, **kwargs):"},{"line_number":30,"context_line":"    # TODO(manjeets): update this method when _get_collection_query decomposed"},{"line_number":31,"context_line":"    plugin \u003d manager.NeutronManager.get_plugin()"},{"line_number":32,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":14,"id":"bacf61ea_43448e73","line":29,"range":{"start_line":29,"start_character":4,"end_line":29,"end_character":18},"updated":"2016-07-27 20:20:48.000000000","message":"IF we really need this it seems we could reduce duplication between get_object() and this. For example:\n- Have get_one_object() call get_object() and if None then raise the exception you\u0027d get from one().\n- Create a private fn _get_object() that allows caller to say if they want one() or first(). Then get_one_object() and get_object() can call it to reduce this duplication.","commit_id":"f97b6615c522f62ec57eca2912e6d3cb95c51c0c"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"75a8dbda2a263eddebb117cd73129ef6938f266b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        return query.first()"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def get_one_object(context, model, **kwargs):"},{"line_number":30,"context_line":"    # TODO(manjeets): update this method when _get_collection_query decomposed"},{"line_number":31,"context_line":"    plugin \u003d manager.NeutronManager.get_plugin()"},{"line_number":32,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":14,"id":"bacf61ea_90934da3","line":29,"range":{"start_line":29,"start_character":4,"end_line":29,"end_character":18},"in_reply_to":"bacf61ea_43448e73","updated":"2016-07-28 09:44:07.000000000","message":"You can have the _get_query() function:\n\ndef _get_query(contex, model, **kwargs):\n    plugin \u003d manager.NeutronManager.get_plugin()\n    filters \u003d _kwargs_to_filters(**kwargs)\n    return plugin._get_collection_query(context, model, filters)\n\nand then in get_object\n\ndef get_object(context, model, **kwargs):\n    return self._get_query(context, model, **kwargs).first()\n\ndef get_one_object(context, model, **kwargs):\n    return self._get_query(context, model, **kwargs).one()\n\nAdding an session.begin in appropriate place.","commit_id":"f97b6615c522f62ec57eca2912e6d3cb95c51c0c"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"be8d8d18d1de2228f74eb45185eb040e8932864a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        return query.first()"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def get_one_object(context, model, **kwargs):"},{"line_number":30,"context_line":"    # TODO(manjeets): update this method when _get_collection_query decomposed"},{"line_number":31,"context_line":"    plugin \u003d manager.NeutronManager.get_plugin()"},{"line_number":32,"context_line":"    with context.session.begin(subtransactions\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":14,"id":"bacf61ea_37719fe1","line":29,"range":{"start_line":29,"start_character":4,"end_line":29,"end_character":18},"in_reply_to":"bacf61ea_90934da3","updated":"2016-07-28 18:00:16.000000000","message":"Done","commit_id":"f97b6615c522f62ec57eca2912e6d3cb95c51c0c"}],"neutron/objects/dns.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"3096d374065692e07656b6fe9e003ebcf0584642","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        \u0027dns_name\u0027: obj_fields.StringField(),"},{"line_number":46,"context_line":"        \u0027dns_domain\u0027: obj_fields.StringField(),"},{"line_number":47,"context_line":"        \u0027published_dns_name\u0027: obj_fields.StringField(),"},{"line_number":48,"context_line":"        \u0027published_dns_domain\u0027: obj_fields.StringField(),"},{"line_number":49,"context_line":"    }"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_97fea736","line":48,"updated":"2016-06-28 01:32:07.000000000","message":"Please be aware that we are adding one column to the corresponding table here: https://review.openstack.org/#/c/313291/32/neutron/db/dns_db.py@97. I suggest making this patchset depend on the other one","commit_id":"6689725a3cbe4c609adcb8678c7ff5871e6a4bfa"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"90dde8c55a599126a135726f9cde0097624f248a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        \u0027dns_name\u0027: obj_fields.StringField(),"},{"line_number":46,"context_line":"        \u0027dns_domain\u0027: obj_fields.StringField(),"},{"line_number":47,"context_line":"        \u0027published_dns_name\u0027: obj_fields.StringField(),"},{"line_number":48,"context_line":"        \u0027published_dns_domain\u0027: obj_fields.StringField(),"},{"line_number":49,"context_line":"    }"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_165a8783","line":48,"in_reply_to":"3aaa91ec_97fea736","updated":"2016-06-28 19:02:49.000000000","message":"Done thanks for update !!","commit_id":"6689725a3cbe4c609adcb8678c7ff5871e6a4bfa"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"613ce1738d9247d6451d3f263fd9e23529079bd9","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    db_model \u003d models.NetworkDNSDomain"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    primary_keys \u003d [\u0027network_id\u0027]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    fields \u003d {"},{"line_number":31,"context_line":"        \u0027network_id\u0027: obj_fields.UUIDField(),"},{"line_number":32,"context_line":"        \u0027dns_domain\u0027: obj_fields.StringField(),"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_5b8501cd","line":29,"updated":"2016-06-30 09:21:09.000000000","message":"Just nit: when we have primary key as foreign key, we may add it in object in field foreign_keys:\nforeign_keys \u003d {\u0027network_id\u0027: \u0027id\u0027}\nmeaning that network_id will be used to fetch the NetworkDNSDomain in Network.id object in the future. Since we do not have the Network object yet, foreign_keys will not be used right now.\nThe same for other objects below.","commit_id":"acdf39aa3547d8d1d7e7ef71e81f51f5715f6f6f"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"45aa382ac2ff65227531a7e18bbffb79763dc533","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    primary_keys \u003d [\u0027port_id\u0027]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    fields \u003d {"},{"line_number":66,"context_line":"        \u0027port_id\u0027: obj_fields.UUIDField(),"},{"line_number":67,"context_line":"        \u0027current_dns_name\u0027: obj_fields.StringField(),"},{"line_number":68,"context_line":"        \u0027current_dns_domain\u0027: obj_fields.StringField(),"},{"line_number":69,"context_line":"        \u0027previous_dns_name\u0027: obj_fields.StringField(),"}],"source_content_type":"text/x-python","patch_set":14,"id":"bacf61ea_aeb9f130","line":66,"range":{"start_line":66,"start_character":9,"end_line":66,"end_character":16},"updated":"2016-07-27 20:20:48.000000000","message":"Newbie question: The PortDNS model has a relation to a port object. In some of the other existing OVOs we define these in synthetic_fields with a type of ListOfObjectsField so the related obj defined. Why are we not doing that here and also in a few places in the other OVOs in this file (above)?","commit_id":"f97b6615c522f62ec57eca2912e6d3cb95c51c0c"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"75a8dbda2a263eddebb117cd73129ef6938f266b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    primary_keys \u003d [\u0027port_id\u0027]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    fields \u003d {"},{"line_number":66,"context_line":"        \u0027port_id\u0027: obj_fields.UUIDField(),"},{"line_number":67,"context_line":"        \u0027current_dns_name\u0027: obj_fields.StringField(),"},{"line_number":68,"context_line":"        \u0027current_dns_domain\u0027: obj_fields.StringField(),"},{"line_number":69,"context_line":"        \u0027previous_dns_name\u0027: obj_fields.StringField(),"}],"source_content_type":"text/x-python","patch_set":14,"id":"bacf61ea_b56da334","line":66,"range":{"start_line":66,"start_character":9,"end_line":66,"end_character":16},"in_reply_to":"bacf61ea_aeb9f130","updated":"2016-07-28 09:44:07.000000000","message":"The question here is - do we need port object as a field in PortDNS? it should be the opposite, the port object should have PortDNS as an extension field.","commit_id":"f97b6615c522f62ec57eca2912e6d3cb95c51c0c"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"72e30473895de1fb606e7fdd4b91db5dc3359465","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    fields \u003d {"},{"line_number":33,"context_line":"        \u0027network_id\u0027: obj_fields.UUIDField(),"},{"line_number":34,"context_line":"        \u0027dns_domain\u0027: obj_fields.StringField(),"},{"line_number":35,"context_line":"    }"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"@obj_base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_8bf4ca87","line":35,"updated":"2016-08-03 03:15:09.000000000","message":"missing network","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"f96761da0b3b721a28c75722d79f790de24cf8c4","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    fields \u003d {"},{"line_number":33,"context_line":"        \u0027network_id\u0027: obj_fields.UUIDField(),"},{"line_number":34,"context_line":"        \u0027dns_domain\u0027: obj_fields.StringField(),"},{"line_number":35,"context_line":"    }"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"@obj_base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_aaceddb1","line":35,"in_reply_to":"bacf61ea_8bf4ca87","updated":"2016-08-03 08:48:34.000000000","message":"No, network is referenced in foreign_keys. We do not need network field in NetworkDNSDomain, we would use NetworkDNSDomain in Network object as a field, like here [1]\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/extensions/dns_integration.py#L59","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"7b70b3409cf316e3befdcc7291aad5b62d14e677","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    fields \u003d {"},{"line_number":33,"context_line":"        \u0027network_id\u0027: obj_fields.UUIDField(),"},{"line_number":34,"context_line":"        \u0027dns_domain\u0027: obj_fields.StringField(),"},{"line_number":35,"context_line":"    }"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"@obj_base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_c8b5fdd0","line":35,"in_reply_to":"bacf61ea_aaceddb1","updated":"2016-08-03 17:18:39.000000000","message":"I was thinking of it adding as synthetic field. but if it is gettable via foreign key I guess then its not needed","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"72e30473895de1fb606e7fdd4b91db5dc3359465","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        \u0027dns_name\u0027: obj_fields.StringField(),"},{"line_number":50,"context_line":"        \u0027dns_domain\u0027: obj_fields.StringField(),"},{"line_number":51,"context_line":"        \u0027published_dns_name\u0027: obj_fields.StringField(),"},{"line_number":52,"context_line":"        \u0027published_dns_domain\u0027: obj_fields.StringField(),"},{"line_number":53,"context_line":"    }"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_4b02d270","line":52,"updated":"2016-08-03 03:15:09.000000000","message":"missing floatingip ?","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"7b70b3409cf316e3befdcc7291aad5b62d14e677","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        \u0027dns_name\u0027: obj_fields.StringField(),"},{"line_number":50,"context_line":"        \u0027dns_domain\u0027: obj_fields.StringField(),"},{"line_number":51,"context_line":"        \u0027published_dns_name\u0027: obj_fields.StringField(),"},{"line_number":52,"context_line":"        \u0027published_dns_domain\u0027: obj_fields.StringField(),"},{"line_number":53,"context_line":"    }"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_48caad50","line":52,"in_reply_to":"bacf61ea_4b02d270","updated":"2016-08-03 17:18:39.000000000","message":"same here","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"72e30473895de1fb606e7fdd4b91db5dc3359465","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        \u0027current_dns_domain\u0027: obj_fields.StringField(),"},{"line_number":69,"context_line":"        \u0027previous_dns_name\u0027: obj_fields.StringField(),"},{"line_number":70,"context_line":"        \u0027previous_dns_domain\u0027: obj_fields.StringField(),"},{"line_number":71,"context_line":"        \u0027dns_name\u0027: obj_fields.StringField(),"},{"line_number":72,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_ebdaa616","line":71,"updated":"2016-08-03 03:15:09.000000000","message":"I wonder if you miss `port` field which should be another object of models_v2.Port  see https://review.openstack.org/#/c/334695/17/neutron/db/models/dns_models.py@85","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"f96761da0b3b721a28c75722d79f790de24cf8c4","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        \u0027current_dns_domain\u0027: obj_fields.StringField(),"},{"line_number":69,"context_line":"        \u0027previous_dns_name\u0027: obj_fields.StringField(),"},{"line_number":70,"context_line":"        \u0027previous_dns_domain\u0027: obj_fields.StringField(),"},{"line_number":71,"context_line":"        \u0027dns_name\u0027: obj_fields.StringField(),"},{"line_number":72,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_ca57d1c8","line":71,"in_reply_to":"bacf61ea_ebdaa616","updated":"2016-08-03 08:48:34.000000000","message":"The same like in network DNS domain.","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"01b8870b6fd40c50b02e2ef35a29ca1647125df5","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    db_model \u003d models.FloatingIPDNS"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    primary_keys \u003d [\u0027floatingip_id\u0027]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    fields \u003d {"},{"line_number":48,"context_line":"        \u0027floatingip_id\u0027: obj_fields.UUIDField(),"},{"line_number":49,"context_line":"        \u0027dns_name\u0027: obj_fields.StringField(),"}],"source_content_type":"text/x-python","patch_set":21,"id":"9ad45d7e_407ef0ae","line":46,"updated":"2016-08-09 22:25:35.000000000","message":"Why don\u0027t we have foreign_keys in this object like in the NetworkDNSDomain case? For FloatingIPDNS, the foreign key is the associated floating ip id: https://review.openstack.org/#/c/334695/21/neutron/db/models/dns.py@43","commit_id":"74c9c804e0e7e3f0dca97669251bd0f744d2c5a0"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"09e96f95f2be4882df54424fa46279f65b52e2e5","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    db_model \u003d models.FloatingIPDNS"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    primary_keys \u003d [\u0027floatingip_id\u0027]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    fields \u003d {"},{"line_number":48,"context_line":"        \u0027floatingip_id\u0027: obj_fields.UUIDField(),"},{"line_number":49,"context_line":"        \u0027dns_name\u0027: obj_fields.StringField(),"}],"source_content_type":"text/x-python","patch_set":21,"id":"9ad45d7e_77d13757","line":46,"in_reply_to":"9ad45d7e_407ef0ae","updated":"2016-08-09 22:50:22.000000000","message":"Done","commit_id":"74c9c804e0e7e3f0dca97669251bd0f744d2c5a0"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"01b8870b6fd40c50b02e2ef35a29ca1647125df5","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    db_model \u003d models.PortDNS"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    primary_keys \u003d [\u0027port_id\u0027]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    fields \u003d {"},{"line_number":66,"context_line":"        \u0027port_id\u0027: obj_fields.UUIDField(),"},{"line_number":67,"context_line":"        \u0027current_dns_name\u0027: obj_fields.StringField(),"}],"source_content_type":"text/x-python","patch_set":21,"id":"9ad45d7e_e0456470","line":64,"updated":"2016-08-09 22:25:35.000000000","message":"Why don\u0027t we have foreign_keys in this object like in the NetworkDNSDomain case? For PortDNS, the foreign key is the associated port id: https://review.openstack.org/#/c/334695/21/neutron/db/models/dns.py@70","commit_id":"74c9c804e0e7e3f0dca97669251bd0f744d2c5a0"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"09e96f95f2be4882df54424fa46279f65b52e2e5","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    db_model \u003d models.PortDNS"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    primary_keys \u003d [\u0027port_id\u0027]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    fields \u003d {"},{"line_number":66,"context_line":"        \u0027port_id\u0027: obj_fields.UUIDField(),"},{"line_number":67,"context_line":"        \u0027current_dns_name\u0027: obj_fields.StringField(),"}],"source_content_type":"text/x-python","patch_set":21,"id":"9ad45d7e_57d4f345","line":64,"in_reply_to":"9ad45d7e_e0456470","updated":"2016-08-09 22:50:22.000000000","message":"Done","commit_id":"74c9c804e0e7e3f0dca97669251bd0f744d2c5a0"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e50e743f945bada94bd236b33c8f5f075fa3aa3e","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"@obj_base.VersionedObjectRegistry.register"},{"line_number":59,"context_line":"class PortDNS(base.NeutronDbObject):"},{"line_number":60,"context_line":"    # Version 1.0: Initial version"},{"line_number":61,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"9ad45d7e_05c49c3d","line":59,"updated":"2016-08-11 15:24:16.000000000","message":"Note: I will move this object definition into the patch that captures port object: https://review.openstack.org/#/c/351368/ to complete the port definition.","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"ebc6d23becdd930d4d191c9a0c55d2524d0dc889","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"@obj_base.VersionedObjectRegistry.register"},{"line_number":59,"context_line":"class PortDNS(base.NeutronDbObject):"},{"line_number":60,"context_line":"    # Version 1.0: Initial version"},{"line_number":61,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"9ad45d7e_3a81f68f","line":59,"in_reply_to":"9ad45d7e_05c49c3d","updated":"2016-08-11 16:24:52.000000000","message":"what are we waiting for to merge this ? PortDns and NetworkDns is complete, FloatingIpdns need fip, router, and external network which can be done later ?","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"},{"author":{"_account_id":20246,"name":"Aradhana Singh","email":"aradhanamailbox@gmail.com","username":"asingh"},"change_message_id":"1e6c6e3f19c28cd04ad42cc386bd9c8709af645c","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    primary_keys \u003d [\u0027floatingip_id\u0027]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    foreign_keys \u003d {\u0027floatingip_id\u0027: \u0027id\u0027}"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    fields \u003d {"},{"line_number":50,"context_line":"        \u0027floatingip_id\u0027: obj_fields.UUIDField(),"}],"source_content_type":"text/x-python","patch_set":28,"id":"7a8ec9b2_ad49e990","line":47,"range":{"start_line":47,"start_character":3,"end_line":47,"end_character":42},"updated":"2016-09-13 19:15:14.000000000","message":"format for foreign key relationship should be updated similar to [1]\n[1] https://review.openstack.org/#/c/334695/27/neutron/objects/dns.py@30","commit_id":"1edb4310f7f982bed757daf06d75f2caa30467cd"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"9742b09221af14f47d6869cb33aff21467bdadad","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    primary_keys \u003d [\u0027floatingip_id\u0027]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    foreign_keys \u003d {\u0027floatingip_id\u0027: \u0027id\u0027}"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    fields \u003d {"},{"line_number":50,"context_line":"        \u0027floatingip_id\u0027: obj_fields.UUIDField(),"}],"source_content_type":"text/x-python","patch_set":28,"id":"7a8ec9b2_53dac679","line":47,"range":{"start_line":47,"start_character":3,"end_line":47,"end_character":42},"in_reply_to":"7a8ec9b2_ad49e990","updated":"2016-09-13 19:46:34.000000000","message":"I left this intentionally wasn\u0027t sure about Alias of this, any way this is not implemented, so safe atm","commit_id":"1edb4310f7f982bed757daf06d75f2caa30467cd"},{"author":{"_account_id":20246,"name":"Aradhana Singh","email":"aradhanamailbox@gmail.com","username":"asingh"},"change_message_id":"1e6c6e3f19c28cd04ad42cc386bd9c8709af645c","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    primary_keys \u003d [\u0027port_id\u0027]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    foreign_keys \u003d {\u0027port_id\u0027: \u0027id\u0027}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    fields \u003d {"},{"line_number":70,"context_line":"        \u0027port_id\u0027: obj_fields.UUIDField(),"}],"source_content_type":"text/x-python","patch_set":28,"id":"7a8ec9b2_cd4e3596","line":67,"range":{"start_line":67,"start_character":2,"end_line":67,"end_character":36},"updated":"2016-09-13 19:15:14.000000000","message":"ditto","commit_id":"1edb4310f7f982bed757daf06d75f2caa30467cd"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"9742b09221af14f47d6869cb33aff21467bdadad","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    primary_keys \u003d [\u0027port_id\u0027]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    foreign_keys \u003d {\u0027port_id\u0027: \u0027id\u0027}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    fields \u003d {"},{"line_number":70,"context_line":"        \u0027port_id\u0027: obj_fields.UUIDField(),"}],"source_content_type":"text/x-python","patch_set":28,"id":"7a8ec9b2_d3d41649","line":67,"range":{"start_line":67,"start_character":2,"end_line":67,"end_character":36},"in_reply_to":"7a8ec9b2_cd4e3596","updated":"2016-09-13 19:46:34.000000000","message":"This object is not being used its definition is in ihar\u0027s patch, so better I remove it from this module","commit_id":"1edb4310f7f982bed757daf06d75f2caa30467cd"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1f916756c8b27862332d3561cce4d8a5b108c0df","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    primary_keys \u003d [\u0027floatingip_id\u0027]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    foreign_keys \u003d {\u0027floatingip_id\u0027: \u0027id\u0027}"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    fields \u003d {"},{"line_number":50,"context_line":"        \u0027floatingip_id\u0027: obj_fields.UUIDField(),"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_c0b05ee0","line":47,"updated":"2016-09-20 21:39:09.000000000","message":"Comparing this line with L30, I wonder if this is the correct way to declare the foreign key","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"2b67ef7f37b156bf22f98598470a40236f9164a7","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    primary_keys \u003d [\u0027floatingip_id\u0027]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    foreign_keys \u003d {\u0027floatingip_id\u0027: \u0027id\u0027}"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    fields \u003d {"},{"line_number":50,"context_line":"        \u0027floatingip_id\u0027: obj_fields.UUIDField(),"}],"source_content_type":"text/x-python","patch_set":31,"id":"5a8bc5a2_d91df210","line":47,"in_reply_to":"7a8ec9b2_8d0ad488","updated":"2016-09-22 18:04:50.000000000","message":"Done","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"67495423a296082c5c51afe8383d5386d6fcd079","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    primary_keys \u003d [\u0027floatingip_id\u0027]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    foreign_keys \u003d {\u0027floatingip_id\u0027: \u0027id\u0027}"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    fields \u003d {"},{"line_number":50,"context_line":"        \u0027floatingip_id\u0027: obj_fields.UUIDField(),"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_8d0ad488","line":47,"in_reply_to":"7a8ec9b2_c0b05ee0","updated":"2016-09-21 16:46:33.000000000","message":"+1","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"2b67ef7f37b156bf22f98598470a40236f9164a7","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    primary_keys \u003d [\u0027floatingip_id\u0027]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    foreign_keys \u003d {\u0027floatingip_id\u0027: \u0027id\u0027}"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    fields \u003d {"},{"line_number":50,"context_line":"        \u0027floatingip_id\u0027: obj_fields.UUIDField(),"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_ae77c39d","line":47,"in_reply_to":"7a8ec9b2_c0b05ee0","updated":"2016-09-22 18:04:50.000000000","message":"line 30 is correct, this one is old","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"}],"neutron/plugins/ml2/extensions/dns_integration.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"b7b430bda3b66be3b614b8dca033bed0d708f5f6","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            current_dns_name \u003d dns_name"},{"line_number":98,"context_line":"            current_dns_domain \u003d network[dns.DNSDOMAIN]"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        dns_data_db \u003d dns_obj.PortDNS(plugin_context,"},{"line_number":101,"context_line":"                                      port_id\u003ddb_data[\u0027id\u0027],"},{"line_number":102,"context_line":"                                      current_dns_name\u003dcurrent_dns_name,"},{"line_number":103,"context_line":"                                      current_dns_domain\u003dcurrent_dns_domain,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_c1a4e858","line":100,"range":{"start_line":100,"start_character":8,"end_line":100,"end_character":19},"updated":"2016-07-04 13:02:30.000000000","message":"nit: I would call it dns_data_obj.","commit_id":"e080c90c3fb586164420c0928ee46b80a72f0ef7"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"b7b430bda3b66be3b614b8dca033bed0d708f5f6","unresolved":false,"context_lines":[{"line_number":162,"context_line":"            if dns_name is not None:"},{"line_number":163,"context_line":"                dns_data_db \u003d self._process_only_dns_name_update("},{"line_number":164,"context_line":"                    plugin_context, db_data, dns_name)"},{"line_number":165,"context_line":"                dns_data_db.update()"},{"line_number":166,"context_line":"        else:"},{"line_number":167,"context_line":"            dns_data_db \u003d self._update_dns_db(dns_name, dns_domain, db_data,"},{"line_number":168,"context_line":"                                              plugin_context, has_fixed_ips)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_07f6008f","line":165,"range":{"start_line":165,"start_character":16,"end_line":165,"end_character":36},"updated":"2016-07-04 13:02:30.000000000","message":"If dns_data_db would be the new object, this line will raise Exception. The _process(...) method can return new object if update will be triggered on non-existing DNS entry.","commit_id":"e080c90c3fb586164420c0928ee46b80a72f0ef7"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"cc443fdd033db918157b6f91e75d990dba5cdc89","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        else:"},{"line_number":166,"context_line":"            dns_data_db \u003d self._update_dns_db(dns_name, dns_domain, db_data,"},{"line_number":167,"context_line":"                                              plugin_context, has_fixed_ips)"},{"line_number":168,"context_line":"            if dns_data_db:"},{"line_number":169,"context_line":"                dns_data_db.update()"},{"line_number":170,"context_line":"        self._extend_port_dict(plugin_context.session, db_data, db_data,"},{"line_number":171,"context_line":"                               dns_data_db)"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_5a65241c","line":169,"range":{"start_line":168,"start_character":12,"end_line":169,"end_character":36},"updated":"2016-07-06 05:24:03.000000000","message":"nit: I think you can update the object in self._update_dns_db, in line 130. Then lines 168-169 can be deleted.","commit_id":"e81ff19f890e266391b4c32b598b9cf83932c3ac"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"1d9f21ea88c0a70fe8bce6f5072e3c81240729a1","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        else:"},{"line_number":166,"context_line":"            dns_data_db \u003d self._update_dns_db(dns_name, dns_domain, db_data,"},{"line_number":167,"context_line":"                                              plugin_context, has_fixed_ips)"},{"line_number":168,"context_line":"            if dns_data_db:"},{"line_number":169,"context_line":"                dns_data_db.update()"},{"line_number":170,"context_line":"        self._extend_port_dict(plugin_context.session, db_data, db_data,"},{"line_number":171,"context_line":"                               dns_data_db)"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_31a3fab3","line":169,"range":{"start_line":168,"start_character":12,"end_line":169,"end_character":36},"in_reply_to":"1aa78d24_5a65241c","updated":"2016-07-06 16:44:19.000000000","message":"done","commit_id":"e81ff19f890e266391b4c32b598b9cf83932c3ac"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"46ff0518fe38ae10a85c293242d156ad846f0f0d","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        net_id \u003d db_data[\u0027id\u0027]"},{"line_number":66,"context_line":"        if current_dns_domain:"},{"line_number":67,"context_line":"            net_dns_domain \u003d dns_obj.NetworkDNSDomain.get_object("},{"line_number":68,"context_line":"                plugin_context,"},{"line_number":69,"context_line":"                network_id\u003dnet_id)"},{"line_number":70,"context_line":"            if new_value:"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_973d7e2d","line":67,"range":{"start_line":67,"start_character":54,"end_line":67,"end_character":64},"updated":"2016-07-12 13:48:58.000000000","message":"the behavior here would be a bit different. With one() it will raise if there\u0027s more than one row. get_object uses internally first() so the first result will be returned and it won\u0027t raise if there\u0027s more than one. Could that be a problem?","commit_id":"7630f69519d6c0a4af7c32631d0877c610455275"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"8bc7d9e482af8817704df21194f5b874e7faffa6","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        net_id \u003d db_data[\u0027id\u0027]"},{"line_number":66,"context_line":"        if current_dns_domain:"},{"line_number":67,"context_line":"            net_dns_domain \u003d dns_obj.NetworkDNSDomain.get_object("},{"line_number":68,"context_line":"                plugin_context,"},{"line_number":69,"context_line":"                network_id\u003dnet_id)"},{"line_number":70,"context_line":"            if new_value:"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_66fbeb47","line":67,"range":{"start_line":67,"start_character":54,"end_line":67,"end_character":64},"in_reply_to":"1aa78d24_299b8667","updated":"2016-07-12 22:57:58.000000000","message":"Actually, I am firing a query on primary key which is unique it will be only one row which is network_id in this case so it seems unlikely to get more than one row at this get object. so get_object make sense if filter is primary key","commit_id":"7630f69519d6c0a4af7c32631d0877c610455275"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"b12c644c99c5c9504706d90ceeb38ddda9615abd","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        net_id \u003d db_data[\u0027id\u0027]"},{"line_number":66,"context_line":"        if current_dns_domain:"},{"line_number":67,"context_line":"            net_dns_domain \u003d dns_obj.NetworkDNSDomain.get_object("},{"line_number":68,"context_line":"                plugin_context,"},{"line_number":69,"context_line":"                network_id\u003dnet_id)"},{"line_number":70,"context_line":"            if new_value:"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_299b8667","line":67,"range":{"start_line":67,"start_character":54,"end_line":67,"end_character":64},"in_reply_to":"1aa78d24_973d7e2d","updated":"2016-07-12 16:32:36.000000000","message":"I see unit tests or functional test which were already written did not complain. it can be a problem if some testing is being performed to check those exceptions when result has more than one row. what is your suggestion should i modify get_object behavior ?","commit_id":"7630f69519d6c0a4af7c32631d0877c610455275"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"46ff0518fe38ae10a85c293242d156ad846f0f0d","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _update_dns_db(self, dns_name, dns_domain, db_data,"},{"line_number":110,"context_line":"                      plugin_context, has_fixed_ips):"},{"line_number":111,"context_line":"        dns_data_db \u003d dns_obj.PortDNS.get_object(plugin_context,"},{"line_number":112,"context_line":"                                                 port_id\u003ddb_data[\u0027id\u0027])"},{"line_number":113,"context_line":"        if dns_data_db:"},{"line_number":114,"context_line":"            is_dns_name_changed \u003d (dns_name is not None and"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_f74682be","line":111,"updated":"2016-07-12 13:48:58.000000000","message":"ditto here and for similar lines","commit_id":"7630f69519d6c0a4af7c32631d0877c610455275"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"8bc7d9e482af8817704df21194f5b874e7faffa6","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _update_dns_db(self, dns_name, dns_domain, db_data,"},{"line_number":110,"context_line":"                      plugin_context, has_fixed_ips):"},{"line_number":111,"context_line":"        dns_data_db \u003d dns_obj.PortDNS.get_object(plugin_context,"},{"line_number":112,"context_line":"                                                 port_id\u003ddb_data[\u0027id\u0027])"},{"line_number":113,"context_line":"        if dns_data_db:"},{"line_number":114,"context_line":"            is_dns_name_changed \u003d (dns_name is not None and"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_a6be7362","line":111,"in_reply_to":"1aa78d24_f74682be","updated":"2016-07-12 22:57:58.000000000","message":"again port_id is primary key here ditto explanation here.","commit_id":"7630f69519d6c0a4af7c32631d0877c610455275"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"c6c409902c63fb5f829cf55dbaaa61790eeebd5c","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            current_dns_name \u003d dns_name"},{"line_number":98,"context_line":"            current_dns_domain \u003d network[dns.DNSDOMAIN]"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        dns_data_obj \u003d dns_obj.PortDNS(plugin_context,"},{"line_number":101,"context_line":"                                       port_id\u003ddb_data[\u0027id\u0027],"},{"line_number":102,"context_line":"                                       current_dns_name\u003dcurrent_dns_name,"},{"line_number":103,"context_line":"                                       current_dns_domain\u003dcurrent_dns_domain,"}],"source_content_type":"text/x-python","patch_set":13,"id":"dada55a8_6a3e61db","line":100,"updated":"2016-07-25 21:01:27.000000000","message":"Given that there are several places that create PortDNS objects, I\u0027m wondering if you could create a private method that handles the creation, like \n\ndef _create_port_dns(context, port_id, current_dns_name, current_dns_domain, previos_dns_name\u003d\u0027\u0027, ...):","commit_id":"fb474edd27121f135f86931faa8d6996632ba7ca"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"e1bd49a39dc2395c858036e779a75edda2222052","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            current_dns_name \u003d dns_name"},{"line_number":98,"context_line":"            current_dns_domain \u003d network[dns.DNSDOMAIN]"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        dns_data_obj \u003d dns_obj.PortDNS(plugin_context,"},{"line_number":101,"context_line":"                                       port_id\u003ddb_data[\u0027id\u0027],"},{"line_number":102,"context_line":"                                       current_dns_name\u003dcurrent_dns_name,"},{"line_number":103,"context_line":"                                       current_dns_domain\u003dcurrent_dns_domain,"}],"source_content_type":"text/x-python","patch_set":13,"id":"bacf61ea_48415439","line":100,"in_reply_to":"dada55a8_6a3e61db","updated":"2016-07-27 16:58:16.000000000","message":"it is just initializing a object and calling a create upon it just simply two line but because of arguments to object init it looks bigger. I think helper would\u0027nt be much help here.","commit_id":"fb474edd27121f135f86931faa8d6996632ba7ca"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"c6c409902c63fb5f829cf55dbaaa61790eeebd5c","unresolved":false,"context_lines":[{"line_number":132,"context_line":"            dns_data_db.update()"},{"line_number":133,"context_line":"            return dns_data_db"},{"line_number":134,"context_line":"        if dns_name:"},{"line_number":135,"context_line":"            dns_data_db \u003d dns_obj.PortDNS(plugin_context,"},{"line_number":136,"context_line":"                                          port_id\u003ddb_data[\u0027id\u0027],"},{"line_number":137,"context_line":"                                          current_dns_name\u003ddns_name,"},{"line_number":138,"context_line":"                                          current_dns_domain\u003ddns_domain,"}],"source_content_type":"text/x-python","patch_set":13,"id":"dada55a8_0a308500","line":135,"updated":"2016-07-25 21:01:27.000000000","message":"ditto: line 100","commit_id":"fb474edd27121f135f86931faa8d6996632ba7ca"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"c6c409902c63fb5f829cf55dbaaa61790eeebd5c","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            dns_data_db.update()"},{"line_number":180,"context_line":"            return dns_data_db"},{"line_number":181,"context_line":"        if dns_name:"},{"line_number":182,"context_line":"            dns_data_db \u003d dns_obj.PortDNS(plugin_context,"},{"line_number":183,"context_line":"                                          port_id\u003ddb_data[\u0027id\u0027],"},{"line_number":184,"context_line":"                                          current_dns_name\u003d\u0027\u0027,"},{"line_number":185,"context_line":"                                          current_dns_domain\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"dada55a8_ca0cad44","line":182,"updated":"2016-07-25 21:01:27.000000000","message":"ditto: line 100","commit_id":"fb474edd27121f135f86931faa8d6996632ba7ca"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"0f18feb1ed56f5621ab68e3c3dae88216e8d5e4b","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                db_data[dns.DNSDOMAIN] \u003d new_value"},{"line_number":73,"context_line":"                net_dns_domain.update()"},{"line_number":74,"context_line":"            else:"},{"line_number":75,"context_line":"                plugin_context.session.delete(net_dns_domain)"},{"line_number":76,"context_line":"                db_data[dns.DNSDOMAIN] \u003d \u0027\u0027"},{"line_number":77,"context_line":"        elif new_value:"},{"line_number":78,"context_line":"            net_dns_domain \u003d dns_obj.NetworkDNSDomain(plugin_context,"}],"source_content_type":"text/x-python","patch_set":15,"id":"bacf61ea_61dc8373","line":75,"range":{"start_line":75,"start_character":16,"end_line":75,"end_character":61},"updated":"2016-08-01 10:17:18.000000000","message":"this should be net_dns_domain.delete().","commit_id":"557ba999599f2cffcc455a52e01c0d3984af9795"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d647566d5dfbe411468845f2bb6d2775aa730edd","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                db_data[dns.DNSDOMAIN] \u003d new_value"},{"line_number":73,"context_line":"                net_dns_domain.update()"},{"line_number":74,"context_line":"            else:"},{"line_number":75,"context_line":"                plugin_context.session.delete(net_dns_domain)"},{"line_number":76,"context_line":"                db_data[dns.DNSDOMAIN] \u003d \u0027\u0027"},{"line_number":77,"context_line":"        elif new_value:"},{"line_number":78,"context_line":"            net_dns_domain \u003d dns_obj.NetworkDNSDomain(plugin_context,"}],"source_content_type":"text/x-python","patch_set":15,"id":"bacf61ea_b8005735","line":75,"range":{"start_line":75,"start_character":16,"end_line":75,"end_character":61},"in_reply_to":"bacf61ea_61dc8373","updated":"2016-08-01 21:49:48.000000000","message":"Done","commit_id":"557ba999599f2cffcc455a52e01c0d3984af9795"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"d6bb29985bc358f7902d9f0aebe0d761d1b92eaa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"9ad45d7e_50847e09","updated":"2016-08-11 21:15:59.000000000","message":"Given that the definition of the object for PortDNS is being moved to https://review.openstack.org/#/c/351368/9/neutron/objects/ports.py@118, I think the best course of action is to make this patchset dependent on https://review.openstack.org/#/c/351368 and then adjust all the references to dns_obj.PortDNS in this module. I counted 8","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"609ef47a96b7d95541e6fa1f4c6e50144363f043","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                plugin_context,"},{"line_number":69,"context_line":"                network_id\u003dnet_id)"},{"line_number":70,"context_line":"            if new_value:"},{"line_number":71,"context_line":"                net_dns_domain[\u0027dns_domain\u0027] \u003d new_value"},{"line_number":72,"context_line":"                db_data[dns.DNSDOMAIN] \u003d new_value"},{"line_number":73,"context_line":"                net_dns_domain.update()"},{"line_number":74,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":22,"id":"9ad45d7e_bafa62bb","line":71,"range":{"start_line":71,"start_character":16,"end_line":71,"end_character":56},"updated":"2016-08-10 08:42:25.000000000","message":"Would here be net_dns_domain.dns_domain \u003d new_value since it is an object instance.","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"3462e739e5df8cb348ce1cb18a8d75fc80ce6747","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                plugin_context,"},{"line_number":69,"context_line":"                network_id\u003dnet_id)"},{"line_number":70,"context_line":"            if new_value:"},{"line_number":71,"context_line":"                net_dns_domain[\u0027dns_domain\u0027] \u003d new_value"},{"line_number":72,"context_line":"                db_data[dns.DNSDOMAIN] \u003d new_value"},{"line_number":73,"context_line":"                net_dns_domain.update()"},{"line_number":74,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":22,"id":"9ad45d7e_f4531815","line":71,"range":{"start_line":71,"start_character":16,"end_line":71,"end_character":56},"in_reply_to":"9ad45d7e_77a92090","updated":"2016-08-11 06:34:39.000000000","message":"Get it.","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"eb384cb6f5ffad5d76c51d09df74802b185e8f32","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                plugin_context,"},{"line_number":69,"context_line":"                network_id\u003dnet_id)"},{"line_number":70,"context_line":"            if new_value:"},{"line_number":71,"context_line":"                net_dns_domain[\u0027dns_domain\u0027] \u003d new_value"},{"line_number":72,"context_line":"                db_data[dns.DNSDOMAIN] \u003d new_value"},{"line_number":73,"context_line":"                net_dns_domain.update()"},{"line_number":74,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":22,"id":"9ad45d7e_77a92090","line":71,"range":{"start_line":71,"start_character":16,"end_line":71,"end_character":56},"in_reply_to":"9ad45d7e_bafa62bb","updated":"2016-08-10 10:01:09.000000000","message":"It is a strategic question, do we want to change the dictionary access to object fields like now, or we may leave it for later refactoring. The other object patches does not change the dictionary access to properties, so better stay aligned.","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"609ef47a96b7d95541e6fa1f4c6e50144363f043","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _update_dns_db(self, dns_name, dns_domain, db_data,"},{"line_number":110,"context_line":"                      plugin_context, has_fixed_ips):"},{"line_number":111,"context_line":"        dns_data_db \u003d dns_obj.PortDNS.get_object("},{"line_number":112,"context_line":"            plugin_context,"},{"line_number":113,"context_line":"            port_id\u003ddb_data[\u0027id\u0027])"},{"line_number":114,"context_line":"        if dns_data_db:"}],"source_content_type":"text/x-python","patch_set":22,"id":"9ad45d7e_3aa2f2ae","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":19},"updated":"2016-08-10 08:42:25.000000000","message":"s/db/obj","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"f0a102022339e2edfb966653e6b3539eb648d595","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _update_dns_db(self, dns_name, dns_domain, db_data,"},{"line_number":110,"context_line":"                      plugin_context, has_fixed_ips):"},{"line_number":111,"context_line":"        dns_data_db \u003d dns_obj.PortDNS.get_object("},{"line_number":112,"context_line":"            plugin_context,"},{"line_number":113,"context_line":"            port_id\u003ddb_data[\u0027id\u0027])"},{"line_number":114,"context_line":"        if dns_data_db:"}],"source_content_type":"text/x-python","patch_set":22,"id":"9ad45d7e_4868a487","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":19},"in_reply_to":"9ad45d7e_3aa2f2ae","updated":"2016-08-10 16:51:17.000000000","message":"i don\u0027t see any issue with naming, not all object are named as obj at the end. lets see what other reviewers think of it.","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"609ef47a96b7d95541e6fa1f4c6e50144363f043","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        dns_data_db \u003d dns_obj.PortDNS.get_object("},{"line_number":112,"context_line":"            plugin_context,"},{"line_number":113,"context_line":"            port_id\u003ddb_data[\u0027id\u0027])"},{"line_number":114,"context_line":"        if dns_data_db:"},{"line_number":115,"context_line":"            is_dns_name_changed \u003d (dns_name is not None and"},{"line_number":116,"context_line":"                    dns_data_db[\u0027current_dns_name\u0027] !\u003d dns_name)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"9ad45d7e_9a915e55","line":114,"range":{"start_line":114,"start_character":11,"end_line":114,"end_character":22},"updated":"2016-08-10 08:42:25.000000000","message":"ditto","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"609ef47a96b7d95541e6fa1f4c6e50144363f043","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            port_id\u003ddb_data[\u0027id\u0027])"},{"line_number":114,"context_line":"        if dns_data_db:"},{"line_number":115,"context_line":"            is_dns_name_changed \u003d (dns_name is not None and"},{"line_number":116,"context_line":"                    dns_data_db[\u0027current_dns_name\u0027] !\u003d dns_name)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"            if is_dns_name_changed or (has_fixed_ips and"},{"line_number":119,"context_line":"                                       dns_data_db[\u0027current_dns_name\u0027]):"}],"source_content_type":"text/x-python","patch_set":22,"id":"9ad45d7e_3a903243","line":116,"range":{"start_line":116,"start_character":20,"end_line":116,"end_character":51},"updated":"2016-08-10 08:42:25.000000000","message":"should reference it by dns_data_obj.current_dns_name","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"609ef47a96b7d95541e6fa1f4c6e50144363f043","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            is_dns_name_changed \u003d (dns_name is not None and"},{"line_number":116,"context_line":"                    dns_data_db[\u0027current_dns_name\u0027] !\u003d dns_name)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"            if is_dns_name_changed or (has_fixed_ips and"},{"line_number":119,"context_line":"                                       dns_data_db[\u0027current_dns_name\u0027]):"},{"line_number":120,"context_line":"                dns_data_db[\u0027previous_dns_name\u0027] \u003d ("},{"line_number":121,"context_line":"                    dns_data_db[\u0027current_dns_name\u0027])"},{"line_number":122,"context_line":"                dns_data_db[\u0027previous_dns_domain\u0027] \u003d ("},{"line_number":123,"context_line":"                    dns_data_db[\u0027current_dns_domain\u0027])"},{"line_number":124,"context_line":"                if is_dns_name_changed:"},{"line_number":125,"context_line":"                    dns_data_db[dns.DNSNAME] \u003d dns_name"},{"line_number":126,"context_line":"                    dns_data_db[\u0027current_dns_name\u0027] \u003d dns_name"},{"line_number":127,"context_line":"                    if dns_name:"},{"line_number":128,"context_line":"                        dns_data_db[\u0027current_dns_domain\u0027] \u003d dns_domain"},{"line_number":129,"context_line":"                    else:"},{"line_number":130,"context_line":"                        dns_data_db[\u0027current_dns_domain\u0027] \u003d \u0027\u0027"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"            dns_data_db.update()"},{"line_number":133,"context_line":"            return dns_data_db"},{"line_number":134,"context_line":"        if dns_name:"},{"line_number":135,"context_line":"            dns_data_db \u003d dns_obj.PortDNS(plugin_context,"},{"line_number":136,"context_line":"                                          port_id\u003ddb_data[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":22,"id":"9ad45d7e_baa422a6","line":133,"range":{"start_line":118,"start_character":0,"end_line":133,"end_character":30},"updated":"2016-08-10 08:42:25.000000000","message":"ditto","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"609ef47a96b7d95541e6fa1f4c6e50144363f043","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                                          previous_dns_domain\u003d\u0027\u0027,"},{"line_number":141,"context_line":"                                          dns_name\u003ddns_name)"},{"line_number":142,"context_line":"            dns_data_db.create()"},{"line_number":143,"context_line":"        return dns_data_db"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def process_update_port(self, plugin_context, request_data, db_data):"},{"line_number":146,"context_line":"        dns_name \u003d request_data.get(dns.DNSNAME)"}],"source_content_type":"text/x-python","patch_set":22,"id":"9ad45d7e_1ae1eed0","line":143,"range":{"start_line":143,"start_character":0,"end_line":143,"end_character":26},"updated":"2016-08-10 08:42:25.000000000","message":"are you sure you want to return a object or a dict?","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"eb384cb6f5ffad5d76c51d09df74802b185e8f32","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                                          previous_dns_domain\u003d\u0027\u0027,"},{"line_number":141,"context_line":"                                          dns_name\u003ddns_name)"},{"line_number":142,"context_line":"            dns_data_db.create()"},{"line_number":143,"context_line":"        return dns_data_db"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def process_update_port(self, plugin_context, request_data, db_data):"},{"line_number":146,"context_line":"        dns_name \u003d request_data.get(dns.DNSNAME)"}],"source_content_type":"text/x-python","patch_set":22,"id":"9ad45d7e_3ad5cd1b","line":143,"range":{"start_line":143,"start_character":0,"end_line":143,"end_character":26},"in_reply_to":"9ad45d7e_1ae1eed0","updated":"2016-08-10 10:01:09.000000000","message":"we were returning db object so now it is replaced by OVO.","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"}],"neutron/tests/unit/objects/test_dns.py":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"46ff0518fe38ae10a85c293242d156ad846f0f0d","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class FloatingIPDNSDbObjectTestcase(object):"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    # TODO(manjeets): Add Dbobjecttests after Router OVO"},{"line_number":50,"context_line":"    # work is done. If add right now some methods need to"},{"line_number":51,"context_line":"    # be modified and which will be reverted after router ovo work."},{"line_number":52,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_f79042ef","line":49,"updated":"2016-07-12 13:48:58.000000000","message":"I don\u0027t get it. This test should test the FloatingIPDNS object only. What\u0027s the problem with the Router?","commit_id":"7630f69519d6c0a4af7c32631d0877c610455275"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"639a2187353e668e9c47890c69d5810fbabb2959","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class FloatingIPDNSDbObjectTestcase(object):"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    # TODO(manjeets): Add Dbobjecttests after Router OVO"},{"line_number":50,"context_line":"    # work is done. If add right now some methods need to"},{"line_number":51,"context_line":"    # be modified and which will be reverted after router ovo work."},{"line_number":52,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_e46365af","line":49,"in_reply_to":"1aa78d24_495532c0","updated":"2016-07-12 16:47:10.000000000","message":"I am working on refactor but it would be easy after this patch.","commit_id":"7630f69519d6c0a4af7c32631d0877c610455275"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"b12c644c99c5c9504706d90ceeb38ddda9615abd","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class FloatingIPDNSDbObjectTestcase(object):"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    # TODO(manjeets): Add Dbobjecttests after Router OVO"},{"line_number":50,"context_line":"    # work is done. If add right now some methods need to"},{"line_number":51,"context_line":"    # be modified and which will be reverted after router ovo work."},{"line_number":52,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_495532c0","line":49,"in_reply_to":"1aa78d24_f79042ef","updated":"2016-07-12 16:32:36.000000000","message":"a refactor is required for FloatingIPDNS object. because the file which has models it also have mixins for floatingIPDNS and currently patch for router ovo is also upstream for review. I put a note to do that work once router work is done. I need to create router to test this and to avoid cyclic import issue I have not replaced its model definition with objects.","commit_id":"7630f69519d6c0a4af7c32631d0877c610455275"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"0f18feb1ed56f5621ab68e3c3dae88216e8d5e4b","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(NetworkDNSDomainDbObjectTestcase, self).setUp()"},{"line_number":34,"context_line":"        self._create_test_network()"},{"line_number":35,"context_line":"        for obj in self.db_objs:"},{"line_number":36,"context_line":"            obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"},{"line_number":37,"context_line":"        for obj in self.obj_fields:"},{"line_number":38,"context_line":"            obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class FloatingIPDNSIfaceObjectTestcase("}],"source_content_type":"text/x-python","patch_set":15,"id":"bacf61ea_fc893827","line":38,"range":{"start_line":34,"start_character":8,"end_line":38,"end_character":51},"updated":"2016-08-01 10:17:18.000000000","message":"Please create new network for every field set generated, like here [1]\n\n[1] https://github.com/openstack/neutron/commit/394546743b4e7cf962a5bd7c0dce9681a7449140#diff-13f4bc6e26f6803154c725332e1d5044R33","commit_id":"557ba999599f2cffcc455a52e01c0d3984af9795"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d647566d5dfbe411468845f2bb6d2775aa730edd","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(NetworkDNSDomainDbObjectTestcase, self).setUp()"},{"line_number":34,"context_line":"        self._create_test_network()"},{"line_number":35,"context_line":"        for obj in self.db_objs:"},{"line_number":36,"context_line":"            obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"},{"line_number":37,"context_line":"        for obj in self.obj_fields:"},{"line_number":38,"context_line":"            obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class FloatingIPDNSIfaceObjectTestcase("}],"source_content_type":"text/x-python","patch_set":15,"id":"bacf61ea_823872d4","line":38,"range":{"start_line":34,"start_character":8,"end_line":38,"end_character":51},"in_reply_to":"bacf61ea_fc893827","updated":"2016-08-01 21:49:48.000000000","message":"Done","commit_id":"557ba999599f2cffcc455a52e01c0d3984af9795"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"0f18feb1ed56f5621ab68e3c3dae88216e8d5e4b","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    def setUp(self):"},{"line_number":65,"context_line":"        super(PortDNSDbObjectTestcase, self).setUp()"},{"line_number":66,"context_line":"        self._create_test_network()"},{"line_number":67,"context_line":"        self._create_test_port(self._network)"},{"line_number":68,"context_line":"        for obj in self.db_objs:"},{"line_number":69,"context_line":"            obj[\u0027port_id\u0027] \u003d self._port[\u0027id\u0027]"},{"line_number":70,"context_line":"        for obj in self.obj_fields:"},{"line_number":71,"context_line":"            obj[\u0027port_id\u0027] \u003d self._port[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":15,"id":"bacf61ea_9c53dc38","line":71,"range":{"start_line":67,"start_character":8,"end_line":71,"end_character":45},"updated":"2016-08-01 10:17:18.000000000","message":"Please create new port for every field set generated:\n\nfor obj in self.db_objs:\n    port \u003d self._create_port(id\u003dobj[\u0027port_id\u0027],\n        network_id\u003dself._network[\u0027id\u0027])","commit_id":"557ba999599f2cffcc455a52e01c0d3984af9795"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d647566d5dfbe411468845f2bb6d2775aa730edd","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    def setUp(self):"},{"line_number":65,"context_line":"        super(PortDNSDbObjectTestcase, self).setUp()"},{"line_number":66,"context_line":"        self._create_test_network()"},{"line_number":67,"context_line":"        self._create_test_port(self._network)"},{"line_number":68,"context_line":"        for obj in self.db_objs:"},{"line_number":69,"context_line":"            obj[\u0027port_id\u0027] \u003d self._port[\u0027id\u0027]"},{"line_number":70,"context_line":"        for obj in self.obj_fields:"},{"line_number":71,"context_line":"            obj[\u0027port_id\u0027] \u003d self._port[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":15,"id":"bacf61ea_e2332ef4","line":71,"range":{"start_line":67,"start_character":8,"end_line":71,"end_character":45},"in_reply_to":"bacf61ea_9c53dc38","updated":"2016-08-01 21:49:48.000000000","message":"Done","commit_id":"557ba999599f2cffcc455a52e01c0d3984af9795"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"811b616a240b83ceb2e2bb58f3bde0e1282b45c0","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    _test_class \u003d dns.FloatingIPDNS"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class FloatingIPDNSDbObjectTestcase(object):"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    # TODO(manjeets): Add Dbobjecttests after create_external"},{"line_number":51,"context_line":"    # network is added in test_base.py."}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_924f5033","line":48,"range":{"start_line":48,"start_character":36,"end_line":48,"end_character":42},"updated":"2016-09-21 16:51:44.000000000","message":"Shouldn\u0027t this class be inherited from BaseDbObjectTestCase","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"2b67ef7f37b156bf22f98598470a40236f9164a7","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    _test_class \u003d dns.FloatingIPDNS"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class FloatingIPDNSDbObjectTestcase(object):"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    # TODO(manjeets): Add Dbobjecttests after create_external"},{"line_number":51,"context_line":"    # network is added in test_base.py."}],"source_content_type":"text/x-python","patch_set":31,"id":"5a8bc5a2_decb1871","line":48,"range":{"start_line":48,"start_character":36,"end_line":48,"end_character":42},"in_reply_to":"7a8ec9b2_924f5033","updated":"2016-09-22 18:04:50.000000000","message":"that was intentional, tests would be covered in patch which implements FloatingIPDNS OVO.","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"ccb4e63040476646be981199b423e6a0552a5ea4","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class FloatingIPDNSDbObjectTestcase(object):"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    # TODO(manjeets): Add Dbobjecttests after create_external"},{"line_number":51,"context_line":"    # network is added in test_base.py."},{"line_number":52,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_0e6e02c9","line":51,"range":{"start_line":50,"start_character":4,"end_line":51,"end_character":39},"updated":"2016-09-20 17:27:30.000000000","message":"I don\u0027t follow this comment, are you referring to another patch or this is something that you\u0027re planning to do?","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d14947bf539148403ac28f4812022859c6f4a6de","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class FloatingIPDNSDbObjectTestcase(object):"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    # TODO(manjeets): Add Dbobjecttests after create_external"},{"line_number":51,"context_line":"    # network is added in test_base.py."},{"line_number":52,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":31,"id":"7a8ec9b2_a49a8d6c","line":51,"range":{"start_line":50,"start_character":4,"end_line":51,"end_character":39},"in_reply_to":"7a8ec9b2_0e6e02c9","updated":"2016-09-20 18:33:19.000000000","message":"I meant in separate patch","commit_id":"f46f55f1fe034888604c003a4ea1097229c54a5c"}],"neutron/tests/unit/objects/test_objects.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"0f18feb1ed56f5621ab68e3c3dae88216e8d5e4b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    \u0027PortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":36,"context_line":"    \u0027NetworkDNSDomain\u0027: \u00271.0-7db426386065ffeb14cb2d3a67f03e03\u0027,"},{"line_number":37,"context_line":"    \u0027PortDNS\u0027: \u00271.0-90241cd181a7f7a4183ab9b7b20d6b4f\u0027,"},{"line_number":38,"context_line":"    \u0027PortSecurity\u0027: \u00271.0-cf5b382a0112080ec4e0f23f697c7ab2\u0027,"},{"line_number":39,"context_line":"    \u0027AllowedAddressPair\u0027: \u00271.0-9f9186b6f952fbf31d257b0458b852c0\u0027,"},{"line_number":40,"context_line":"    \u0027QosBandwidthLimitRule\u0027: \u00271.1-4e44a8f5c2895ab1278399f87b40a13d\u0027,"},{"line_number":41,"context_line":"    \u0027QosDscpMarkingRule\u0027: \u00271.1-0313c6554b34fd10c753cb63d638256c\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"bacf61ea_9c5d9c17","line":38,"range":{"start_line":38,"start_character":5,"end_line":38,"end_character":59},"updated":"2016-08-01 10:17:18.000000000","message":"You should not change this.","commit_id":"557ba999599f2cffcc455a52e01c0d3984af9795"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d647566d5dfbe411468845f2bb6d2775aa730edd","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    \u0027PortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":36,"context_line":"    \u0027NetworkDNSDomain\u0027: \u00271.0-7db426386065ffeb14cb2d3a67f03e03\u0027,"},{"line_number":37,"context_line":"    \u0027PortDNS\u0027: \u00271.0-90241cd181a7f7a4183ab9b7b20d6b4f\u0027,"},{"line_number":38,"context_line":"    \u0027PortSecurity\u0027: \u00271.0-cf5b382a0112080ec4e0f23f697c7ab2\u0027,"},{"line_number":39,"context_line":"    \u0027AllowedAddressPair\u0027: \u00271.0-9f9186b6f952fbf31d257b0458b852c0\u0027,"},{"line_number":40,"context_line":"    \u0027QosBandwidthLimitRule\u0027: \u00271.1-4e44a8f5c2895ab1278399f87b40a13d\u0027,"},{"line_number":41,"context_line":"    \u0027QosDscpMarkingRule\u0027: \u00271.1-0313c6554b34fd10c753cb63d638256c\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"bacf61ea_f8480fb5","line":38,"range":{"start_line":38,"start_character":5,"end_line":38,"end_character":59},"in_reply_to":"bacf61ea_9c5d9c17","updated":"2016-08-01 21:49:48.000000000","message":"it was failing gate because of this","commit_id":"557ba999599f2cffcc455a52e01c0d3984af9795"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"f96761da0b3b721a28c75722d79f790de24cf8c4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    \u0027IPAllocationPool\u0027: \u00271.0-371016a6480ed0b4299319cb46d9215d\u0027,"},{"line_number":34,"context_line":"    \u0027NetworkPortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":35,"context_line":"    \u0027PortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":36,"context_line":"    \u0027NetworkDNSDomain\u0027: \u00271.0-7db426386065ffeb14cb2d3a67f03e03\u0027,"},{"line_number":37,"context_line":"    \u0027PortDNS\u0027: \u00271.0-90241cd181a7f7a4183ab9b7b20d6b4f\u0027,"},{"line_number":38,"context_line":"    \u0027AllowedAddressPair\u0027: \u00271.0-9f9186b6f952fbf31d257b0458b852c0\u0027,"},{"line_number":39,"context_line":"    \u0027QosBandwidthLimitRule\u0027: \u00271.1-4e44a8f5c2895ab1278399f87b40a13d\u0027,"},{"line_number":40,"context_line":"    \u0027QosDscpMarkingRule\u0027: \u00271.1-0313c6554b34fd10c753cb63d638256c\u0027,"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_2aee6dec","line":37,"range":{"start_line":36,"start_character":4,"end_line":37,"end_character":54},"updated":"2016-08-03 08:48:34.000000000","message":"It can be done in alphabetical order with NetworkPortSecurity and PortSecurity.","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"2276dee7ac3d4d64894f286f68e0c75a43f38c28","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    \u0027IPAllocationPool\u0027: \u00271.0-371016a6480ed0b4299319cb46d9215d\u0027,"},{"line_number":34,"context_line":"    \u0027NetworkPortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":35,"context_line":"    \u0027PortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":36,"context_line":"    \u0027NetworkDNSDomain\u0027: \u00271.0-7db426386065ffeb14cb2d3a67f03e03\u0027,"},{"line_number":37,"context_line":"    \u0027PortDNS\u0027: \u00271.0-90241cd181a7f7a4183ab9b7b20d6b4f\u0027,"},{"line_number":38,"context_line":"    \u0027AllowedAddressPair\u0027: \u00271.0-9f9186b6f952fbf31d257b0458b852c0\u0027,"},{"line_number":39,"context_line":"    \u0027QosBandwidthLimitRule\u0027: \u00271.1-4e44a8f5c2895ab1278399f87b40a13d\u0027,"},{"line_number":40,"context_line":"    \u0027QosDscpMarkingRule\u0027: \u00271.1-0313c6554b34fd10c753cb63d638256c\u0027,"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_8a031976","line":37,"range":{"start_line":36,"start_character":4,"end_line":37,"end_character":54},"in_reply_to":"bacf61ea_2aee6dec","updated":"2016-08-03 08:57:39.000000000","message":"+1","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"7b70b3409cf316e3befdcc7291aad5b62d14e677","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    \u0027IPAllocationPool\u0027: \u00271.0-371016a6480ed0b4299319cb46d9215d\u0027,"},{"line_number":34,"context_line":"    \u0027NetworkPortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":35,"context_line":"    \u0027PortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":36,"context_line":"    \u0027NetworkDNSDomain\u0027: \u00271.0-7db426386065ffeb14cb2d3a67f03e03\u0027,"},{"line_number":37,"context_line":"    \u0027PortDNS\u0027: \u00271.0-90241cd181a7f7a4183ab9b7b20d6b4f\u0027,"},{"line_number":38,"context_line":"    \u0027AllowedAddressPair\u0027: \u00271.0-9f9186b6f952fbf31d257b0458b852c0\u0027,"},{"line_number":39,"context_line":"    \u0027QosBandwidthLimitRule\u0027: \u00271.1-4e44a8f5c2895ab1278399f87b40a13d\u0027,"},{"line_number":40,"context_line":"    \u0027QosDscpMarkingRule\u0027: \u00271.1-0313c6554b34fd10c753cb63d638256c\u0027,"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_28681921","line":37,"range":{"start_line":36,"start_character":4,"end_line":37,"end_character":54},"in_reply_to":"bacf61ea_2aee6dec","updated":"2016-08-03 17:18:39.000000000","message":"done","commit_id":"e5dc1992117443c86cfd0778ec771dedb8c5b1cf"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"7aa2774d0b703468f1f85932f58eab51b41d8916","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    \u0027AllowedAddressPair\u0027: \u00271.0-9f9186b6f952fbf31d257b0458b852c0\u0027,"},{"line_number":32,"context_line":"    \u0027DistributedPortBinding\u0027: \u00271.0-4df058ae1aeae3ae1c15b8f6a4c692d9\u0027,"},{"line_number":33,"context_line":"    \u0027DNSNameServer\u0027: \u00271.0-bf87a85327e2d812d1666ede99d9918b\u0027,"},{"line_number":34,"context_line":"    \u0027FloatingIPDNS\u0027: \u00271.0-27408209016cb85075d9b378eb5baa4f\u0027,"},{"line_number":35,"context_line":"    \u0027ExtraDhcpOpt\u0027: \u00271.0-632f689cbeb36328995a7aed1d0a78d3\u0027,"},{"line_number":36,"context_line":"    \u0027IPAllocation\u0027: \u00271.0-47251b4c6d45c3b5feb0297fe5c461f2\u0027,"},{"line_number":37,"context_line":"    \u0027IPAllocationPool\u0027: \u00271.0-371016a6480ed0b4299319cb46d9215d\u0027,"}],"source_content_type":"text/x-python","patch_set":26,"id":"7a8ec9b2_cd2ab57e","line":34,"updated":"2016-09-13 18:59:31.000000000","message":"Please put in alphabetical order","commit_id":"0aa765e9a801ae3452e0a73e3499850bf4af0afc"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"73a4d4b9767004f1d4fc0fba05c2b70f90b67648","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    \u0027AllowedAddressPair\u0027: \u00271.0-9f9186b6f952fbf31d257b0458b852c0\u0027,"},{"line_number":32,"context_line":"    \u0027DistributedPortBinding\u0027: \u00271.0-4df058ae1aeae3ae1c15b8f6a4c692d9\u0027,"},{"line_number":33,"context_line":"    \u0027DNSNameServer\u0027: \u00271.0-bf87a85327e2d812d1666ede99d9918b\u0027,"},{"line_number":34,"context_line":"    \u0027FloatingIPDNS\u0027: \u00271.0-27408209016cb85075d9b378eb5baa4f\u0027,"},{"line_number":35,"context_line":"    \u0027ExtraDhcpOpt\u0027: \u00271.0-632f689cbeb36328995a7aed1d0a78d3\u0027,"},{"line_number":36,"context_line":"    \u0027IPAllocation\u0027: \u00271.0-47251b4c6d45c3b5feb0297fe5c461f2\u0027,"},{"line_number":37,"context_line":"    \u0027IPAllocationPool\u0027: \u00271.0-371016a6480ed0b4299319cb46d9215d\u0027,"}],"source_content_type":"text/x-python","patch_set":26,"id":"7a8ec9b2_6d1a8119","line":34,"in_reply_to":"7a8ec9b2_cd2ab57e","updated":"2016-09-13 19:04:15.000000000","message":"Done","commit_id":"0aa765e9a801ae3452e0a73e3499850bf4af0afc"}],"neutron/tests/unit/plugins/ml2/extensions/test_dns_integration.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"01b8870b6fd40c50b02e2ef35a29ca1647125df5","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        if dns_name:"},{"line_number":146,"context_line":"            self.assertEqual(current_dns_name, port[dns.DNSNAME])"},{"line_number":147,"context_line":"        if dns_name and dns_domain and provider_net and dns_driver:"},{"line_number":148,"context_line":"            self.assertEqual(current_dns_name,"},{"line_number":149,"context_line":"                             dns_data_db[\u0027current_dns_name\u0027])"},{"line_number":150,"context_line":"            self.assertEqual(previous_dns_name,"},{"line_number":151,"context_line":"                             dns_data_db[\u0027previous_dns_name\u0027])"},{"line_number":152,"context_line":"            if current_dns_name:"}],"source_content_type":"text/x-python","patch_set":21,"id":"9ad45d7e_f4a405a7","line":149,"range":{"start_line":148,"start_character":29,"end_line":149,"end_character":61},"updated":"2016-08-09 22:25:35.000000000","message":"Gratuitous change. Please don\u0027t introduce changes not related to your patchset. It confuses reviewers. Please restore this to its previous state: http://docs.openstack.org/developer/neutron/devref/effective_neutron.html#scoping-your-patch-appropriately","commit_id":"74c9c804e0e7e3f0dca97669251bd0f744d2c5a0"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"09e96f95f2be4882df54424fa46279f65b52e2e5","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        if dns_name:"},{"line_number":146,"context_line":"            self.assertEqual(current_dns_name, port[dns.DNSNAME])"},{"line_number":147,"context_line":"        if dns_name and dns_domain and provider_net and dns_driver:"},{"line_number":148,"context_line":"            self.assertEqual(current_dns_name,"},{"line_number":149,"context_line":"                             dns_data_db[\u0027current_dns_name\u0027])"},{"line_number":150,"context_line":"            self.assertEqual(previous_dns_name,"},{"line_number":151,"context_line":"                             dns_data_db[\u0027previous_dns_name\u0027])"},{"line_number":152,"context_line":"            if current_dns_name:"}],"source_content_type":"text/x-python","patch_set":21,"id":"9ad45d7e_9724abaf","line":149,"range":{"start_line":148,"start_character":29,"end_line":149,"end_character":61},"in_reply_to":"9ad45d7e_f4a405a7","updated":"2016-08-09 22:50:22.000000000","message":"I thought would be better to make it more readable but will revert it","commit_id":"74c9c804e0e7e3f0dca97669251bd0f744d2c5a0"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"d6bb29985bc358f7902d9f0aebe0d761d1b92eaa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"9ad45d7e_f0f13296","updated":"2016-08-11 21:15:59.000000000","message":"Given that the definition of the object for PortDNS is being moved to https://review.openstack.org/#/c/351368/9/neutron/objects/ports.py@118, I think the best course of action is to make this patchset dependent on https://review.openstack.org/#/c/351368 and then adjust the 2 references to dns_obj.PortDNS in this module","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"ab7889542730d2dfedc9f215583d63ad81985872","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"7ac969e8_4c17b3ed","in_reply_to":"9ad45d7e_f0f13296","updated":"2016-08-12 21:56:56.000000000","message":"I will be rebasing thise once this https://review.openstack.org/#/c/351368 gets merged. I am doing a refactor within this patch which will messy and need a fix in https://review.openstack.org/#/c/351368 this as well, better idea to would be to that once, it gets merged","commit_id":"9f4fa559d9eb15c61a1a3eb476c1cc28b6bd9784"}]}
