)]}'
{"nova/api/openstack/compute/security_groups.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"5d65a64901d51f8b2e4da64da049bb38a9f9aed5","unresolved":false,"context_lines":[{"line_number":451,"context_line":"        else:"},{"line_number":452,"context_line":"            # If method is a POST we get the security groups intended for an"},{"line_number":453,"context_line":"            # instance from the request. The reason for this is if using"},{"line_number":454,"context_line":"            # neutron security groups the requested security groups for the\u003d"},{"line_number":455,"context_line":"            # instance are not in the db and have not been sent to neutron yet"},{"line_number":456,"context_line":"            if req.method !\u003d \u0027POST\u0027:"},{"line_number":457,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_f6db117a","line":454,"range":{"start_line":454,"start_character":75,"end_line":454,"end_character":76},"updated":"2016-06-01 12:03:23.000000000","message":"typo?","commit_id":"d799e1c49b7990e8e70abdd11d40bfea54737f7c"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"5d65a64901d51f8b2e4da64da049bb38a9f9aed5","unresolved":false,"context_lines":[{"line_number":459,"context_line":"                        self.security_group_api"},{"line_number":460,"context_line":"                        .get_instances_security_groups_bindings(context,"},{"line_number":461,"context_line":"                                                                    servers))"},{"line_number":462,"context_line":"                except exception.NovaException as ServiceUnaivalable:"},{"line_number":463,"context_line":"                    raise exc.HTTPNotFound(ServiceUnaivalable)"},{"line_number":464,"context_line":"                for server in servers:"},{"line_number":465,"context_line":"                    groups \u003d sg_instance_bindings.get(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_969e05b7","line":462,"range":{"start_line":462,"start_character":50,"end_line":462,"end_character":68},"updated":"2016-06-01 12:03:23.000000000","message":"better fix typo ,ServiceUnavailable?","commit_id":"d799e1c49b7990e8e70abdd11d40bfea54737f7c"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"5d65a64901d51f8b2e4da64da049bb38a9f9aed5","unresolved":false,"context_lines":[{"line_number":460,"context_line":"                        .get_instances_security_groups_bindings(context,"},{"line_number":461,"context_line":"                                                                    servers))"},{"line_number":462,"context_line":"                except exception.NovaException as ServiceUnaivalable:"},{"line_number":463,"context_line":"                    raise exc.HTTPNotFound(ServiceUnaivalable)"},{"line_number":464,"context_line":"                for server in servers:"},{"line_number":465,"context_line":"                    groups \u003d sg_instance_bindings.get(server[\u0027id\u0027])"},{"line_number":466,"context_line":"                    if groups:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_96b9e5ce","line":463,"range":{"start_line":463,"start_character":30,"end_line":463,"end_character":42},"updated":"2016-06-01 12:03:23.000000000","message":"not sure HTTPNotFound here is reasonable, Not found is related to resource , not to service?","commit_id":"d799e1c49b7990e8e70abdd11d40bfea54737f7c"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8048d6747e2d0c386604c5745307627c24c3f1aa","unresolved":false,"context_lines":[{"line_number":441,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":442,"context_line":"        if not softauth(context):"},{"line_number":443,"context_line":"            return"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"        if not openstack_driver.is_neutron_security_groups():"},{"line_number":446,"context_line":"            for server in servers:"},{"line_number":447,"context_line":"                instance \u003d req.get_db_instance(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_26397cd9","side":"PARENT","line":444,"updated":"2016-06-16 00:11:31.000000000","message":"unnecessary to remove this line because of this patch scope..","commit_id":"5f485eb81d4105d1982a5ebd3fdf8868b133351d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8048d6747e2d0c386604c5745307627c24c3f1aa","unresolved":false,"context_lines":[{"line_number":453,"context_line":"            # If method is a POST we get the security groups intended for an"},{"line_number":454,"context_line":"            # instance from the request. The reason for this is if using"},{"line_number":455,"context_line":"            # neutron security groups the requested security groups for the"},{"line_number":456,"context_line":"            # instance are not in the db and have not been sent to neutron yet."},{"line_number":457,"context_line":"            if req.method !\u003d \u0027POST\u0027:"},{"line_number":458,"context_line":"                sg_instance_bindings \u003d ("},{"line_number":459,"context_line":"                    self.security_group_api"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_063600e7","side":"PARENT","line":456,"range":{"start_line":456,"start_character":78,"end_line":456,"end_character":79},"updated":"2016-06-16 00:11:31.000000000","message":"here also, unnecessary to remove..","commit_id":"5f485eb81d4105d1982a5ebd3fdf8868b133351d"}],"nova/network/security_group/neutron_driver.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8048d6747e2d0c386604c5745307627c24c3f1aa","unresolved":false,"context_lines":[{"line_number":402,"context_line":"                            instances_security_group_bindings.setdefault("},{"line_number":403,"context_line":"                                port[\u0027device_id\u0027], []).append(sg_entry)"},{"line_number":404,"context_line":"            return instances_security_group_bindings"},{"line_number":405,"context_line":"        except Exception as NeutronClientException:"},{"line_number":406,"context_line":"            raise exception.NovaException(NeutronClientException)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def get_instance_security_groups(self, context, instance, detailed\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_26405c35","line":405,"range":{"start_line":405,"start_character":8,"end_line":405,"end_character":24},"updated":"2016-06-16 00:11:31.000000000","message":"This try-except way(except Exception) is not good, because this block catches unexpected exceptions also which are not neutron client errors.\n\nIn addition, the other parts in this module handle multiple cases for raising different exceptions. Please see add_to_instance() and more as a sample.","commit_id":"1362c0b3b94bb31474af9caa57b271693b10e98e"}]}
