)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"51ac2f70f4f5d690ba2534d13f6c6de6fd35d04b","unresolved":false,"context_lines":[{"line_number":11,"context_line":"raw. Raise exception when trying create volume from an image bigger size"},{"line_number":12,"context_line":"then volume size."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This commit uses fake value image_id from cinder/tests/unit/fake_constants.py"},{"line_number":15,"context_line":"to clean up this test module consistent with similar cleanups in the codebase."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ia8f644ac59c4ee05742ec8ce5affa682e9a90a78"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dab17558_4a755796","line":15,"range":{"start_line":14,"start_character":72,"end_line":15,"end_character":78},"updated":"2016-05-15 23:52:14.000000000","message":"Technically these lines should get wrapped at 72 characters, but it\u0027s not that big a deal.","commit_id":"f39a6e8dc89ce5e0a51f74065fc6beef9470e39b"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"6a40e06b08cd9e915319adbc0a176b4edc5f3e28","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This commit uses fake value image_id from cinder/tests/unit/fake_constants.py"},{"line_number":15,"context_line":"to clean up this test module consistent with similar cleanups in the codebase."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Closes-Bug: #1595950"},{"line_number":18,"context_line":"Change-Id: Ia8f644ac59c4ee05742ec8ce5affa682e9a90a78"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"1aa78d24_a30893da","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":20},"updated":"2016-07-05 12:15:07.000000000","message":"Seems like a wrong bug ID to me.","commit_id":"e9adc5a2404f02cc2607d2ad6c24a5d773ba8bef"}],"cinder/image/image_utils.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b8d92f67bcadb0c7e86ba3dce0fa23c4912fcdb5","unresolved":false,"context_lines":[{"line_number":398,"context_line":"            image_service.update(context, image_id, {}, image_file)"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"def _get_virtual_size(virtual_size, volume_size, image_id):"},{"line_number":402,"context_line":"    virtual_size \u003d int(math.ceil(float(virtual_size) / units.Gi))"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    if virtual_size \u003e volume_size:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_cf1be871","line":401,"updated":"2016-06-24 13:21:11.000000000","message":"It should not starts with underscore.  And please, add unit tests","commit_id":"5269658562c8eb9f99fedcb5be6e69f4d5b984fa"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"69d20a37ab26297803642ed864e741815fbebc8f","unresolved":false,"context_lines":[{"line_number":398,"context_line":"            image_service.update(context, image_id, {}, image_file)"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"def get_virtual_size(virtual_size, volume_size, image_id):"},{"line_number":402,"context_line":"    virtual_size \u003d int(math.ceil(float(virtual_size) / units.Gi))"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    if virtual_size \u003e volume_size:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_501a7c18","line":401,"updated":"2016-07-08 17:55:33.000000000","message":"Not sure \"get_virtual_size\" is the most descriptive for this... its doing more than just returning it, its checking to make sure it is valid for the volume_size and if it is returning it.\n\nI would vote for a more descriptive name like \"check_virtual_size\" or \"validate_volume_size_for_image\" or something that gives more hints what this is doing.\n\nit might even make sense to split this up into a \"get_virtual_size\" method that just returns the size, and a \"validate_volume_size_for_image\" kinda thing. Adds one more call in the code but makes it much easier to know whats going on.","commit_id":"5d9d028dce382f8051b7b8a6a8f16b076e03c683"}],"cinder/tests/unit/volume/flows/test_create_volume_flow.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"11ca33183fbb60161bb92dd767926249016df13f","unresolved":false,"context_lines":[{"line_number":824,"context_line":"        volume \u003d fake_volume.fake_volume_obj(self.ctxt)"},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"        image_location \u003d \u0027someImageLocationStr\u0027"},{"line_number":827,"context_line":"        image_id \u003d \u0027c7a8b8d4-e519-46c7-a0df-ddf1b9b9fff2\u0027"},{"line_number":828,"context_line":"        image_meta \u003d {\u0027virtual_size\u0027: \u00272147483648\u0027}"},{"line_number":829,"context_line":""},{"line_number":830,"context_line":"        manager \u003d create_volume_manager.CreateVolumeFromSpecTask("}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_01ccbf87","line":827,"updated":"2016-05-05 09:33:37.000000000","message":"nit: please, use image_id from fake_constants","commit_id":"314dda6ccd45ee586b7d10c5ee015cf6cc54b2d9"}],"cinder/volume/flows/manager/create_volume.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"76095d2661411ede4fbeaacddcb76b4da601ee6d","unresolved":false,"context_lines":[{"line_number":695,"context_line":"                  {\u0027volume_id\u0027: volume_ref[\u0027id\u0027],"},{"line_number":696,"context_line":"                   \u0027image_location\u0027: image_location, \u0027image_id\u0027: image_id})"},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"        virtual_size \u003d image_meta.get(\u0027virtual_size\u0027)"},{"line_number":699,"context_line":"        if virtual_size:"},{"line_number":700,"context_line":"            virtual_size \u003d int(math.ceil(float(virtual_size) / units.Gi))"},{"line_number":701,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_eaf87d7e","line":698,"updated":"2016-05-05 08:49:54.000000000","message":"Please, follow DRY principe and do not copy code","commit_id":"30bcc6bdd71bcbeaaf21792fb46d90dd1fc7f888"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"a34e8d40a729ba6fc685fc17c01b7cb97f1c5f00","unresolved":false,"context_lines":[{"line_number":708,"context_line":"                                                  reason\u003dreason)"},{"line_number":709,"context_line":"            return virtual_size"},{"line_number":710,"context_line":""},{"line_number":711,"context_line":"        virtual_size \u003d image_meta.get(\u0027virtual_size\u0027)"},{"line_number":712,"context_line":"        if virtual_size:"},{"line_number":713,"context_line":"            virtual_size \u003d _get_virtual_size(virtual_size, volume_ref.size)"},{"line_number":714,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_a8a49da5","line":711,"range":{"start_line":711,"start_character":8,"end_line":711,"end_character":53},"updated":"2016-05-26 17:12:47.000000000","message":"This isn\u0027t going to catch all images... in fact most don\u0027t have virtual_size set on them, and we don\u0027t have a way to set it on them in later versions of glance.\n\nWhat you need to do is use the temporary image like we are doing down in the cache code... but that breaks then for any backend doing a special copy in clone_image that doesn\u0027t need to download it from glance to the c-vol node. For one of the backends that can be setup as glance and cinder backends you definitely would never want to download the temporary image. You need to do something specific to your backend to peek at the image in glance and find out what size it is.\n\nOne thing to note is that this check is already done over in https://github.com/openstack/cinder/blob/master/cinder/image/image_utils.py#L302-L309 So i\u0027m not entirely sure why we need another one here. There isn\u0027t a bug associated to this change, so its unclear what the issue is...\n\nI\u0027m assuming it is something rbd specific since you changed that unit test, which indicates to me that we need to maybe put this check into the rbd drivers clone_image code instead of here.","commit_id":"f39a6e8dc89ce5e0a51f74065fc6beef9470e39b"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"d27cc7089ede816aaa4549a0df4ce115afe05748","unresolved":false,"context_lines":[{"line_number":708,"context_line":"                                                  reason\u003dreason)"},{"line_number":709,"context_line":"            return virtual_size"},{"line_number":710,"context_line":""},{"line_number":711,"context_line":"        virtual_size \u003d image_meta.get(\u0027virtual_size\u0027)"},{"line_number":712,"context_line":"        if virtual_size:"},{"line_number":713,"context_line":"            virtual_size \u003d _get_virtual_size(virtual_size, volume_ref.size)"},{"line_number":714,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_40c85c74","line":711,"range":{"start_line":711,"start_character":8,"end_line":711,"end_character":53},"in_reply_to":"bab6814e_a8a49da5","updated":"2016-06-01 09:59:26.000000000","message":"If virtual_size isn\u0027t set on an image, we\u0027ll get virtual_size\u003dNone and later, look at L757-763, we\u0027ll check it out using a temporary image. But if virtual_size is set on an image and bigger a volume of size then we\u0027ll raise exception not using a temporary image.","commit_id":"f39a6e8dc89ce5e0a51f74065fc6beef9470e39b"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"9bde6f30ebaf0dcff9877b1a26287c0dbe37b1ee","unresolved":false,"context_lines":[{"line_number":695,"context_line":"                  {\u0027volume_id\u0027: volume_ref[\u0027id\u0027],"},{"line_number":696,"context_line":"                   \u0027image_location\u0027: image_location, \u0027image_id\u0027: image_id})"},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"        def _get_virtual_size(virtual_size, volume_size):"},{"line_number":699,"context_line":"            virtual_size \u003d int(math.ceil(float(virtual_size) / units.Gi))"},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"            if virtual_size \u003e volume_size:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_e66f1090","line":698,"range":{"start_line":698,"start_character":0,"end_line":698,"end_character":57},"updated":"2016-06-17 15:47:49.000000000","message":"Any reason to have this as an internal method like this?\n\nSeems like this might be reusable (including by some drivers) if you made it a static in something like volume.utils... what do you think?","commit_id":"8371e3461ecfd5170822a35ce77547799cda49d6"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"76797238dfa564f355f3d2cf8c27a5870fe8cd32","unresolved":false,"context_lines":[{"line_number":695,"context_line":"                  {\u0027volume_id\u0027: volume_ref[\u0027id\u0027],"},{"line_number":696,"context_line":"                   \u0027image_location\u0027: image_location, \u0027image_id\u0027: image_id})"},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"        def _get_virtual_size(virtual_size, volume_size):"},{"line_number":699,"context_line":"            virtual_size \u003d int(math.ceil(float(virtual_size) / units.Gi))"},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"            if virtual_size \u003e volume_size:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_a85db216","line":698,"range":{"start_line":698,"start_character":0,"end_line":698,"end_character":57},"in_reply_to":"7aa08908_e66f1090","updated":"2016-06-24 14:13:27.000000000","message":"Thanks a lot for your suggestion.","commit_id":"8371e3461ecfd5170822a35ce77547799cda49d6"}]}
