)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a8222d5191aefc4721cb50df7133f4c4de0e6cda","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Store user-requested ephemeral size in instance object"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Instance flavor specifies maximum (and default) epemeral size.  User is"},{"line_number":10,"context_line":"able to specify smaller ephemeral size when running instance, but"},{"line_number":11,"context_line":"DiskFilter uses epemeral_gb value from instance_type, which sometimes"},{"line_number":12,"context_line":"creates false-negative result.  Later, on compute node, resourse tracker"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"da9b358b_942fba87","line":9,"updated":"2015-04-01 11:50:39.000000000","message":"Some errors with s/epemeral/ephemeral","commit_id":"25eff5622ebc6bf80f9fa22e81006c3a8f7a4f0d"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"a4018a11ab9932315a3b5f82e73f7b3812012a72","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Store user-requested ephemeral size in instance object"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Instance flavor specifies maximum (and default) epemeral size.  User is"},{"line_number":10,"context_line":"able to specify smaller ephemeral size when running instance, but"},{"line_number":11,"context_line":"DiskFilter uses epemeral_gb value from instance_type, which sometimes"},{"line_number":12,"context_line":"creates false-negative result.  Later, on compute node, resourse tracker"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"da9b358b_3a3fb588","line":9,"in_reply_to":"da9b358b_942fba87","updated":"2015-04-01 12:16:06.000000000","message":"Done","commit_id":"25eff5622ebc6bf80f9fa22e81006c3a8f7a4f0d"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"9125cc1f0255729cc81d17acef543ea8709cae71","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Store user-requested ephemeral size as instance.ephemeral_gb and make"},{"line_number":17,"context_line":"DiskFilter use this value instead of instance_type.ephemeral_gb.  This"},{"line_number":18,"context_line":"behavior corresponds with current documentation[1]."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[1] http://docs.openstack.org/user-guide/content/attach-disk-to-instance.html"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"1aca2d91_6f2b8883","line":18,"updated":"2015-05-06 21:01:35.000000000","message":"This logic is backwards, the documentation should reflect the code. So this isn\u0027t a valid argument here.\n\nhttp://docs.openstack.org/developer/nova/devref/policies.html#rest-apis","commit_id":"50c8e676325937058d3f15d2b40627927c8ff1e3"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"1676be7bb311ccc223b4e916c044fcfc1836f12a","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Store user-requested ephemeral size as instance.ephemeral_gb and make"},{"line_number":17,"context_line":"DiskFilter use this value instead of instance_type.ephemeral_gb.  This"},{"line_number":18,"context_line":"behavior corresponds with current documentation[1]."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[1] http://docs.openstack.org/user-guide/content/attach-disk-to-instance.html"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"1aca2d91_e7631840","line":18,"in_reply_to":"1aca2d91_5eb5092f","updated":"2015-05-07 18:10:28.000000000","message":"The documentation should reflect what happens in the code. In the end of the day the code is the authoritative source of what happens.\n\nThat being said, this is not a comment on what behavior is best.","commit_id":"50c8e676325937058d3f15d2b40627927c8ff1e3"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"d18e14c07cbc1450b2970902b1b2d138104af6c2","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Store user-requested ephemeral size as instance.ephemeral_gb and make"},{"line_number":17,"context_line":"DiskFilter use this value instead of instance_type.ephemeral_gb.  This"},{"line_number":18,"context_line":"behavior corresponds with current documentation[1]."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[1] http://docs.openstack.org/user-guide/content/attach-disk-to-instance.html"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"1aca2d91_5eb5092f","line":18,"in_reply_to":"1aca2d91_6f2b8883","updated":"2015-05-07 10:11:33.000000000","message":"\u003csarcasm\u003eThen why there\u0027s documentation?  Code is open source, go read it...\u003c/sarcasm\u003e","commit_id":"50c8e676325937058d3f15d2b40627927c8ff1e3"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"bf2d88e944f8fd51aac7c8e4b618bffd4591de45","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Store user-requested ephemeral size as instance.ephemeral_gb and make"},{"line_number":17,"context_line":"DiskFilter use this value instead of instance_type.ephemeral_gb.  This"},{"line_number":18,"context_line":"behavior corresponds with current documentation[1]."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[1] http://docs.openstack.org/user-guide/content/attach-disk-to-instance.html"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"1aca2d91_770788ca","line":18,"in_reply_to":"1aca2d91_cb736714","updated":"2015-05-08 20:01:21.000000000","message":"I am saying remove the part linking to the documentation to show what the \u0027correct\u0027 behavior is.","commit_id":"50c8e676325937058d3f15d2b40627927c8ff1e3"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"b3a7fcf245d50c72cf3c773e2e99721d4e204aab","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Store user-requested ephemeral size as instance.ephemeral_gb and make"},{"line_number":17,"context_line":"DiskFilter use this value instead of instance_type.ephemeral_gb.  This"},{"line_number":18,"context_line":"behavior corresponds with current documentation[1]."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[1] http://docs.openstack.org/user-guide/content/attach-disk-to-instance.html"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"1aca2d91_cb736714","line":18,"in_reply_to":"1aca2d91_e7631840","updated":"2015-05-08 14:19:17.000000000","message":"There\u0027s one code, that accepts --ephemeral size\u003dXXX option and passes it to another code, which in turn creates appropriate  data structure based on passed value.  And this is documented in official documentation.\n\nAnd there\u0027s third code, that completely ignores all that first two codes are doing, and says \"no, you can\u0027t run instance because flavor is too big\".\n\nYou still think that my logic is \"backwards\"?","commit_id":"50c8e676325937058d3f15d2b40627927c8ff1e3"}],"nova/block_device.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"79956ba2d4f171b98d787a1d8675e286d8bbf69c","unresolved":false,"context_lines":[{"line_number":562,"context_line":""},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"def get_bdm_ephemeral_disk_size(block_device_mappings):"},{"line_number":565,"context_line":"    return sum(bdm.get(\u0027volume_size\u0027) or 0"},{"line_number":566,"context_line":"            for bdm in block_device_mappings"},{"line_number":567,"context_line":"            if new_format_is_ephemeral(bdm))"},{"line_number":568,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_c32fe586","line":565,"updated":"2015-03-12 12:37:43.000000000","message":"what\u0027s the difference between the change? \nI usually use \n\nbdm.get(\u0027volume_size\u0027, 0)\n\nthe \nbdm.get(\u0027volume_size\u0027) or 0 is better?","commit_id":"ad91a5a7ef34318eec141958507b8a421df50338"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"66e4c557f524694f558522e9b65f9e5a6287ee50","unresolved":false,"context_lines":[{"line_number":562,"context_line":""},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"def get_bdm_ephemeral_disk_size(block_device_mappings):"},{"line_number":565,"context_line":"    return sum(bdm.get(\u0027volume_size\u0027) or 0"},{"line_number":566,"context_line":"            for bdm in block_device_mappings"},{"line_number":567,"context_line":"            if new_format_is_ephemeral(bdm))"},{"line_number":568,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_fa9c7a5f","line":565,"in_reply_to":"9a80dd14_833a4d32","updated":"2015-03-12 17:16:17.000000000","message":"ok, thx","commit_id":"ad91a5a7ef34318eec141958507b8a421df50338"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"6ebfa3c7cc82f456dc9c4e1f0906c8855820eee7","unresolved":false,"context_lines":[{"line_number":562,"context_line":""},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"def get_bdm_ephemeral_disk_size(block_device_mappings):"},{"line_number":565,"context_line":"    return sum(bdm.get(\u0027volume_size\u0027) or 0"},{"line_number":566,"context_line":"            for bdm in block_device_mappings"},{"line_number":567,"context_line":"            if new_format_is_ephemeral(bdm))"},{"line_number":568,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_833a4d32","line":565,"in_reply_to":"9a80dd14_c32fe586","updated":"2015-03-12 12:47:10.000000000","message":"Because if \u0027volume_size\u0027 exists and is None, there will be an error \u0027+ operation not supported on int and NoneType\u0027, see http://logs.openstack.org/93/163393/3/check/gate-nova-python27/0632d16/console.html\n\nMaybe because of that _validate_bdm function don\u0027t use get_bdm_ephemeral_disk_size...","commit_id":"ad91a5a7ef34318eec141958507b8a421df50338"},{"author":{"_account_id":14358,"name":"Marian Horban","email":"m.horban@gmail.com","username":"mhorban"},"change_message_id":"4901af50964296d0683812828b9db390100ab39c","unresolved":false,"context_lines":[{"line_number":562,"context_line":""},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"def get_bdm_ephemeral_disk_size(block_device_mappings):"},{"line_number":565,"context_line":"    return sum(bdm.get(\u0027volume_size\u0027) or 0"},{"line_number":566,"context_line":"            for bdm in block_device_mappings"},{"line_number":567,"context_line":"            if new_format_is_ephemeral(bdm))"},{"line_number":568,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_7460ff35","line":565,"updated":"2015-03-23 11:38:12.000000000","message":"Why do we need this change?","commit_id":"6826b36d9b36248cae2cf30fed1dac4d398db22a"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"2ee63b2052e6f98c13c1125e0bc53112ff2bdb7a","unresolved":false,"context_lines":[{"line_number":562,"context_line":""},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"def get_bdm_ephemeral_disk_size(block_device_mappings):"},{"line_number":565,"context_line":"    return sum(bdm.get(\u0027volume_size\u0027) or 0"},{"line_number":566,"context_line":"            for bdm in block_device_mappings"},{"line_number":567,"context_line":"            if new_format_is_ephemeral(bdm))"},{"line_number":568,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_f276bfd7","line":565,"in_reply_to":"1a6ced46_7460ff35","updated":"2015-03-23 12:28:07.000000000","message":"Because volume_size is None for BDM entry generated for image argument.  Similar code in nova.compute.api._validate_bdm() uses same contruction.","commit_id":"6826b36d9b36248cae2cf30fed1dac4d398db22a"}],"nova/compute/api.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"2107216a09453375deaf62bbba8deabfbf5d5571","unresolved":false,"context_lines":[{"line_number":907,"context_line":"        # to scheduler, so DiskFilter won\u0027t create false-negative response."},{"line_number":908,"context_line":"        ephemeral_size \u003d sum(bdm.volume_size or 0"},{"line_number":909,"context_line":"                for bdm in block_device_mapping"},{"line_number":910,"context_line":"                if block_device.new_format_is_ephemeral(bdm))"},{"line_number":911,"context_line":"        if ephemeral_size:"},{"line_number":912,"context_line":"            filter_properties[\u0027instance_type\u0027][\u0027ephemeral_gb\u0027] \u003d ephemeral_size"},{"line_number":913,"context_line":"        if forced_host:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_fe04b7c7","line":910,"updated":"2015-03-11 12:44:45.000000000","message":"can you try get_bdm_ephemeral_disk_size function\nin block_device.py","commit_id":"2a61edd4318751a3331d737b56907e386d5ed071"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"fd9ce73b31f96b1822f647e3355e89b2f2846603","unresolved":false,"context_lines":[{"line_number":907,"context_line":"        # to scheduler, so DiskFilter won\u0027t create false-negative response."},{"line_number":908,"context_line":"        ephemeral_size \u003d sum(bdm.volume_size or 0"},{"line_number":909,"context_line":"                for bdm in block_device_mapping"},{"line_number":910,"context_line":"                if block_device.new_format_is_ephemeral(bdm))"},{"line_number":911,"context_line":"        if ephemeral_size:"},{"line_number":912,"context_line":"            filter_properties[\u0027instance_type\u0027][\u0027ephemeral_gb\u0027] \u003d ephemeral_size"},{"line_number":913,"context_line":"        if forced_host:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_89ac6737","line":910,"in_reply_to":"9a80dd14_fe04b7c7","updated":"2015-03-11 12:58:50.000000000","message":"OK.  Code above was copy-paste from _validate_bdm function.","commit_id":"2a61edd4318751a3331d737b56907e386d5ed071"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"2107216a09453375deaf62bbba8deabfbf5d5571","unresolved":false,"context_lines":[{"line_number":909,"context_line":"                for bdm in block_device_mapping"},{"line_number":910,"context_line":"                if block_device.new_format_is_ephemeral(bdm))"},{"line_number":911,"context_line":"        if ephemeral_size:"},{"line_number":912,"context_line":"            filter_properties[\u0027instance_type\u0027][\u0027ephemeral_gb\u0027] \u003d ephemeral_size"},{"line_number":913,"context_line":"        if forced_host:"},{"line_number":914,"context_line":"            filter_properties[\u0027force_hosts\u0027] \u003d [forced_host]"},{"line_number":915,"context_line":"        if forced_node:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_fe175752","line":912,"updated":"2015-03-11 12:44:45.000000000","message":"this is hacking because instance_type is coming from flavor\nbut I agree this might be the easiest way","commit_id":"2a61edd4318751a3331d737b56907e386d5ed071"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"f9ac2d72ef6f329505933fdec50f330a3474d9c9","unresolved":false,"context_lines":[{"line_number":909,"context_line":"                for bdm in block_device_mapping"},{"line_number":910,"context_line":"                if block_device.new_format_is_ephemeral(bdm))"},{"line_number":911,"context_line":"        if ephemeral_size:"},{"line_number":912,"context_line":"            filter_properties[\u0027instance_type\u0027][\u0027ephemeral_gb\u0027] \u003d ephemeral_size"},{"line_number":913,"context_line":"        if forced_host:"},{"line_number":914,"context_line":"            filter_properties[\u0027force_hosts\u0027] \u003d [forced_host]"},{"line_number":915,"context_line":"        if forced_node:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_29129b62","line":912,"in_reply_to":"9a80dd14_49bb4f72","updated":"2015-03-11 13:02:03.000000000","message":"I used to get objection by doing similar thing at resource_tracker.py in another patch\n\nbut I think here should be acceptable since less change needed and only used for filter :)","commit_id":"2a61edd4318751a3331d737b56907e386d5ed071"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"fd9ce73b31f96b1822f647e3355e89b2f2846603","unresolved":false,"context_lines":[{"line_number":909,"context_line":"                for bdm in block_device_mapping"},{"line_number":910,"context_line":"                if block_device.new_format_is_ephemeral(bdm))"},{"line_number":911,"context_line":"        if ephemeral_size:"},{"line_number":912,"context_line":"            filter_properties[\u0027instance_type\u0027][\u0027ephemeral_gb\u0027] \u003d ephemeral_size"},{"line_number":913,"context_line":"        if forced_host:"},{"line_number":914,"context_line":"            filter_properties[\u0027force_hosts\u0027] \u003d [forced_host]"},{"line_number":915,"context_line":"        if forced_node:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_49bb4f72","line":912,"in_reply_to":"9a80dd14_fe175752","updated":"2015-03-11 12:58:50.000000000","message":"I am thinking about this assignment as user is reducing (checked in _validate_bdm) flavor\u0027s ephemeral_gb for a given instance.  Yes, looks hacky, but doesn\u0027t change filter_properties structure...","commit_id":"2a61edd4318751a3331d737b56907e386d5ed071"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a29a7c396e5131bc09fd8812b19daa85141cfb4d","unresolved":false,"context_lines":[{"line_number":1323,"context_line":"            # for additional setup before creating the DB entry."},{"line_number":1324,"context_line":"            instance.uuid \u003d str(uuid.uuid4())"},{"line_number":1325,"context_line":""},{"line_number":1326,"context_line":"        # NOTE(raorn): flavor specifies maximum (and default) ephemeral volume"},{"line_number":1327,"context_line":"        # size.  Adjust instance.ephemeral_gb and flavor.ephemeral_gb with"},{"line_number":1328,"context_line":"        # user-supplied value, so scheduler and resource tracker will use real"},{"line_number":1329,"context_line":"        # instance size.  We do not alter original instance_type, so"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6ced46_a37dade9","line":1326,"updated":"2015-03-24 11:42:05.000000000","message":"This looks to me a hack we probably want to make scheduler and resource tracker handle that can instead of hack the code to make them working.","commit_id":"627a2242983b5df92c77d27ef3987d1028199a1f"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"55d70e9d5f81b5019c1535b9a5b8ec5c98f542e8","unresolved":false,"context_lines":[{"line_number":1323,"context_line":"            # for additional setup before creating the DB entry."},{"line_number":1324,"context_line":"            instance.uuid \u003d str(uuid.uuid4())"},{"line_number":1325,"context_line":""},{"line_number":1326,"context_line":"        # NOTE(raorn): flavor specifies maximum (and default) ephemeral volume"},{"line_number":1327,"context_line":"        # size.  Adjust instance.ephemeral_gb and flavor.ephemeral_gb with"},{"line_number":1328,"context_line":"        # user-supplied value, so scheduler and resource tracker will use real"},{"line_number":1329,"context_line":"        # instance size.  We do not alter original instance_type, so"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa963961_78d125cd","line":1326,"in_reply_to":"1a6ced46_a37dade9","updated":"2015-03-27 10:30:49.000000000","message":"Yes and no.  instance.ephemeral_gb is the correct place for storing real ephemeral disk(s) size and it is used later in different places (resource tracker and virt driver).\n\nModifying instance.flavor is a hack, because scheduler uses flavor, cached in instance\u0027s system_metadata.  Instead is could use instance properties - memory_mb, vcpus, root_gb and ephemeral_gb are copied from flavor to instance.","commit_id":"627a2242983b5df92c77d27ef3987d1028199a1f"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a8222d5191aefc4721cb50df7133f4c4de0e6cda","unresolved":false,"context_lines":[{"line_number":1329,"context_line":"        ephemeral_size \u003d block_device.get_bdm_ephemeral_disk_size("},{"line_number":1330,"context_line":"                block_device_mapping)"},{"line_number":1331,"context_line":"        if ephemeral_size:"},{"line_number":1332,"context_line":"            instance.ephemeral_gb \u003d ephemeral_size"},{"line_number":1333,"context_line":"            instance_type \u003d copy.deepcopy(instance_type)"},{"line_number":1334,"context_line":"            instance_type[\u0027ephemeral_gb\u0027] \u003d ephemeral_size"},{"line_number":1335,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"da9b358b_f76a88b2","line":1332,"updated":"2015-04-01 11:50:39.000000000","message":"I don\u0027t think we want to update instance.ephmeral_gb with the user request here. this will be in conflict with what is done by resize/migrate","commit_id":"25eff5622ebc6bf80f9fa22e81006c3a8f7a4f0d"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"a4018a11ab9932315a3b5f82e73f7b3812012a72","unresolved":false,"context_lines":[{"line_number":1329,"context_line":"        ephemeral_size \u003d block_device.get_bdm_ephemeral_disk_size("},{"line_number":1330,"context_line":"                block_device_mapping)"},{"line_number":1331,"context_line":"        if ephemeral_size:"},{"line_number":1332,"context_line":"            instance.ephemeral_gb \u003d ephemeral_size"},{"line_number":1333,"context_line":"            instance_type \u003d copy.deepcopy(instance_type)"},{"line_number":1334,"context_line":"            instance_type[\u0027ephemeral_gb\u0027] \u003d ephemeral_size"},{"line_number":1335,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"da9b358b_3ae575db","line":1332,"in_reply_to":"da9b358b_f76a88b2","updated":"2015-04-01 12:16:06.000000000","message":"No.  Resize/migrate will resize instance disks and update ephemeral_gb from new flavor.","commit_id":"25eff5622ebc6bf80f9fa22e81006c3a8f7a4f0d"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a8222d5191aefc4721cb50df7133f4c4de0e6cda","unresolved":false,"context_lines":[{"line_number":1330,"context_line":"                block_device_mapping)"},{"line_number":1331,"context_line":"        if ephemeral_size:"},{"line_number":1332,"context_line":"            instance.ephemeral_gb \u003d ephemeral_size"},{"line_number":1333,"context_line":"            instance_type \u003d copy.deepcopy(instance_type)"},{"line_number":1334,"context_line":"            instance_type[\u0027ephemeral_gb\u0027] \u003d ephemeral_size"},{"line_number":1335,"context_line":""},{"line_number":1336,"context_line":"        instance.launch_index \u003d index"}],"source_content_type":"text/x-python","patch_set":13,"id":"da9b358b_b453dee1","line":1333,"updated":"2015-04-01 11:50:39.000000000","message":"Why did you broke the reference here?","commit_id":"25eff5622ebc6bf80f9fa22e81006c3a8f7a4f0d"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"a4018a11ab9932315a3b5f82e73f7b3812012a72","unresolved":false,"context_lines":[{"line_number":1330,"context_line":"                block_device_mapping)"},{"line_number":1331,"context_line":"        if ephemeral_size:"},{"line_number":1332,"context_line":"            instance.ephemeral_gb \u003d ephemeral_size"},{"line_number":1333,"context_line":"            instance_type \u003d copy.deepcopy(instance_type)"},{"line_number":1334,"context_line":"            instance_type[\u0027ephemeral_gb\u0027] \u003d ephemeral_size"},{"line_number":1335,"context_line":""},{"line_number":1336,"context_line":"        instance.launch_index \u003d index"}],"source_content_type":"text/x-python","patch_set":13,"id":"da9b358b_5a65d9b2","line":1333,"in_reply_to":"da9b358b_b453dee1","updated":"2015-04-01 12:16:06.000000000","message":"No need to mangle instance type here, just forgot to remove these two lines.","commit_id":"25eff5622ebc6bf80f9fa22e81006c3a8f7a4f0d"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a8222d5191aefc4721cb50df7133f4c4de0e6cda","unresolved":false,"context_lines":[{"line_number":1331,"context_line":"        if ephemeral_size:"},{"line_number":1332,"context_line":"            instance.ephemeral_gb \u003d ephemeral_size"},{"line_number":1333,"context_line":"            instance_type \u003d copy.deepcopy(instance_type)"},{"line_number":1334,"context_line":"            instance_type[\u0027ephemeral_gb\u0027] \u003d ephemeral_size"},{"line_number":1335,"context_line":""},{"line_number":1336,"context_line":"        instance.launch_index \u003d index"},{"line_number":1337,"context_line":"        instance.vm_state \u003d vm_states.BUILDING"}],"source_content_type":"text/x-python","patch_set":13,"id":"da9b358b_57c13453","line":1334,"updated":"2015-04-01 11:50:39.000000000","message":"We have the same problem with swap","commit_id":"25eff5622ebc6bf80f9fa22e81006c3a8f7a4f0d"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"b7c0ef48cefc0bebda631a1d9f6e110eff5d7b04","unresolved":false,"context_lines":[{"line_number":1329,"context_line":"        ephemeral_size \u003d block_device.get_bdm_ephemeral_disk_size("},{"line_number":1330,"context_line":"                block_device_mapping)"},{"line_number":1331,"context_line":"        if ephemeral_size:"},{"line_number":1332,"context_line":"            instance.ephemeral_gb \u003d ephemeral_size"},{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":"        instance.launch_index \u003d index"},{"line_number":1335,"context_line":"        instance.vm_state \u003d vm_states.BUILDING"}],"source_content_type":"text/x-python","patch_set":14,"id":"baa041b7_9472947b","line":1332,"updated":"2015-04-01 15:10:59.000000000","message":"Regarding the code we don\u0027t have a real consensus yes but that said your change look like a hack and i can see a least one condition when it will be reverted [1], we probably have to use block_device_mapping each time we need to get this information. Also as reported we hurt the same problem with swap and i do not believe we want to neglect it.\n\n[1] http://git.openstack.org/cgit/openstack/nova/tree/nova/compute/manager.py#n3692","commit_id":"50c8e676325937058d3f15d2b40627927c8ff1e3"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"a2d1c5204812cbf279c17ca01d599219f6a95e0f","unresolved":false,"context_lines":[{"line_number":1329,"context_line":"        ephemeral_size \u003d block_device.get_bdm_ephemeral_disk_size("},{"line_number":1330,"context_line":"                block_device_mapping)"},{"line_number":1331,"context_line":"        if ephemeral_size:"},{"line_number":1332,"context_line":"            instance.ephemeral_gb \u003d ephemeral_size"},{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":"        instance.launch_index \u003d index"},{"line_number":1335,"context_line":"        instance.vm_state \u003d vm_states.BUILDING"}],"source_content_type":"text/x-python","patch_set":14,"id":"baa041b7_4f0359b9","line":1332,"in_reply_to":"baa041b7_9472947b","updated":"2015-04-01 15:18:58.000000000","message":"Ephemeral disks are resized after resize/migrate [1].\n\n[1] http://git.openstack.org/cgit/openstack/nova/tree/nova/virt/libvirt/driver.py#n6333","commit_id":"50c8e676325937058d3f15d2b40627927c8ff1e3"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"65926cc1ab9bc637f4b2e82de44c923f17b65050","unresolved":false,"context_lines":[{"line_number":1329,"context_line":"        ephemeral_size \u003d block_device.get_bdm_ephemeral_disk_size("},{"line_number":1330,"context_line":"                block_device_mapping)"},{"line_number":1331,"context_line":"        if ephemeral_size:"},{"line_number":1332,"context_line":"            instance.ephemeral_gb \u003d ephemeral_size"},{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":"        instance.launch_index \u003d index"},{"line_number":1335,"context_line":"        instance.vm_state \u003d vm_states.BUILDING"}],"source_content_type":"text/x-python","patch_set":14,"id":"baa041b7_cfe649e8","line":1332,"in_reply_to":"baa041b7_9472947b","updated":"2015-04-01 15:24:30.000000000","message":"I agree with sahid here about swap , I noticed when first review but I think we can submit another patch because eph and swap disk can be operated separately","commit_id":"50c8e676325937058d3f15d2b40627927c8ff1e3"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"22dc3fec5a5f618021e7984846520a0101534694","unresolved":false,"context_lines":[{"line_number":1329,"context_line":"        ephemeral_size \u003d block_device.get_bdm_ephemeral_disk_size("},{"line_number":1330,"context_line":"                block_device_mapping)"},{"line_number":1331,"context_line":"        if ephemeral_size:"},{"line_number":1332,"context_line":"            instance.ephemeral_gb \u003d ephemeral_size"},{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":"        instance.launch_index \u003d index"},{"line_number":1335,"context_line":"        instance.vm_state \u003d vm_states.BUILDING"}],"source_content_type":"text/x-python","patch_set":14,"id":"baa041b7_baba216d","line":1332,"in_reply_to":"baa041b7_cfe649e8","updated":"2015-04-01 15:55:56.000000000","message":"Yes, I misread the method name at first. finish_revert_resize should also be updated.\n\nSwap creates less problems because it significantly smaller (like tens to hundreds times smaller than ephemeral).  And it is not cached in instance object.","commit_id":"50c8e676325937058d3f15d2b40627927c8ff1e3"}],"nova/scheduler/filters/disk_filter.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a8222d5191aefc4721cb50df7133f4c4de0e6cda","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        instance_type \u003d filter_properties.get(\u0027instance_type\u0027)"},{"line_number":41,"context_line":"        requested_disk \u003d (1024 * (instance_type[\u0027root_gb\u0027] +"},{"line_number":42,"context_line":"                                 instance_type[\u0027ephemeral_gb\u0027]) +"},{"line_number":43,"context_line":"                         instance_type[\u0027swap\u0027])"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        free_disk_mb \u003d host_state.free_disk_mb"},{"line_number":46,"context_line":"        total_usable_disk_mb \u003d host_state.total_usable_disk_gb * 1024"}],"source_content_type":"text/x-python","patch_set":13,"id":"da9b358b_f4228651","side":"PARENT","line":43,"updated":"2015-04-01 11:50:39.000000000","message":"Hum... so we probably have the same problem with swap here, user can set a swap smaller.","commit_id":"819421a2aabf48f502549869f496f31a7d2d5e25"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"1c56a524696ec30a3770bfb85478a6b11a039885","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        instance_type \u003d filter_properties.get(\u0027instance_type\u0027)"},{"line_number":41,"context_line":"        requested_disk \u003d (1024 * (instance_type[\u0027root_gb\u0027] +"},{"line_number":42,"context_line":"                                 instance_type[\u0027ephemeral_gb\u0027]) +"},{"line_number":43,"context_line":"                         instance_type[\u0027swap\u0027])"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        free_disk_mb \u003d host_state.free_disk_mb"},{"line_number":46,"context_line":"        total_usable_disk_mb \u003d host_state.total_usable_disk_gb * 1024"}],"source_content_type":"text/x-python","patch_set":13,"id":"baa041b7_9420544b","side":"PARENT","line":43,"in_reply_to":"baa041b7_0063e61b","updated":"2015-04-01 15:01:38.000000000","message":"I\u0027m speaking about \u0027swap\u0027 I don\u0027t think we want to neglect that case. some users can have flavor with a large amount of swap defined but only small amount used.","commit_id":"819421a2aabf48f502549869f496f31a7d2d5e25"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"8740d04ba68a0b19c91ee530df71fefd3c2b0f62","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        instance_type \u003d filter_properties.get(\u0027instance_type\u0027)"},{"line_number":41,"context_line":"        requested_disk \u003d (1024 * (instance_type[\u0027root_gb\u0027] +"},{"line_number":42,"context_line":"                                 instance_type[\u0027ephemeral_gb\u0027]) +"},{"line_number":43,"context_line":"                         instance_type[\u0027swap\u0027])"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        free_disk_mb \u003d host_state.free_disk_mb"},{"line_number":46,"context_line":"        total_usable_disk_mb \u003d host_state.total_usable_disk_gb * 1024"}],"source_content_type":"text/x-python","patch_set":13,"id":"da9b358b_cb60f9d1","side":"PARENT","line":43,"in_reply_to":"da9b358b_5a67194d","updated":"2015-04-01 13:06:03.000000000","message":"We don\u0027t know use cases from users. I do not believe we can neglect something here.","commit_id":"819421a2aabf48f502549869f496f31a7d2d5e25"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"e045c998f3c58fa3775899acbca1436435b357de","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        instance_type \u003d filter_properties.get(\u0027instance_type\u0027)"},{"line_number":41,"context_line":"        requested_disk \u003d (1024 * (instance_type[\u0027root_gb\u0027] +"},{"line_number":42,"context_line":"                                 instance_type[\u0027ephemeral_gb\u0027]) +"},{"line_number":43,"context_line":"                         instance_type[\u0027swap\u0027])"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        free_disk_mb \u003d host_state.free_disk_mb"},{"line_number":46,"context_line":"        total_usable_disk_mb \u003d host_state.total_usable_disk_gb * 1024"}],"source_content_type":"text/x-python","patch_set":13,"id":"baa041b7_0063e61b","side":"PARENT","line":43,"in_reply_to":"da9b358b_cb60f9d1","updated":"2015-04-01 13:42:33.000000000","message":"We know one use-case from our users - they have number of flavors with 2TB ephemeral disks, that doesn\u0027t fit on some hypervisors.  This is why they want smaller ephemerals for some machines.  Creating new flavors will double (triple, quadruple, etc) its amount...","commit_id":"819421a2aabf48f502549869f496f31a7d2d5e25"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"a4018a11ab9932315a3b5f82e73f7b3812012a72","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        instance_type \u003d filter_properties.get(\u0027instance_type\u0027)"},{"line_number":41,"context_line":"        requested_disk \u003d (1024 * (instance_type[\u0027root_gb\u0027] +"},{"line_number":42,"context_line":"                                 instance_type[\u0027ephemeral_gb\u0027]) +"},{"line_number":43,"context_line":"                         instance_type[\u0027swap\u0027])"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        free_disk_mb \u003d host_state.free_disk_mb"},{"line_number":46,"context_line":"        total_usable_disk_mb \u003d host_state.total_usable_disk_gb * 1024"}],"source_content_type":"text/x-python","patch_set":13,"id":"da9b358b_5a67194d","side":"PARENT","line":43,"in_reply_to":"da9b358b_f4228651","updated":"2015-04-01 12:16:06.000000000","message":"There is no swap in instance record.  And I think swap size can be neglected because it\u0027s usually significantly smaller than ephemeral disk.","commit_id":"819421a2aabf48f502549869f496f31a7d2d5e25"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"c8158cde3d1e691a9885d75422e30be2cd56420d","unresolved":false,"context_lines":[{"line_number":7530,"context_line":"        instance.update(base_options)"},{"line_number":7531,"context_line":"        inst_type \u003d flavors.get_flavor_by_name(\"m1.tiny\")"},{"line_number":7532,"context_line":"        bdm \u003d ["},{"line_number":7533,"context_line":"            fake_block_device.FakeDbBlockDeviceDict({"},{"line_number":7534,"context_line":"                \u0027id\u0027: 1,"},{"line_number":7535,"context_line":"                \u0027no_device\u0027: None,"},{"line_number":7536,"context_line":"                \u0027source_type\u0027: \u0027volume\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_c0993220","line":7533,"updated":"2015-03-20 13:17:09.000000000","message":"Please use AnonFakeDbBlockDeviceDict and you doesn\u0027t need use anon\u003dTrue","commit_id":"2d7d8b672f8f5afb1d0469352a1b507e3e386e36"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"420361ac513c182a519714144d7c231fc7eaafa9","unresolved":false,"context_lines":[{"line_number":7530,"context_line":"        instance.update(base_options)"},{"line_number":7531,"context_line":"        inst_type \u003d flavors.get_flavor_by_name(\"m1.tiny\")"},{"line_number":7532,"context_line":"        bdm \u003d ["},{"line_number":7533,"context_line":"            fake_block_device.FakeDbBlockDeviceDict({"},{"line_number":7534,"context_line":"                \u0027id\u0027: 1,"},{"line_number":7535,"context_line":"                \u0027no_device\u0027: None,"},{"line_number":7536,"context_line":"                \u0027source_type\u0027: \u0027volume\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_4bcd635c","line":7533,"in_reply_to":"9a80dd14_c0993220","updated":"2015-03-20 13:54:37.000000000","message":"OK.  It was copy-paste from test_validate_bdm().","commit_id":"2d7d8b672f8f5afb1d0469352a1b507e3e386e36"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"c8158cde3d1e691a9885d75422e30be2cd56420d","unresolved":false,"context_lines":[{"line_number":7571,"context_line":"                \u0027ephemeral_gb\u0027: 10"},{"line_number":7572,"context_line":"            })"},{"line_number":7573,"context_line":"        bdm \u003d ["},{"line_number":7574,"context_line":"            fake_block_device.FakeDbBlockDeviceDict({"},{"line_number":7575,"context_line":"                \u0027id\u0027: 1,"},{"line_number":7576,"context_line":"                \u0027no_device\u0027: None,"},{"line_number":7577,"context_line":"                \u0027source_type\u0027: \u0027volume\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_a0bd1e6a","line":7574,"updated":"2015-03-20 13:17:09.000000000","message":"ditto","commit_id":"2d7d8b672f8f5afb1d0469352a1b507e3e386e36"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"420361ac513c182a519714144d7c231fc7eaafa9","unresolved":false,"context_lines":[{"line_number":7571,"context_line":"                \u0027ephemeral_gb\u0027: 10"},{"line_number":7572,"context_line":"            })"},{"line_number":7573,"context_line":"        bdm \u003d ["},{"line_number":7574,"context_line":"            fake_block_device.FakeDbBlockDeviceDict({"},{"line_number":7575,"context_line":"                \u0027id\u0027: 1,"},{"line_number":7576,"context_line":"                \u0027no_device\u0027: None,"},{"line_number":7577,"context_line":"                \u0027source_type\u0027: \u0027volume\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_6bd8671e","line":7574,"in_reply_to":"9a80dd14_a0bd1e6a","updated":"2015-03-20 13:54:37.000000000","message":"Done","commit_id":"2d7d8b672f8f5afb1d0469352a1b507e3e386e36"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"c8158cde3d1e691a9885d75422e30be2cd56420d","unresolved":false,"context_lines":[{"line_number":7582,"context_line":"                \u0027boot_index\u0027: 0,"},{"line_number":7583,"context_line":"                \u0027delete_on_termination\u0027: False"},{"line_number":7584,"context_line":"            }, anon\u003dTrue),"},{"line_number":7585,"context_line":"            fake_block_device.FakeDbBlockDeviceDict({"},{"line_number":7586,"context_line":"                \u0027device_name\u0027: \u0027/dev/vdb\u0027,"},{"line_number":7587,"context_line":"                \u0027source_type\u0027: \u0027blank\u0027,"},{"line_number":7588,"context_line":"                \u0027destination_type\u0027: \u0027local\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_00b7ca85","line":7585,"updated":"2015-03-20 13:17:09.000000000","message":"ditto","commit_id":"2d7d8b672f8f5afb1d0469352a1b507e3e386e36"},{"author":{"_account_id":11061,"name":"Alexey I. Froloff","email":"raorn@raorn.name","username":"raorn"},"change_message_id":"420361ac513c182a519714144d7c231fc7eaafa9","unresolved":false,"context_lines":[{"line_number":7582,"context_line":"                \u0027boot_index\u0027: 0,"},{"line_number":7583,"context_line":"                \u0027delete_on_termination\u0027: False"},{"line_number":7584,"context_line":"            }, anon\u003dTrue),"},{"line_number":7585,"context_line":"            fake_block_device.FakeDbBlockDeviceDict({"},{"line_number":7586,"context_line":"                \u0027device_name\u0027: \u0027/dev/vdb\u0027,"},{"line_number":7587,"context_line":"                \u0027source_type\u0027: \u0027blank\u0027,"},{"line_number":7588,"context_line":"                \u0027destination_type\u0027: \u0027local\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_8bd3dbff","line":7585,"in_reply_to":"9a80dd14_00b7ca85","updated":"2015-03-20 13:54:37.000000000","message":"Done","commit_id":"2d7d8b672f8f5afb1d0469352a1b507e3e386e36"}]}
