)]}'
{"nova/network/security_group/security_group_base.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5fe7f8551ba29b122196939eef06110f338544bb","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        try:"},{"line_number":67,"context_line":"            customer \u003d int(ip_protocol)"},{"line_number":68,"context_line":"            if customer and (customer \u003c 0 or customer \u003e 255):"},{"line_number":69,"context_line":"                raise exception.InvalidInput(reason\u003d_("},{"line_number":70,"context_line":"                    \"IP protocol must be \u0027tcp\u0027,\u0027udp\u0027,\u0027icmp\u0027,\""},{"line_number":71,"context_line":"                    \"or an integer between 0 and 255.\"))"}],"source_content_type":"text/x-python","patch_set":9,"id":"da6ed579_7cae6f99","line":68,"range":{"start_line":68,"start_character":15,"end_line":68,"end_character":23},"updated":"2016-01-14 09:20:24.000000000","message":"this is redundant as customer is an int and an therefore it is evaluated true if customer !\u003d 0 which is already covered with the second part of the condition","commit_id":"30d89f7390c385b93f8a4965396b9d3f09ed2b7f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5fe7f8551ba29b122196939eef06110f338544bb","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                raise exception.InvalidInput(reason\u003d_("},{"line_number":70,"context_line":"                    \"IP protocol must be \u0027tcp\u0027,\u0027udp\u0027,\u0027icmp\u0027,\""},{"line_number":71,"context_line":"                    \"or an integer between 0 and 255.\"))"},{"line_number":72,"context_line":"            elif from_port \u003c 1 or to_port \u003e 65535:"},{"line_number":73,"context_line":"                raise exception.InvalidPortRange(from_port\u003dfrom_port,"},{"line_number":74,"context_line":"                                                 to_port\u003dto_port,"},{"line_number":75,"context_line":"                                                 msg\u003d\"Valid ports should\""}],"source_content_type":"text/x-python","patch_set":9,"id":"da6ed579_dcf0bb93","line":72,"updated":"2016-01-14 09:20:24.000000000","message":"In the bug report you are referring in the commit message the example rule contains from_port \u003d -1, to_port \u003d-1 would this check forbid the rule in the bug report to be added?","commit_id":"30d89f7390c385b93f8a4965396b9d3f09ed2b7f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5fe7f8551ba29b122196939eef06110f338544bb","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                                                 to_port\u003dto_port,"},{"line_number":75,"context_line":"                                                 msg\u003d\"Valid ports should\""},{"line_number":76,"context_line":"                                                 \" be between 1-65535\")"},{"line_number":77,"context_line":"            elif from_port \u003e to_port:"},{"line_number":78,"context_line":"                raise exception.InvalidPortRange(from_port\u003dfrom_port,"},{"line_number":79,"context_line":"                                                 to_port\u003dto_port,"},{"line_number":80,"context_line":"                                                 msg\u003d\"Former value cannot\""}],"source_content_type":"text/x-python","patch_set":9,"id":"da6ed579_1c42d3ae","line":77,"updated":"2016-01-14 09:20:24.000000000","message":"What is the reason of this restriction here? I see this is already checked below in L129","commit_id":"30d89f7390c385b93f8a4965396b9d3f09ed2b7f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5fe7f8551ba29b122196939eef06110f338544bb","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                                                 \" be greater than the later\")"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        except (ValueError, TypeError):"},{"line_number":84,"context_line":"            if ip_protocol and \\"},{"line_number":85,"context_line":"                    (ip_protocol.upper() not in [\u0027TCP\u0027, \u0027UDP\u0027, \u0027ICMP\u0027]):"},{"line_number":86,"context_line":"                raise exception.InvalidInput(reason\u003d_("},{"line_number":87,"context_line":"                    \"IP protocol must be \u0027tcp\u0027,\u0027udp\u0027,\u0027icmp\u0027,\""}],"source_content_type":"text/x-python","patch_set":9,"id":"da6ed579_304a5bad","line":84,"range":{"start_line":84,"start_character":31,"end_line":84,"end_character":32},"updated":"2016-01-14 09:20:24.000000000","message":"To avoid backslash use a () around the condition instead","commit_id":"30d89f7390c385b93f8a4965396b9d3f09ed2b7f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5fe7f8551ba29b122196939eef06110f338544bb","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                raise exception.InvalidInput(reason\u003d_("},{"line_number":87,"context_line":"                    \"IP protocol must be \u0027tcp\u0027,\u0027udp\u0027,\u0027icmp\u0027,\""},{"line_number":88,"context_line":"                    \"or an integer between 0 and 255.\"))"},{"line_number":89,"context_line":"        except AttributeError:"},{"line_number":90,"context_line":"            raise exception.InvalidInput(reason\u003d_("},{"line_number":91,"context_line":"                \"IP protocol must be \u0027tcp\u0027,\u0027udp\u0027,\u0027icmp\u0027,\""},{"line_number":92,"context_line":"                \"or an integer between 0 and 255.\"))"}],"source_content_type":"text/x-python","patch_set":9,"id":"da6ed579_bc1f076b","line":89,"range":{"start_line":89,"start_character":15,"end_line":89,"end_character":29},"updated":"2016-01-14 09:20:24.000000000","message":"how can we get an AttributeError in the above code?","commit_id":"30d89f7390c385b93f8a4965396b9d3f09ed2b7f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7c24f44538e1f1ed1383fa3acb4c1ae215914d9f","unresolved":false,"context_lines":[{"line_number":72,"context_line":"            elif from_port \u003c -1 or to_port \u003e 65535:"},{"line_number":73,"context_line":"                raise exception.InvalidPortRange(from_port\u003dfrom_port,"},{"line_number":74,"context_line":"                                                 to_port\u003dto_port,"},{"line_number":75,"context_line":"                                                 msg\u003d\"Valid ports should\""},{"line_number":76,"context_line":"                                                 \" be between 1-65535\")"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        except (ValueError, TypeError):"},{"line_number":79,"context_line":"            if (ip_protocol and"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba63e191_0183b9cd","line":76,"range":{"start_line":75,"start_character":53,"end_line":76,"end_character":70},"updated":"2016-01-19 10:40:33.000000000","message":"The error message is not in line with the condition","commit_id":"f745942cc23c1a1d603c4acc0d30b72e48a0707a"}],"nova/tests/unit/api/openstack/compute/test_security_groups.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5fe7f8551ba29b122196939eef06110f338544bb","unresolved":false,"context_lines":[{"line_number":858,"context_line":"        self.assertEqual(security_group_rule[\u0027parent_group_id\u0027],"},{"line_number":859,"context_line":"                         self.sg2[\u0027id\u0027])"},{"line_number":860,"context_line":"        self.assertEqual(security_group_rule[\u0027ip_protocol\u0027], \u0027100\u0027)"},{"line_number":861,"context_line":""},{"line_number":862,"context_line":"    def test_create_by_same_group_id(self):"},{"line_number":863,"context_line":"        rule1 \u003d security_group_rule_template(group_id\u003dself.sg1[\u0027id\u0027],"},{"line_number":864,"context_line":"                                             from_port\u003d80, to_port\u003d80,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da6ed579_26b54130","line":861,"updated":"2016-01-14 09:20:24.000000000","message":"Could you please add tests that cover the negative cases of your change?","commit_id":"30d89f7390c385b93f8a4965396b9d3f09ed2b7f"}]}
