)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"057bb0055129067ba811fbeb7e3fcc95c65d2540","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Allow to parse keywords in dns labels"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Related-Bug: #1843218"},{"line_number":10,"context_line":"Needed-By: https://review.opendev.org/686343"},{"line_number":11,"context_line":"Change-Id: Ie8b6eb88e046c172d99212f966bdee327f42ed37"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_13c49d3f","line":10,"updated":"2019-10-25 12:29:46.000000000","message":"I think what you need to write here is:\nDepends-On: https://review.opendev.org/#/c/686097","commit_id":"0eba2b5974133355f20662a527e4002eb34df0ea"}],"doc/source/contributor/internals/external_dns_integration.rst":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"40161dd8efe1a146bfa2282ac3336a44c91d9458","unresolved":true,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"  .. code-block:: console"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"\t$ openstack zone create 0511951bd56e4a0aac27ac65e00bddd0.blah.com. --email admin@0511951bd56e4a0aac27ac65e00bddd0.blah.com  "},{"line_number":61,"context_line":"\t+----------------+-------------------------------------------------+"},{"line_number":62,"context_line":"\t| Field          | Value                                           |"},{"line_number":63,"context_line":"\t+----------------+-------------------------------------------------+"}],"source_content_type":"text/x-rst","patch_set":29,"id":"a6366cab_75f4910e","line":60,"range":{"start_line":60,"start_character":58,"end_line":60,"end_character":66},"updated":"2021-02-22 12:07:24.000000000","message":"please only use example.com. in examples to avoid collisions with real existing domains.\n\nalso likely rather use spaces to indent than tabs. and avoid trailing whitespace.","commit_id":"f42f97308237b44e918d339ce186a3c9da416030"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"31ed45d89df9f458287270cc9ea65785de6be06c","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"  .. code-block:: console"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"\t$ openstack zone create 0511951bd56e4a0aac27ac65e00bddd0.blah.com. --email admin@0511951bd56e4a0aac27ac65e00bddd0.blah.com  "},{"line_number":61,"context_line":"\t+----------------+-------------------------------------------------+"},{"line_number":62,"context_line":"\t| Field          | Value                                           |"},{"line_number":63,"context_line":"\t+----------------+-------------------------------------------------+"}],"source_content_type":"text/x-rst","patch_set":29,"id":"2598d9f8_d7f66020","line":60,"range":{"start_line":60,"start_character":58,"end_line":60,"end_character":66},"in_reply_to":"a6366cab_75f4910e","updated":"2021-03-09 14:59:30.000000000","message":"Done","commit_id":"f42f97308237b44e918d339ce186a3c9da416030"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"40161dd8efe1a146bfa2282ac3336a44c91d9458","unresolved":true,"context_lines":[{"line_number":68,"context_line":"\t| email          | admin@0511951bd56e4a0aac27ac65e00bddd0.demo.net |"},{"line_number":69,"context_line":"\t| id             | c14a8edc-d0b9-4cdd-93f1-1ab5a5f5ff9d            |"},{"line_number":70,"context_line":"\t| masters        |                                                 |"},{"line_number":71,"context_line":"\t| name           | 0511951bd56e4a0aac27ac65e00bddd0.demo.net.      |"},{"line_number":72,"context_line":"\t| pool_id        | 794ccc2c-d751-44fe-b57f-8894c9f5c842            |"},{"line_number":73,"context_line":"\t| project_id     | 0511951bd56e4a0aac27ac65e00bddd0                |"},{"line_number":74,"context_line":"\t| serial         | 1613746085                                      |"}],"source_content_type":"text/x-rst","patch_set":29,"id":"dddf4048_ff4cf702","line":71,"range":{"start_line":71,"start_character":20,"end_line":71,"end_character":62},"updated":"2021-02-22 12:07:24.000000000","message":"This doesn\u0027t match the command above and thus is confusing.","commit_id":"f42f97308237b44e918d339ce186a3c9da416030"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"31ed45d89df9f458287270cc9ea65785de6be06c","unresolved":false,"context_lines":[{"line_number":68,"context_line":"\t| email          | admin@0511951bd56e4a0aac27ac65e00bddd0.demo.net |"},{"line_number":69,"context_line":"\t| id             | c14a8edc-d0b9-4cdd-93f1-1ab5a5f5ff9d            |"},{"line_number":70,"context_line":"\t| masters        |                                                 |"},{"line_number":71,"context_line":"\t| name           | 0511951bd56e4a0aac27ac65e00bddd0.demo.net.      |"},{"line_number":72,"context_line":"\t| pool_id        | 794ccc2c-d751-44fe-b57f-8894c9f5c842            |"},{"line_number":73,"context_line":"\t| project_id     | 0511951bd56e4a0aac27ac65e00bddd0                |"},{"line_number":74,"context_line":"\t| serial         | 1613746085                                      |"}],"source_content_type":"text/x-rst","patch_set":29,"id":"5859fce7_5fa5ad32","line":71,"range":{"start_line":71,"start_character":20,"end_line":71,"end_character":62},"in_reply_to":"dddf4048_ff4cf702","updated":"2021-03-09 14:59:30.000000000","message":"Done","commit_id":"f42f97308237b44e918d339ce186a3c9da416030"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7d2b06949feca3eb483cacf0ce917782d60de833","unresolved":true,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"  .. code-block:: console"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"\t$ openstack zone create 0511951bd56e4a0aac27ac65e00bddd0.example.com. --email admin@0511951bd56e4a0aac27ac65e00bddd0.example.com"},{"line_number":61,"context_line":"\t+----------------+----------------------------------------------------+"},{"line_number":62,"context_line":"\t| Field          | Value                                              |"},{"line_number":63,"context_line":"\t+----------------+----------------------------------------------------+"}],"source_content_type":"text/x-rst","patch_set":30,"id":"ff3caa2b_9cbc0128","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":1},"updated":"2021-03-10 16:01:31.000000000","message":"could be better to use spaces, no tabs","commit_id":"8b66c52af11309958006fe9024760803016ec535"}],"neutron/extensions/dns_integration_domain_keywords.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"86d4b7bb35067c0a14d2f269441cdfb23bea22ca","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# All rights reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":27,"id":"3e7f071d_07be7248","line":1,"updated":"2021-02-02 11:49:05.000000000","message":"Does this line make sense? It somehow conflicts with the Apache license below IMO.","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3973897b31ca55abec9146561f75bf2f6556a8ba","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# All rights reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":27,"id":"c677f9e1_275fd01f","line":1,"in_reply_to":"3e7f071d_07be7248","updated":"2021-02-03 16:52:39.000000000","message":"Same reply applies to Apache: https://opensource.stackexchange.com/questions/2121/mit-license-and-all-rights-reserved\n\n\"\"\"\nIt\u0027s correct but unnecessary. It\u0027s there for clarity.\n\nWhen you do some work, the default copyright position is all rights reserved. Nobody can do anything with your work without your express permission, or a license to do so.\n\"\"\"","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"45ada401e1b31090082de418a8d0e8d3e83761e8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All rights reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":27,"id":"711f29e6_1cd58f4d","line":1,"in_reply_to":"c677f9e1_275fd01f","updated":"2021-02-05 16:09:24.000000000","message":"Removed","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"86d4b7bb35067c0a14d2f269441cdfb23bea22ca","unresolved":true,"context_lines":[{"line_number":16,"context_line":"from neutron_lib.api import extensions"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class Dns_integration_domain_keywords(extensions.APIExtensionDescriptor):"},{"line_number":20,"context_line":"    \"\"\"Extension class supporting configuration of dns domain with keywords.\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    api_definition \u003d apidef"}],"source_content_type":"text/x-python","patch_set":27,"id":"c9551cea_0c9dd3e5","line":19,"range":{"start_line":19,"start_character":6,"end_line":19,"end_character":37},"updated":"2021-02-02 11:49:05.000000000","message":"CamelCase?","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"45ada401e1b31090082de418a8d0e8d3e83761e8","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from neutron_lib.api import extensions"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class Dns_integration_domain_keywords(extensions.APIExtensionDescriptor):"},{"line_number":20,"context_line":"    \"\"\"Extension class supporting configuration of dns domain with keywords.\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    api_definition \u003d apidef"}],"source_content_type":"text/x-python","patch_set":27,"id":"60e40eeb_aad00ce5","line":19,"range":{"start_line":19,"start_character":6,"end_line":19,"end_character":37},"in_reply_to":"64a5cca6_89a284c8","updated":"2021-02-05 16:09:24.000000000","message":"Exactly, it\u0027s convention which we need to have here","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3973897b31ca55abec9146561f75bf2f6556a8ba","unresolved":true,"context_lines":[{"line_number":16,"context_line":"from neutron_lib.api import extensions"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class Dns_integration_domain_keywords(extensions.APIExtensionDescriptor):"},{"line_number":20,"context_line":"    \"\"\"Extension class supporting configuration of dns domain with keywords.\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    api_definition \u003d apidef"}],"source_content_type":"text/x-python","patch_set":27,"id":"64a5cca6_89a284c8","line":19,"range":{"start_line":19,"start_character":6,"end_line":19,"end_character":37},"in_reply_to":"c9551cea_0c9dd3e5","updated":"2021-02-03 16:52:39.000000000","message":"Not in the extension classes. The extension manager will retrieve the \"neutron/extensions\" file names and will capitalize the name [1]. The class to load will have only the first capital letter.\n\n[1]https://github.com/openstack/neutron/blob/cbd72e2f4846ec64ff6e6ef24099a8e90ddebf31/neutron/api/extensions.py#L450","commit_id":"507dff3043098e697abfcd31318232197590124a"}],"neutron/plugins/ml2/extensions/dns_domain_keywords.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"28282db4e136c9f3aef5bdf2877ee5d87c4548dc","unresolved":true,"context_lines":[{"line_number":45,"context_line":"                            \"context and it will not be replaced in the \""},{"line_number":46,"context_line":"                            \"domain %s\", keyword, domain)"},{"line_number":47,"context_line":"        return domain"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _create_port_dns_record(self, plugin_context, request_data, db_data,"},{"line_number":50,"context_line":"                                network, subnets, dns_name):"},{"line_number":51,"context_line":"        external_dns_domain \u003d (request_data.get(dns_apidef.DNSDOMAIN) or"},{"line_number":52,"context_line":"                               network.get(dns_apidef.DNSDOMAIN))"},{"line_number":53,"context_line":"        flag \u003d self.external_dns_not_needed(plugin_context, network, subnets)"},{"line_number":54,"context_line":"        current_dns_name, current_dns_domain \u003d ("},{"line_number":55,"context_line":"            self._calculate_current_dns_name_and_domain("},{"line_number":56,"context_line":"                dns_name, external_dns_domain, flag))"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        current_dns_domain \u003d self._parse_dns_domain("},{"line_number":59,"context_line":"            plugin_context, current_dns_domain)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        dns_data_obj \u003d port_obj.PortDNS("},{"line_number":62,"context_line":"            plugin_context,"},{"line_number":63,"context_line":"            port_id\u003ddb_data[\u0027id\u0027],"},{"line_number":64,"context_line":"            current_dns_name\u003dcurrent_dns_name,"},{"line_number":65,"context_line":"            current_dns_domain\u003dcurrent_dns_domain,"},{"line_number":66,"context_line":"            previous_dns_name\u003d\u0027\u0027,"},{"line_number":67,"context_line":"            previous_dns_domain\u003d\u0027\u0027,"},{"line_number":68,"context_line":"            dns_name\u003ddns_name,"},{"line_number":69,"context_line":"            dns_domain\u003drequest_data.get(dns_apidef.DNSDOMAIN, \u0027\u0027))"},{"line_number":70,"context_line":"        dns_data_obj.create()"},{"line_number":71,"context_line":"        return dns_data_obj"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _update_dns_db(self, plugin_context, request_data, db_data, network,"},{"line_number":74,"context_line":"                       subnets):"}],"source_content_type":"text/x-python","patch_set":26,"id":"011baaf3_5be909fe","line":71,"range":{"start_line":48,"start_character":0,"end_line":71,"end_character":27},"updated":"2021-01-07 14:24:33.000000000","message":"Instead of overwriting this method from \"DNSExtensionDriver\", \"_calculate_current_dns_name_and_domain\" can be instead, returning \"current_dns_domain\" from \"_parse_dns_domain\"","commit_id":"67446fa64748674bd0ca659f1e5933a923e97475"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9d66c73b7779a4768aafaed35ff545764d9751b9","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                            \"context and it will not be replaced in the \""},{"line_number":46,"context_line":"                            \"domain %s\", keyword, domain)"},{"line_number":47,"context_line":"        return domain"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _create_port_dns_record(self, plugin_context, request_data, db_data,"},{"line_number":50,"context_line":"                                network, subnets, dns_name):"},{"line_number":51,"context_line":"        external_dns_domain \u003d (request_data.get(dns_apidef.DNSDOMAIN) or"},{"line_number":52,"context_line":"                               network.get(dns_apidef.DNSDOMAIN))"},{"line_number":53,"context_line":"        flag \u003d self.external_dns_not_needed(plugin_context, network, subnets)"},{"line_number":54,"context_line":"        current_dns_name, current_dns_domain \u003d ("},{"line_number":55,"context_line":"            self._calculate_current_dns_name_and_domain("},{"line_number":56,"context_line":"                dns_name, external_dns_domain, flag))"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        current_dns_domain \u003d self._parse_dns_domain("},{"line_number":59,"context_line":"            plugin_context, current_dns_domain)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        dns_data_obj \u003d port_obj.PortDNS("},{"line_number":62,"context_line":"            plugin_context,"},{"line_number":63,"context_line":"            port_id\u003ddb_data[\u0027id\u0027],"},{"line_number":64,"context_line":"            current_dns_name\u003dcurrent_dns_name,"},{"line_number":65,"context_line":"            current_dns_domain\u003dcurrent_dns_domain,"},{"line_number":66,"context_line":"            previous_dns_name\u003d\u0027\u0027,"},{"line_number":67,"context_line":"            previous_dns_domain\u003d\u0027\u0027,"},{"line_number":68,"context_line":"            dns_name\u003ddns_name,"},{"line_number":69,"context_line":"            dns_domain\u003drequest_data.get(dns_apidef.DNSDOMAIN, \u0027\u0027))"},{"line_number":70,"context_line":"        dns_data_obj.create()"},{"line_number":71,"context_line":"        return dns_data_obj"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _update_dns_db(self, plugin_context, request_data, db_data, network,"},{"line_number":74,"context_line":"                       subnets):"}],"source_content_type":"text/x-python","patch_set":26,"id":"2431bdda_5616babb","line":71,"range":{"start_line":48,"start_character":0,"end_line":71,"end_character":27},"in_reply_to":"011baaf3_5be909fe","updated":"2021-01-19 09:06:37.000000000","message":"Done","commit_id":"67446fa64748674bd0ca659f1e5933a923e97475"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7d2b06949feca3eb483cacf0ce917782d60de833","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                            \"context and it will not be replaced in the \""},{"line_number":46,"context_line":"                            \"domain %s\", keyword, domain)"},{"line_number":47,"context_line":"        return domain"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _create_port_dns_record(self, plugin_context, request_data, db_data,"},{"line_number":50,"context_line":"                                network, subnets, dns_name):"},{"line_number":51,"context_line":"        external_dns_domain \u003d (request_data.get(dns_apidef.DNSDOMAIN) or"},{"line_number":52,"context_line":"                               network.get(dns_apidef.DNSDOMAIN))"},{"line_number":53,"context_line":"        flag \u003d self.external_dns_not_needed(plugin_context, network, subnets)"},{"line_number":54,"context_line":"        current_dns_name, current_dns_domain \u003d ("},{"line_number":55,"context_line":"            self._calculate_current_dns_name_and_domain("},{"line_number":56,"context_line":"                dns_name, external_dns_domain, flag))"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        current_dns_domain \u003d self._parse_dns_domain("},{"line_number":59,"context_line":"            plugin_context, current_dns_domain)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        dns_data_obj \u003d port_obj.PortDNS("},{"line_number":62,"context_line":"            plugin_context,"},{"line_number":63,"context_line":"            port_id\u003ddb_data[\u0027id\u0027],"},{"line_number":64,"context_line":"            current_dns_name\u003dcurrent_dns_name,"},{"line_number":65,"context_line":"            current_dns_domain\u003dcurrent_dns_domain,"},{"line_number":66,"context_line":"            previous_dns_name\u003d\u0027\u0027,"},{"line_number":67,"context_line":"            previous_dns_domain\u003d\u0027\u0027,"},{"line_number":68,"context_line":"            dns_name\u003ddns_name,"},{"line_number":69,"context_line":"            dns_domain\u003drequest_data.get(dns_apidef.DNSDOMAIN, \u0027\u0027))"},{"line_number":70,"context_line":"        dns_data_obj.create()"},{"line_number":71,"context_line":"        return dns_data_obj"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _update_dns_db(self, plugin_context, request_data, db_data, network,"},{"line_number":74,"context_line":"                       subnets):"}],"source_content_type":"text/x-python","patch_set":26,"id":"6454df71_5fe4df0e","line":71,"range":{"start_line":48,"start_character":0,"end_line":71,"end_character":27},"in_reply_to":"2431bdda_5616babb","updated":"2021-03-10 16:01:31.000000000","message":"Good stuff!","commit_id":"67446fa64748674bd0ca659f1e5933a923e97475"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"28282db4e136c9f3aef5bdf2877ee5d87c4548dc","unresolved":true,"context_lines":[{"line_number":70,"context_line":"        dns_data_obj.create()"},{"line_number":71,"context_line":"        return dns_data_obj"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _update_dns_db(self, plugin_context, request_data, db_data, network,"},{"line_number":74,"context_line":"                       subnets):"},{"line_number":75,"context_line":"        dns_name \u003d request_data.get(dns_apidef.DNSNAME)"},{"line_number":76,"context_line":"        dns_domain \u003d request_data.get(dns_apidef.DNSDOMAIN)"},{"line_number":77,"context_line":"        has_fixed_ips \u003d \u0027fixed_ips\u0027 in request_data"},{"line_number":78,"context_line":"        dns_data_db \u003d port_obj.PortDNS.get_object("},{"line_number":79,"context_line":"            plugin_context,"},{"line_number":80,"context_line":"            port_id\u003ddb_data[\u0027id\u0027])"},{"line_number":81,"context_line":"        if dns_data_db:"},{"line_number":82,"context_line":"            is_dns_name_changed \u003d ("},{"line_number":83,"context_line":"                dns_name is not None and"},{"line_number":84,"context_line":"                dns_data_db[dns_apidef.DNSNAME] !\u003d dns_name)"},{"line_number":85,"context_line":"            is_dns_domain_changed \u003d ("},{"line_number":86,"context_line":"                dns_domain is not None and"},{"line_number":87,"context_line":"                dns_data_db[dns_apidef.DNSDOMAIN] !\u003d dns_domain)"},{"line_number":88,"context_line":"            if (is_dns_name_changed or is_dns_domain_changed or"},{"line_number":89,"context_line":"                    (has_fixed_ips and dns_data_db[\u0027current_dns_name\u0027])):"},{"line_number":90,"context_line":"                dns_data_db \u003d self._populate_previous_external_dns_data("},{"line_number":91,"context_line":"                    dns_data_db)"},{"line_number":92,"context_line":"                dns_data_db \u003d self._populate_current_external_dns_data("},{"line_number":93,"context_line":"                    plugin_context, request_data, network, dns_data_db,"},{"line_number":94,"context_line":"                    dns_name, dns_domain, is_dns_name_changed,"},{"line_number":95,"context_line":"                    is_dns_domain_changed)"},{"line_number":96,"context_line":"            elif not dns_data_db[\u0027current_dns_name\u0027]:"},{"line_number":97,"context_line":"                # If port was removed from external DNS service in previous"},{"line_number":98,"context_line":"                # update, make sure we don\u0027t attempt removal again"},{"line_number":99,"context_line":"                dns_data_db[\u0027previous_dns_name\u0027] \u003d \u0027\u0027"},{"line_number":100,"context_line":"                dns_data_db[\u0027previous_dns_domain\u0027] \u003d \u0027\u0027"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"            dns_data_db.update()"},{"line_number":103,"context_line":"            return dns_data_db"},{"line_number":104,"context_line":"        if dns_name or dns_domain:"},{"line_number":105,"context_line":"            dns_data_db \u003d self._create_port_dns_record("},{"line_number":106,"context_line":"                plugin_context, request_data, db_data, network, subnets,"},{"line_number":107,"context_line":"                dns_name or \u0027\u0027)"},{"line_number":108,"context_line":"        return dns_data_db"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def _populate_current_external_dns_data(self, plugin_context, request_data,"},{"line_number":111,"context_line":"                                            network, dns_data_db, dns_name,"},{"line_number":112,"context_line":"                                            dns_domain, is_dns_name_changed,"}],"source_content_type":"text/x-python","patch_set":26,"id":"10f8b02b_5dd9f47f","line":109,"range":{"start_line":73,"start_character":0,"end_line":109,"end_character":0},"updated":"2021-01-07 14:24:33.000000000","message":"If I\u0027m not wrong, this is the same method as the parent class DNSExtensionDriver._update_dns_db. Do we really need to overwrite it?","commit_id":"67446fa64748674bd0ca659f1e5933a923e97475"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9d66c73b7779a4768aafaed35ff545764d9751b9","unresolved":true,"context_lines":[{"line_number":70,"context_line":"        dns_data_obj.create()"},{"line_number":71,"context_line":"        return dns_data_obj"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _update_dns_db(self, plugin_context, request_data, db_data, network,"},{"line_number":74,"context_line":"                       subnets):"},{"line_number":75,"context_line":"        dns_name \u003d request_data.get(dns_apidef.DNSNAME)"},{"line_number":76,"context_line":"        dns_domain \u003d request_data.get(dns_apidef.DNSDOMAIN)"},{"line_number":77,"context_line":"        has_fixed_ips \u003d \u0027fixed_ips\u0027 in request_data"},{"line_number":78,"context_line":"        dns_data_db \u003d port_obj.PortDNS.get_object("},{"line_number":79,"context_line":"            plugin_context,"},{"line_number":80,"context_line":"            port_id\u003ddb_data[\u0027id\u0027])"},{"line_number":81,"context_line":"        if dns_data_db:"},{"line_number":82,"context_line":"            is_dns_name_changed \u003d ("},{"line_number":83,"context_line":"                dns_name is not None and"},{"line_number":84,"context_line":"                dns_data_db[dns_apidef.DNSNAME] !\u003d dns_name)"},{"line_number":85,"context_line":"            is_dns_domain_changed \u003d ("},{"line_number":86,"context_line":"                dns_domain is not None and"},{"line_number":87,"context_line":"                dns_data_db[dns_apidef.DNSDOMAIN] !\u003d dns_domain)"},{"line_number":88,"context_line":"            if (is_dns_name_changed or is_dns_domain_changed or"},{"line_number":89,"context_line":"                    (has_fixed_ips and dns_data_db[\u0027current_dns_name\u0027])):"},{"line_number":90,"context_line":"                dns_data_db \u003d self._populate_previous_external_dns_data("},{"line_number":91,"context_line":"                    dns_data_db)"},{"line_number":92,"context_line":"                dns_data_db \u003d self._populate_current_external_dns_data("},{"line_number":93,"context_line":"                    plugin_context, request_data, network, dns_data_db,"},{"line_number":94,"context_line":"                    dns_name, dns_domain, is_dns_name_changed,"},{"line_number":95,"context_line":"                    is_dns_domain_changed)"},{"line_number":96,"context_line":"            elif not dns_data_db[\u0027current_dns_name\u0027]:"},{"line_number":97,"context_line":"                # If port was removed from external DNS service in previous"},{"line_number":98,"context_line":"                # update, make sure we don\u0027t attempt removal again"},{"line_number":99,"context_line":"                dns_data_db[\u0027previous_dns_name\u0027] \u003d \u0027\u0027"},{"line_number":100,"context_line":"                dns_data_db[\u0027previous_dns_domain\u0027] \u003d \u0027\u0027"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"            dns_data_db.update()"},{"line_number":103,"context_line":"            return dns_data_db"},{"line_number":104,"context_line":"        if dns_name or dns_domain:"},{"line_number":105,"context_line":"            dns_data_db \u003d self._create_port_dns_record("},{"line_number":106,"context_line":"                plugin_context, request_data, db_data, network, subnets,"},{"line_number":107,"context_line":"                dns_name or \u0027\u0027)"},{"line_number":108,"context_line":"        return dns_data_db"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def _populate_current_external_dns_data(self, plugin_context, request_data,"},{"line_number":111,"context_line":"                                            network, dns_data_db, dns_name,"},{"line_number":112,"context_line":"                                            dns_domain, is_dns_name_changed,"}],"source_content_type":"text/x-python","patch_set":26,"id":"de6c2114_d6b7adf8","line":109,"range":{"start_line":73,"start_character":0,"end_line":109,"end_character":0},"in_reply_to":"10f8b02b_5dd9f47f","updated":"2021-01-19 09:06:37.000000000","message":"nope, removed","commit_id":"67446fa64748674bd0ca659f1e5933a923e97475"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"28282db4e136c9f3aef5bdf2877ee5d87c4548dc","unresolved":true,"context_lines":[{"line_number":108,"context_line":"        return dns_data_db"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def _populate_current_external_dns_data(self, plugin_context, request_data,"},{"line_number":111,"context_line":"                                            network, dns_data_db, dns_name,"},{"line_number":112,"context_line":"                                            dns_domain, is_dns_name_changed,"},{"line_number":113,"context_line":"                                            is_dns_domain_changed):"},{"line_number":114,"context_line":"        if is_dns_name_changed or is_dns_domain_changed:"},{"line_number":115,"context_line":"            if is_dns_name_changed:"},{"line_number":116,"context_line":"                dns_data_db[dns_apidef.DNSNAME] \u003d dns_name"},{"line_number":117,"context_line":"            external_dns_domain \u003d (dns_data_db[dns_apidef.DNSDOMAIN] or"},{"line_number":118,"context_line":"                                   network.get(dns_apidef.DNSDOMAIN))"},{"line_number":119,"context_line":"            external_dns_domain \u003d self._parse_dns_domain("},{"line_number":120,"context_line":"                plugin_context, external_dns_domain)"},{"line_number":121,"context_line":"            if is_dns_domain_changed:"},{"line_number":122,"context_line":"                dns_data_db[dns_apidef.DNSDOMAIN] \u003d dns_domain"},{"line_number":123,"context_line":"                external_dns_domain \u003d request_data[dns_apidef.DNSDOMAIN]"},{"line_number":124,"context_line":"                if not external_dns_domain:"},{"line_number":125,"context_line":"                    external_dns_domain \u003d network.get(dns_apidef.DNSDOMAIN)"},{"line_number":126,"context_line":"            dns_data_db[\u0027current_dns_name\u0027] \u003d dns_data_db[dns_apidef.DNSNAME]"},{"line_number":127,"context_line":"            dns_data_db[\u0027current_dns_domain\u0027] \u003d external_dns_domain"},{"line_number":128,"context_line":"            if not (dns_data_db[\u0027current_dns_name\u0027] and"},{"line_number":129,"context_line":"                    dns_data_db[\u0027current_dns_domain\u0027]):"},{"line_number":130,"context_line":"                dns_data_db[\u0027current_dns_name\u0027] \u003d \u0027\u0027"},{"line_number":131,"context_line":"                dns_data_db[\u0027current_dns_domain\u0027] \u003d \u0027\u0027"},{"line_number":132,"context_line":"        return dns_data_db"}],"source_content_type":"text/x-python","patch_set":26,"id":"f0978138_36e82000","line":132,"range":{"start_line":111,"start_character":2,"end_line":132,"end_character":26},"updated":"2021-01-07 14:24:33.000000000","message":"And almost the same here: \"external_dns_domain\" can be retrieved in the parent class from a method that returns the input (\"_parse_dns_domain\" can return the input value). And in this class we have the upper implementation.","commit_id":"67446fa64748674bd0ca659f1e5933a923e97475"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9d66c73b7779a4768aafaed35ff545764d9751b9","unresolved":true,"context_lines":[{"line_number":108,"context_line":"        return dns_data_db"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def _populate_current_external_dns_data(self, plugin_context, request_data,"},{"line_number":111,"context_line":"                                            network, dns_data_db, dns_name,"},{"line_number":112,"context_line":"                                            dns_domain, is_dns_name_changed,"},{"line_number":113,"context_line":"                                            is_dns_domain_changed):"},{"line_number":114,"context_line":"        if is_dns_name_changed or is_dns_domain_changed:"},{"line_number":115,"context_line":"            if is_dns_name_changed:"},{"line_number":116,"context_line":"                dns_data_db[dns_apidef.DNSNAME] \u003d dns_name"},{"line_number":117,"context_line":"            external_dns_domain \u003d (dns_data_db[dns_apidef.DNSDOMAIN] or"},{"line_number":118,"context_line":"                                   network.get(dns_apidef.DNSDOMAIN))"},{"line_number":119,"context_line":"            external_dns_domain \u003d self._parse_dns_domain("},{"line_number":120,"context_line":"                plugin_context, external_dns_domain)"},{"line_number":121,"context_line":"            if is_dns_domain_changed:"},{"line_number":122,"context_line":"                dns_data_db[dns_apidef.DNSDOMAIN] \u003d dns_domain"},{"line_number":123,"context_line":"                external_dns_domain \u003d request_data[dns_apidef.DNSDOMAIN]"},{"line_number":124,"context_line":"                if not external_dns_domain:"},{"line_number":125,"context_line":"                    external_dns_domain \u003d network.get(dns_apidef.DNSDOMAIN)"},{"line_number":126,"context_line":"            dns_data_db[\u0027current_dns_name\u0027] \u003d dns_data_db[dns_apidef.DNSNAME]"},{"line_number":127,"context_line":"            dns_data_db[\u0027current_dns_domain\u0027] \u003d external_dns_domain"},{"line_number":128,"context_line":"            if not (dns_data_db[\u0027current_dns_name\u0027] and"},{"line_number":129,"context_line":"                    dns_data_db[\u0027current_dns_domain\u0027]):"},{"line_number":130,"context_line":"                dns_data_db[\u0027current_dns_name\u0027] \u003d \u0027\u0027"},{"line_number":131,"context_line":"                dns_data_db[\u0027current_dns_domain\u0027] \u003d \u0027\u0027"},{"line_number":132,"context_line":"        return dns_data_db"}],"source_content_type":"text/x-python","patch_set":26,"id":"dc11180e_3bc2e681","line":132,"range":{"start_line":111,"start_character":2,"end_line":132,"end_character":26},"in_reply_to":"f0978138_36e82000","updated":"2021-01-19 09:06:37.000000000","message":"good idea. Done","commit_id":"67446fa64748674bd0ca659f1e5933a923e97475"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"86d4b7bb35067c0a14d2f269441cdfb23bea22ca","unresolved":true,"context_lines":[{"line_number":40,"context_line":"            if keyword_value is not None:"},{"line_number":41,"context_line":"                domain \u003d domain.replace(\u0027\u003c\u0027 + keyword + \u0027\u003e\u0027, keyword_value)"},{"line_number":42,"context_line":"            else:"},{"line_number":43,"context_line":"                LOG.warning(\"Keyword \u003c%s\u003e don\u0027t have value in current \""},{"line_number":44,"context_line":"                            \"context and it will not be replaced in the \""},{"line_number":45,"context_line":"                            \"domain %s\", keyword, domain)"},{"line_number":46,"context_line":"        return domain"}],"source_content_type":"text/x-python","patch_set":27,"id":"26f1f4ad_8f5d388a","line":43,"range":{"start_line":43,"start_character":42,"end_line":43,"end_character":47},"updated":"2021-02-02 11:49:05.000000000","message":"\"does not\" or maybe \"doesn\u0027t\", but I prefer the first option","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"45ada401e1b31090082de418a8d0e8d3e83761e8","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            if keyword_value is not None:"},{"line_number":41,"context_line":"                domain \u003d domain.replace(\u0027\u003c\u0027 + keyword + \u0027\u003e\u0027, keyword_value)"},{"line_number":42,"context_line":"            else:"},{"line_number":43,"context_line":"                LOG.warning(\"Keyword \u003c%s\u003e don\u0027t have value in current \""},{"line_number":44,"context_line":"                            \"context and it will not be replaced in the \""},{"line_number":45,"context_line":"                            \"domain %s\", keyword, domain)"},{"line_number":46,"context_line":"        return domain"}],"source_content_type":"text/x-python","patch_set":27,"id":"c46451fd_8ceac499","line":43,"range":{"start_line":43,"start_character":42,"end_line":43,"end_character":47},"in_reply_to":"26f1f4ad_8f5d388a","updated":"2021-02-05 16:09:24.000000000","message":"Done","commit_id":"507dff3043098e697abfcd31318232197590124a"}],"neutron/plugins/ml2/extensions/dns_integration.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"057bb0055129067ba811fbeb7e3fcc95c65d2540","unresolved":false,"context_lines":[{"line_number":336,"context_line":"        for keyword in lib_const.DNS_LABEL_KEYWORDS:"},{"line_number":337,"context_line":"            domain \u003d domain.replace("},{"line_number":338,"context_line":"                     \u0027\u003c\u0027 + keyword + \u0027\u003e\u0027,"},{"line_number":339,"context_line":"                     getattr(context, keyword))"},{"line_number":340,"context_line":"        return domain"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_93b08ddf","line":339,"updated":"2019-10-25 12:29:46.000000000","message":"What is happening if one of those DNS_LABEL_KEYWORDS are not in the context?","commit_id":"0eba2b5974133355f20662a527e4002eb34df0ea"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3b1fd06a517d6520a34f7e869f094a7b692e6d27","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            if getattr(context, keyword, None) is not None:"},{"line_number":51,"context_line":"                domain \u003d domain.replace("},{"line_number":52,"context_line":"                    \u0027\u003c\u0027 + keyword + \u0027\u003e\u0027,"},{"line_number":53,"context_line":"                    getattr(context, keyword))"},{"line_number":54,"context_line":"        return domain"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def process_create_network(self, plugin_context, request_data, db_data):"}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_74f48a5b","line":53,"updated":"2020-08-26 14:20:50.000000000","message":"What if the context.keyword is None but the DNS register has it? The result will be something like:\n\u003cuser_name\u003e.mydomain.\n\nIMO, we should at least write a warning message (or maybe raise an exception).","commit_id":"dcaa613ed2129dc4c6bd0d595fdec015f7a16a01"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2aa227c11b55d6819384a8ab6b6a903b6e06e407","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            if getattr(context, keyword, None) is not None:"},{"line_number":51,"context_line":"                domain \u003d domain.replace("},{"line_number":52,"context_line":"                    \u0027\u003c\u0027 + keyword + \u0027\u003e\u0027,"},{"line_number":53,"context_line":"                    getattr(context, keyword))"},{"line_number":54,"context_line":"        return domain"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def process_create_network(self, plugin_context, request_data, db_data):"}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_d694558f","line":53,"in_reply_to":"9f560f44_74f48a5b","updated":"2020-08-28 13:01:56.000000000","message":"Lets log warning for now. I hope it will be enough.","commit_id":"dcaa613ed2129dc4c6bd0d595fdec015f7a16a01"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7d2b06949feca3eb483cacf0ce917782d60de833","unresolved":true,"context_lines":[{"line_number":192,"context_line":"            external_dns_domain \u003d (dns_data_db[dns_apidef.DNSDOMAIN] or"},{"line_number":193,"context_line":"                                   network.get(dns_apidef.DNSDOMAIN))"},{"line_number":194,"context_line":"            external_dns_domain \u003d self._parse_dns_domain("},{"line_number":195,"context_line":"                plugin_context, external_dns_domain)"},{"line_number":196,"context_line":"            if is_dns_domain_changed:"},{"line_number":197,"context_line":"                dns_data_db[dns_apidef.DNSDOMAIN] \u003d dns_domain"},{"line_number":198,"context_line":"                external_dns_domain \u003d request_data[dns_apidef.DNSDOMAIN]"}],"source_content_type":"text/x-python","patch_set":30,"id":"986f0f23_16599001","line":195,"updated":"2021-03-10 16:01:31.000000000","message":"+1","commit_id":"8b66c52af11309958006fe9024760803016ec535"}],"neutron/plugins/ml2/extensions/subnet_dns_publish_fixed_ip.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"91ca7a3cf75d6dc93ff1751edfe79bde7371b517","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    _supported_extension_aliases \u003d [dns_apidef.ALIAS,"},{"line_number":30,"context_line":"                                    ports_apidef.ALIAS,"},{"line_number":31,"context_line":"                                    sn_dns.ALIAS,"},{"line_number":32,"context_line":"                                    dns_domain_keywords.ALIAS]"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def initialize(self):"},{"line_number":35,"context_line":"        LOG.info(\"SubnetDNSPublishFixedIPExtensionDriver initialization \""}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_5976b60e","line":32,"updated":"2020-08-28 13:17:31.000000000","message":"I still don\u0027t think that the new extension should be added here, it should be the other way round.","commit_id":"5a9215fb706e1d7c75228d1d1717915d013210d6"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"93ec6e42bff48df80dbce67f0d97b832ebccbdb0","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    _supported_extension_aliases \u003d [dns_apidef.ALIAS,"},{"line_number":30,"context_line":"                                    ports_apidef.ALIAS,"},{"line_number":31,"context_line":"                                    sn_dns.ALIAS,"},{"line_number":32,"context_line":"                                    dns_domain_keywords.ALIAS]"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def initialize(self):"},{"line_number":35,"context_line":"        LOG.info(\"SubnetDNSPublishFixedIPExtensionDriver initialization \""}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_56af8e2a","line":32,"in_reply_to":"9f560f44_0f8cf07d","updated":"2020-08-31 07:55:24.000000000","message":"I don\u0027t think it is like You are saying. This new feature has got own API extension (dns_domain_keywords) so it is discoverable.\nThis \"extension\" here is ML2 plugin extension which implements this new API.\nWe were doing things like that in the past when we were adding e.g. new API extensions to the list of extensions supported by ML2 plugin, QoS service plugin and probably others.","commit_id":"5a9215fb706e1d7c75228d1d1717915d013210d6"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"27dc656451a9483b16765ddae7c45a9c39bfd627","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    _supported_extension_aliases \u003d [dns_apidef.ALIAS,"},{"line_number":30,"context_line":"                                    ports_apidef.ALIAS,"},{"line_number":31,"context_line":"                                    sn_dns.ALIAS,"},{"line_number":32,"context_line":"                                    dns_domain_keywords.ALIAS]"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def initialize(self):"},{"line_number":35,"context_line":"        LOG.info(\"SubnetDNSPublishFixedIPExtensionDriver initialization \""}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_0f8cf07d","line":32,"in_reply_to":"9f560f44_542afd7d","updated":"2020-08-28 14:26:34.000000000","message":"As I mentioned in my comments on the previous PS, this adds the dns_domain_keywords extension below the subnet_dns_publish_fixed_ip extension, so this patch implicitly changes the behaviour of this existing extension, so this is modifying an existing API, which should not happen. IMO the correct approach would be to do it the other way around, put the new extension on top and have it include subnet_dns_publish_fixed_ip.","commit_id":"5a9215fb706e1d7c75228d1d1717915d013210d6"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2beb41651600a42734095e62f3e986f315b5ffbb","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    _supported_extension_aliases \u003d [dns_apidef.ALIAS,"},{"line_number":30,"context_line":"                                    ports_apidef.ALIAS,"},{"line_number":31,"context_line":"                                    sn_dns.ALIAS,"},{"line_number":32,"context_line":"                                    dns_domain_keywords.ALIAS]"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def initialize(self):"},{"line_number":35,"context_line":"        LOG.info(\"SubnetDNSPublishFixedIPExtensionDriver initialization \""}],"source_content_type":"text/x-python","patch_set":21,"id":"0891c5c9_34a37128","line":32,"in_reply_to":"9f560f44_56af8e2a","updated":"2021-01-12 13:49:24.000000000","message":"Ok. I added new ML2 extension for that. Please let me know if that would work for You.","commit_id":"5a9215fb706e1d7c75228d1d1717915d013210d6"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"8950803bc4750c2a0e6e482a7ad3ce272088ea04","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    _supported_extension_aliases \u003d [dns_apidef.ALIAS,"},{"line_number":30,"context_line":"                                    ports_apidef.ALIAS,"},{"line_number":31,"context_line":"                                    sn_dns.ALIAS,"},{"line_number":32,"context_line":"                                    dns_domain_keywords.ALIAS]"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def initialize(self):"},{"line_number":35,"context_line":"        LOG.info(\"SubnetDNSPublishFixedIPExtensionDriver initialization \""}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_542afd7d","line":32,"in_reply_to":"9f560f44_5976b60e","updated":"2020-08-28 13:33:49.000000000","message":"sorry, can You explain it a bit more?","commit_id":"5a9215fb706e1d7c75228d1d1717915d013210d6"}],"neutron/tests/unit/plugins/ml2/extensions/test_dns_integration.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":45,"context_line":"V6UUID \u003d \u0027v6_uuid\u0027"},{"line_number":46,"context_line":"PROJECT_ID \u003d \"some-project-id\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"@mock.patch("},{"line_number":49,"context_line":"    \u0027neutron.services.externaldns.drivers.designate.driver.get_clients\u0027,"},{"line_number":50,"context_line":"    **mock_config)"},{"line_number":51,"context_line":"class DNSIntegrationTestCase(test_plugin.Ml2PluginV2TestCase):"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_08240f0c","line":48,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":274,"context_line":"            (\"\u003cproject_id\u003e.\u003cproject_name\u003e.\u003cuser_id\u003e.\u003cuser_name\u003e.domain\","},{"line_number":275,"context_line":"             \"%s.%s.%s.%s.domain\" % (context.project_id, context.project_name,"},{"line_number":276,"context_line":"                                     context.user_id, context.user_name)),"},{"line_number":277,"context_line":"             (\"\u003cproject_id\u003e.domain\","},{"line_number":278,"context_line":"              \"%s.domain\" % context.project_id),"},{"line_number":279,"context_line":"             (\"\u003cproject_name\u003e.domain\","},{"line_number":280,"context_line":"              \"%s.domain\" % context.project_name),"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_681f8bb6","line":277,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E131 continuation line unaligned for hanging indent","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":665,"context_line":"        self.assertEqual(200, res.status_int)"},{"line_number":666,"context_line":"        port \u003d self.deserialize(self.fmt, res)[\u0027port\u0027]"},{"line_number":667,"context_line":"        admin_ctx \u003d context.get_admin_context()"},{"line_number":668,"context_line":"        dns_data_db \u003d port_obj.PortDNS.get_object(admin_ctx, port_id\u003dport[\u0027id\u0027])"},{"line_number":669,"context_line":"        return port, dns_data_db"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"   #def _verify_port_dns(self, port, dns_data_db, dns_name\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_481a87c5","line":668,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":668,"context_line":"        dns_data_db \u003d port_obj.PortDNS.get_object(admin_ctx, port_id\u003dport[\u0027id\u0027])"},{"line_number":669,"context_line":"        return port, dns_data_db"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"   #def _verify_port_dns(self, port, dns_data_db, dns_name\u003dTrue,"},{"line_number":672,"context_line":"   #                     dns_domain\u003dTrue, ptr_zones\u003dTrue, delete_records\u003dFalse,"},{"line_number":673,"context_line":"   #                     provider_net\u003dTrue, dns_driver\u003dTrue, original_ips\u003dNone,"},{"line_number":674,"context_line":"   #                     current_dns_name\u003dDNSNAME, previous_dns_name\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_a87a43ed","line":671,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":668,"context_line":"        dns_data_db \u003d port_obj.PortDNS.get_object(admin_ctx, port_id\u003dport[\u0027id\u0027])"},{"line_number":669,"context_line":"        return port, dns_data_db"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"   #def _verify_port_dns(self, port, dns_data_db, dns_name\u003dTrue,"},{"line_number":672,"context_line":"   #                     dns_domain\u003dTrue, ptr_zones\u003dTrue, delete_records\u003dFalse,"},{"line_number":673,"context_line":"   #                     provider_net\u003dTrue, dns_driver\u003dTrue, original_ips\u003dNone,"},{"line_number":674,"context_line":"   #                     current_dns_name\u003dDNSNAME, previous_dns_name\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_887dbfe8","line":671,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":669,"context_line":"        return port, dns_data_db"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"   #def _verify_port_dns(self, port, dns_data_db, dns_name\u003dTrue,"},{"line_number":672,"context_line":"   #                     dns_domain\u003dTrue, ptr_zones\u003dTrue, delete_records\u003dFalse,"},{"line_number":673,"context_line":"   #                     provider_net\u003dTrue, dns_driver\u003dTrue, original_ips\u003dNone,"},{"line_number":674,"context_line":"   #                     current_dns_name\u003dDNSNAME, previous_dns_name\u003d\u0027\u0027,"},{"line_number":675,"context_line":"   #                     dns_domain_port\u003dFalse, current_dns_domain\u003dNone,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_e880bbc1","line":672,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":670,"context_line":""},{"line_number":671,"context_line":"   #def _verify_port_dns(self, port, dns_data_db, dns_name\u003dTrue,"},{"line_number":672,"context_line":"   #                     dns_domain\u003dTrue, ptr_zones\u003dTrue, delete_records\u003dFalse,"},{"line_number":673,"context_line":"   #                     provider_net\u003dTrue, dns_driver\u003dTrue, original_ips\u003dNone,"},{"line_number":674,"context_line":"   #                     current_dns_name\u003dDNSNAME, previous_dns_name\u003d\u0027\u0027,"},{"line_number":675,"context_line":"   #                     dns_domain_port\u003dFalse, current_dns_domain\u003dNone,"},{"line_number":676,"context_line":"   #                     previous_dns_domain\u003dNone):"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_c88337ca","line":673,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":671,"context_line":"   #def _verify_port_dns(self, port, dns_data_db, dns_name\u003dTrue,"},{"line_number":672,"context_line":"   #                     dns_domain\u003dTrue, ptr_zones\u003dTrue, delete_records\u003dFalse,"},{"line_number":673,"context_line":"   #                     provider_net\u003dTrue, dns_driver\u003dTrue, original_ips\u003dNone,"},{"line_number":674,"context_line":"   #                     current_dns_name\u003dDNSNAME, previous_dns_name\u003d\u0027\u0027,"},{"line_number":675,"context_line":"   #                     dns_domain_port\u003dFalse, current_dns_domain\u003dNone,"},{"line_number":676,"context_line":"   #                     previous_dns_domain\u003dNone):"},{"line_number":677,"context_line":"   #    current_dns_domain \u003d current_dns_domain or \"%s.%s\" % (PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_286e332e","line":674,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":672,"context_line":"   #                     dns_domain\u003dTrue, ptr_zones\u003dTrue, delete_records\u003dFalse,"},{"line_number":673,"context_line":"   #                     provider_net\u003dTrue, dns_driver\u003dTrue, original_ips\u003dNone,"},{"line_number":674,"context_line":"   #                     current_dns_name\u003dDNSNAME, previous_dns_name\u003d\u0027\u0027,"},{"line_number":675,"context_line":"   #                     dns_domain_port\u003dFalse, current_dns_domain\u003dNone,"},{"line_number":676,"context_line":"   #                     previous_dns_domain\u003dNone):"},{"line_number":677,"context_line":"   #    current_dns_domain \u003d current_dns_domain or \"%s.%s\" % (PROJECT_ID,"},{"line_number":678,"context_line":"   #                                                          DNSDOMAIN)"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_0869af23","line":675,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":673,"context_line":"   #                     provider_net\u003dTrue, dns_driver\u003dTrue, original_ips\u003dNone,"},{"line_number":674,"context_line":"   #                     current_dns_name\u003dDNSNAME, previous_dns_name\u003d\u0027\u0027,"},{"line_number":675,"context_line":"   #                     dns_domain_port\u003dFalse, current_dns_domain\u003dNone,"},{"line_number":676,"context_line":"   #                     previous_dns_domain\u003dNone):"},{"line_number":677,"context_line":"   #    current_dns_domain \u003d current_dns_domain or \"%s.%s\" % (PROJECT_ID,"},{"line_number":678,"context_line":"   #                                                          DNSDOMAIN)"},{"line_number":679,"context_line":"   #    previous_dns_domain \u003d previous_dns_domain or \"%s.%s\" % (PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_6874abfe","line":676,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":674,"context_line":"   #                     current_dns_name\u003dDNSNAME, previous_dns_name\u003d\u0027\u0027,"},{"line_number":675,"context_line":"   #                     dns_domain_port\u003dFalse, current_dns_domain\u003dNone,"},{"line_number":676,"context_line":"   #                     previous_dns_domain\u003dNone):"},{"line_number":677,"context_line":"   #    current_dns_domain \u003d current_dns_domain or \"%s.%s\" % (PROJECT_ID,"},{"line_number":678,"context_line":"   #                                                          DNSDOMAIN)"},{"line_number":679,"context_line":"   #    previous_dns_domain \u003d previous_dns_domain or \"%s.%s\" % (PROJECT_ID,"},{"line_number":680,"context_line":"   #                                                            DNSDOMAIN)"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_486f2727","line":677,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":675,"context_line":"   #                     dns_domain_port\u003dFalse, current_dns_domain\u003dNone,"},{"line_number":676,"context_line":"   #                     previous_dns_domain\u003dNone):"},{"line_number":677,"context_line":"   #    current_dns_domain \u003d current_dns_domain or \"%s.%s\" % (PROJECT_ID,"},{"line_number":678,"context_line":"   #                                                          DNSDOMAIN)"},{"line_number":679,"context_line":"   #    previous_dns_domain \u003d previous_dns_domain or \"%s.%s\" % (PROJECT_ID,"},{"line_number":680,"context_line":"   #                                                            DNSDOMAIN)"},{"line_number":681,"context_line":"   #    super(DNSIntegrationTestCaseDefaultDomainPerProject,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_a8636341","line":678,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":676,"context_line":"   #                     previous_dns_domain\u003dNone):"},{"line_number":677,"context_line":"   #    current_dns_domain \u003d current_dns_domain or \"%s.%s\" % (PROJECT_ID,"},{"line_number":678,"context_line":"   #                                                          DNSDOMAIN)"},{"line_number":679,"context_line":"   #    previous_dns_domain \u003d previous_dns_domain or \"%s.%s\" % (PROJECT_ID,"},{"line_number":680,"context_line":"   #                                                            DNSDOMAIN)"},{"line_number":681,"context_line":"   #    super(DNSIntegrationTestCaseDefaultDomainPerProject,"},{"line_number":682,"context_line":"   #          self)._verify_port_dns("}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_88665f50","line":679,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":677,"context_line":"   #    current_dns_domain \u003d current_dns_domain or \"%s.%s\" % (PROJECT_ID,"},{"line_number":678,"context_line":"   #                                                          DNSDOMAIN)"},{"line_number":679,"context_line":"   #    previous_dns_domain \u003d previous_dns_domain or \"%s.%s\" % (PROJECT_ID,"},{"line_number":680,"context_line":"   #                                                            DNSDOMAIN)"},{"line_number":681,"context_line":"   #    super(DNSIntegrationTestCaseDefaultDomainPerProject,"},{"line_number":682,"context_line":"   #          self)._verify_port_dns("},{"line_number":683,"context_line":"   #                port, dns_data_db, dns_name\u003ddns_name,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_e859db8d","line":680,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":678,"context_line":"   #                                                          DNSDOMAIN)"},{"line_number":679,"context_line":"   #    previous_dns_domain \u003d previous_dns_domain or \"%s.%s\" % (PROJECT_ID,"},{"line_number":680,"context_line":"   #                                                            DNSDOMAIN)"},{"line_number":681,"context_line":"   #    super(DNSIntegrationTestCaseDefaultDomainPerProject,"},{"line_number":682,"context_line":"   #          self)._verify_port_dns("},{"line_number":683,"context_line":"   #                port, dns_data_db, dns_name\u003ddns_name,"},{"line_number":684,"context_line":"   #                dns_domain\u003ddns_domain, ptr_zones\u003dptr_zones,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_c85cd77e","line":681,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":679,"context_line":"   #    previous_dns_domain \u003d previous_dns_domain or \"%s.%s\" % (PROJECT_ID,"},{"line_number":680,"context_line":"   #                                                            DNSDOMAIN)"},{"line_number":681,"context_line":"   #    super(DNSIntegrationTestCaseDefaultDomainPerProject,"},{"line_number":682,"context_line":"   #          self)._verify_port_dns("},{"line_number":683,"context_line":"   #                port, dns_data_db, dns_name\u003ddns_name,"},{"line_number":684,"context_line":"   #                dns_domain\u003ddns_domain, ptr_zones\u003dptr_zones,"},{"line_number":685,"context_line":"   #                delete_records\u003ddelete_records,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_2857535a","line":682,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":680,"context_line":"   #                                                            DNSDOMAIN)"},{"line_number":681,"context_line":"   #    super(DNSIntegrationTestCaseDefaultDomainPerProject,"},{"line_number":682,"context_line":"   #          self)._verify_port_dns("},{"line_number":683,"context_line":"   #                port, dns_data_db, dns_name\u003ddns_name,"},{"line_number":684,"context_line":"   #                dns_domain\u003ddns_domain, ptr_zones\u003dptr_zones,"},{"line_number":685,"context_line":"   #                delete_records\u003ddelete_records,"},{"line_number":686,"context_line":"   #                provider_net\u003dprovider_net, dns_driver\u003ddns_driver,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_08524f67","line":683,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":681,"context_line":"   #    super(DNSIntegrationTestCaseDefaultDomainPerProject,"},{"line_number":682,"context_line":"   #          self)._verify_port_dns("},{"line_number":683,"context_line":"   #                port, dns_data_db, dns_name\u003ddns_name,"},{"line_number":684,"context_line":"   #                dns_domain\u003ddns_domain, ptr_zones\u003dptr_zones,"},{"line_number":685,"context_line":"   #                delete_records\u003ddelete_records,"},{"line_number":686,"context_line":"   #                provider_net\u003dprovider_net, dns_driver\u003ddns_driver,"},{"line_number":687,"context_line":"   #                original_ips\u003doriginal_ips,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_684dcbc2","line":684,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":682,"context_line":"   #          self)._verify_port_dns("},{"line_number":683,"context_line":"   #                port, dns_data_db, dns_name\u003ddns_name,"},{"line_number":684,"context_line":"   #                dns_domain\u003ddns_domain, ptr_zones\u003dptr_zones,"},{"line_number":685,"context_line":"   #                delete_records\u003ddelete_records,"},{"line_number":686,"context_line":"   #                provider_net\u003dprovider_net, dns_driver\u003ddns_driver,"},{"line_number":687,"context_line":"   #                original_ips\u003doriginal_ips,"},{"line_number":688,"context_line":"   #                current_dns_name\u003dcurrent_dns_name,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_4848c7b1","line":685,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":683,"context_line":"   #                port, dns_data_db, dns_name\u003ddns_name,"},{"line_number":684,"context_line":"   #                dns_domain\u003ddns_domain, ptr_zones\u003dptr_zones,"},{"line_number":685,"context_line":"   #                delete_records\u003ddelete_records,"},{"line_number":686,"context_line":"   #                provider_net\u003dprovider_net, dns_driver\u003ddns_driver,"},{"line_number":687,"context_line":"   #                original_ips\u003doriginal_ips,"},{"line_number":688,"context_line":"   #                current_dns_name\u003dcurrent_dns_name,"},{"line_number":689,"context_line":"   #                previous_dns_name\u003dprevious_dns_name,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_a8c88321","line":686,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":684,"context_line":"   #                dns_domain\u003ddns_domain, ptr_zones\u003dptr_zones,"},{"line_number":685,"context_line":"   #                delete_records\u003ddelete_records,"},{"line_number":686,"context_line":"   #                provider_net\u003dprovider_net, dns_driver\u003ddns_driver,"},{"line_number":687,"context_line":"   #                original_ips\u003doriginal_ips,"},{"line_number":688,"context_line":"   #                current_dns_name\u003dcurrent_dns_name,"},{"line_number":689,"context_line":"   #                previous_dns_name\u003dprevious_dns_name,"},{"line_number":690,"context_line":"   #                dns_domain_port\u003ddns_domain_port,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_88cbff1b","line":687,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":685,"context_line":"   #                delete_records\u003ddelete_records,"},{"line_number":686,"context_line":"   #                provider_net\u003dprovider_net, dns_driver\u003ddns_driver,"},{"line_number":687,"context_line":"   #                original_ips\u003doriginal_ips,"},{"line_number":688,"context_line":"   #                current_dns_name\u003dcurrent_dns_name,"},{"line_number":689,"context_line":"   #                previous_dns_name\u003dprevious_dns_name,"},{"line_number":690,"context_line":"   #                dns_domain_port\u003ddns_domain_port,"},{"line_number":691,"context_line":"   #                current_dns_domain\u003dcurrent_dns_domain,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_e8cefb2a","line":688,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":686,"context_line":"   #                provider_net\u003dprovider_net, dns_driver\u003ddns_driver,"},{"line_number":687,"context_line":"   #                original_ips\u003doriginal_ips,"},{"line_number":688,"context_line":"   #                current_dns_name\u003dcurrent_dns_name,"},{"line_number":689,"context_line":"   #                previous_dns_name\u003dprevious_dns_name,"},{"line_number":690,"context_line":"   #                dns_domain_port\u003ddns_domain_port,"},{"line_number":691,"context_line":"   #                current_dns_domain\u003dcurrent_dns_domain,"},{"line_number":692,"context_line":"   #                previous_dns_domain\u003dprevious_dns_domain)"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_c8d177ce","line":689,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":687,"context_line":"   #                original_ips\u003doriginal_ips,"},{"line_number":688,"context_line":"   #                current_dns_name\u003dcurrent_dns_name,"},{"line_number":689,"context_line":"   #                previous_dns_name\u003dprevious_dns_name,"},{"line_number":690,"context_line":"   #                dns_domain_port\u003ddns_domain_port,"},{"line_number":691,"context_line":"   #                current_dns_domain\u003dcurrent_dns_domain,"},{"line_number":692,"context_line":"   #                previous_dns_domain\u003dprevious_dns_domain)"},{"line_number":693,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_28dc73e2","line":690,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":688,"context_line":"   #                current_dns_name\u003dcurrent_dns_name,"},{"line_number":689,"context_line":"   #                previous_dns_name\u003dprevious_dns_name,"},{"line_number":690,"context_line":"   #                dns_domain_port\u003ddns_domain_port,"},{"line_number":691,"context_line":"   #                current_dns_domain\u003dcurrent_dns_domain,"},{"line_number":692,"context_line":"   #                previous_dns_domain\u003dprevious_dns_domain)"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_08d7efc0","line":691,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e6c40af4c199993d4db8e6a28a2d8265aa74568","unresolved":false,"context_lines":[{"line_number":689,"context_line":"   #                previous_dns_name\u003dprevious_dns_name,"},{"line_number":690,"context_line":"   #                dns_domain_port\u003ddns_domain_port,"},{"line_number":691,"context_line":"   #                current_dns_domain\u003dcurrent_dns_domain,"},{"line_number":692,"context_line":"   #                previous_dns_domain\u003dprevious_dns_domain)"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":""},{"line_number":695,"context_line":"@mock.patch("}],"source_content_type":"text/x-python","patch_set":15,"id":"ff570b3c_68e2eba1","line":692,"updated":"2020-06-05 02:12:52.000000000","message":"pep8: E114 indentation is not a multiple of four (comment)","commit_id":"6fe709c2c3097bfe2e3c2f8ff00ce34057e902d1"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3b1fd06a517d6520a34f7e869f094a7b692e6d27","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                cfg.CONF.designate.ipv6_ptr_zone_prefix_size) / 4"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    def test__parse_dns_domain(self, *mocks):"},{"line_number":271,"context_line":"        context \u003d mock.Mock("},{"line_number":272,"context_line":"            project_id\u003duuidutils.generate_uuid(),"},{"line_number":273,"context_line":"            project_name\u003d\"project\","},{"line_number":274,"context_line":"            user_id\u003duuidutils.generate_uuid(),"}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_74676a26","line":271,"updated":"2020-08-26 14:20:50.000000000","message":"Instead of this, if you can create a \"real\" context (a neutron_lib.context.Context object), that will be better.","commit_id":"dcaa613ed2129dc4c6bd0d595fdec015f7a16a01"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2aa227c11b55d6819384a8ab6b6a903b6e06e407","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                cfg.CONF.designate.ipv6_ptr_zone_prefix_size) / 4"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    def test__parse_dns_domain(self, *mocks):"},{"line_number":271,"context_line":"        context \u003d mock.Mock("},{"line_number":272,"context_line":"            project_id\u003duuidutils.generate_uuid(),"},{"line_number":273,"context_line":"            project_name\u003d\"project\","},{"line_number":274,"context_line":"            user_id\u003duuidutils.generate_uuid(),"}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_3630319f","line":271,"in_reply_to":"9f560f44_74676a26","updated":"2020-08-28 13:01:56.000000000","message":"Done","commit_id":"dcaa613ed2129dc4c6bd0d595fdec015f7a16a01"}],"releasenotes/notes/dns-domain-per-tenant-59b8a368fa06f81d.yaml":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d7e82651eb81b4d92b4da29f9ff92b07a5abebea","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Special keywords like ``\u003cproject_id\u003e``, ``\u003ctenant_id\u003e``, ``\u003cuser_name\u003e``"},{"line_number":5,"context_line":"    and ``\u003cuser_id\u003e`` can be used in the network\u0027s dns_domain attribute."},{"line_number":6,"context_line":"    Those special keywords will be replaced by the corresponding data from the"},{"line_number":7,"context_line":"    request context."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"9f560f44_fad8817f","line":4,"range":{"start_line":4,"start_character":21,"end_line":4,"end_character":25},"updated":"2020-08-26 15:17:13.000000000","message":"This is an exhaustive list of keywords, so drop \"like\".","commit_id":"dcaa613ed2129dc4c6bd0d595fdec015f7a16a01"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2aa227c11b55d6819384a8ab6b6a903b6e06e407","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Special keywords like ``\u003cproject_id\u003e``, ``\u003ctenant_id\u003e``, ``\u003cuser_name\u003e``"},{"line_number":5,"context_line":"    and ``\u003cuser_id\u003e`` can be used in the network\u0027s dns_domain attribute."},{"line_number":6,"context_line":"    Those special keywords will be replaced by the corresponding data from the"},{"line_number":7,"context_line":"    request context."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"9f560f44_b6660155","line":4,"range":{"start_line":4,"start_character":21,"end_line":4,"end_character":25},"in_reply_to":"9f560f44_fad8817f","updated":"2020-08-28 13:01:56.000000000","message":"Done","commit_id":"dcaa613ed2129dc4c6bd0d595fdec015f7a16a01"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3b1fd06a517d6520a34f7e869f094a7b692e6d27","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Special keywords like ``\u003cproject_id\u003e``, ``\u003ctenant_id\u003e``, ``\u003cuser_name\u003e``"},{"line_number":5,"context_line":"    and ``\u003cuser_id\u003e`` can be used in the network\u0027s dns_domain attribute."},{"line_number":6,"context_line":"    Those special keywords will be replaced by the corresponding data from the"},{"line_number":7,"context_line":"    request context."},{"line_number":8,"context_line":"    With that cloud admin can define dns_domain for shared network and ports"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"9f560f44_f479ba2e","line":5,"range":{"start_line":5,"start_character":51,"end_line":5,"end_character":61},"updated":"2020-08-26 14:20:50.000000000","message":"small nit: ``dns_domain``","commit_id":"dcaa613ed2129dc4c6bd0d595fdec015f7a16a01"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2aa227c11b55d6819384a8ab6b6a903b6e06e407","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Special keywords like ``\u003cproject_id\u003e``, ``\u003ctenant_id\u003e``, ``\u003cuser_name\u003e``"},{"line_number":5,"context_line":"    and ``\u003cuser_id\u003e`` can be used in the network\u0027s dns_domain attribute."},{"line_number":6,"context_line":"    Those special keywords will be replaced by the corresponding data from the"},{"line_number":7,"context_line":"    request context."},{"line_number":8,"context_line":"    With that cloud admin can define dns_domain for shared network and ports"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"9f560f44_16740dfe","line":5,"range":{"start_line":5,"start_character":51,"end_line":5,"end_character":61},"in_reply_to":"9f560f44_f479ba2e","updated":"2020-08-28 13:01:56.000000000","message":"Done","commit_id":"dcaa613ed2129dc4c6bd0d595fdec015f7a16a01"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d7e82651eb81b4d92b4da29f9ff92b07a5abebea","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    and ``\u003cuser_id\u003e`` can be used in the network\u0027s dns_domain attribute."},{"line_number":6,"context_line":"    Those special keywords will be replaced by the corresponding data from the"},{"line_number":7,"context_line":"    request context."},{"line_number":8,"context_line":"    With that cloud admin can define dns_domain for shared network and ports"},{"line_number":9,"context_line":"    which belongs to the other projects can use separate DNS zones."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"9f560f44_dac93dac","line":9,"range":{"start_line":8,"start_character":4,"end_line":9,"end_character":67},"updated":"2020-08-26 15:17:13.000000000","message":"This sentence seems to be missing something.\n\nAlso the reno should mention that one needs to enable a specific extension in order to use this feature.","commit_id":"dcaa613ed2129dc4c6bd0d595fdec015f7a16a01"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2aa227c11b55d6819384a8ab6b6a903b6e06e407","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    and ``\u003cuser_id\u003e`` can be used in the network\u0027s dns_domain attribute."},{"line_number":6,"context_line":"    Those special keywords will be replaced by the corresponding data from the"},{"line_number":7,"context_line":"    request context."},{"line_number":8,"context_line":"    With that cloud admin can define dns_domain for shared network and ports"},{"line_number":9,"context_line":"    which belongs to the other projects can use separate DNS zones."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"9f560f44_96e77dad","line":9,"range":{"start_line":8,"start_character":4,"end_line":9,"end_character":67},"in_reply_to":"9f560f44_dac93dac","updated":"2020-08-28 13:01:56.000000000","message":"Done","commit_id":"dcaa613ed2129dc4c6bd0d595fdec015f7a16a01"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"86d4b7bb35067c0a14d2f269441cdfb23bea22ca","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Special keywords ``\u003cproject_id\u003e``, ``\u003ctenant_id\u003e``, ``\u003cuser_name\u003e``"},{"line_number":5,"context_line":"    and ``\u003cuser_id\u003e`` can be used in the network\u0027s ``dns_domain`` attribute."},{"line_number":6,"context_line":"    Those special keywords will be replaced by the corresponding data from the"},{"line_number":7,"context_line":"    request context."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"505fd246_c458075d","line":4,"range":{"start_line":4,"start_character":39,"end_line":4,"end_character":54},"updated":"2021-02-02 11:49:05.000000000","message":"Shouldn\u0027t we drop using tenant_id? IIUC it is deprecated and about to be removed.\n\nActually I think \"project_name\" should be listed here instead?","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3973897b31ca55abec9146561f75bf2f6556a8ba","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Special keywords ``\u003cproject_id\u003e``, ``\u003ctenant_id\u003e``, ``\u003cuser_name\u003e``"},{"line_number":5,"context_line":"    and ``\u003cuser_id\u003e`` can be used in the network\u0027s ``dns_domain`` attribute."},{"line_number":6,"context_line":"    Those special keywords will be replaced by the corresponding data from the"},{"line_number":7,"context_line":"    request context."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"942b7e47_f293e740","line":4,"range":{"start_line":4,"start_character":39,"end_line":4,"end_character":54},"in_reply_to":"505fd246_c458075d","updated":"2021-02-03 16:52:39.000000000","message":"Right:\n\n  DNS_LABEL_KEYWORDS \u003d [\u0027project_id\u0027, \u0027project_name\u0027, \u0027user_name\u0027, \u0027user_id\u0027]","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"45ada401e1b31090082de418a8d0e8d3e83761e8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Special keywords ``\u003cproject_id\u003e``, ``\u003ctenant_id\u003e``, ``\u003cuser_name\u003e``"},{"line_number":5,"context_line":"    and ``\u003cuser_id\u003e`` can be used in the network\u0027s ``dns_domain`` attribute."},{"line_number":6,"context_line":"    Those special keywords will be replaced by the corresponding data from the"},{"line_number":7,"context_line":"    request context."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"1de22f48_ebb57fa7","line":4,"range":{"start_line":4,"start_character":39,"end_line":4,"end_character":54},"in_reply_to":"942b7e47_f293e740","updated":"2021-02-05 16:09:24.000000000","message":"Done","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"86d4b7bb35067c0a14d2f269441cdfb23bea22ca","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Special keywords ``\u003cproject_id\u003e``, ``\u003ctenant_id\u003e``, ``\u003cuser_name\u003e``"},{"line_number":5,"context_line":"    and ``\u003cuser_id\u003e`` can be used in the network\u0027s ``dns_domain`` attribute."},{"line_number":6,"context_line":"    Those special keywords will be replaced by the corresponding data from the"},{"line_number":7,"context_line":"    request context."},{"line_number":8,"context_line":"    With that cloud admin can define dns_domain for shared network and ports"}],"source_content_type":"text/x-yaml","patch_set":27,"id":"b951b8bc_61ed9da1","line":5,"range":{"start_line":5,"start_character":37,"end_line":5,"end_character":50},"updated":"2021-02-02 11:49:05.000000000","message":"does this only work for networks or also for floating IPs and ports?","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"45ada401e1b31090082de418a8d0e8d3e83761e8","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Special keywords ``\u003cproject_id\u003e``, ``\u003ctenant_id\u003e``, ``\u003cuser_name\u003e``"},{"line_number":5,"context_line":"    and ``\u003cuser_id\u003e`` can be used in the network\u0027s ``dns_domain`` attribute."},{"line_number":6,"context_line":"    Those special keywords will be replaced by the corresponding data from the"},{"line_number":7,"context_line":"    request context."},{"line_number":8,"context_line":"    With that cloud admin can define dns_domain for shared network and ports"}],"source_content_type":"text/x-yaml","patch_set":27,"id":"482cd86f_decb806e","line":5,"range":{"start_line":5,"start_character":37,"end_line":5,"end_character":50},"in_reply_to":"b951b8bc_61ed9da1","updated":"2021-02-05 16:09:24.000000000","message":"For all","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"86d4b7bb35067c0a14d2f269441cdfb23bea22ca","unresolved":true,"context_lines":[{"line_number":7,"context_line":"    request context."},{"line_number":8,"context_line":"    With that cloud admin can define dns_domain for shared network and ports"},{"line_number":9,"context_line":"    which belongs to the other projects in the way that each project can use"},{"line_number":10,"context_line":"    separate DNS zones."},{"line_number":11,"context_line":"    To enable this feature ``dns_integration`` ML2 plugin extension has to be"},{"line_number":12,"context_line":"    enabled in the Neutron config."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"eedebd5f_4f2bad42","line":10,"updated":"2021-02-02 11:49:05.000000000","message":"Maybe this also needs a comment that the zones still need to be pre-created by the users.","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"45ada401e1b31090082de418a8d0e8d3e83761e8","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    request context."},{"line_number":8,"context_line":"    With that cloud admin can define dns_domain for shared network and ports"},{"line_number":9,"context_line":"    which belongs to the other projects in the way that each project can use"},{"line_number":10,"context_line":"    separate DNS zones."},{"line_number":11,"context_line":"    To enable this feature ``dns_integration`` ML2 plugin extension has to be"},{"line_number":12,"context_line":"    enabled in the Neutron config."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"4d735124_894cd780","line":10,"in_reply_to":"eedebd5f_4f2bad42","updated":"2021-02-05 16:09:24.000000000","message":"Done","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"86d4b7bb35067c0a14d2f269441cdfb23bea22ca","unresolved":true,"context_lines":[{"line_number":8,"context_line":"    With that cloud admin can define dns_domain for shared network and ports"},{"line_number":9,"context_line":"    which belongs to the other projects in the way that each project can use"},{"line_number":10,"context_line":"    separate DNS zones."},{"line_number":11,"context_line":"    To enable this feature ``dns_integration`` ML2 plugin extension has to be"},{"line_number":12,"context_line":"    enabled in the Neutron config."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"7959e828_387588d4","line":11,"updated":"2021-02-02 11:49:05.000000000","message":"This is wrong, you need the new extension enabled, dns_domain_keywords.\n\nEnabling multiple dns_integration extensions at the same time leads to an error.","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3973897b31ca55abec9146561f75bf2f6556a8ba","unresolved":true,"context_lines":[{"line_number":8,"context_line":"    With that cloud admin can define dns_domain for shared network and ports"},{"line_number":9,"context_line":"    which belongs to the other projects in the way that each project can use"},{"line_number":10,"context_line":"    separate DNS zones."},{"line_number":11,"context_line":"    To enable this feature ``dns_integration`` ML2 plugin extension has to be"},{"line_number":12,"context_line":"    enabled in the Neutron config."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"8b9d3af5_9a2a8a15","line":11,"in_reply_to":"7959e828_387588d4","updated":"2021-02-03 16:52:39.000000000","message":"Right, this should be \"dns_domain_keywords\". And as a reminder, the second statement should be included too.","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"45ada401e1b31090082de418a8d0e8d3e83761e8","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    With that cloud admin can define dns_domain for shared network and ports"},{"line_number":9,"context_line":"    which belongs to the other projects in the way that each project can use"},{"line_number":10,"context_line":"    separate DNS zones."},{"line_number":11,"context_line":"    To enable this feature ``dns_integration`` ML2 plugin extension has to be"},{"line_number":12,"context_line":"    enabled in the Neutron config."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"d2628db9_7d26706e","line":11,"in_reply_to":"8b9d3af5_9a2a8a15","updated":"2021-02-05 16:09:24.000000000","message":"Done","commit_id":"507dff3043098e697abfcd31318232197590124a"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"5dbcbaf3dcdca4421134a1c98af4e5a009ef1671","unresolved":true,"context_lines":[{"line_number":9,"context_line":"    With that cloud admin can define dns_domain for shared network and ports"},{"line_number":10,"context_line":"    which belongs to the other projects in the way that each project can use"},{"line_number":11,"context_line":"    separate DNS zones which needs to be pre-created by users."},{"line_number":12,"context_line":"    To enable this feature ``dns_doman_keywords`` ML2 plugin extension has to"},{"line_number":13,"context_line":"    be enabled in the Neutron config."},{"line_number":14,"context_line":"    Enabling multiple dns_integration extensions at the same time leads to an"},{"line_number":15,"context_line":"    error."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"94031792_1770bff5","line":12,"range":{"start_line":12,"start_character":33,"end_line":12,"end_character":38},"updated":"2021-02-15 12:29:16.000000000","message":"domain","commit_id":"99bbd0d1277a8c3da2a2c9f78fcb4a9371702f23"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"31ed45d89df9f458287270cc9ea65785de6be06c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    With that cloud admin can define dns_domain for shared network and ports"},{"line_number":10,"context_line":"    which belongs to the other projects in the way that each project can use"},{"line_number":11,"context_line":"    separate DNS zones which needs to be pre-created by users."},{"line_number":12,"context_line":"    To enable this feature ``dns_doman_keywords`` ML2 plugin extension has to"},{"line_number":13,"context_line":"    be enabled in the Neutron config."},{"line_number":14,"context_line":"    Enabling multiple dns_integration extensions at the same time leads to an"},{"line_number":15,"context_line":"    error."}],"source_content_type":"text/x-yaml","patch_set":28,"id":"52ac6890_a2ff310e","line":12,"range":{"start_line":12,"start_character":33,"end_line":12,"end_character":38},"in_reply_to":"94031792_1770bff5","updated":"2021-03-09 14:59:30.000000000","message":"Done","commit_id":"99bbd0d1277a8c3da2a2c9f78fcb4a9371702f23"}]}
