)]}'
{"nova/api/openstack/compute/security_groups.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"a9248d419ffe2943631333a080a8d1f7e626298c","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":"ATTRIBUTE_NAME \u003d \u0027security_groups\u0027"},{"line_number":39,"context_line":"SG_NOT_FOUND \u003d object()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def _authorize_context(req):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_598c0c35","line":39,"range":{"start_line":39,"start_character":0,"end_line":39,"end_character":23},"updated":"2017-11-06 03:17:41.000000000","message":"what is the consideration of using object() here?","commit_id":"dc658dbdcf2325cf6f27d9ae61d85b835f8410f8"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e09cca38be480966d20527dae4aeb8d27fba4788","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":"ATTRIBUTE_NAME \u003d \u0027security_groups\u0027"},{"line_number":39,"context_line":"SG_NOT_FOUND \u003d object()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def _authorize_context(req):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_68f5a9ca","line":39,"range":{"start_line":39,"start_character":0,"end_line":39,"end_character":23},"in_reply_to":"3f4b6375_598c0c35","updated":"2017-11-06 14:13:32.000000000","message":"It\u0027s just a random unique (to the host running the code) sentinel value (the value is the memory address of a new empty object reference). It\u0027s useful for when the thing you want to check for can be None or an empty dict.","commit_id":"dc658dbdcf2325cf6f27d9ae61d85b835f8410f8"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"cd48408aca80874408dd5aa01607f8e6d86ca0bc","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":"ATTRIBUTE_NAME \u003d \u0027security_groups\u0027"},{"line_number":39,"context_line":"SG_NOT_FOUND \u003d object()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def _authorize_context(req):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_dd144843","line":39,"range":{"start_line":39,"start_character":0,"end_line":39,"end_character":23},"in_reply_to":"3f4b6375_68f5a9ca","updated":"2017-11-07 09:27:58.000000000","message":"Cool, thanks, I\u0027m also clear about the reason of using object() from your reply.","commit_id":"dc658dbdcf2325cf6f27d9ae61d85b835f8410f8"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e09cca38be480966d20527dae4aeb8d27fba4788","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                        rule_group_id not in group_rule_data_by_rule_group_id):"},{"line_number":130,"context_line":"                    try:"},{"line_number":131,"context_line":"                        source_group \u003d self.security_group_api.get("},{"line_number":132,"context_line":"                            context, id\u003drule[\u0027group_id\u0027])"},{"line_number":133,"context_line":"                        group_rule_data_by_rule_group_id[rule_group_id] \u003d {"},{"line_number":134,"context_line":"                            \u0027name\u0027: source_group.get(\u0027name\u0027),"},{"line_number":135,"context_line":"                            \u0027tenant_id\u0027: source_group.get(\u0027project_id\u0027)}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_68cc8988","line":132,"updated":"2017-11-06 14:13:32.000000000","message":"you defined rule_group_id var above.. might as well use it :)","commit_id":"dc658dbdcf2325cf6f27d9ae61d85b835f8410f8"}]}
