)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"63e88bf02524a81babf3b7acbb066602b48b78b3","unresolved":false,"context_lines":[{"line_number":12,"context_line":"rules. And neutron had one special secgroup rule which protocol is"},{"line_number":13,"context_line":"null. Then nova will just show them."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Maybe we can just filter those rules which protocol is null."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I9363be49133ac372f9bd39c72f3c44d4bf8ead31"},{"line_number":18,"context_line":"Closes-Bug: 1463372"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba15a1d1_d697918e","line":15,"updated":"2015-09-15 10:45:05.000000000","message":"So this is my key question, why can\u0027t we just return them?","commit_id":"16d6e5a65d31cd731e5fdbce2a366b8db662c0fe"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"e61ae0b613cfe20959ccba6826b361b1839e6c05","unresolved":false,"context_lines":[{"line_number":12,"context_line":"rules. And neutron had one special secgroup rule which protocol is"},{"line_number":13,"context_line":"null. Then nova will just show them."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Maybe we can just filter those rules which protocol is null."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I9363be49133ac372f9bd39c72f3c44d4bf8ead31"},{"line_number":18,"context_line":"Closes-Bug: 1463372"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba15a1d1_119af363","line":15,"in_reply_to":"ba15a1d1_d697918e","updated":"2015-09-15 11:20:13.000000000","message":"Rule\u0027s protocol must only be tcp, udp or icmp in nova-network. If there are some rules will have null protocol, them must be created and received by neutron. Therefore those rules, which have null protocol, shouldn\u0027t been exist in nova-network\u0027s view. We shouldn\u0027t display those unsuitable rules. Just like egress rule wouldn\u0027t display in nova-network.","commit_id":"16d6e5a65d31cd731e5fdbce2a366b8db662c0fe"}],"nova/network/security_group/neutron_driver.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"3214c0ae4429e0e7da6ce84dc621ff008209dd0e","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        nova_group[\u0027project_id\u0027] \u003d security_group[\u0027tenant_id\u0027]"},{"line_number":96,"context_line":"        nova_group[\u0027rules\u0027] \u003d []"},{"line_number":97,"context_line":"        for rule in security_group.get(\u0027security_group_rules\u0027, []):"},{"line_number":98,"context_line":"            if rule[\u0027direction\u0027] \u003d\u003d \u0027ingress\u0027 and rule[\u0027protocol\u0027]:"},{"line_number":99,"context_line":"                nova_group[\u0027rules\u0027].append("},{"line_number":100,"context_line":"                    self._convert_to_nova_security_group_rule_format(rule))"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_935e1444","line":98,"updated":"2015-08-10 13:25:52.000000000","message":"I am sorry but I think it\u0027s different to bug descriptions?\n\nbefore the change:\n nova secgroup-list-rules default\n+-------------+-----------+---------+----------+--------------+\n| IP Protocol | From Port | To Port | IP Range | Source Group |\n+-------------+-----------+---------+----------+--------------+\n|             |           |         |          | default      |\n|             |           |         |          | default      |\n+-------------+-----------+---------+----------+--------------+\n\nafter the change\nnova secgroup-list-rules default\n+-------------+-----------+---------+----------+--------------+\n| IP Protocol | From Port | To Port | IP Range | Source Group |\n+-------------+-----------+---------+----------+--------------+\n+-------------+-----------+---------+----------+--------------+\n\nseems we should print some neutron output?","commit_id":"a4469f8285604836e454bd86d44e4a5362781efc"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"f5ed1ccb807d0776fe9b2661fd2ab1e91a60ef0b","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        nova_group[\u0027project_id\u0027] \u003d security_group[\u0027tenant_id\u0027]"},{"line_number":96,"context_line":"        nova_group[\u0027rules\u0027] \u003d []"},{"line_number":97,"context_line":"        for rule in security_group.get(\u0027security_group_rules\u0027, []):"},{"line_number":98,"context_line":"            if rule[\u0027direction\u0027] \u003d\u003d \u0027ingress\u0027 and rule[\u0027protocol\u0027]:"},{"line_number":99,"context_line":"                nova_group[\u0027rules\u0027].append("},{"line_number":100,"context_line":"                    self._convert_to_nova_security_group_rule_format(rule))"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_8e005dac","line":98,"in_reply_to":"1a4dcd0f_935e1444","updated":"2015-08-26 03:00:39.000000000","message":"IMO, it should not display outgress rule in nova client. It had different view with neutron client.\nMaybe we can discuss with others about whether to display outgress rule in nova client.","commit_id":"a4469f8285604836e454bd86d44e4a5362781efc"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f4e8854e03df13e814b55e98fe04ac22a7cc6f91","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        for rule in security_group.get(\u0027security_group_rules\u0027, []):"},{"line_number":98,"context_line":"            if rule[\u0027direction\u0027] \u003d\u003d \u0027ingress\u0027 and rule[\u0027protocol\u0027]:"},{"line_number":99,"context_line":"                nova_group[\u0027rules\u0027].append("},{"line_number":100,"context_line":"                    self._convert_to_nova_security_group_rule_format(rule))"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        return nova_group"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_bb1c48c2","line":100,"updated":"2015-09-15 10:39:51.000000000","message":"I think its worth maybe logging a debug message that the rule is being skipped?","commit_id":"16d6e5a65d31cd731e5fdbce2a366b8db662c0fe"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"73d3fbb7ab658f2496680b13c0cac3b700491c05","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        for rule in security_group.get(\u0027security_group_rules\u0027, []):"},{"line_number":98,"context_line":"            if rule[\u0027direction\u0027] \u003d\u003d \u0027ingress\u0027 and rule[\u0027protocol\u0027]:"},{"line_number":99,"context_line":"                nova_group[\u0027rules\u0027].append("},{"line_number":100,"context_line":"                    self._convert_to_nova_security_group_rule_format(rule))"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        return nova_group"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_f6abb5d4","line":100,"in_reply_to":"ba15a1d1_bb1c48c2","updated":"2015-09-15 10:44:39.000000000","message":"actually, thats probably a silly idea, ignore that.","commit_id":"16d6e5a65d31cd731e5fdbce2a366b8db662c0fe"}],"nova/tests/unit/network/security_group/test_neutron_driver.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"845ed2fcaa475d68ed48d69c9d44407ed532efd6","unresolved":false,"context_lines":[{"line_number":276,"context_line":"                      \u0027security_group_id\u0027:"},{"line_number":277,"context_line":"                           \u002707f1362f-34f6-4136-819a-2dcde112269e\u0027,"},{"line_number":278,"context_line":"                      \u0027tenant_id\u0027: \u0027c166d9316f814891bcb66b96c4c891d6\u0027},"},{"line_number":279,"context_line":"                    {\u0027direction\u0027: \u0027egress\u0027,"},{"line_number":280,"context_line":"                     \u0027ethertype\u0027: \u0027IPv4\u0027,"},{"line_number":281,"context_line":"                     \u0027id\u0027: \u0027f8894c1a-cfec-4d77-b998-56bf8de766ff\u0027,"},{"line_number":282,"context_line":"                     \u0027port_range_max\u0027: None,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_3b483887","line":279,"updated":"2015-09-15 10:40:34.000000000","message":"oh, its because its egress","commit_id":"16d6e5a65d31cd731e5fdbce2a366b8db662c0fe"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f4e8854e03df13e814b55e98fe04ac22a7cc6f91","unresolved":false,"context_lines":[{"line_number":286,"context_line":"                     \u0027remote_ip_prefix\u0027: None,"},{"line_number":287,"context_line":"                     \u0027security_group_id\u0027:"},{"line_number":288,"context_line":"                          \u002721d550df-c2c7-489a-9d47-8f3afa63a7c9\u0027,"},{"line_number":289,"context_line":"                     \u0027tenant_id\u0027: \u0027c166d9316f814891bcb66b96c4c891d6\u0027},"},{"line_number":290,"context_line":"                    {\u0027direction\u0027: \u0027ingress\u0027,"},{"line_number":291,"context_line":"                     \u0027ethertype\u0027: \u0027IPv4\u0027,"},{"line_number":292,"context_line":"                     \u0027id\u0027: \u0027a3aab304-9a98-4867-ac94-a3cd3951f193\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_3becb88e","line":289,"updated":"2015-09-15 10:39:51.000000000","message":"why is this one not being returned?","commit_id":"16d6e5a65d31cd731e5fdbce2a366b8db662c0fe"}]}
