)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"fefc48833ec43e4979dbb41b32f97ae45f009406","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Provision composable networks command"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Command to provision (create/update) composobale networks,"},{"line_number":10,"context_line":"segments and subnets."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Depends-On: https://review.opendev.org/751739"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f560f44_0564b020","line":9,"range":{"start_line":9,"start_character":37,"end_line":9,"end_character":48},"updated":"2020-10-01 00:41:41.000000000","message":"nit: speling","commit_id":"1cbc34e0941597c7500ec4f59aa9863a228880f9"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"d2d4e9febb1cb3496db2acfe4d7f20da7d9fa204","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Provision composable networks command"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Command to provision (create/update) composobale networks,"},{"line_number":10,"context_line":"segments and subnets."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Depends-On: https://review.opendev.org/751739"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f560f44_c71e05ba","line":9,"range":{"start_line":9,"start_character":37,"end_line":9,"end_character":48},"in_reply_to":"9f560f44_0564b020","updated":"2020-10-05 21:23:15.000000000","message":"Done","commit_id":"1cbc34e0941597c7500ec4f59aa9863a228880f9"}],"tripleoclient/v2/overcloud_network.py":[{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"8e2824f9a463743735c3a40744e1a41edcc12a93","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        parser \u003d super(OvercloudNetworkProvision, self).get_parser(prog_name)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        parser.add_argument("},{"line_number":90,"context_line":"            \u0027-n\u0027, \u0027--networks-file\u0027, dest\u003d\u0027networks_file\u0027,"},{"line_number":91,"context_line":"            help\u003d_(\u0027Configuration file describing the network deployment.\u0027)"},{"line_number":92,"context_line":"        )"},{"line_number":93,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_f63b42e7","line":90,"updated":"2020-09-30 08:00:41.000000000","message":"why not use the builtin \u0027required\u003dTrue\u0027 from argparse https://docs.python.org/3/library/argparse.html#required\n\nthen you don\u0027t need to validate? or you can change your validations to do something else","commit_id":"d341e260ef5178d59da4143762620937195c4f54"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"86cea5e59b20d57890dda982d21abfdea4effa11","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        parser \u003d super(OvercloudNetworkProvision, self).get_parser(prog_name)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        parser.add_argument("},{"line_number":90,"context_line":"            \u0027-n\u0027, \u0027--networks-file\u0027, dest\u003d\u0027networks_file\u0027,"},{"line_number":91,"context_line":"            help\u003d_(\u0027Configuration file describing the network deployment.\u0027)"},{"line_number":92,"context_line":"        )"},{"line_number":93,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_c7b80ac9","line":90,"in_reply_to":"9f560f44_f63b42e7","updated":"2020-09-30 11:09:08.000000000","message":"Thanks Marios! Using the bultin from argpars is much better.\n\nDone.","commit_id":"d341e260ef5178d59da4143762620937195c4f54"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"8e2824f9a463743735c3a40744e1a41edcc12a93","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def _validate_args(self, parsed_args):"},{"line_number":105,"context_line":"        msg \u003d []"},{"line_number":106,"context_line":"        if parsed_args.networks_file in (None, \u0027\u0027):"},{"line_number":107,"context_line":"            msg.append("},{"line_number":108,"context_line":"                _(\u0027networks-file (you must specify the networks file)\u0027))"},{"line_number":109,"context_line":"        if parsed_args.output in (None, \u0027\u0027):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_b61a6a79","line":106,"range":{"start_line":106,"start_character":11,"end_line":106,"end_character":22},"updated":"2020-09-30 08:00:41.000000000","message":"if you add required\u003dTrue you won\u0027t need to deal with this yourself\n\nyou could consider doing some other validation though like checking that it is a file and we can read/write it (read networks file write the output file)?","commit_id":"d341e260ef5178d59da4143762620937195c4f54"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"b187fe2b520a8b03865369518f30b91ddea30055","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                                   \u0027path.\u0027))"},{"line_number":83,"context_line":"        parser.add_argument(\u0027--overwrite\u0027, default\u003dFalse, action\u003d\u0027store_true\u0027,"},{"line_number":84,"context_line":"                            help\u003d_(\u0027Overwrite the output file in case it \u0027"},{"line_number":85,"context_line":"                                   \u0027already exists\u0027))"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        return parser"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_e58edccf","line":85,"updated":"2020-10-01 00:40:28.000000000","message":"To be consistent with other commands, how about replacing --overwrite with a --yes flag, which won\u0027t show a yes/no prompt when the output file exists, like:\n\nhttps://opendev.org/openstack/python-tripleoclient/src/branch/master/tripleoclient/v1/overcloud_node.py#L491","commit_id":"1cbc34e0941597c7500ec4f59aa9863a228880f9"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"d2d4e9febb1cb3496db2acfe4d7f20da7d9fa204","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                                   \u0027path.\u0027))"},{"line_number":83,"context_line":"        parser.add_argument(\u0027--overwrite\u0027, default\u003dFalse, action\u003d\u0027store_true\u0027,"},{"line_number":84,"context_line":"                            help\u003d_(\u0027Overwrite the output file in case it \u0027"},{"line_number":85,"context_line":"                                   \u0027already exists\u0027))"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        return parser"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_87240d10","line":85,"in_reply_to":"9f560f44_e58edccf","updated":"2020-10-05 21:23:15.000000000","message":"Done","commit_id":"1cbc34e0941597c7500ec4f59aa9863a228880f9"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"a80c4aab16c81fa41122920ea44a3e8350b96e1d","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                \"Network configuration file does not exist:\""},{"line_number":116,"context_line":"                \" %s\" % parsed_args.networks_file)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        overwrite \u003d parsed_args.yes"},{"line_number":119,"context_line":"        if (os.path.exists(output_path)"},{"line_number":120,"context_line":"                and not overwrite and sys.stdin.isatty()):"},{"line_number":121,"context_line":"            prompt_response \u003d six.moves.input("}],"source_content_type":"text/x-python","patch_set":10,"id":"5f681702_4907031e","line":118,"range":{"start_line":118,"start_character":30,"end_line":118,"end_character":34},"updated":"2020-10-19 07:33:02.000000000","message":"o/ so i recall a \u0027utils\u0027 function that did this - apparently its still there https://opendev.org/openstack/python-tripleoclient/src/commit/d2f665ef6ce540771c17dacfbe1f45581c5bab59/tripleoclient/utils.py#L1399\n\nPerhaps it is better if you can re-use that?","commit_id":"910c2e4857ff1b865c8da39d91c9b2393fb86c2d"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"79068d7e0e21615949a9f1047b324769427eb2d8","unresolved":false,"context_lines":[{"line_number":115,"context_line":"                \"Network configuration file does not exist:\""},{"line_number":116,"context_line":"                \" %s\" % parsed_args.networks_file)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        overwrite \u003d parsed_args.yes"},{"line_number":119,"context_line":"        if (os.path.exists(output_path)"},{"line_number":120,"context_line":"                and not overwrite and sys.stdin.isatty()):"},{"line_number":121,"context_line":"            prompt_response \u003d six.moves.input("}],"source_content_type":"text/x-python","patch_set":10,"id":"3f65232a_0ea5f804","line":118,"range":{"start_line":118,"start_character":30,"end_line":118,"end_character":34},"in_reply_to":"5f681702_4907031e","updated":"2020-10-23 14:43:38.000000000","message":"Done","commit_id":"910c2e4857ff1b865c8da39d91c9b2393fb86c2d"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"b7ca4a1e38399b0ee8fe90b33ba270363ede4c3c","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        overwrite \u003d parsed_args.yes"},{"line_number":55,"context_line":"        if (os.path.exists(output_path) and not overwrite"},{"line_number":56,"context_line":"                and not oooutils.prompt_user_for_confirmation("},{"line_number":57,"context_line":"                    \u0027Overwrite existing file %s [y/N]?\u0027 % parsed_args.output,"},{"line_number":58,"context_line":"                    self.log)):"},{"line_number":59,"context_line":"            raise oscexc.CommandError(\"Will not overwrite existing file:\""}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_200371ba","line":56,"range":{"start_line":56,"start_character":23,"end_line":56,"end_character":27},"updated":"2020-11-04 07:51:37.000000000","message":"ah i missed that in my last review ;)","commit_id":"20cf3c3d6148edfce6abeaf39fa7470e0112e8fc"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"d8594e3536e6db20d066aa42531bf941794c090c","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        parser.add_argument(\u0027-n\u0027, \u0027--networks-file\u0027, required\u003dTrue,"},{"line_number":89,"context_line":"                            dest\u003d\u0027networks_file\u0027,"},{"line_number":90,"context_line":"                            help\u003d_(\u0027Configuration file describing the network \u0027"},{"line_number":91,"context_line":"                                   \u0027deployment.\u0027))"},{"line_number":92,"context_line":"        parser.add_argument(\u0027-o\u0027, \u0027--output\u0027, required\u003dTrue,"},{"line_number":93,"context_line":"                            metavar\u003d\u0027\u003cnetwork_environment.yaml\u003e\u0027,"},{"line_number":94,"context_line":"                            help\u003d_(\u0027The output network environment file \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"1f621f24_67a83adb","line":91,"updated":"2020-11-18 02:57:15.000000000","message":"Can this be a positional argument? That would be consistent with other commands which have a mandatory input file","commit_id":"29c8783259dbd0c58868968d9464ae6ccfa854f2"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"7621e1590f09498ef06485095719dc29f2b764d6","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        parser.add_argument(\u0027-n\u0027, \u0027--networks-file\u0027, required\u003dTrue,"},{"line_number":89,"context_line":"                            dest\u003d\u0027networks_file\u0027,"},{"line_number":90,"context_line":"                            help\u003d_(\u0027Configuration file describing the network \u0027"},{"line_number":91,"context_line":"                                   \u0027deployment.\u0027))"},{"line_number":92,"context_line":"        parser.add_argument(\u0027-o\u0027, \u0027--output\u0027, required\u003dTrue,"},{"line_number":93,"context_line":"                            metavar\u003d\u0027\u003cnetwork_environment.yaml\u003e\u0027,"},{"line_number":94,"context_line":"                            help\u003d_(\u0027The output network environment file \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"fffc6b78_0d2b6294","line":91,"in_reply_to":"1f621f24_67a83adb","updated":"2020-11-19 14:28:14.000000000","message":"Makes sense.\n\nDone.","commit_id":"29c8783259dbd0c58868968d9464ae6ccfa854f2"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"a40675d42b5bd90ac001a3a201162de07f043010","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    def get_parser(self, prog_name):"},{"line_number":86,"context_line":"        parser \u003d super(OvercloudNetworkProvision, self).get_parser(prog_name)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        parser.add_argument(\u0027input\u0027,"},{"line_number":89,"context_line":"                            metavar\u003d\u0027\u003cnetwork_data.yaml\u003e\u0027,"},{"line_number":90,"context_line":"                            help\u003d_(\u0027Configuration file describing the network \u0027"},{"line_number":91,"context_line":"                                   \u0027deployment.\u0027))"}],"source_content_type":"text/x-python","patch_set":15,"id":"fffc6b78_07917353","line":88,"updated":"2020-11-20 08:07:48.000000000","message":"why not just call it networks_file","commit_id":"81a67e6f2c7e7b8a843060b781a9e7bb5137ad62"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"80b7f3b329e98be0c974233ca97ab29147de5620","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    def get_parser(self, prog_name):"},{"line_number":86,"context_line":"        parser \u003d super(OvercloudNetworkProvision, self).get_parser(prog_name)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        parser.add_argument(\u0027input\u0027,"},{"line_number":89,"context_line":"                            metavar\u003d\u0027\u003cnetwork_data.yaml\u003e\u0027,"},{"line_number":90,"context_line":"                            help\u003d_(\u0027Configuration file describing the network \u0027"},{"line_number":91,"context_line":"                                   \u0027deployment.\u0027))"}],"source_content_type":"text/x-python","patch_set":15,"id":"fffc6b78_8066e950","line":88,"in_reply_to":"fffc6b78_07917353","updated":"2020-11-20 12:59:24.000000000","message":"Done","commit_id":"81a67e6f2c7e7b8a843060b781a9e7bb5137ad62"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"a40675d42b5bd90ac001a3a201162de07f043010","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    def take_action(self, parsed_args):"},{"line_number":103,"context_line":"        self.log.debug(\"take_action(%s)\" % parsed_args)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        input_file_path \u003d os.path.abspath(parsed_args.input)"},{"line_number":106,"context_line":"        output_path \u003d os.path.abspath(parsed_args.output)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        if not os.path.exists(input_file_path):"}],"source_content_type":"text/x-python","patch_set":15,"id":"fffc6b78_8793a34f","line":105,"range":{"start_line":105,"start_character":9,"end_line":105,"end_character":14},"updated":"2020-11-20 08:07:48.000000000","message":"\"network_file_path\"\nhas a certain ring to it no? ;)","commit_id":"81a67e6f2c7e7b8a843060b781a9e7bb5137ad62"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"8ce8bc15a0c75ba3abec16171f1ee2e721feb903","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    def take_action(self, parsed_args):"},{"line_number":103,"context_line":"        self.log.debug(\"take_action(%s)\" % parsed_args)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        input_file_path \u003d os.path.abspath(parsed_args.input)"},{"line_number":106,"context_line":"        output_path \u003d os.path.abspath(parsed_args.output)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        if not os.path.exists(input_file_path):"}],"source_content_type":"text/x-python","patch_set":15,"id":"fffc6b78_c0d591bb","line":105,"range":{"start_line":105,"start_character":9,"end_line":105,"end_character":14},"in_reply_to":"fffc6b78_8793a34f","updated":"2020-11-20 13:02:05.000000000","message":"Done","commit_id":"81a67e6f2c7e7b8a843060b781a9e7bb5137ad62"}]}
