)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"b9424ad6bc57843f36c7aade856b729ed39cbf61","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"--append argument appends a value or values to the specified"},{"line_number":10,"context_line":"section.key pair. It may be helpful in cases when a user wants"},{"line_number":11,"context_line":"to add custom extensions to tempset.conf in an automated job."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I116f4456823913f21b5f8f01ff2b14d42ec67dc2"},{"line_number":14,"context_line":"Story: 2004429"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3f79a3b5_d40a981d","line":11,"updated":"2018-12-04 13:26:05.000000000","message":"tempest.conf","commit_id":"15f577942fc70ea00679e115e06c9b721245ca40"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"c008cb543c0634ce66d376b003a8038cbbeb670b","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"--append argument appends a value or values to the specified"},{"line_number":10,"context_line":"section.key pair. It may be helpful in cases when a user wants"},{"line_number":11,"context_line":"to add custom extensions to tempset.conf in an automated job."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I116f4456823913f21b5f8f01ff2b14d42ec67dc2"},{"line_number":14,"context_line":"Story: 2004429"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3f79a3b5_7a712daa","line":11,"in_reply_to":"3f79a3b5_d40a981d","updated":"2018-12-04 14:45:28.000000000","message":"oh, my classic typo :/ do you see anything else what should be changed as well, or should I retriger check jobs to fix only this?","commit_id":"15f577942fc70ea00679e115e06c9b721245ca40"}],"config_tempest/main.py":[{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"b8a0d68d6e0bf93adfcfdc2ddeba47fb86b021ee","unresolved":false,"context_lines":[{"line_number":355,"context_line":"    \"\"\""},{"line_number":356,"context_line":"    parsed \u003d {}"},{"line_number":357,"context_line":"    for argument in options:"},{"line_number":358,"context_line":"        if len(argument.split(\u0027\u003d\u0027)) \u003d\u003d 2:"},{"line_number":359,"context_line":"            section, values \u003d argument.split(\u0027\u003d\u0027)"},{"line_number":360,"context_line":"            if len(section.split(\u0027.\u0027)) !\u003d 2:"},{"line_number":361,"context_line":"                raise Exception(\"Missing dot. The option --remove has to \""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_45a974db","line":358,"updated":"2018-11-27 23:43:01.000000000","message":"What if the output is \u003e2, for example if \u003d is also on the right side of the expression? Maybe it\u0027s not the case, but you may want to use split(\u0027\u003d\u0027, 1)","commit_id":"c334d8c9b48704e0af8d578ef724b8baaf7aa19c"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"cdf67ce8445043b5567ab6f51cb65b0ca05071f9","unresolved":false,"context_lines":[{"line_number":355,"context_line":"    \"\"\""},{"line_number":356,"context_line":"    parsed \u003d {}"},{"line_number":357,"context_line":"    for argument in options:"},{"line_number":358,"context_line":"        if len(argument.split(\u0027\u003d\u0027)) \u003d\u003d 2:"},{"line_number":359,"context_line":"            section, values \u003d argument.split(\u0027\u003d\u0027)"},{"line_number":360,"context_line":"            if len(section.split(\u0027.\u0027)) !\u003d 2:"},{"line_number":361,"context_line":"                raise Exception(\"Missing dot. The option --remove has to \""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_259eb851","line":358,"in_reply_to":"3f79a3b5_45a974db","updated":"2018-11-28 00:19:39.000000000","message":"I can\u0027t image a case, when there would be two \u0027\u003d\u0027. If this was a problem, we would already noticed, because that\u0027s the same logic parse_values_to_remove uses.","commit_id":"c334d8c9b48704e0af8d578ef724b8baaf7aa19c"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"350fb8c30b3fd16a24ce047046e1de3939ee4fec","unresolved":false,"context_lines":[{"line_number":355,"context_line":"    \"\"\""},{"line_number":356,"context_line":"    parsed \u003d {}"},{"line_number":357,"context_line":"    for argument in options:"},{"line_number":358,"context_line":"        if len(argument.split(\u0027\u003d\u0027)) \u003d\u003d 2:"},{"line_number":359,"context_line":"            section, values \u003d argument.split(\u0027\u003d\u0027)"},{"line_number":360,"context_line":"            if len(section.split(\u0027.\u0027)) !\u003d 2:"},{"line_number":361,"context_line":"                raise Exception(\"Missing dot. The option --remove has to \""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_c98581ad","line":358,"in_reply_to":"3f79a3b5_45a974db","updated":"2018-11-29 09:55:52.000000000","message":"Ok; the case I had in mind is something like foo.bar\u003dv1,something,somethingelse\u003dv2 or so. But probably it just does not happen for good reasons.","commit_id":"c334d8c9b48704e0af8d578ef724b8baaf7aa19c"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"97e5d9e6fd0f6674cc9888eaf6b8449372b9f0a9","unresolved":false,"context_lines":[{"line_number":355,"context_line":"    \"\"\""},{"line_number":356,"context_line":"    parsed \u003d {}"},{"line_number":357,"context_line":"    for argument in options:"},{"line_number":358,"context_line":"        if len(argument.split(\u0027\u003d\u0027)) \u003d\u003d 2:"},{"line_number":359,"context_line":"            section, values \u003d argument.split(\u0027\u003d\u0027)"},{"line_number":360,"context_line":"            if len(section.split(\u0027.\u0027)) !\u003d 2:"},{"line_number":361,"context_line":"                raise Exception(\"Missing dot. The option --remove has to \""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_1bd09c56","line":358,"in_reply_to":"3f79a3b5_c98581ad","updated":"2018-11-29 10:12:41.000000000","message":"This will not work, it will fail during parsing values in parse_values_to_append, because the function expects only and exactly one \u0027\u003d\u0027 per one --add. That reminds me, I forgot to finish the exception error there.","commit_id":"c334d8c9b48704e0af8d578ef724b8baaf7aa19c"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"0cd92fae26c09fc27cc921f6887b4acd499ae106","unresolved":false,"context_lines":[{"line_number":294,"context_line":"                                For example:"},{"line_number":295,"context_line":"                                 $ discover-tempest-config \\\\"},{"line_number":296,"context_line":"                                  --add feature-enabled.api_ext\u003dtag[,tag-ext]"},{"line_number":297,"context_line":"                             \"\"\")"},{"line_number":298,"context_line":"    parser.add_argument(\u0027--remove\u0027, action\u003d\u0027append\u0027, default\u003d[],"},{"line_number":299,"context_line":"                        metavar\u003d\"SECTION.KEY\u003dVALUE[,VALUE]\","},{"line_number":300,"context_line":"                        help\u003d\"\"\"Remove values from tempest.conf"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_e5db84e8","line":297,"updated":"2018-12-03 11:02:42.000000000","message":"I don\u0027t get it, what\u0027s the difference between this and --override? Is it just add an option to the list of feature-enabled? like the api_ext already have a,b,c,d and you want to add a e?","commit_id":"8f541104067a7c7fc021c1d12d0343a4d8da18c0"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"361171917cb5888ac6760b61100210c012c9c751","unresolved":false,"context_lines":[{"line_number":294,"context_line":"                                For example:"},{"line_number":295,"context_line":"                                 $ discover-tempest-config \\\\"},{"line_number":296,"context_line":"                                  --add feature-enabled.api_ext\u003dtag[,tag-ext]"},{"line_number":297,"context_line":"                             \"\"\")"},{"line_number":298,"context_line":"    parser.add_argument(\u0027--remove\u0027, action\u003d\u0027append\u0027, default\u003d[],"},{"line_number":299,"context_line":"                        metavar\u003d\"SECTION.KEY\u003dVALUE[,VALUE]\","},{"line_number":300,"context_line":"                        help\u003d\"\"\"Remove values from tempest.conf"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_9051ac0f","line":297,"in_reply_to":"3f79a3b5_e5db84e8","updated":"2018-12-03 11:18:31.000000000","message":"yes, image you have feature-enabled.api_ext\u003da,b,c,d and you want to have there a,b,c,d,e\nIf you use overrides:\n$ discover-tempest-config feature-enabled.api_ext e\nit will ignore all other values and use only e, so the result would be: feature-enabled.api_ext\u003de\n\nIn order to use overrides for this, you would need to find out, that there are a,b,c,d present in your system so that you could do:\n$ discover-tempset-config feature-enabled.api_ext a,b,c,d,e\n\nIn order to avoid that, I\u0027d like to have this --add option, which tells python-tempestconf that after all extensions are discovered a user wants to have \"e\" included there as well.","commit_id":"8f541104067a7c7fc021c1d12d0343a4d8da18c0"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"ce04bf7d8f607590a856cf78d8ccc103468be69b","unresolved":false,"context_lines":[{"line_number":290,"context_line":"                        metavar\u003d\"SECTION.KEY\u003dVALUE[,VALUE]\","},{"line_number":291,"context_line":"                        help\u003d\"\"\"Append values to tempest.conf"},{"line_number":292,"context_line":"                                Key value pair to be appended to the"},{"line_number":293,"context_line":"                                configuration file."},{"line_number":294,"context_line":"                                For example:"},{"line_number":295,"context_line":"                                 $ discover-tempest-config \\\\"},{"line_number":296,"context_line":"                                  --append features.ext\u003dtag[,tag-ext] \\\\"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_ef939359","line":293,"updated":"2018-12-12 13:26:39.000000000","message":"Add an observation here, can\u0027t contain spaces","commit_id":"72b0823005e797d36782ba5d7020fa104d44e51b"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"ca4b5d1163a0fd753f364114f03c6175bb114d32","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            # missing equal sign, no values to add were specified, if a user"},{"line_number":373,"context_line":"            # wants to just create a section, it can be done so via overrides"},{"line_number":374,"context_line":"            raise Exception(\"Missing equal sign or more than just one found.\")"},{"line_number":375,"context_line":"    return parsed"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"def parse_overrides(overrides):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_78978738","line":375,"updated":"2018-12-10 09:21:47.000000000","message":"What happens if i pass --append section.ext\u003da,b, c, d with spaces?","commit_id":"72b0823005e797d36782ba5d7020fa104d44e51b"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"3c962101ddabbea5aa9eba9fa3716d28dde2e444","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            # missing equal sign, no values to add were specified, if a user"},{"line_number":373,"context_line":"            # wants to just create a section, it can be done so via overrides"},{"line_number":374,"context_line":"            raise Exception(\"Missing equal sign or more than just one found.\")"},{"line_number":375,"context_line":"    return parsed"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"def parse_overrides(overrides):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_93f5a488","line":375,"in_reply_to":"3f79a3b5_78978738","updated":"2018-12-10 09:58:05.000000000","message":"then it will not work, because spaces are not supposed to be there, the logic is the same as it is in --remove and in overrides - the space is a classic command line delimiter","commit_id":"72b0823005e797d36782ba5d7020fa104d44e51b"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a33f8c969393d9a74ba7d2cd5ffd8f19af3126e5","unresolved":false,"context_lines":[{"line_number":292,"context_line":"                                Key value pair to be appended to the"},{"line_number":293,"context_line":"                                configuration file."},{"line_number":294,"context_line":"                                NOTE: Multiple values are supposed to be"},{"line_number":295,"context_line":"                                devided by a COLON only, WITHOUT spaces."},{"line_number":296,"context_line":"                                For example:"},{"line_number":297,"context_line":"                                 $ discover-tempest-config \\\\"},{"line_number":298,"context_line":"                                  --append features.ext\u003dtag[,tag-ext] \\\\"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_ef16e15b","line":295,"range":{"start_line":295,"start_character":32,"end_line":295,"end_character":39},"updated":"2018-12-17 14:42:39.000000000","message":"s/devided/divided","commit_id":"81c70b0e5b8c834528db8c440ab1b3d6967fa5b5"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"e8ce569ef915755abeca7de220c6bab7f1d74480","unresolved":false,"context_lines":[{"line_number":292,"context_line":"                                Key value pair to be appended to the"},{"line_number":293,"context_line":"                                configuration file."},{"line_number":294,"context_line":"                                NOTE: Multiple values are supposed to be"},{"line_number":295,"context_line":"                                devided by a COLON only, WITHOUT spaces."},{"line_number":296,"context_line":"                                For example:"},{"line_number":297,"context_line":"                                 $ discover-tempest-config \\\\"},{"line_number":298,"context_line":"                                  --append features.ext\u003dtag[,tag-ext] \\\\"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_b569165c","line":295,"range":{"start_line":295,"start_character":32,"end_line":295,"end_character":39},"in_reply_to":"3f79a3b5_ef16e15b","updated":"2018-12-17 14:49:30.000000000","message":"good catch, thanks","commit_id":"81c70b0e5b8c834528db8c440ab1b3d6967fa5b5"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a33f8c969393d9a74ba7d2cd5ffd8f19af3126e5","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                                Key value pair to be removed from the"},{"line_number":305,"context_line":"                                configuration file."},{"line_number":306,"context_line":"                                NOTE: Multiple values are supposed to be"},{"line_number":307,"context_line":"                                devided by a COLON only, WITHOUT spaces."},{"line_number":308,"context_line":"                                For example:"},{"line_number":309,"context_line":"                                 $ discover-tempest-config \\\\"},{"line_number":310,"context_line":"                                  --remove identity.username\u003dmyname \\\\"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_8f25edc2","line":307,"range":{"start_line":307,"start_character":32,"end_line":307,"end_character":39},"updated":"2018-12-17 14:42:39.000000000","message":"ditto","commit_id":"81c70b0e5b8c834528db8c440ab1b3d6967fa5b5"}],"config_tempest/tests/test_tempest_conf.py":[{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"b8a0d68d6e0bf93adfcfdc2ddeba47fb86b021ee","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        # check if LOG.error was called"},{"line_number":117,"context_line":"        self.assertTrue(mock_logging.error.called)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def test_add_values(self):"},{"line_number":120,"context_line":"        api_exts \u003d \"dvr, l3-flavors, rbac-policies\""},{"line_number":121,"context_line":"        add_exts \u003d [\"dvr\", \"project-id\"]"},{"line_number":122,"context_line":"        add \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_05885c69","line":119,"updated":"2018-11-27 23:43:01.000000000","message":"what if we have both values passed as overrides and with --add? Maybe we need few tests for those cases too.","commit_id":"c334d8c9b48704e0af8d578ef724b8baaf7aa19c"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"cdf67ce8445043b5567ab6f51cb65b0ca05071f9","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        # check if LOG.error was called"},{"line_number":117,"context_line":"        self.assertTrue(mock_logging.error.called)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def test_add_values(self):"},{"line_number":120,"context_line":"        api_exts \u003d \"dvr, l3-flavors, rbac-policies\""},{"line_number":121,"context_line":"        add_exts \u003d [\"dvr\", \"project-id\"]"},{"line_number":122,"context_line":"        add \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_85a8ec73","line":119,"in_reply_to":"3f79a3b5_05885c69","updated":"2018-11-28 00:19:39.000000000","message":"That\u0027s a good point, I\u0027ll test it tomorrow and write a few tests too.","commit_id":"c334d8c9b48704e0af8d578ef724b8baaf7aa19c"}]}
