)]}'
{"smaug/common/constants.py":[{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"a44b3d0f038b56120fefb9b34d4bdd4c4e8b2138","unresolved":false,"context_lines":[{"line_number":52,"context_line":"RESOURCE_STATUS_DELETED \u003d \u0027deleted\u0027"},{"line_number":53,"context_line":"RESOURCE_STATUS_UNDEFINED \u003d \u0027undefined\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"HEAT_RESOURCE_TYPES \u003d (VOLUME_ATTACHMENT_RESOURCE,"},{"line_number":56,"context_line":"                       FLOATING_IP_ASSOCIATION"},{"line_number":57,"context_line":"                       ) \u003d (\u0027OS::Cinder::VolumeAttachment\u0027,"},{"line_number":58,"context_line":"                            \u0027OS::Nova::FloatingIPAssociation\u0027"},{"line_number":59,"context_line":"                            )"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_daf2ecd1","line":59,"range":{"start_line":55,"start_character":0,"end_line":59,"end_character":29},"updated":"2016-05-30 11:53:11.000000000","message":"Is this needed outside of the Heat integration?\nI don\u0027t see a reason for it to be used in other places in the system.\n\nIf not it should be moved to the proper volume","commit_id":"8f546876ae5fc45ac8e5060f2a1e978468b63954"},{"author":{"_account_id":19345,"name":"smile-luobin","email":"luobin_smile@163.com","username":"smile-luobin"},"change_message_id":"ffcbb3221b38f5888d0d65617d971c415056ba2f","unresolved":false,"context_lines":[{"line_number":52,"context_line":"RESOURCE_STATUS_DELETED \u003d \u0027deleted\u0027"},{"line_number":53,"context_line":"RESOURCE_STATUS_UNDEFINED \u003d \u0027undefined\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"HEAT_RESOURCE_TYPES \u003d (VOLUME_ATTACHMENT_RESOURCE,"},{"line_number":56,"context_line":"                       FLOATING_IP_ASSOCIATION"},{"line_number":57,"context_line":"                       ) \u003d (\u0027OS::Cinder::VolumeAttachment\u0027,"},{"line_number":58,"context_line":"                            \u0027OS::Nova::FloatingIPAssociation\u0027"},{"line_number":59,"context_line":"                            )"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_e151dfd9","line":59,"range":{"start_line":55,"start_character":0,"end_line":59,"end_character":29},"in_reply_to":"9abb7d3a_daf2ecd1","updated":"2016-05-31 07:05:43.000000000","message":"Thanks. Yes it just used for the heat restoration. \nI will remove this part in Nova Protection Plugin.","commit_id":"8f546876ae5fc45ac8e5060f2a1e978468b63954"}],"smaug/services/protection/protection_plugins/server/nova_protection_plugin.py":[{"author":{"_account_id":19346,"name":"yinwei","email":"yinweiishere@icloud.com","username":"yinwei"},"change_message_id":"d4c96f810c5b358db5e37bb9c4741dc060b2bdf6","unresolved":false,"context_lines":[{"line_number":266,"context_line":"            objects \u003d [key.split(\"/\")[-1] for key in"},{"line_number":267,"context_line":"                       bank_section.list_objects()]"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"            # get kernel_data if need"},{"line_number":270,"context_line":"            kernel_id \u003d None"},{"line_number":271,"context_line":"            if snapshot_metadata.get(\"kernel_metadata\") is not None:"},{"line_number":272,"context_line":"                kernel_metadata \u003d snapshot_metadata[\"kernel_metadata\"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_21407107","line":269,"updated":"2016-05-24 02:58:59.000000000","message":"restore kernel, ramdisk and image have logic in common. Better create a common function with different disk format name as parameter.","commit_id":"06f52f938fa0603694e912f777586e6459302e24"},{"author":{"_account_id":16206,"name":"chenhuayi","email":"chenhuayi@huawei.com","username":"chenhuayi2"},"change_message_id":"5edb9848e12ebe9b3909ab508b3940678c320012","unresolved":false,"context_lines":[{"line_number":314,"context_line":"                ramdisk_id \u003d ramdisk.id"},{"line_number":315,"context_line":"                glance_client.images.upload(ramdisk_id, ramdisk_data)"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"            # get image_data"},{"line_number":318,"context_line":"            image_data \u003d BytesIO()"},{"line_number":319,"context_line":"            for obj in objects:"},{"line_number":320,"context_line":"                if obj.find(\"data_\") \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_50f9afc7","line":317,"range":{"start_line":317,"start_character":12,"end_line":317,"end_character":28},"updated":"2016-05-25 10:02:35.000000000","message":"this function is too large. Each section should pack in a function.","commit_id":"06f52f938fa0603694e912f777586e6459302e24"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"ebef862ee35ac1cddd482258a4d4a0840c888490","unresolved":false,"context_lines":[{"line_number":387,"context_line":"        if server_metadata[\"key_name\"] is not None:"},{"line_number":388,"context_line":"            properties[\"key_name\"] \u003d server_metadata[\"key_name\"]"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        security_groups \u003d []"},{"line_number":391,"context_line":"        for security_group in server_metadata[\"security_groups\"]:"},{"line_number":392,"context_line":"            security_groups.append(security_group[\"name\"])"},{"line_number":393,"context_line":"        properties[\"security_groups\"] \u003d security_groups"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        networks \u003d []"},{"line_number":396,"context_line":"        for network in server_metadata[\"networks\"]:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_c3783ffb","line":393,"range":{"start_line":390,"start_character":0,"end_line":393,"end_character":55},"updated":"2016-07-11 07:27:27.000000000","message":"As I comment in this patch:https://review.openstack.org/#/c/295618/. I think that we should add this judgement statement: \nif server_metadata[\"security_groups\"] is not None:","commit_id":"7e69d6b473b0f8f67a3b3829204a9c9ffc18e063"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"e1f0323e5256ed91d6107d62fbdb56c29086afb5","unresolved":false,"context_lines":[{"line_number":355,"context_line":"                                 original_id)"},{"line_number":356,"context_line":"        else:"},{"line_number":357,"context_line":"            name \u003d image_metadata[\"name\"]"},{"line_number":358,"context_line":"        disk_format \u003d image_metadata[\"disk_format\"]"},{"line_number":359,"context_line":"        container_format \u003d image_metadata[\"container_format\"]"},{"line_number":360,"context_line":"        image_data \u003d BytesIO()"},{"line_number":361,"context_line":"        for obj in objects:"},{"line_number":362,"context_line":"            if obj.find(\"%s_\" % image_format) \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_55bfd35f","line":359,"range":{"start_line":358,"start_character":0,"end_line":359,"end_character":61},"updated":"2016-07-11 12:41:47.000000000","message":"When I test server restration in environment, I also find that these two parameters of snapshot image may be None.","commit_id":"0f20c54f2aa10d0ba8639339c188c29100e1bec0"}]}
