)]}'
{"zunclient/common/utils.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"70ed87cbe9b68e513c37db73095475ffbbf34923","unresolved":false,"context_lines":[{"line_number":180,"context_line":"    return \" \".join(output)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"def _parse_nets(args):"},{"line_number":184,"context_line":"    err_msg \u003d (\"Invalid nets argument \u0027%s\u0027. nets arguments must be of \""},{"line_number":185,"context_line":"               \"the form --nets \u003cnetwork\u003dnetwork, v4-fixed-ip\u003dip-addr,\""},{"line_number":186,"context_line":"               \"v6-fixed-ip\u003dip-addr, port\u003dport-uuid\u003e, \""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_0ba2dffd","line":183,"range":{"start_line":183,"start_character":4,"end_line":183,"end_character":15},"updated":"2017-07-05 04:04:07.000000000","message":"This method is non-trivial. I think it deserves some unit test cases for this.","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"fcef9afbacfd4610b3dc511def63a43f83e0a855","unresolved":false,"context_lines":[{"line_number":180,"context_line":"    return \" \".join(output)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"def _parse_nets(args):"},{"line_number":184,"context_line":"    err_msg \u003d (\"Invalid nets argument \u0027%s\u0027. nets arguments must be of \""},{"line_number":185,"context_line":"               \"the form --nets \u003cnetwork\u003dnetwork, v4-fixed-ip\u003dip-addr,\""},{"line_number":186,"context_line":"               \"v6-fixed-ip\u003dip-addr, port\u003dport-uuid\u003e, \""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_33daad4b","line":183,"range":{"start_line":183,"start_character":4,"end_line":183,"end_character":15},"in_reply_to":"3f1d235d_0ba2dffd","updated":"2017-07-05 06:54:32.000000000","message":"Done","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"70ed87cbe9b68e513c37db73095475ffbbf34923","unresolved":false,"context_lines":[{"line_number":186,"context_line":"               \"v6-fixed-ip\u003dip-addr, port\u003dport-uuid\u003e, \""},{"line_number":187,"context_line":"               \"with only one of network, or port specified.\")"},{"line_number":188,"context_line":"    nets \u003d []"},{"line_number":189,"context_line":"    for net_str in args.nets:"},{"line_number":190,"context_line":"        net_info \u003d {\"network\": \"\", \"v4-fixed-ip\": \"\", \"v6-fixed-ip\": \"\","},{"line_number":191,"context_line":"                    \"port\": \"\"}"},{"line_number":192,"context_line":"        for kv_str in net_str.split(\",\"):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_ab3d2bc5","line":189,"range":{"start_line":189,"start_character":24,"end_line":189,"end_character":28},"updated":"2017-07-05 04:04:07.000000000","message":"Perhaps there is an edge case that args.nets is None?","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"fcef9afbacfd4610b3dc511def63a43f83e0a855","unresolved":false,"context_lines":[{"line_number":186,"context_line":"               \"v6-fixed-ip\u003dip-addr, port\u003dport-uuid\u003e, \""},{"line_number":187,"context_line":"               \"with only one of network, or port specified.\")"},{"line_number":188,"context_line":"    nets \u003d []"},{"line_number":189,"context_line":"    for net_str in args.nets:"},{"line_number":190,"context_line":"        net_info \u003d {\"network\": \"\", \"v4-fixed-ip\": \"\", \"v6-fixed-ip\": \"\","},{"line_number":191,"context_line":"                    \"port\": \"\"}"},{"line_number":192,"context_line":"        for kv_str in net_str.split(\",\"):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_20a37502","line":189,"range":{"start_line":189,"start_character":24,"end_line":189,"end_character":28},"in_reply_to":"3f1d235d_ab3d2bc5","updated":"2017-07-05 06:54:32.000000000","message":"The args.nets has a default value []. without --nets passed ,the default value is [].","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"70ed87cbe9b68e513c37db73095475ffbbf34923","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                k, v \u003d kv_str.split(\"\u003d\", 1)"},{"line_number":195,"context_line":"            except ValueError:"},{"line_number":196,"context_line":"                raise apiexec.CommandError(err_msg % net_str)"},{"line_number":197,"context_line":"            if k in net_info:"},{"line_number":198,"context_line":"                if net_info[k]:"},{"line_number":199,"context_line":"                    raise apiexec.CommandError(err_msg % net_str)"},{"line_number":200,"context_line":"                net_info[k] \u003d v"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_ab42cb3c","line":197,"range":{"start_line":197,"start_character":15,"end_line":197,"end_character":16},"updated":"2017-07-05 04:04:07.000000000","message":"Perhaps there are edge cases that k is \" network\" (space before or after).","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"fcef9afbacfd4610b3dc511def63a43f83e0a855","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                k, v \u003d kv_str.split(\"\u003d\", 1)"},{"line_number":195,"context_line":"            except ValueError:"},{"line_number":196,"context_line":"                raise apiexec.CommandError(err_msg % net_str)"},{"line_number":197,"context_line":"            if k in net_info:"},{"line_number":198,"context_line":"                if net_info[k]:"},{"line_number":199,"context_line":"                    raise apiexec.CommandError(err_msg % net_str)"},{"line_number":200,"context_line":"                net_info[k] \u003d v"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_00b999e7","line":197,"range":{"start_line":197,"start_character":15,"end_line":197,"end_character":16},"in_reply_to":"3f1d235d_ab42cb3c","updated":"2017-07-05 06:54:32.000000000","message":"Done","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"}],"zunclient/osc/v1/containers.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"70ed87cbe9b68e513c37db73095475ffbbf34923","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                    \u0027v4-fixed-ip\u003dip-addr,v6-fixed-ip\u003dip-addr\u003e\u0027,"},{"line_number":132,"context_line":"            action\u003d\u0027append\u0027,"},{"line_number":133,"context_line":"            default\u003d[],"},{"line_number":134,"context_line":"            help\u003d\u0027Create network enpoints for the container.\u0027"},{"line_number":135,"context_line":"                 \u0027none: do not specify the network, zun will automatically\u0027"},{"line_number":136,"context_line":"                 \u0027create one.\u0027"},{"line_number":137,"context_line":"                 \u0027network: attach container to the specified networks.\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_5029a298","line":134,"range":{"start_line":134,"start_character":59,"end_line":134,"end_character":61},"updated":"2017-07-05 04:04:07.000000000","message":"nit: space between . and \u0027","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"fcef9afbacfd4610b3dc511def63a43f83e0a855","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                    \u0027v4-fixed-ip\u003dip-addr,v6-fixed-ip\u003dip-addr\u003e\u0027,"},{"line_number":132,"context_line":"            action\u003d\u0027append\u0027,"},{"line_number":133,"context_line":"            default\u003d[],"},{"line_number":134,"context_line":"            help\u003d\u0027Create network enpoints for the container.\u0027"},{"line_number":135,"context_line":"                 \u0027none: do not specify the network, zun will automatically\u0027"},{"line_number":136,"context_line":"                 \u0027create one.\u0027"},{"line_number":137,"context_line":"                 \u0027network: attach container to the specified networks.\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_53be49d5","line":134,"range":{"start_line":134,"start_character":59,"end_line":134,"end_character":61},"in_reply_to":"3f1d235d_5029a298","updated":"2017-07-05 06:54:32.000000000","message":"Done","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"70ed87cbe9b68e513c37db73095475ffbbf34923","unresolved":false,"context_lines":[{"line_number":132,"context_line":"            action\u003d\u0027append\u0027,"},{"line_number":133,"context_line":"            default\u003d[],"},{"line_number":134,"context_line":"            help\u003d\u0027Create network enpoints for the container.\u0027"},{"line_number":135,"context_line":"                 \u0027none: do not specify the network, zun will automatically\u0027"},{"line_number":136,"context_line":"                 \u0027create one.\u0027"},{"line_number":137,"context_line":"                 \u0027network: attach container to the specified networks.\u0027"},{"line_number":138,"context_line":"                 \u0027port: attach container to the neutron port with this UUID.\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_4bb3374e","line":135,"range":{"start_line":135,"start_character":18,"end_line":135,"end_character":22},"updated":"2017-07-05 04:04:07.000000000","message":"I think it is better to name this as \u0027auto\u0027 (\u0027none\u0027 sounds like there is no network will be created).","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"70ed87cbe9b68e513c37db73095475ffbbf34923","unresolved":false,"context_lines":[{"line_number":132,"context_line":"            action\u003d\u0027append\u0027,"},{"line_number":133,"context_line":"            default\u003d[],"},{"line_number":134,"context_line":"            help\u003d\u0027Create network enpoints for the container.\u0027"},{"line_number":135,"context_line":"                 \u0027none: do not specify the network, zun will automatically\u0027"},{"line_number":136,"context_line":"                 \u0027create one.\u0027"},{"line_number":137,"context_line":"                 \u0027network: attach container to the specified networks.\u0027"},{"line_number":138,"context_line":"                 \u0027port: attach container to the neutron port with this UUID.\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_d016d255","line":135,"range":{"start_line":135,"start_character":74,"end_line":135,"end_character":75},"updated":"2017-07-05 04:04:07.000000000","message":"space before \u0027 and this applies to all below.","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"fcef9afbacfd4610b3dc511def63a43f83e0a855","unresolved":false,"context_lines":[{"line_number":132,"context_line":"            action\u003d\u0027append\u0027,"},{"line_number":133,"context_line":"            default\u003d[],"},{"line_number":134,"context_line":"            help\u003d\u0027Create network enpoints for the container.\u0027"},{"line_number":135,"context_line":"                 \u0027none: do not specify the network, zun will automatically\u0027"},{"line_number":136,"context_line":"                 \u0027create one.\u0027"},{"line_number":137,"context_line":"                 \u0027network: attach container to the specified networks.\u0027"},{"line_number":138,"context_line":"                 \u0027port: attach container to the neutron port with this UUID.\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_13a9f18e","line":135,"range":{"start_line":135,"start_character":18,"end_line":135,"end_character":22},"in_reply_to":"3f1d235d_4bb3374e","updated":"2017-07-05 06:54:32.000000000","message":"Done","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"70ed87cbe9b68e513c37db73095475ffbbf34923","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            help\u003d\u0027Create network enpoints for the container.\u0027"},{"line_number":135,"context_line":"                 \u0027none: do not specify the network, zun will automatically\u0027"},{"line_number":136,"context_line":"                 \u0027create one.\u0027"},{"line_number":137,"context_line":"                 \u0027network: attach container to the specified networks.\u0027"},{"line_number":138,"context_line":"                 \u0027port: attach container to the neutron port with this UUID.\u0027"},{"line_number":139,"context_line":"                 \u0027v4-fixed-ip: IPv4 fixed address for container.\u0027"},{"line_number":140,"context_line":"                 \u0027v6-fixed-ip: IPv6 fixed address for container.\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_ebf0c3ff","line":137,"range":{"start_line":137,"start_character":61,"end_line":137,"end_character":69},"updated":"2017-07-05 04:04:07.000000000","message":"nit: \"neutron network\" (i think adding \u0027neutron\u0027 would be more specific).","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"fcef9afbacfd4610b3dc511def63a43f83e0a855","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            help\u003d\u0027Create network enpoints for the container.\u0027"},{"line_number":135,"context_line":"                 \u0027none: do not specify the network, zun will automatically\u0027"},{"line_number":136,"context_line":"                 \u0027create one.\u0027"},{"line_number":137,"context_line":"                 \u0027network: attach container to the specified networks.\u0027"},{"line_number":138,"context_line":"                 \u0027port: attach container to the neutron port with this UUID.\u0027"},{"line_number":139,"context_line":"                 \u0027v4-fixed-ip: IPv4 fixed address for container.\u0027"},{"line_number":140,"context_line":"                 \u0027v6-fixed-ip: IPv6 fixed address for container.\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_b3ca3d4b","line":137,"range":{"start_line":137,"start_character":61,"end_line":137,"end_character":69},"in_reply_to":"3f1d235d_ebf0c3ff","updated":"2017-07-05 06:54:32.000000000","message":"Done","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"70ed87cbe9b68e513c37db73095475ffbbf34923","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        if parsed_args.interactive:"},{"line_number":163,"context_line":"            opts[\u0027interactive\u0027] \u003d True"},{"line_number":164,"context_line":"        opts[\u0027hints\u0027] \u003d zun_utils.format_args(parsed_args.hint)"},{"line_number":165,"context_line":"        opts[\u0027nets\u0027] \u003d zun_utils._parse_nets(parsed_args)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        opts \u003d zun_utils.remove_null_parms(**opts)"},{"line_number":168,"context_line":"        container \u003d client.containers.create(**opts)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_8bdb8f7a","line":165,"range":{"start_line":165,"start_character":45,"end_line":165,"end_character":56},"updated":"2017-07-05 04:04:07.000000000","message":"nit: I think passing \u0027parsed_args.nets\u0027 is better because \u0027nets\u0027 is the only field used by the method.","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"fcef9afbacfd4610b3dc511def63a43f83e0a855","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        if parsed_args.interactive:"},{"line_number":163,"context_line":"            opts[\u0027interactive\u0027] \u003d True"},{"line_number":164,"context_line":"        opts[\u0027hints\u0027] \u003d zun_utils.format_args(parsed_args.hint)"},{"line_number":165,"context_line":"        opts[\u0027nets\u0027] \u003d zun_utils._parse_nets(parsed_args)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        opts \u003d zun_utils.remove_null_parms(**opts)"},{"line_number":168,"context_line":"        container \u003d client.containers.create(**opts)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_73c0252b","line":165,"range":{"start_line":165,"start_character":45,"end_line":165,"end_character":56},"in_reply_to":"3f1d235d_8bdb8f7a","updated":"2017-07-05 06:54:32.000000000","message":"Done","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"}],"zunclient/v1/containers_shell.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"70ed87cbe9b68e513c37db73095475ffbbf34923","unresolved":false,"context_lines":[{"line_number":102,"context_line":"           default\u003d[],"},{"line_number":103,"context_line":"           metavar\u003d\u0027\u003cnone, network\u003dnetwork, port\u003dport-uuid,\u0027"},{"line_number":104,"context_line":"                   \u0027v4-fixed-ip\u003dip-addr,v6-fixed-ip\u003dip-addr\u003e\u0027,"},{"line_number":105,"context_line":"           help\u003d\u0027Create network enpoints for the container.\u0027"},{"line_number":106,"context_line":"                \u0027none: do not specify the network, zun will automatically\u0027"},{"line_number":107,"context_line":"                \u0027create one.\u0027"},{"line_number":108,"context_line":"                \u0027network: attach container to the specified networks.\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_6b1a736f","line":105,"range":{"start_line":105,"start_character":58,"end_line":105,"end_character":60},"updated":"2017-07-05 04:04:07.000000000","message":"Ditto, space before \u0027","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"fcef9afbacfd4610b3dc511def63a43f83e0a855","unresolved":false,"context_lines":[{"line_number":102,"context_line":"           default\u003d[],"},{"line_number":103,"context_line":"           metavar\u003d\u0027\u003cnone, network\u003dnetwork, port\u003dport-uuid,\u0027"},{"line_number":104,"context_line":"                   \u0027v4-fixed-ip\u003dip-addr,v6-fixed-ip\u003dip-addr\u003e\u0027,"},{"line_number":105,"context_line":"           help\u003d\u0027Create network enpoints for the container.\u0027"},{"line_number":106,"context_line":"                \u0027none: do not specify the network, zun will automatically\u0027"},{"line_number":107,"context_line":"                \u0027create one.\u0027"},{"line_number":108,"context_line":"                \u0027network: attach container to the specified networks.\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_734a65ac","line":105,"range":{"start_line":105,"start_character":58,"end_line":105,"end_character":60},"in_reply_to":"3f1d235d_6b1a736f","updated":"2017-07-05 06:54:32.000000000","message":"Done","commit_id":"6e81b2d0804be26a813589aadb792c2e72d30bc0"}]}
