)]}'
{"monasca_agent/collector/checks_d/crash.py":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"3722255b88e40b885b141295ccb4f7282a4a453e","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        if dir_name is None:"},{"line_number":22,"context_line":"            return None"},{"line_number":23,"context_line":"        elif re.match(r\"^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])[.]){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])-\\d{4}[.]\\d{2}[.]\\d{2}-\\d{2}:\\d{2}:\\d{2}$\", dir_name):"},{"line_number":24,"context_line":"            \"\"\"Check for CentOS 7.1"},{"line_number":25,"context_line":"            \"\"\""},{"line_number":26,"context_line":"            try:"},{"line_number":27,"context_line":"                date_part \u003d dir_name.split(\u0027-\u0027, 1)[1]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_6bca641c","line":24,"updated":"2015-10-02 20:24:36.000000000","message":"I would find this much easier to understand if you included an example of a valid CentOS 7.1 directory name","commit_id":"af4bae8f7bcb0326f353208ffc96aca539399db4"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"3722255b88e40b885b141295ccb4f7282a4a453e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            except ValueError:"},{"line_number":30,"context_line":"                pass"},{"line_number":31,"context_line":"        elif re.match(r\"^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])[.]){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])-\\d{4}[.]\\d{2}[.]\\d{2}-\\d{2}\\\\:\\d{2}\\\\:\\d{2}$\", dir_name):"},{"line_number":32,"context_line":"            \"\"\"Check for RHEL 7.1"},{"line_number":33,"context_line":"            \"\"\""},{"line_number":34,"context_line":"            try:"},{"line_number":35,"context_line":"                date_part \u003d dir_name.split(\u0027-\u0027, 1)[1]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_0bd168cd","line":32,"updated":"2015-10-02 20:24:36.000000000","message":"See above","commit_id":"af4bae8f7bcb0326f353208ffc96aca539399db4"},{"author":{"_account_id":15799,"name":"Ben Motz","email":"ben.launchpad@ouat.co.uk","username":"bmotz"},"change_message_id":"1774d4d91cd78195dd67bd01b3ca436ce2d1de7e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"from datetime import datetime"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"import monasca_agent.collector.checks as checks"},{"line_number":7,"context_line":"import re"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"log \u003d logging.getLogger(__name__)"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_a4d08f54","line":7,"updated":"2015-10-05 10:32:27.000000000","message":"Imports should be grouped as described in http://docs.openstack.org/developer/hacking/#imports","commit_id":"63815ef7f946804a3620bfbe5b1ffd4f744fd4bb"},{"author":{"_account_id":15799,"name":"Ben Motz","email":"ben.launchpad@ouat.co.uk","username":"bmotz"},"change_message_id":"1774d4d91cd78195dd67bd01b3ca436ce2d1de7e","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        dt \u003d None"},{"line_number":21,"context_line":"        if dir_name is None:"},{"line_number":22,"context_line":"            return None"},{"line_number":23,"context_line":"        elif re.match(r\"^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])[.]){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])-\\d{4}[.]\\d{2}[.]\\d{2}-\\d{2}:\\d{2}:\\d{2}$\", dir_name):"},{"line_number":24,"context_line":"            \"\"\"Check for CentOS 7.1"},{"line_number":25,"context_line":"               \u003cIP-address\u003e-YYYY.MM.dd-HH:mm:ss (e.g. 127.0.0.1-2015.10.02-16:07:51)"},{"line_number":26,"context_line":"            \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_e49f675d","line":23,"updated":"2015-10-05 10:32:27.000000000","message":"Are these directory names guaranteed to only have IPv4 addresses?\n\nCouldn\u0027t the first (IP address) part be much more succinctly expressed as\n\n    ^(\\d{1,3}\\.){3}\\d{1,3}\n\n?","commit_id":"63815ef7f946804a3620bfbe5b1ffd4f744fd4bb"},{"author":{"_account_id":15799,"name":"Ben Motz","email":"ben.launchpad@ouat.co.uk","username":"bmotz"},"change_message_id":"1774d4d91cd78195dd67bd01b3ca436ce2d1de7e","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        elif re.match(r\"^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])[.]){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])-\\d{4}[.]\\d{2}[.]\\d{2}-\\d{2}:\\d{2}:\\d{2}$\", dir_name):"},{"line_number":24,"context_line":"            \"\"\"Check for CentOS 7.1"},{"line_number":25,"context_line":"               \u003cIP-address\u003e-YYYY.MM.dd-HH:mm:ss (e.g. 127.0.0.1-2015.10.02-16:07:51)"},{"line_number":26,"context_line":"            \"\"\""},{"line_number":27,"context_line":"            try:"},{"line_number":28,"context_line":"                date_part \u003d dir_name.split(\u0027-\u0027, 1)[1]"},{"line_number":29,"context_line":"                dt \u003d datetime.strptime(date_part, \u0027%Y.%m.%d-%H:%M:%S\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_4447331d","line":26,"updated":"2015-10-05 10:32:27.000000000","message":"Docstrings should be used for class/method/function etc. documentation. This should be a standard inline comments.\n\nSee; https://www.python.org/dev/peps/pep-0008/#comments","commit_id":"63815ef7f946804a3620bfbe5b1ffd4f744fd4bb"},{"author":{"_account_id":15799,"name":"Ben Motz","email":"ben.launchpad@ouat.co.uk","username":"bmotz"},"change_message_id":"1c8c8157bf7ad40c71b3ac0367f95c19d966a2c6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"from datetime import datetime"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"import monasca_agent.collector.checks as checks"},{"line_number":7,"context_line":"import re"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"log \u003d logging.getLogger(__name__)"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a2fa921_cbddcb15","line":7,"updated":"2015-10-06 13:48:15.000000000","message":"The note on patchset v4 still applies here...","commit_id":"98ea582aba5c6ba68a089dfc120e19e7465f0474"},{"author":{"_account_id":17331,"name":"Koji Nakazono","email":"nakazono_0507@jp.fujitsu.com","username":"Koji_Nakazono"},"change_message_id":"0dda8202e13324ebf3f5b0b4d41fb0b5ea847274","unresolved":false,"context_lines":[{"line_number":4,"context_line":"from datetime import datetime"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"import monasca_agent.collector.checks as checks"},{"line_number":7,"context_line":"import re"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"log \u003d logging.getLogger(__name__)"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a2fa921_2b4b1fb2","line":7,"in_reply_to":"7a2fa921_cbddcb15","updated":"2015-10-13 01:47:32.000000000","message":"Sorry, I missed before comment.\nI\u0027ll move this line to just under \"import os\".","commit_id":"98ea582aba5c6ba68a089dfc120e19e7465f0474"},{"author":{"_account_id":15799,"name":"Ben Motz","email":"ben.launchpad@ouat.co.uk","username":"bmotz"},"change_message_id":"1c8c8157bf7ad40c71b3ac0367f95c19d966a2c6","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                date_part \u003d dir_name.split(\u0027-\u0027, 1)[1]"},{"line_number":34,"context_line":"                dt \u003d datetime.strptime(date_part, \u0027%Y.%m.%d-%H\\:%M\\:%S\u0027)"},{"line_number":35,"context_line":"            except ValueError:"},{"line_number":36,"context_line":"                pass"},{"line_number":37,"context_line":"        else:"},{"line_number":38,"context_line":"            try:"},{"line_number":39,"context_line":"                dt \u003d datetime.strptime(dir_name, \u0027%Y%m%d%H%M\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a2fa921_cbbaabe1","line":36,"updated":"2015-10-06 13:48:15.000000000","message":"Rather than using these complex regular expressions, a simpler (and potentially more robust) approach would be to just split on \u0027-\u0027 and if \u003e 1 value is returned try parsing the second component using strptime. (As far as I can see there\u0027s no particular need to check that the first component is a dotted quad?)\n\nThat would also mean you could get rid of one of the duplicated elif blocks.","commit_id":"98ea582aba5c6ba68a089dfc120e19e7465f0474"},{"author":{"_account_id":17331,"name":"Koji Nakazono","email":"nakazono_0507@jp.fujitsu.com","username":"Koji_Nakazono"},"change_message_id":"0dda8202e13324ebf3f5b0b4d41fb0b5ea847274","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                date_part \u003d dir_name.split(\u0027-\u0027, 1)[1]"},{"line_number":34,"context_line":"                dt \u003d datetime.strptime(date_part, \u0027%Y.%m.%d-%H\\:%M\\:%S\u0027)"},{"line_number":35,"context_line":"            except ValueError:"},{"line_number":36,"context_line":"                pass"},{"line_number":37,"context_line":"        else:"},{"line_number":38,"context_line":"            try:"},{"line_number":39,"context_line":"                dt \u003d datetime.strptime(dir_name, \u0027%Y%m%d%H%M\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a2fa921_8b591391","line":36,"in_reply_to":"7a2fa921_cbbaabe1","updated":"2015-10-13 01:47:32.000000000","message":"Basically, I think that \"except\" clause should be performed in exceptional cases.\nMaybe there is a Linux distribution which uses a crash dump directory name which includes \"-\" before date part.\nSo I think that it\u0027s better to check the directory name format by regular expression.","commit_id":"98ea582aba5c6ba68a089dfc120e19e7465f0474"},{"author":{"_account_id":15799,"name":"Ben Motz","email":"ben.launchpad@ouat.co.uk","username":"bmotz"},"change_message_id":"1eb04072314792f587c10d1921c16d21a2d04211","unresolved":false,"context_lines":[{"line_number":28,"context_line":"            except ValueError:"},{"line_number":29,"context_line":"                pass"},{"line_number":30,"context_line":"        # Check for RHEL 7.1. \u003cIP-address\u003e-YYYY.MM.dd-HH\\:mm\\:ss (e.g. 127.0.0.1-2015.10.02-16\\:07\\:51)"},{"line_number":31,"context_line":"        elif re.match(r\"^(\\d{1,3}\\.){3}\\d{1,3}-\\d{4}[.]\\d{2}[.]\\d{2}-\\d{2}\\\\:\\d{2}\\\\:\\d{2}$\", dir_name):"},{"line_number":32,"context_line":"            try:"},{"line_number":33,"context_line":"                date_part \u003d dir_name.split(\u0027-\u0027, 1)[1]"},{"line_number":34,"context_line":"                dt \u003d datetime.strptime(date_part, \u0027%Y.%m.%d-%H\\:%M\\:%S\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a2ca52d_fdd49b20","line":31,"updated":"2015-10-16 08:35:09.000000000","message":"One further point - I couldn\u0027t find any RHEL documentation saying that this is the format of the crash directory. This doc doesn\u0027t show there being \\ before : in the date:\n\nhttps://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html-single/Kernel_Crash_Dump_Guide/index.html#sect-crash-running-the-utility","commit_id":"e164597b3f2982a3e5ecd43fc86f028bf73c2dc6"},{"author":{"_account_id":17331,"name":"Koji Nakazono","email":"nakazono_0507@jp.fujitsu.com","username":"Koji_Nakazono"},"change_message_id":"718bf63554d0d9822ea316b96714bf6825c83d93","unresolved":false,"context_lines":[{"line_number":28,"context_line":"            except ValueError:"},{"line_number":29,"context_line":"                pass"},{"line_number":30,"context_line":"        # Check for RHEL 7.1. \u003cIP-address\u003e-YYYY.MM.dd-HH\\:mm\\:ss (e.g. 127.0.0.1-2015.10.02-16\\:07\\:51)"},{"line_number":31,"context_line":"        elif re.match(r\"^(\\d{1,3}\\.){3}\\d{1,3}-\\d{4}[.]\\d{2}[.]\\d{2}-\\d{2}\\\\:\\d{2}\\\\:\\d{2}$\", dir_name):"},{"line_number":32,"context_line":"            try:"},{"line_number":33,"context_line":"                date_part \u003d dir_name.split(\u0027-\u0027, 1)[1]"},{"line_number":34,"context_line":"                dt \u003d datetime.strptime(date_part, \u0027%Y.%m.%d-%H\\:%M\\:%S\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_a15207dc","line":31,"in_reply_to":"5a2ca52d_fdd49b20","updated":"2015-10-19 08:33:17.000000000","message":"Thank you for your information.\nI\u0027m sorry, it\u0027s my mistake to see the path in RHEL 7.1.\nI checked it in today, the path in RHEL 7.1 doesn\u0027t contain \"\\\".\n\nI apologize my mistake, and I\u0027ll commit the fixed source code.","commit_id":"e164597b3f2982a3e5ecd43fc86f028bf73c2dc6"}]}
