)]}'
{"doc/source/ovn/ml2ovn_trace.rst":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"83a22f89138e084aea705235b887e7daaa553c93","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Usage"},{"line_number":11,"context_line":"-----"},{"line_number":12,"context_line":"```"},{"line_number":13,"context_line":"Usage: ml2ovn-trace [OPTIONS] [OVNTRACE_ARGS]..."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Options:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1b6cc0b9_8cf669ea","line":12,"in_reply_to":"b106dfe5_856ed537","updated":"2021-03-23 17:01:17.000000000","message":"\u003e docs: Inline literal start-string without end-string.\n\nPlease fix.","commit_id":"9216a574466481b7d6d14b813ae3753c33ef722b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"32f81b92390be1e0e8f8a91df9aed37083c1d4e3","unresolved":true,"context_lines":[{"line_number":12,"context_line":".. code-block:: console"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"  Usage: ml2ovn-trace [OPTIONS] [OVNTRACE_ARGS]..."},{"line_number":15,"context_line":"  "},{"line_number":16,"context_line":"  Options:"},{"line_number":17,"context_line":"    -c, --cloud TEXT                Cloud from clouds.yaml to connect to"},{"line_number":18,"context_line":"    -n, --net TEXT                  Network to limit interfaces lookups to"}],"source_content_type":"text/x-rst","patch_set":6,"id":"58e7698c_786ecfa0","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":2},"updated":"2021-03-25 22:00:41.000000000","message":"nit: can you remove the \"red blocks\"?","commit_id":"b8eac58b8b706dd4293595bb7dd14f670ae024c2"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6f5fc50089b48643e37630f73840471a95f043b6","unresolved":false,"context_lines":[{"line_number":12,"context_line":".. code-block:: console"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"  Usage: ml2ovn-trace [OPTIONS] [OVNTRACE_ARGS]..."},{"line_number":15,"context_line":"  "},{"line_number":16,"context_line":"  Options:"},{"line_number":17,"context_line":"    -c, --cloud TEXT                Cloud from clouds.yaml to connect to"},{"line_number":18,"context_line":"    -n, --net TEXT                  Network to limit interfaces lookups to"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f5a87fe_6af1c0ce","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":2},"in_reply_to":"58e7698c_786ecfa0","updated":"2021-03-25 22:57:53.000000000","message":"Done","commit_id":"b8eac58b8b706dd4293595bb7dd14f670ae024c2"}],"neutron/cmd/ovn/ml2ovn_trace.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"83a22f89138e084aea705235b887e7daaa553c93","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class cached_property:"},{"line_number":25,"context_line":"    __slots__ \u003d (\u0027_fn\u0027, \u0027__doc__\u0027)"},{"line_number":26,"context_line":"    def __init__(self, fn):"},{"line_number":27,"context_line":"        self._fn \u003d fn"},{"line_number":28,"context_line":"        self.__doc__ \u003d fn.__doc__"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"c85cbc39_a9adff86","line":26,"in_reply_to":"e29c8dc4_26bdc809","updated":"2021-03-23 17:01:17.000000000","message":"\u003e pep8: E301 expected 1 blank line, found 0\n\nPlease fix.","commit_id":"9216a574466481b7d6d14b813ae3753c33ef722b"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"83a22f89138e084aea705235b887e7daaa553c93","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    def instance(self):"},{"line_number":100,"context_line":"        matching_vms \u003d self.cloud.search_servers(self.query)"},{"line_number":101,"context_line":"        if len(matching_vms) \u003c 1:"},{"line_number":102,"context_line":"            raise Exception(\u0027Server not found\u0027)"},{"line_number":103,"context_line":"        elif len(matching_vms) \u003e 1:"},{"line_number":104,"context_line":"            raise Exception(\u0027Multiple VMs match %s\u0027 % self.query)"},{"line_number":105,"context_line":"        return matching_vms[0]"}],"source_content_type":"text/x-python","patch_set":2,"id":"bb79c9fe_562a1150","line":102,"in_reply_to":"442b94e8_eab8a962","updated":"2021-03-23 17:01:17.000000000","message":"\u003e pep8: N534: Untranslated exception message.\n\nPlease fix.","commit_id":"9216a574466481b7d6d14b813ae3753c33ef722b"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"83a22f89138e084aea705235b887e7daaa553c93","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if len(matching_vms) \u003c 1:"},{"line_number":102,"context_line":"            raise Exception(\u0027Server not found\u0027)"},{"line_number":103,"context_line":"        elif len(matching_vms) \u003e 1:"},{"line_number":104,"context_line":"            raise Exception(\u0027Multiple VMs match %s\u0027 % self.query)"},{"line_number":105,"context_line":"        return matching_vms[0]"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    @cached_property"}],"source_content_type":"text/x-python","patch_set":2,"id":"a30fd1db_fda15770","line":104,"in_reply_to":"c1abc49c_a5ebdd77","updated":"2021-03-23 17:01:17.000000000","message":"\u003e pep8: N534: Untranslated exception message.\n\nPlease fix.","commit_id":"9216a574466481b7d6d14b813ae3753c33ef722b"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"83a22f89138e084aea705235b887e7daaa553c93","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        if self.network_param:"},{"line_number":110,"context_line":"            return self.network_param"},{"line_number":111,"context_line":"        if len(self.instance.addresses) !\u003d 1:"},{"line_number":112,"context_line":"            raise Exception(\"Could not determine server network\")"},{"line_number":113,"context_line":"        return next(iter(key for key in self.instance.addresses))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    @cached_property"}],"source_content_type":"text/x-python","patch_set":2,"id":"0ad14f7f_ebe6e1f5","line":112,"in_reply_to":"7b4e729c_06728959","updated":"2021-03-23 17:01:17.000000000","message":"\u003e pep8: N534: Untranslated exception message.\n\nPlease fix.","commit_id":"9216a574466481b7d6d14b813ae3753c33ef722b"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"83a22f89138e084aea705235b887e7daaa553c93","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            self.unless \u003d kwargs.pop(\u0027unless\u0027)"},{"line_number":173,"context_line":"            kwargs[\u0027required\u0027] \u003d True"},{"line_number":174,"context_line":"        except KeyError:"},{"line_number":175,"context_line":"            raise TypeError(\"Missing required argument: \u0027unless\u0027\")"},{"line_number":176,"context_line":"        super().__init__(*args, **kwargs)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def handle_parse_result(self, ctx, opts, args):"}],"source_content_type":"text/x-python","patch_set":2,"id":"c7321d17_94cd20e7","line":175,"in_reply_to":"51a0f854_758b7b00","updated":"2021-03-23 17:01:17.000000000","message":"\u003e pep8: N534: Untranslated exception message.\n\nPlease fix.","commit_id":"9216a574466481b7d6d14b813ae3753c33ef722b"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"83a22f89138e084aea705235b887e7daaa553c93","unresolved":false,"context_lines":[{"line_number":234,"context_line":"              help\u003d\"Print ovn-trace output, but don\u0027t run it\")"},{"line_number":235,"context_line":"@click.argument(\u0027ovntrace_args\u0027, nargs\u003d-1, type\u003dclick.UNPROCESSED)"},{"line_number":236,"context_line":"def main(cloud, net, from_net, to_net, from_, eth_src, ip_src, to, eth_dst,"},{"line_number":237,"context_line":"          ip_dst, microflow, verbose, dry_run, ovntrace_args):"},{"line_number":238,"context_line":"    ovn_trace \u003d OvnTrace(eth_src or from_, ip_src or from_,"},{"line_number":239,"context_line":"                         eth_dst or to, ip_dst or to, microflow, ovntrace_args)"},{"line_number":240,"context_line":"    if not dry_run:"}],"source_content_type":"text/x-python","patch_set":2,"id":"b3a459d6_d872fa6c","line":237,"in_reply_to":"83ad779c_f790117d","updated":"2021-03-23 17:01:17.000000000","message":"\u003e pep8: E127 continuation line over-indented for visual indent\n\nPlease fix.","commit_id":"9216a574466481b7d6d14b813ae3753c33ef722b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"32f81b92390be1e0e8f8a91df9aed37083c1d4e3","unresolved":true,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    @cached_property"},{"line_number":102,"context_line":"    def instance(self):"},{"line_number":103,"context_line":"        matching_vms \u003d self.cloud.search_servers(self.query)"},{"line_number":104,"context_line":"        if len(matching_vms) \u003c 1:"},{"line_number":105,"context_line":"            raise Exception(_(\u0027Server not found\u0027))"},{"line_number":106,"context_line":"        if len(matching_vms) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":6,"id":"d3b21dec_8d215708","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":60},"updated":"2021-03-25 22:00:41.000000000","message":"Maybe I\u0027m using it wrong.\n\nWhen I start the program, in L43 we store the src MAC address. That calls ServerInterface.inport, that calls ServerInterface.instance. The query\n  self.cloud.search_servers(self.query)\n\nis passing the MAC address. The method \"search_servers\" filters server by name or ID, not MAC address.\n\nAm I executing this program incorrectly? Those are the params I\u0027m passing (from two running VMs with one port each one):\n\n--ip-src 10.0.10.4 --eth-src fa:16:3e:9a:ee:d8 --ip-dst 10.0.10.23 --eth-dst fa:16:3e:4d:c4:97","commit_id":"b8eac58b8b706dd4293595bb7dd14f670ae024c2"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6f5fc50089b48643e37630f73840471a95f043b6","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    @cached_property"},{"line_number":102,"context_line":"    def instance(self):"},{"line_number":103,"context_line":"        matching_vms \u003d self.cloud.search_servers(self.query)"},{"line_number":104,"context_line":"        if len(matching_vms) \u003c 1:"},{"line_number":105,"context_line":"            raise Exception(_(\u0027Server not found\u0027))"},{"line_number":106,"context_line":"        if len(matching_vms) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":6,"id":"c8eb9a4b_9613e145","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":60},"in_reply_to":"0ad21e8d_0e1c440c","updated":"2021-03-25 22:57:53.000000000","message":"Done","commit_id":"b8eac58b8b706dd4293595bb7dd14f670ae024c2"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"e45506479b0a8ffd8e9601d7cd33d1e273de7264","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    @cached_property"},{"line_number":102,"context_line":"    def instance(self):"},{"line_number":103,"context_line":"        matching_vms \u003d self.cloud.search_servers(self.query)"},{"line_number":104,"context_line":"        if len(matching_vms) \u003c 1:"},{"line_number":105,"context_line":"            raise Exception(_(\u0027Server not found\u0027))"},{"line_number":106,"context_line":"        if len(matching_vms) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":6,"id":"86829531_4538f058","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":60},"in_reply_to":"57c85c6a_b9f69b45","updated":"2021-03-26 13:11:35.000000000","message":"Yes, passing --to ip\u003d makes no sense because there\u0027s no way to look up the mac of an IP in a system that can have overlapping IPs. You would use --ip-dst for that and then have to specify --eth-dst.\n\n--from/--to are shortcuts that should only be used for openstack objects. ip/mac are for when you want to override a specific ip/eth src/dst.\n\nI can try to come up with a way to fail that combination earlier in the process.","commit_id":"b8eac58b8b706dd4293595bb7dd14f670ae024c2"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f55cbfffca9a1d3c4d2a13173cafbd180c4a5c03","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    @cached_property"},{"line_number":102,"context_line":"    def instance(self):"},{"line_number":103,"context_line":"        matching_vms \u003d self.cloud.search_servers(self.query)"},{"line_number":104,"context_line":"        if len(matching_vms) \u003c 1:"},{"line_number":105,"context_line":"            raise Exception(_(\u0027Server not found\u0027))"},{"line_number":106,"context_line":"        if len(matching_vms) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":6,"id":"57c85c6a_b9f69b45","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":60},"in_reply_to":"9d075221_0e88852a","updated":"2021-03-26 08:34:21.000000000","message":"*and works in L46 (not L26)","commit_id":"b8eac58b8b706dd4293595bb7dd14f670ae024c2"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"90f037515f9e403a7e33e76a2a8ae52e8025f857","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    @cached_property"},{"line_number":102,"context_line":"    def instance(self):"},{"line_number":103,"context_line":"        matching_vms \u003d self.cloud.search_servers(self.query)"},{"line_number":104,"context_line":"        if len(matching_vms) \u003c 1:"},{"line_number":105,"context_line":"            raise Exception(_(\u0027Server not found\u0027))"},{"line_number":106,"context_line":"        if len(matching_vms) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9d075221_0e88852a","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":60},"in_reply_to":"c8eb9a4b_9613e145","updated":"2021-03-26 08:33:17.000000000","message":"(tested in PS8): when I use \"to\" parameter (--to ip\u003d1.2.3.4), this \"to\" object is used both in L46 (to retrieve the MAC) and L47 (the IP).\n\nThis \"to\" object is a \u003cMAC\u003e instance and works in L26, but not in L47 (should be \u003cIP\u003e)","commit_id":"b8eac58b8b706dd4293595bb7dd14f670ae024c2"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"90f14f43de941ccbd2bd4934bd6f8ed2c2b78384","unresolved":true,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    @cached_property"},{"line_number":102,"context_line":"    def instance(self):"},{"line_number":103,"context_line":"        matching_vms \u003d self.cloud.search_servers(self.query)"},{"line_number":104,"context_line":"        if len(matching_vms) \u003c 1:"},{"line_number":105,"context_line":"            raise Exception(_(\u0027Server not found\u0027))"},{"line_number":106,"context_line":"        if len(matching_vms) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":6,"id":"0ad21e8d_0e1c440c","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":60},"in_reply_to":"d3b21dec_8d215708","updated":"2021-03-25 22:08:49.000000000","message":"The {ip,eth}-{src,dst} options are still set up to require a object\u003dvalue type of argument, which is kind of silly, but why you are having issues. Also, there is literally no reason to use ml2ovn-trace if you know all of the ip/eth src/dst pairs. You\u0027d just use ovn-trace.\n\nYou\u0027d want to use it for things like:\n\n  sudo ml2ovn-trace --from server\u003dvm1 --to ip\u003d172.18.2.20 --via router\u003dnet1-router\n\nor something like that. I\u0027ll go ahead and make the specific field options have an assumed type. (and add the missing MAC type).","commit_id":"b8eac58b8b706dd4293595bb7dd14f670ae024c2"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"826163193ea7e3a39d28f2efac3aea39c8c605ef","unresolved":true,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import ipaddress"},{"line_number":17,"context_line":"import subprocess  # nosec"},{"line_number":18,"context_line":"import sys"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import click"}],"source_content_type":"text/x-python","patch_set":8,"id":"8038e6a5_ace5b370","line":17,"range":{"start_line":17,"start_character":19,"end_line":17,"end_character":26},"updated":"2021-03-26 08:36:32.000000000","message":"just out of curiosity, what is it for exactly?","commit_id":"c516e0943268cae84f819e252a7632ce2de6d21b"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"e45506479b0a8ffd8e9601d7cd33d1e273de7264","unresolved":true,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import ipaddress"},{"line_number":17,"context_line":"import subprocess  # nosec"},{"line_number":18,"context_line":"import sys"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import click"}],"source_content_type":"text/x-python","patch_set":8,"id":"c58b159d_aaa7fcdf","line":17,"range":{"start_line":17,"start_character":19,"end_line":17,"end_character":26},"in_reply_to":"8038e6a5_ace5b370","updated":"2021-03-26 13:11:35.000000000","message":"bandit screams apparently just for importing subprocess/calling subprocess.run. This was the way it said to shut it up since the whole point of this utility is to make a subprocess call.","commit_id":"c516e0943268cae84f819e252a7632ce2de6d21b"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"826163193ea7e3a39d28f2efac3aea39c8c605ef","unresolved":true,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"class IP:"},{"line_number":173,"context_line":"    def __init__(self, ip, direction\u003dNone, ctx\u003dNone):"},{"line_number":174,"context_line":"        self.ip \u003d ip"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"c2275e3e_e19bb344","line":173,"range":{"start_line":173,"start_character":27,"end_line":173,"end_character":51},"updated":"2021-03-26 08:36:32.000000000","message":"why those are needed here?","commit_id":"c516e0943268cae84f819e252a7632ce2de6d21b"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"e45506479b0a8ffd8e9601d7cd33d1e273de7264","unresolved":true,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"class IP:"},{"line_number":173,"context_line":"    def __init__(self, ip, direction\u003dNone, ctx\u003dNone):"},{"line_number":174,"context_line":"        self.ip \u003d ip"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7eecc199_089b7814","line":173,"range":{"start_line":173,"start_character":27,"end_line":173,"end_character":51},"in_reply_to":"c2275e3e_e19bb344","updated":"2021-03-26 13:11:35.000000000","message":"They probably aren\u0027t anymore. In one iteration they were used inside ObjEqValueOpt just like the Interface classes. Now that they have their own parameter type and since they don\u0027t make sense in the an obj\u003dvalue case since --from/--to need something that has both an IP *and* MAC, I can remove these.","commit_id":"c516e0943268cae84f819e252a7632ce2de6d21b"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"826163193ea7e3a39d28f2efac3aea39c8c605ef","unresolved":true,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"class MAC:"},{"line_number":178,"context_line":"    def __init__(self, mac, direction\u003dNone, ctx\u003dNone):"},{"line_number":179,"context_line":"        self.mac \u003d mac"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"0bd7e521_3925841c","line":178,"range":{"start_line":178,"start_character":28,"end_line":178,"end_character":52},"updated":"2021-03-26 08:36:32.000000000","message":"same question here","commit_id":"c516e0943268cae84f819e252a7632ce2de6d21b"}],"setup.cfg":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"826163193ea7e3a39d28f2efac3aea39c8c605ef","unresolved":true,"context_lines":[{"line_number":61,"context_line":"    neutron-ovn-metadata-agent \u003d neutron.cmd.eventlet.agents.ovn_metadata:main"},{"line_number":62,"context_line":"    neutron-ovn-migration-mtu \u003d neutron.cmd.ovn.migration_mtu:main"},{"line_number":63,"context_line":"    neutron-ovn-db-sync-util \u003d neutron.cmd.ovn.neutron_ovn_db_sync_util:main"},{"line_number":64,"context_line":"    ml2ovn-trace \u003d neutron.cmd.ovn.ml2ovn_trace:main"},{"line_number":65,"context_line":"neutron.core_plugins \u003d"},{"line_number":66,"context_line":"    ml2 \u003d neutron.plugins.ml2.plugin:Ml2Plugin"},{"line_number":67,"context_line":"neutron.service_plugins \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":8,"id":"52c94f75_3fe3b3be","line":64,"updated":"2021-03-26 08:36:32.000000000","message":"I don\u0027t have strong opinion on that but I wonder if better place for that wouldn\u0027t be tools/ directory. Do we really want to provide that tool e.g. in distro packages?\nI\u0027m fine either way, just wanted to ask if maybe others have any ideas about it.","commit_id":"c516e0943268cae84f819e252a7632ce2de6d21b"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"e45506479b0a8ffd8e9601d7cd33d1e273de7264","unresolved":true,"context_lines":[{"line_number":61,"context_line":"    neutron-ovn-metadata-agent \u003d neutron.cmd.eventlet.agents.ovn_metadata:main"},{"line_number":62,"context_line":"    neutron-ovn-migration-mtu \u003d neutron.cmd.ovn.migration_mtu:main"},{"line_number":63,"context_line":"    neutron-ovn-db-sync-util \u003d neutron.cmd.ovn.neutron_ovn_db_sync_util:main"},{"line_number":64,"context_line":"    ml2ovn-trace \u003d neutron.cmd.ovn.ml2ovn_trace:main"},{"line_number":65,"context_line":"neutron.core_plugins \u003d"},{"line_number":66,"context_line":"    ml2 \u003d neutron.plugins.ml2.plugin:Ml2Plugin"},{"line_number":67,"context_line":"neutron.service_plugins \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":8,"id":"b49974d9_332e6cdd","line":64,"in_reply_to":"52c94f75_3fe3b3be","updated":"2021-03-26 13:11:35.000000000","message":"The main purpose of this is to use in the field to make debugging ml2/ovn easier, so we\u0027d need to ship it in *some* package.","commit_id":"c516e0943268cae84f819e252a7632ce2de6d21b"}]}
