)]}'
{"mogan/common/exception.py":[{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"eeffeed3bd011073bba02b084c42f1eb10884d27","unresolved":false,"context_lines":[{"line_number":285,"context_line":"    _msg_fmt \u003d _(\"Request of image %(image_id)s doesn\u0027t support partitions.\")"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"class DiskSmallerThanImage(Invalid):"},{"line_number":289,"context_line":"    _msg_fmt \u003d _(\"Partition is too small for requested image. Root disk \""},{"line_number":290,"context_line":"                 \"is %(root_size)i bytes, image is %(image_size)i bytes.\")"},{"line_number":291,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_57945b44","line":288,"range":{"start_line":288,"start_character":6,"end_line":288,"end_character":10},"updated":"2017-09-05 07:46:33.000000000","message":"Partition ?","commit_id":"05299f81424910cc880f4265098e4cb88ca981d3"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"ecff0f660143b8f2f6218df1067d97c13697971c","unresolved":false,"context_lines":[{"line_number":285,"context_line":"    _msg_fmt \u003d _(\"Request of image %(image_id)s doesn\u0027t support partitions.\")"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"class DiskSmallerThanImage(Invalid):"},{"line_number":289,"context_line":"    _msg_fmt \u003d _(\"Partition is too small for requested image. Root disk \""},{"line_number":290,"context_line":"                 \"is %(root_size)i bytes, image is %(image_size)i bytes.\")"},{"line_number":291,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_57769bda","line":288,"range":{"start_line":288,"start_character":6,"end_line":288,"end_character":10},"in_reply_to":"7f287b81_57945b44","updated":"2017-09-05 07:50:12.000000000","message":"Done","commit_id":"05299f81424910cc880f4265098e4cb88ca981d3"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"eeffeed3bd011073bba02b084c42f1eb10884d27","unresolved":false,"context_lines":[{"line_number":290,"context_line":"                 \"is %(root_size)i bytes, image is %(image_size)i bytes.\")"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"class DiskSmallerThanMinDisk(Invalid):"},{"line_number":294,"context_line":"    _msg_fmt \u003d _(\"Partition is smaller than the minimum size specified in \""},{"line_number":295,"context_line":"                 \"image metadata. Root disk is %(root_size)i bytes, \""},{"line_number":296,"context_line":"                 \"minimum size is %(image_min_disk)i bytes.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_378f8f2f","line":293,"range":{"start_line":293,"start_character":6,"end_line":293,"end_character":10},"updated":"2017-09-05 07:46:33.000000000","message":"ditto","commit_id":"05299f81424910cc880f4265098e4cb88ca981d3"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"ecff0f660143b8f2f6218df1067d97c13697971c","unresolved":false,"context_lines":[{"line_number":290,"context_line":"                 \"is %(root_size)i bytes, image is %(image_size)i bytes.\")"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"class DiskSmallerThanMinDisk(Invalid):"},{"line_number":294,"context_line":"    _msg_fmt \u003d _(\"Partition is smaller than the minimum size specified in \""},{"line_number":295,"context_line":"                 \"image metadata. Root disk is %(root_size)i bytes, \""},{"line_number":296,"context_line":"                 \"minimum size is %(image_min_disk)i bytes.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_3771cfdf","line":293,"range":{"start_line":293,"start_character":6,"end_line":293,"end_character":10},"in_reply_to":"7f287b81_378f8f2f","updated":"2017-09-05 07:50:12.000000000","message":"Done","commit_id":"05299f81424910cc880f4265098e4cb88ca981d3"}],"mogan/engine/api.py":[{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"eeffeed3bd011073bba02b084c42f1eb10884d27","unresolved":false,"context_lines":[{"line_number":274,"context_line":"            raise exception.InvalidImageConfigDrive("},{"line_number":275,"context_line":"                config_drive\u003dconfig_drive_option)"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        if partitions:"},{"line_number":278,"context_line":"            # Image min_disk is in gb, size is in bytes. For sanity, have"},{"line_number":279,"context_line":"            # them both in bytes."},{"line_number":280,"context_line":"            image_min_disk \u003d int(image.get(\u0027min_disk\u0027) or 0) * units.Gi"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_97e643e8","line":277,"range":{"start_line":277,"start_character":11,"end_line":277,"end_character":22},"updated":"2017-09-05 07:46:33.000000000","message":"not sure if we need to check node disk even no partition specified. in our products, the image could be hundreds GB. lol\n\nnot related to this patch","commit_id":"05299f81424910cc880f4265098e4cb88ca981d3"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"8905c9f8846bbd81f5435f048d308b6a5f902e63","unresolved":false,"context_lines":[{"line_number":274,"context_line":"            raise exception.InvalidImageConfigDrive("},{"line_number":275,"context_line":"                config_drive\u003dconfig_drive_option)"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        if partitions:"},{"line_number":278,"context_line":"            # Image min_disk is in gb, size is in bytes. For sanity, have"},{"line_number":279,"context_line":"            # them both in bytes."},{"line_number":280,"context_line":"            image_min_disk \u003d int(image.get(\u0027min_disk\u0027) or 0) * units.Gi"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_f2ed95b7","line":277,"range":{"start_line":277,"start_character":11,"end_line":277,"end_character":22},"in_reply_to":"7f287b81_52cfc97e","updated":"2017-09-05 08:18:18.000000000","message":"driver also don\u0027t know the disk size.","commit_id":"05299f81424910cc880f4265098e4cb88ca981d3"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"ecff0f660143b8f2f6218df1067d97c13697971c","unresolved":false,"context_lines":[{"line_number":274,"context_line":"            raise exception.InvalidImageConfigDrive("},{"line_number":275,"context_line":"                config_drive\u003dconfig_drive_option)"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        if partitions:"},{"line_number":278,"context_line":"            # Image min_disk is in gb, size is in bytes. For sanity, have"},{"line_number":279,"context_line":"            # them both in bytes."},{"line_number":280,"context_line":"            image_min_disk \u003d int(image.get(\u0027min_disk\u0027) or 0) * units.Gi"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_f78c67d8","line":277,"range":{"start_line":277,"start_character":11,"end_line":277,"end_character":22},"in_reply_to":"7f287b81_97e643e8","updated":"2017-09-05 07:50:12.000000000","message":"in fact, we don\u0027t know the disk size for now.","commit_id":"05299f81424910cc880f4265098e4cb88ca981d3"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"a65ae503d88cdd8a03d07880602ffa391491e079","unresolved":false,"context_lines":[{"line_number":274,"context_line":"            raise exception.InvalidImageConfigDrive("},{"line_number":275,"context_line":"                config_drive\u003dconfig_drive_option)"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        if partitions:"},{"line_number":278,"context_line":"            # Image min_disk is in gb, size is in bytes. For sanity, have"},{"line_number":279,"context_line":"            # them both in bytes."},{"line_number":280,"context_line":"            image_min_disk \u003d int(image.get(\u0027min_disk\u0027) or 0) * units.Gi"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_52cfc97e","line":277,"range":{"start_line":277,"start_character":11,"end_line":277,"end_character":22},"in_reply_to":"7f287b81_f78c67d8","updated":"2017-09-05 08:11:52.000000000","message":"yes, maybe add a check in the driver layer","commit_id":"05299f81424910cc880f4265098e4cb88ca981d3"}],"mogan/tests/functional/api/v1/test_servers.py":[{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"eeffeed3bd011073bba02b084c42f1eb10884d27","unresolved":false,"context_lines":[{"line_number":42,"context_line":"             u\u0027protected\u0027: False,"},{"line_number":43,"context_line":"             u\u0027schema\u0027: u\u0027/v2/schemas/image\u0027}"},{"line_number":44,"context_line":"    attrs.update(kwargs)"},{"line_number":45,"context_line":"    return attrs"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class TestServers(v1_test.APITestV1):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_f74907b7","line":45,"range":{"start_line":45,"start_character":11,"end_line":45,"end_character":16},"updated":"2017-09-05 07:46:33.000000000","message":"why need to change this, it is better to use it as a object than a dict","commit_id":"05299f81424910cc880f4265098e4cb88ca981d3"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"05cbf4f7a5ed480b5c48344f5d60d2873155e588","unresolved":false,"context_lines":[{"line_number":42,"context_line":"             u\u0027protected\u0027: False,"},{"line_number":43,"context_line":"             u\u0027schema\u0027: u\u0027/v2/schemas/image\u0027}"},{"line_number":44,"context_line":"    attrs.update(kwargs)"},{"line_number":45,"context_line":"    return attrs"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class TestServers(v1_test.APITestV1):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_54c0d6e0","line":45,"range":{"start_line":45,"start_character":11,"end_line":45,"end_character":16},"in_reply_to":"7f287b81_3239dd3e","updated":"2017-09-05 09:02:22.000000000","message":"ok, thanks for clarify","commit_id":"05299f81424910cc880f4265098e4cb88ca981d3"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"8905c9f8846bbd81f5435f048d308b6a5f902e63","unresolved":false,"context_lines":[{"line_number":42,"context_line":"             u\u0027protected\u0027: False,"},{"line_number":43,"context_line":"             u\u0027schema\u0027: u\u0027/v2/schemas/image\u0027}"},{"line_number":44,"context_line":"    attrs.update(kwargs)"},{"line_number":45,"context_line":"    return attrs"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class TestServers(v1_test.APITestV1):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_3239dd3e","line":45,"range":{"start_line":45,"start_character":11,"end_line":45,"end_character":16},"in_reply_to":"7f287b81_3278bd29","updated":"2017-09-05 08:18:18.000000000","message":"yes it\u0027s a dict, you can see I use image[\u0027uuid\u0027] in this patch, and if using image.uuid, an error will occur.","commit_id":"05299f81424910cc880f4265098e4cb88ca981d3"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"a65ae503d88cdd8a03d07880602ffa391491e079","unresolved":false,"context_lines":[{"line_number":42,"context_line":"             u\u0027protected\u0027: False,"},{"line_number":43,"context_line":"             u\u0027schema\u0027: u\u0027/v2/schemas/image\u0027}"},{"line_number":44,"context_line":"    attrs.update(kwargs)"},{"line_number":45,"context_line":"    return attrs"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class TestServers(v1_test.APITestV1):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_3278bd29","line":45,"range":{"start_line":45,"start_character":11,"end_line":45,"end_character":16},"in_reply_to":"7f287b81_976c0309","updated":"2017-09-05 08:11:52.000000000","message":"you mean mogan.image.api.API#get will return a dict than an object ?, seems it is a trend that the client return resource as object than dict. of course the return resource of client can be used as a dict. it seems for compatibility","commit_id":"05299f81424910cc880f4265098e4cb88ca981d3"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"ecff0f660143b8f2f6218df1067d97c13697971c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"             u\u0027protected\u0027: False,"},{"line_number":43,"context_line":"             u\u0027schema\u0027: u\u0027/v2/schemas/image\u0027}"},{"line_number":44,"context_line":"    attrs.update(kwargs)"},{"line_number":45,"context_line":"    return attrs"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class TestServers(v1_test.APITestV1):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_976c0309","line":45,"range":{"start_line":45,"start_character":11,"end_line":45,"end_character":16},"in_reply_to":"7f287b81_f74907b7","updated":"2017-09-05 07:50:12.000000000","message":"but actually, it\u0027s a dict, you can check the code.","commit_id":"05299f81424910cc880f4265098e4cb88ca981d3"}]}
