)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"50b5ed5663b82cbd3aa75997f3bfea66568eb8dc","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This feature adds the possibility to define a flavor,"},{"line_number":10,"context_line":"that does not create ephemeral root_disk on the hypervisor;"},{"line_number":11,"context_line":"If root disk size is set to -1, users are \"forced\" to create a"},{"line_number":12,"context_line":"bootable volume to launch an instance from that flavor."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"APIImpact"},{"line_number":15,"context_line":"DocImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa0719c6_3e3a3837","line":12,"updated":"2016-03-21 12:46:13.000000000","message":"Is there a reason we don\u0027t make this value None? The -1 special value I feel comes back to hurt us later.","commit_id":"522475b8f57910bef52987b968745f45365b072b"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"d899c90171ac59ac619f5ade987e4a1aff1beb64","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This feature adds the possibility to define a flavor,"},{"line_number":10,"context_line":"that does not create ephemeral root_disk on the hypervisor;"},{"line_number":11,"context_line":"If root disk size is set to -1, users are \"forced\" to create a"},{"line_number":12,"context_line":"bootable volume to launch an instance from that flavor."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"APIImpact"},{"line_number":15,"context_line":"DocImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa0719c6_f6bbc40c","line":12,"in_reply_to":"fa0719c6_3e3a3837","updated":"2016-03-21 13:32:20.000000000","message":"Because it would require a DB change. The field root_gb is int(11) in instance_types; and the value 0 is already in use by another special case (it uses the size of the image as ephemeral root disk).","commit_id":"522475b8f57910bef52987b968745f45365b072b"}],"specs/mitaka/approved/flavor-root-disk-none.rst":[{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"2ba4cd939d9083d7b7188c56ba51649a10aa0120","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Currently there is no way to force root disk being on cinder and having"},{"line_number":23,"context_line":"no ephemeral disks at all."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"We do not want to have ephemeral disks locally on the hypervisor;"},{"line_number":26,"context_line":"not on a local filesystem nor on a share mounted to /var/lib/nova/instances."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a5de9d1_665bce55","line":23,"updated":"2016-01-27 09:55:24.000000000","message":"I guess it would be also worth to add here that putting \"0\" as disk sizes means that nova will allocate a disk with the size of the image. Which is weird IMHO.","commit_id":"e57449d7b9d8796676c823a6689c4c649f052bd8"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"2ba4cd939d9083d7b7188c56ba51649a10aa0120","unresolved":false,"context_lines":[{"line_number":29,"context_line":"On a local hypervsisor filesystem is also not always a good idea,"},{"line_number":30,"context_line":"because there are consumers, that do have data in the root disk as well,"},{"line_number":31,"context_line":"which sometimes cannot be simply thrown away."},{"line_number":32,"context_line":"Having more or less all blockdevices in cinder volumes gives us a uniq"},{"line_number":33,"context_line":"and flexible feature set for maintaining block storage of instances and"},{"line_number":34,"context_line":"the instances itsself."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a5de9d1_46b0128c","line":32,"range":{"start_line":32,"start_character":66,"end_line":32,"end_character":70},"updated":"2016-01-27 09:55:24.000000000","message":"s/uniq/unique/","commit_id":"e57449d7b9d8796676c823a6689c4c649f052bd8"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"2ba4cd939d9083d7b7188c56ba51649a10aa0120","unresolved":false,"context_lines":[{"line_number":60,"context_line":"* allow -1 in nova.compute.api validation"},{"line_number":61,"context_line":"* allow -1 in nova.compute.flavors"},{"line_number":62,"context_line":"* return descriptive exception, when flavor with root_disk -1 and no volume"},{"line_number":63,"context_line":"* adjust api doc"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Alternatives"},{"line_number":66,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a5de9d1_091d4d66","line":63,"updated":"2016-01-27 09:55:24.000000000","message":"Important is also the test scenario for live migration. So if disk\u003d-1 live migration should be possible without any share fs for nova. Can be that we need to change some other places for that.","commit_id":"e57449d7b9d8796676c823a6689c4c649f052bd8"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"54940bf938b9ce079bfc5c03991912d6521b755f","unresolved":false,"context_lines":[{"line_number":60,"context_line":"* allow -1 in nova.compute.api validation"},{"line_number":61,"context_line":"* allow -1 in nova.compute.flavors"},{"line_number":62,"context_line":"* return descriptive exception, when flavor with root_disk -1 and no volume"},{"line_number":63,"context_line":"* adjust api doc"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Alternatives"},{"line_number":66,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a5de9d1_69a08191","line":63,"in_reply_to":"7a5de9d1_091d4d66","updated":"2016-01-27 10:00:46.000000000","message":"ah I just overlooked the sentence in the use-case section. So it\u0027s already covered.","commit_id":"e57449d7b9d8796676c823a6689c4c649f052bd8"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"2ba4cd939d9083d7b7188c56ba51649a10aa0120","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* support -1 for flavor create"},{"line_number":129,"context_line":"* proper exception if -1 set in flavor and no volume given"},{"line_number":130,"context_line":"* adjust flavor unit test"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Dependencies"},{"line_number":133,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a5de9d1_89561d05","line":130,"updated":"2016-01-27 09:55:24.000000000","message":"See above \"live migration\".","commit_id":"e57449d7b9d8796676c823a6689c4c649f052bd8"}],"specs/mitaka/approved/flavor-with-volume.rst":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"2888edb72979de498fd5c2ac0dcdbff815d04237","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/flavor-with-volume"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature adds the possibility to define a flavor,"},{"line_number":14,"context_line":"that does not create ephemeral disks on the hypervisor;"},{"line_number":15,"context_line":"instead there will be an additional flavor option, to define a volume size."},{"line_number":16,"context_line":"If volume size is defined in a flavor a new cinder volume gets created"},{"line_number":17,"context_line":"upon instance launch from that flavor."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a68dd71_785596c4","line":14,"updated":"2016-01-20 18:49:37.000000000","message":"I\u0027m in support of a flavor option that does not create an ephemeral disk.","commit_id":"89cef6fe6252a1de9085a5ab3158be80bc72179b"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"2888edb72979de498fd5c2ac0dcdbff815d04237","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature adds the possibility to define a flavor,"},{"line_number":14,"context_line":"that does not create ephemeral disks on the hypervisor;"},{"line_number":15,"context_line":"instead there will be an additional flavor option, to define a volume size."},{"line_number":16,"context_line":"If volume size is defined in a flavor a new cinder volume gets created"},{"line_number":17,"context_line":"upon instance launch from that flavor."},{"line_number":18,"context_line":"If root disk size is set to 0 and volume size is given, the root disk"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a68dd71_382cfe49","line":15,"updated":"2016-01-20 18:49:37.000000000","message":"I\u0027m against defining a volume size on a flavor.  Flavors are linked to resource consumption on compute nodes and the volume size is not something that is consumed on the compute node.  I also don\u0027t think that a flavor should indicate that a volume should be created.","commit_id":"89cef6fe6252a1de9085a5ab3158be80bc72179b"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"2888edb72979de498fd5c2ac0dcdbff815d04237","unresolved":false,"context_lines":[{"line_number":22,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Currently there is no way to force root disk being on cinder and having"},{"line_number":25,"context_line":"no ephemeral disks at all."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"We do not want to have ephemeral disks locally on the hypervisor;"},{"line_number":28,"context_line":"not on a local filesystem nor on a share mounted to /var/lib/nova/instances."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a68dd71_d8e4c20e","line":25,"updated":"2016-01-20 18:49:37.000000000","message":"Another approach that could be taken would be to have a policy check, or some indication on a flavor, that would not allow an image based instance to be created at all or with that flavor.","commit_id":"89cef6fe6252a1de9085a5ab3158be80bc72179b"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"2888edb72979de498fd5c2ac0dcdbff815d04237","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Currently there is no way to force root disk being on cinder and having"},{"line_number":25,"context_line":"no ephemeral disks at all."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"We do not want to have ephemeral disks locally on the hypervisor;"},{"line_number":28,"context_line":"not on a local filesystem nor on a share mounted to /var/lib/nova/instances."},{"line_number":29,"context_line":"Because, as that shares grow, they get unmaintainable"},{"line_number":30,"context_line":"and performance is getting worse."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a68dd71_f8af467b","line":27,"updated":"2016-01-20 18:49:37.000000000","message":"This spec appears to be proposing two things: blocking local ephemeral disks, and blocking image based root disks.  I think those are separate enough that this spec should be split.  Keeping in mind that I think a better approach is to block image based root disks, not add information to flavors that will have them create volumes.","commit_id":"89cef6fe6252a1de9085a5ab3158be80bc72179b"}],"specs/newton/approved/flavor-root-disk-none.rst":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"8cf7cbcea30f0df1d1a8c037593fd5bdfc5eecc0","unresolved":false,"context_lines":[{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* additionally allow \u0027-1\u0027 as disk parameter value for flavor create"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Security impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa0719c6_592bc3eb","line":85,"range":{"start_line":85,"start_character":43,"end_line":85,"end_character":44},"updated":"2016-03-21 13:59:36.000000000","message":"maybe you can add more detail here such as copy schema here?\n\nand suppose 2 clouds there and one has this feature the other don\u0027t have, should it be a microversion candidate?\nhttps://github.com/openstack/nova/blob/master/doc/source/api_microversion_dev.rst","commit_id":"522475b8f57910bef52987b968745f45365b072b"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"f3d289e6b1871ee995ef2d8f0720bff756f206b6","unresolved":false,"context_lines":[{"line_number":82,"context_line":"REST API impact"},{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* additionally allow \u0027-1\u0027 as disk parameter value for flavor create"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Security impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa0719c6_98dd4317","line":85,"range":{"start_line":85,"start_character":43,"end_line":85,"end_character":44},"in_reply_to":"fa0719c6_592bc3eb","updated":"2016-03-21 19:17:49.000000000","message":"Yes i think it requires a microversion, because it changes the contract with the user: it allows a new value for an attribute, which was not allowed before.\nI\u0027ll add it to the spec, as well some more details for the schema change.","commit_id":"522475b8f57910bef52987b968745f45365b072b"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"a1a86da0452c093edeff563dcbe0330d9dae5125","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"* Create flavor with root_disk -1"},{"line_number":144,"context_line":"* Boot instance with such flavor without volume"},{"line_number":145,"context_line":"* Boot instance with such flavor wit volume"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Documentation Impact"},{"line_number":148,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a5de9d1_43109201","line":145,"range":{"start_line":145,"start_character":33,"end_line":145,"end_character":36},"updated":"2016-01-29 04:02:31.000000000","message":"s/wit/with/\nor \"with such flavor and volume\"","commit_id":"522475b8f57910bef52987b968745f45365b072b"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"94beeb618f8e4a877c13669411067f83eb88d9ef","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* allow \u0027None\u0027 in nova.compute.flavors"},{"line_number":63,"context_line":"* allow \u0027None\u0027 as disk value in python-novaclient and python-openstackclient"},{"line_number":64,"context_line":"* return descriptive exception, when flavor with root_disk \u0027None\u0027 and no volume"},{"line_number":65,"context_line":"* adjust api doc"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_065d5148","line":65,"updated":"2016-05-03 13:30:52.000000000","message":"There\u0027s no discussion of config-drive in here. How do you expect that to work in this case? Is it acceptable for config-drive to reside on local disk, or would it need to be a volume as well?","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"71106cab47b9ecd4a343b6b9fe4caca80a9d0074","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* allow \u0027None\u0027 in nova.compute.flavors"},{"line_number":63,"context_line":"* allow \u0027None\u0027 as disk value in python-novaclient and python-openstackclient"},{"line_number":64,"context_line":"* return descriptive exception, when flavor with root_disk \u0027None\u0027 and no volume"},{"line_number":65,"context_line":"* adjust api doc"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_2b46284f","line":65,"in_reply_to":"1a122d0e_065d5148","updated":"2016-05-04 12:41:08.000000000","message":"The config drive question is a good one, and should be addressed. Metacloud folks are putting sdcards in servers for this, but we should figure it out for others.","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"57a3b40b6d6c0d7419c34aa168a822db0a831b82","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* allow \u0027None\u0027 in nova.compute.flavors"},{"line_number":63,"context_line":"* allow \u0027None\u0027 as disk value in python-novaclient and python-openstackclient"},{"line_number":64,"context_line":"* return descriptive exception, when flavor with root_disk \u0027None\u0027 and no volume"},{"line_number":65,"context_line":"* adjust api doc"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_a0a40a08","line":65,"in_reply_to":"1a122d0e_17ed46b7","updated":"2016-05-04 15:43:05.000000000","message":"For us, it is no problem to let the config-drive reside on the hypervisor; libvirt.xml will stay there as well. So setting root_disk to None would really only influence the ephemeral root disk. What do you think? \n\nSame like, when you manually provide a block-device-mapping now, to place the root disk on a volume; then the config-drive will also remain on local hosts disk.","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"1605a086c7c2c2cd4a7a4bdbd39cca8ea9b8f3f7","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* allow \u0027None\u0027 in nova.compute.flavors"},{"line_number":63,"context_line":"* allow \u0027None\u0027 as disk value in python-novaclient and python-openstackclient"},{"line_number":64,"context_line":"* return descriptive exception, when flavor with root_disk \u0027None\u0027 and no volume"},{"line_number":65,"context_line":"* adjust api doc"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_17ed46b7","line":65,"in_reply_to":"1a122d0e_2b46284f","updated":"2016-05-04 15:05:08.000000000","message":"FWIW Rackspace also has \"diskless\" hosts which have a small SD card in them. But at this point I\u0027m not sure we can consider that to be universal.","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"change_message_id":"53370e5a6220b0c66ffc5257530ae7ff2f3a4690","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The alternative is to always boot instances with the additional block_device"},{"line_number":71,"context_line":"parameter, to make sure root disk is on cinder volume"},{"line_number":72,"context_line":"and no ephemeral gets created."},{"line_number":73,"context_line":"But this has the downside, that someone might forget it and ephemeral disks"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_009eeb62","line":70,"updated":"2016-05-02 21:26:20.000000000","message":"We used to have a patch to always default to boot-from-volume. You had to add an extra-specs in your flavor (like disk:default_backend\u003dvolume) and in the Nova API, it would inspect your request and change it so if no BDM are provided, one is created for you with default size set to root_gb.\n\nHere is our patch: https://gist.github.com/mgagne/161bd7eaeb4c747fa1ae97c0bc43c093\n\nThis won\u0027t deny you from booting from ephemeral disks if you passed the right BDM but one can disable ephemeral with max_local_block_devices so we didn\u0027t see it as a major issue.","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"9b5bfc1636a70e2aeb994ccd7cd9c99dac7e4158","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The alternative is to always boot instances with the additional block_device"},{"line_number":71,"context_line":"parameter, to make sure root disk is on cinder volume"},{"line_number":72,"context_line":"and no ephemeral gets created."},{"line_number":73,"context_line":"But this has the downside, that someone might forget it and ephemeral disks"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_cb3fe285","line":70,"in_reply_to":"1a122d0e_009eeb62","updated":"2016-05-03 12:53:01.000000000","message":"Really nice. This is exactly what we are looking for. Thanks for sharing. But we are really looking for an upstream integrated solution.","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"change_message_id":"a8e04acc20bce1ebc3c9f2a49e88bf1def9a3dff","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The alternative is to always boot instances with the additional block_device"},{"line_number":71,"context_line":"parameter, to make sure root disk is on cinder volume"},{"line_number":72,"context_line":"and no ephemeral gets created."},{"line_number":73,"context_line":"But this has the downside, that someone might forget it and ephemeral disks"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_b3d4861f","line":70,"in_reply_to":"1a122d0e_cb3fe285","updated":"2016-05-03 22:45:25.000000000","message":"This can easily be integrated upstream. We only did it in a middleware for the sack of simplicity. It can very well be moved into the API.\n\nIMO, this is the simplest way to make it happen without major API change or introducing what I consider \"pythonic hack\" (None value in an integer field).","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"68bb01680c65b703fba8eb5235d6dd13c254b279","unresolved":false,"context_lines":[{"line_number":83,"context_line":"REST API impact"},{"line_number":84,"context_line":"---------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"* additionally allow \u0027None\u0027 as disk parameter value for flavor create"},{"line_number":87,"context_line":"* the disk parameter of schema flavor_manage.create will be extended from"},{"line_number":88,"context_line":"  non_negative_integer to also allow type \u0027null\u0027"},{"line_number":89,"context_line":"* introduce new api microversion which allows \u0027None\u0027 as disk value"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a061dce_d9b4ddf3","line":86,"range":{"start_line":86,"start_character":2,"end_line":86,"end_character":69},"updated":"2016-04-05 02:57:56.000000000","message":"How about adding a new parameter like \"without_ephemeral_disk\" or \"enforce_booting_from_volume\" or something?\n\nIt is a little difficult to understand difference between the disk 0(\u003dsame size as image) and null(\u003denforcing boot from volume) on current spec.\n\nIn addition, current Tempest verifies the \"disk\" should be an integer value on https://github.com/openstack/tempest/blob/master/tempest/lib/api_schema/response/compute/v2_1/flavors.py#L54 on base microversion(v2.1).\n\nI am thinking the created flavor with this feature will be returned as a response of \"list flavors\" API on all microversions. If returning null as the disk on the base microversion, Tempest will fail. This thing can happen on the other APPs which are expecting integer value on that.\n\nSo I feel it is nice to add another parameter for avoiding this situation simply.","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"368b2868411feee19be99edbfac082ab20226ce6","unresolved":false,"context_lines":[{"line_number":83,"context_line":"REST API impact"},{"line_number":84,"context_line":"---------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"* additionally allow \u0027None\u0027 as disk parameter value for flavor create"},{"line_number":87,"context_line":"* the disk parameter of schema flavor_manage.create will be extended from"},{"line_number":88,"context_line":"  non_negative_integer to also allow type \u0027null\u0027"},{"line_number":89,"context_line":"* introduce new api microversion which allows \u0027None\u0027 as disk value"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_a3029470","line":86,"range":{"start_line":86,"start_character":2,"end_line":86,"end_character":69},"in_reply_to":"1a122d0e_392a3e30","updated":"2016-05-03 09:42:40.000000000","message":"The feature (only allow None as disk option) has been accepted during the unconference sessions during the summit, see https://etherpad.openstack.org/p/newton-nova-summit-unconference","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"af0a5b790579cdd0f342ed89b698d22c9558ee20","unresolved":false,"context_lines":[{"line_number":83,"context_line":"REST API impact"},{"line_number":84,"context_line":"---------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"* additionally allow \u0027None\u0027 as disk parameter value for flavor create"},{"line_number":87,"context_line":"* the disk parameter of schema flavor_manage.create will be extended from"},{"line_number":88,"context_line":"  non_negative_integer to also allow type \u0027null\u0027"},{"line_number":89,"context_line":"* introduce new api microversion which allows \u0027None\u0027 as disk value"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_392a3e30","line":86,"range":{"start_line":86,"start_character":2,"end_line":86,"end_character":69},"in_reply_to":"1a122d0e_4db1af00","updated":"2016-05-02 23:06:07.000000000","message":"If adding \"volume\" parameter which shows the size, I am guessing API users will be confused.\nbecause there would be two different parameters which both represent the server root filesystem size.\n\nI still am feeling it is nice to add a parameter which show \"The server which is specified with this parameter is booted from volume.\" on True/False without the root size.","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"f7275de6d3041a037ea183d754be61510b4b1976","unresolved":false,"context_lines":[{"line_number":83,"context_line":"REST API impact"},{"line_number":84,"context_line":"---------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"* additionally allow \u0027None\u0027 as disk parameter value for flavor create"},{"line_number":87,"context_line":"* the disk parameter of schema flavor_manage.create will be extended from"},{"line_number":88,"context_line":"  non_negative_integer to also allow type \u0027null\u0027"},{"line_number":89,"context_line":"* introduce new api microversion which allows \u0027None\u0027 as disk value"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_4db1af00","line":86,"range":{"start_line":86,"start_character":2,"end_line":86,"end_character":69},"in_reply_to":"7a1b2928_445c8125","updated":"2016-04-27 16:41:30.000000000","message":"there is no flavor update; is there? You can only set/unset extra_spec on flavors.","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"a774b4f24fab4558dd8406e8fb688531d358a6df","unresolved":false,"context_lines":[{"line_number":83,"context_line":"REST API impact"},{"line_number":84,"context_line":"---------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"* additionally allow \u0027None\u0027 as disk parameter value for flavor create"},{"line_number":87,"context_line":"* the disk parameter of schema flavor_manage.create will be extended from"},{"line_number":88,"context_line":"  non_negative_integer to also allow type \u0027null\u0027"},{"line_number":89,"context_line":"* introduce new api microversion which allows \u0027None\u0027 as disk value"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a061dce_fd542455","line":86,"range":{"start_line":86,"start_character":2,"end_line":86,"end_character":69},"in_reply_to":"9a061dce_d9b4ddf3","updated":"2016-04-05 08:31:37.000000000","message":"I totally agree on that potential confusion. I needed to touch a couple of places to properly support the right distinction between \u00270\u0027 and \u0027None\u0027. We would have to adjust the tempest test as well; But you are right, these disk-none-flavors will be returned, independently of the microversion, this new feature comes.\n\nMy initial approach for that feature (and what i still think would be the ultimate and best solution ;) ) is to have an additional paramter \u0027volume\u0027, where you can give a size in GB (like disk). If the parameter \u0027volume\u0027 is given and \u0027disk\u0027 is 0 a bootable cinder volume will be created upon boot request with that flavor (like you can do with --block-device on nova boot). If disk size is \u003e 0 and volume size given as well, then just an additional non-bootable volume gets created and attached.\nBut Andrew Laski deselected that option because of the too much cinder integration (which i think is there anyhow, beacause of --block-device functionality). But maybe there are other opinions, what do you think?\n\nI can also live with an additional, just boolean parameter, that implements the disk \u003d None behaviour.","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"539b5da752ef0a689979ec4bd48e8cb2b68d44f6","unresolved":false,"context_lines":[{"line_number":83,"context_line":"REST API impact"},{"line_number":84,"context_line":"---------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"* additionally allow \u0027None\u0027 as disk parameter value for flavor create"},{"line_number":87,"context_line":"* the disk parameter of schema flavor_manage.create will be extended from"},{"line_number":88,"context_line":"  non_negative_integer to also allow type \u0027null\u0027"},{"line_number":89,"context_line":"* introduce new api microversion which allows \u0027None\u0027 as disk value"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a1b2928_445c8125","line":86,"range":{"start_line":86,"start_character":2,"end_line":86,"end_character":69},"in_reply_to":"9a061dce_d9b4ddf3","updated":"2016-04-11 12:26:17.000000000","message":"maybe consider a flavor update ? otherwise we are ok when we create the flavor but we lost the info during flavor usage since the option suggested only in API lifecycle?","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"94beeb618f8e4a877c13669411067f83eb88d9ef","unresolved":false,"context_lines":[{"line_number":141,"context_line":"----------"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"* support \u0027None\u0027 for flavor create"},{"line_number":144,"context_line":"* proper exception if \u0027None\u0027 set in flavor and no volume given"},{"line_number":145,"context_line":"* adjust flavor unit test"},{"line_number":146,"context_line":"* check if live-migration can be done without shared FS"},{"line_number":147,"context_line":"  (only libvirt.xml and console.log should be there)"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_c66b59f0","line":144,"updated":"2016-05-03 13:30:52.000000000","message":"Not just if no volume is passed in, but if a block-device-mapping is passed in with dest\u003dlocal that should fail as well.","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"57a3b40b6d6c0d7419c34aa168a822db0a831b82","unresolved":false,"context_lines":[{"line_number":141,"context_line":"----------"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"* support \u0027None\u0027 for flavor create"},{"line_number":144,"context_line":"* proper exception if \u0027None\u0027 set in flavor and no volume given"},{"line_number":145,"context_line":"* adjust flavor unit test"},{"line_number":146,"context_line":"* check if live-migration can be done without shared FS"},{"line_number":147,"context_line":"  (only libvirt.xml and console.log should be there)"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_00b97e15","line":144,"in_reply_to":"1a122d0e_c66b59f0","updated":"2016-05-04 15:43:05.000000000","message":"Yes. I will formulate that more concrete. It will of course also raise an exception, because target root disk size is too small (None).","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"94beeb618f8e4a877c13669411067f83eb88d9ef","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* Create flavor with root_disk \u0027None\u0027"},{"line_number":158,"context_line":"* Boot instance with such flavor without volume"},{"line_number":159,"context_line":"* Boot instance with such flavor wit volume"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Documentation Impact"},{"line_number":162,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_0676f1d7","line":159,"range":{"start_line":159,"start_character":33,"end_line":159,"end_character":36},"updated":"2016-05-03 13:30:52.000000000","message":"with","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"57a3b40b6d6c0d7419c34aa168a822db0a831b82","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* Create flavor with root_disk \u0027None\u0027"},{"line_number":158,"context_line":"* Boot instance with such flavor without volume"},{"line_number":159,"context_line":"* Boot instance with such flavor wit volume"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Documentation Impact"},{"line_number":162,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a122d0e_4039b6a2","line":159,"range":{"start_line":159,"start_character":33,"end_line":159,"end_character":36},"in_reply_to":"1a122d0e_0676f1d7","updated":"2016-05-04 15:43:05.000000000","message":"Done","commit_id":"dccf4d7973ecd1c6b367c0eea51b0b593132f424"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"99b8d9bf9e37d809c7b20b90db61506b9df3c552","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Currently there is no way to force root disk being on cinder and having"},{"line_number":23,"context_line":"no ephemeral disks at all. And setting root_gb to 0 defaults in creating an"},{"line_number":24,"context_line":"ephemeral root disk with the size of the glance image."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"We do not want to have ephemeral disks locally on the hypervisor;"},{"line_number":27,"context_line":"not on a local filesystem nor on a share mounted to /var/lib/nova/instances."}],"source_content_type":"text/x-rst","patch_set":7,"id":"dab17558_d9149945","line":24,"updated":"2016-05-09 20:26:09.000000000","message":"Your intention is mostly clear in this spec, but I want to point out that there may be some confusion about your use of \u0027ephemeral\u0027 throughout. There is both a root disk and something called an ephemeral disk, but you seem to mean root disk when you use \u0027ephemeral\u0027. While they are both ephemeral disks it may help to distinguish between root disk and ephemeral.","commit_id":"42cb9f44cf960cf9ca41f905f9cfd26ec27b2c47"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"24cb9e159fc92760bf6c039e6d51266231e91138","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Currently there is no way to force root disk being on cinder and having"},{"line_number":23,"context_line":"no ephemeral disks at all. And setting root_gb to 0 defaults in creating an"},{"line_number":24,"context_line":"ephemeral root disk with the size of the glance image."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"We do not want to have ephemeral disks locally on the hypervisor;"},{"line_number":27,"context_line":"not on a local filesystem nor on a share mounted to /var/lib/nova/instances."}],"source_content_type":"text/x-rst","patch_set":7,"id":"dab17558_5cd1b756","line":24,"in_reply_to":"dab17558_d9149945","updated":"2016-05-09 20:56:59.000000000","message":"You are right. I corrected these occurrences to be more precisely with this terms. Not ephemeral disks in general, but hypervisor-local ephemeral disks are ment. Thanks Andrew.","commit_id":"42cb9f44cf960cf9ca41f905f9cfd26ec27b2c47"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ed54e24a8a77b22c5176b08fdd6863e5e3f3e7b8","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The scope of the change:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* allow \u0027None\u0027 in nova.compute.api validation"},{"line_number":63,"context_line":"* allow \u0027None\u0027 in nova.compute.flavors"},{"line_number":64,"context_line":"* allow \u0027None\u0027 as disk value in python-novaclient and python-openstackclient"},{"line_number":65,"context_line":"* return descriptive exception, when flavor with root_disk \u0027None\u0027 and"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_6f2a3b80","line":62,"updated":"2016-05-13 00:21:04.000000000","message":"It would be good to be more specific about the actual change in question in the compute api validation.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"ae841aa7f6ae21c6c873aba91142c868df9e68eb","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The scope of the change:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* allow \u0027None\u0027 in nova.compute.api validation"},{"line_number":63,"context_line":"* allow \u0027None\u0027 in nova.compute.flavors"},{"line_number":64,"context_line":"* allow \u0027None\u0027 as disk value in python-novaclient and python-openstackclient"},{"line_number":65,"context_line":"* return descriptive exception, when flavor with root_disk \u0027None\u0027 and"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_fdfd296f","line":62,"in_reply_to":"dab17558_0c3e0fda","updated":"2016-05-13 13:45:15.000000000","message":"It\u0027s not necessary to get detailed to the point of line numbers, or even affected files. However it is good to point out major systems that will be affected.\n\nFor instance this will need a microversion bump for the API, and then what\u0027s the expectation for users who try to set root_gb\u003dNone for older microversions.\n\nAlso, Matt pointed out in IRC that the current flavor object does not allow root_gb to be set to None. Changing that has consequences for the upgrade process, so while the specifics may not be needed it should be mentioned that it will be handled.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"bf75749eeb0ed85df0006d4d75c7c9721f6edf99","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The scope of the change:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* allow \u0027None\u0027 in nova.compute.api validation"},{"line_number":63,"context_line":"* allow \u0027None\u0027 in nova.compute.flavors"},{"line_number":64,"context_line":"* allow \u0027None\u0027 as disk value in python-novaclient and python-openstackclient"},{"line_number":65,"context_line":"* return descriptive exception, when flavor with root_disk \u0027None\u0027 and"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_0c3e0fda","line":62,"in_reply_to":"dab17558_6f2a3b80","updated":"2016-05-13 08:47:00.000000000","message":"Should i list all affected files and line numbers? How detailed about code implementation should such a spec be? IMHO, the most important outcome of such a spec is the: Why do we need this change, what are the use cases? Implementation details cannot always be estimated when writing a spec/feature proposal.\n\nI have a working WIP review already pushed, let me see what i can fetch from there.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ed54e24a8a77b22c5176b08fdd6863e5e3f3e7b8","unresolved":false,"context_lines":[{"line_number":60,"context_line":"The scope of the change:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* allow \u0027None\u0027 in nova.compute.api validation"},{"line_number":63,"context_line":"* allow \u0027None\u0027 in nova.compute.flavors"},{"line_number":64,"context_line":"* allow \u0027None\u0027 as disk value in python-novaclient and python-openstackclient"},{"line_number":65,"context_line":"* return descriptive exception, when flavor with root_disk \u0027None\u0027 and"},{"line_number":66,"context_line":"  requested image larger than given blockdevice layout"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_af0d4339","line":63,"updated":"2016-05-13 00:21:04.000000000","message":"What happens if I specify a flavor of root_gb\u003dNone and ephemeral_gb\u003d10? I assume it fails, but should probably point that out as an error condition to check for when creating new flavors.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"bf75749eeb0ed85df0006d4d75c7c9721f6edf99","unresolved":false,"context_lines":[{"line_number":60,"context_line":"The scope of the change:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* allow \u0027None\u0027 in nova.compute.api validation"},{"line_number":63,"context_line":"* allow \u0027None\u0027 in nova.compute.flavors"},{"line_number":64,"context_line":"* allow \u0027None\u0027 as disk value in python-novaclient and python-openstackclient"},{"line_number":65,"context_line":"* return descriptive exception, when flavor with root_disk \u0027None\u0027 and"},{"line_number":66,"context_line":"  requested image larger than given blockdevice layout"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_cf84f95e","line":63,"in_reply_to":"dab17558_af0d4339","updated":"2016-05-13 08:47:00.000000000","message":"It will fail, because the local root disk is to small/disabled.\n\nIf providing a BD mapping with a volume backed root disk, such a flavor will work and create an additional local ephemeral disk. Bust as sayd in the last comment, this is then user intended; we just want to prevent unintended local disk creation. Flavors are only created by admins, that are educated to not create local disks.\n\nI will outline that this.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ed54e24a8a77b22c5176b08fdd6863e5e3f3e7b8","unresolved":false,"context_lines":[{"line_number":74,"context_line":"The alternative is to always boot instances with the additional block_device"},{"line_number":75,"context_line":"parameter, to make sure root disk is on cinder volume"},{"line_number":76,"context_line":"and no hypervisor-local ephemeral disk gets created."},{"line_number":77,"context_line":"But this has the downside, that someone might forget it and ephemeral disks"},{"line_number":78,"context_line":"get created locally on the HV."},{"line_number":79,"context_line":"There is no way to force users, that no ephemeral root disks are being created"},{"line_number":80,"context_line":"on the hypervisor."},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_046a761a","line":78,"range":{"start_line":77,"start_character":0,"end_line":78,"end_character":30},"updated":"2016-05-13 00:21:04.000000000","message":"I always think that setting CONF.max_local_block_devices\u003d0 will make booting without a volume fail, but it doesn\u0027t, it just limits the number of local block devices, i.e. boot from volume where destination\u003dlocal:\n\nhttps://github.com/openstack/nova/blob/8cfc8a837592c9494608d68db2bac1954c573a4b/nova/compute/api.py#L1368","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ed54e24a8a77b22c5176b08fdd6863e5e3f3e7b8","unresolved":false,"context_lines":[{"line_number":76,"context_line":"and no hypervisor-local ephemeral disk gets created."},{"line_number":77,"context_line":"But this has the downside, that someone might forget it and ephemeral disks"},{"line_number":78,"context_line":"get created locally on the HV."},{"line_number":79,"context_line":"There is no way to force users, that no ephemeral root disks are being created"},{"line_number":80,"context_line":"on the hypervisor."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Data model impact"},{"line_number":83,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_24db3aef","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":18},"updated":"2016-05-13 00:21:04.000000000","message":"We could do it with a config option, but then that\u0027s a per-cloud wrinkle and not interoperable. At least with flavors of this type we can conform various openstack clouds that have the given microversion to this behavior so clients can work the same between them. That might be worth nothing in this section.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ed54e24a8a77b22c5176b08fdd6863e5e3f3e7b8","unresolved":false,"context_lines":[{"line_number":82,"context_line":"Data model impact"},{"line_number":83,"context_line":"-----------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"None"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"REST API impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_44a75e4f","line":85,"updated":"2016-05-13 00:21:04.000000000","message":"Because flavor.root_gb is nullable in the db:\n\nhttps://github.com/openstack/nova/blob/8cfc8a837592c9494608d68db2bac1954c573a4b/nova/db/sqlalchemy/api_models.py#L121\n\nBut hmm, the Flavor.root_gb object field is not nullable so doesn\u0027t that mean it can\u0027t be set to None?\n\nhttps://github.com/openstack/nova/blob/8cfc8a837592c9494608d68db2bac1954c573a4b/nova/objects/flavor.py#L217","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"bf75749eeb0ed85df0006d4d75c7c9721f6edf99","unresolved":false,"context_lines":[{"line_number":82,"context_line":"Data model impact"},{"line_number":83,"context_line":"-----------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"None"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"REST API impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_09472178","line":85,"in_reply_to":"dab17558_44a75e4f","updated":"2016-05-13 08:47:00.000000000","message":"Yes, this needs to be changed to (nullable\u003dTrue). I\u0027ll add that to the \u0027Data model Impact\u0027 section.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ed54e24a8a77b22c5176b08fdd6863e5e3f3e7b8","unresolved":false,"context_lines":[{"line_number":88,"context_line":"---------------"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* additionally allow \u0027None\u0027 as disk parameter value for flavor create"},{"line_number":91,"context_line":"* the disk parameter of schema flavor_manage.create will be extended from"},{"line_number":92,"context_line":"  non_negative_integer to also allow type \u0027null\u0027"},{"line_number":93,"context_line":"* introduce new api microversion which allows \u0027None\u0027 as disk value"},{"line_number":94,"context_line":"* POST v2.1/\u003ctenant_id\u003e/flavors"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_2425fac1","line":91,"updated":"2016-05-13 00:21:04.000000000","message":"And this:\n\nhttps://github.com/openstack/nova/blob/8cfc8a837592c9494608d68db2bac1954c573a4b/nova/compute/flavors.py#L139-L152","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"bf75749eeb0ed85df0006d4d75c7c9721f6edf99","unresolved":false,"context_lines":[{"line_number":88,"context_line":"---------------"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* additionally allow \u0027None\u0027 as disk parameter value for flavor create"},{"line_number":91,"context_line":"* the disk parameter of schema flavor_manage.create will be extended from"},{"line_number":92,"context_line":"  non_negative_integer to also allow type \u0027null\u0027"},{"line_number":93,"context_line":"* introduce new api microversion which allows \u0027None\u0027 as disk value"},{"line_number":94,"context_line":"* POST v2.1/\u003ctenant_id\u003e/flavors"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_0cf60ff9","line":91,"in_reply_to":"dab17558_2425fac1","updated":"2016-05-13 08:47:00.000000000","message":"Yes, of course; all checks that check for root_gb \u003e\u003d 0 need to be adjusted to support None. I really was not aware that such specs need to go such deep into coding implementation details.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"8ae8c828e159622398b23ee6cf775bf8abc66327","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            \"name\": \"flavor_without_ephemeral_disk\","},{"line_number":98,"context_line":"            \"ram\": 1024,"},{"line_number":99,"context_line":"            \"vcpus\": 2,"},{"line_number":100,"context_line":"            \"disk\": null,"},{"line_number":101,"context_line":"            \"id\": \"10\""},{"line_number":102,"context_line":"        }"},{"line_number":103,"context_line":"    }``"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bab6814e_43ed2bee","line":100,"updated":"2016-05-20 12:54:30.000000000","message":"Honestly, we\u0027re making a microversion change, lets be a lot more clear at the API level.\n\n\"local_disk\": False\n\nAnd we don\u0027t return any of disk, swap, ephemeral keys in those cases.\n\n\"local_disk\": False + values for any of those others would be an error. \n\n\"local_disk\": True would be added to flavor in the base case after the microversion.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2fe8a4ed6868f682629ccd8b81b5dfebc15f5f51","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            \"name\": \"flavor_without_ephemeral_disk\","},{"line_number":98,"context_line":"            \"ram\": 1024,"},{"line_number":99,"context_line":"            \"vcpus\": 2,"},{"line_number":100,"context_line":"            \"disk\": null,"},{"line_number":101,"context_line":"            \"id\": \"10\""},{"line_number":102,"context_line":"        }"},{"line_number":103,"context_line":"    }``"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bab6814e_23574759","line":100,"in_reply_to":"bab6814e_43ed2bee","updated":"2016-05-20 13:01:07.000000000","message":"but the local_disk can be on shared storage, which is confusing.\n\nI wondered about root_disk_must_be_volume: True, or ideally a more catchy name. (Noting that ephemeral: 0 swap:0 already mean zero). I am ignoring config drive as a local disk, which *might* be OK here?","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ed54e24a8a77b22c5176b08fdd6863e5e3f3e7b8","unresolved":false,"context_lines":[{"line_number":125,"context_line":"Other deployer impact"},{"line_number":126,"context_line":"---------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"None"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Developer impact"},{"line_number":131,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_8f731fb4","line":128,"updated":"2016-05-13 00:21:04.000000000","message":"So basically, if a deployer doesn\u0027t want any ephemerical/local disk on the hypervisor nodes, they just create these types of flavors and then all users of that cloud have to provide a volume when creating an instance, or boot from volume where nova creates the volume to attach. What about local block devices? See:\n\nhttp://docs.openstack.org/developer/nova/block_device_mapping.html\n\nSo I\u0027m thinking of the image-\u003elocal and blank-\u003elocal cases.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"b49aedf4628a9272655f5d2dc7d20e75f91d183a","unresolved":false,"context_lines":[{"line_number":125,"context_line":"Other deployer impact"},{"line_number":126,"context_line":"---------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"None"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Developer impact"},{"line_number":131,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bab6814e_0acc1369","line":128,"in_reply_to":"dab17558_11cd1a31","updated":"2016-05-19 13:42:00.000000000","message":"So you want to map root_gb\u003dNone in the API layer to the new column?\nIf we name the new column like local_ephemerals and let it default to True, we can fail if the request contains local_ephemerals \u003d False and root_gb \u003d 50 (or ephemeral_gb \u003d 100). If local_ephemerals is set to False then root_gb and ephemeral_gb default to None and do not need to be given in the request.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"ae841aa7f6ae21c6c873aba91142c868df9e68eb","unresolved":false,"context_lines":[{"line_number":125,"context_line":"Other deployer impact"},{"line_number":126,"context_line":"---------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"None"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Developer impact"},{"line_number":131,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_9dc97d28","line":128,"in_reply_to":"dab17558_4ccc9761","updated":"2016-05-13 13:45:15.000000000","message":"I disagree here. I don\u0027t think users should be allowed a workaround just because they know what they\u0027re doing. I see the intent of this as the deployer wants no local disks under any circumstances, except for config-drive.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1a55ec95166385abf555a339fdfab89e3f549e55","unresolved":false,"context_lines":[{"line_number":125,"context_line":"Other deployer impact"},{"line_number":126,"context_line":"---------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"None"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Developer impact"},{"line_number":131,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_c8131d5b","line":128,"in_reply_to":"dab17558_6e796afc","updated":"2016-05-14 21:13:08.000000000","message":"Packing all of that semantic information into the meaning of root_gb\u003dNone does seem like a bit much. A boolean on the flavor might be more clear here, and then we could make root_gb non-nullable in the DB schema also which we actually talked about doing when we moved the flavors to the API DB but decided against it because of this spec.\n\nBut I\u0027d like to get Andrew\u0027s thoughts on adding a new column to the flavors table before the spec is changed for that.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"bf75749eeb0ed85df0006d4d75c7c9721f6edf99","unresolved":false,"context_lines":[{"line_number":125,"context_line":"Other deployer impact"},{"line_number":126,"context_line":"---------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"None"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Developer impact"},{"line_number":131,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_4ccc9761","line":128,"in_reply_to":"dab17558_8f731fb4","updated":"2016-05-13 08:47:00.000000000","message":"All these local blockdevice_mappings can work like before and create local disks on the HV. Because then this request is user intended. With this flavor change we just want to prevent that users that do not care or know, do not create instances on local disks. Because we do not want to maintain big shared FS across the HVs.\n\nIf the user is aware of \u0027 what local disk means with all its downsides\u0027 and he still wants to have it local, then we should not prevent that. This will be just limited by the local storage size of the local HV FS. Like an optinal swap device, that will still also stay local.\n\nAn admin will create the root_gb\u003dNone flavors and users are educated to use a volume based blockdevice mapping; and with a BD mapping it will raise an error.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"c6467851869c033088d11d043739ef063c8a2ca9","unresolved":false,"context_lines":[{"line_number":125,"context_line":"Other deployer impact"},{"line_number":126,"context_line":"---------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"None"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Developer impact"},{"line_number":131,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_6e796afc","line":128,"in_reply_to":"dab17558_9dc97d28","updated":"2016-05-13 21:29:22.000000000","message":"Means creating a flavor with root_gb\u003dNone will not allow:\n* local root disk\n* local ephemeral disk (ephemeral_gb in flavor)\n* any blockdevice_mapping with dest_type local\n\nIt will only allow:\n* any blockdevice_mapping with dest_type volume\n* local config-drive\n\nAgree?\n\nShould we consider to maybe use a separate new bool flavor attribute (like: no local ephemerals)? Otherwise this behavior root_gb\u003dNone has to be well documented.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0abe4a1d2187c8c34a2ad0a0f27811f18883742a","unresolved":false,"context_lines":[{"line_number":125,"context_line":"Other deployer impact"},{"line_number":126,"context_line":"---------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"None"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Developer impact"},{"line_number":131,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dab17558_11cd1a31","line":128,"in_reply_to":"dab17558_c8131d5b","updated":"2016-05-16 18:47:46.000000000","message":"I\u0027m totally fine with adding a new column to the flavors table for this. What I\u0027m less okay with is the ambiguity it causes in the API layer. We\u0027re already in the situation where root_gb might be 50 but you\u0027ve actually booted from a 100GB volume so root_gb is meaningless. This adds an additional wrinkle where if the flag is True then root_gb is known to be totally meaningless.\n\nStepping back, I\u0027ve long had an issue with flavor representations when volumes are in the mix but I don\u0027t think there\u0027s an easy fix. I think there\u0027s an overhaul waiting to happen here. That\u0027s why early on I nudged towards adding additional semantic meaning to a field we already have (root_gb) rather than doing something like add a flag. Once we start looking at adding fields I think we should reexamine the whole thing.\n\ntl; dr I think a new db column is fine, but I don\u0027t think a new API field is fine.","commit_id":"4c8c221e2a01374d2e55679310f4d45674e1cc88"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/flavor-root-disk-none"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature adds the possibility to define a flavor,"},{"line_number":14,"context_line":"that does not create an ephemeral root disks on the hypervisor."},{"line_number":15,"context_line":"If root disk size is set to \u0027None\u0027, no root disk will be created."},{"line_number":16,"context_line":"A bootable volume needs to be created to launch an instance"},{"line_number":17,"context_line":"from that flavor."}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_a0c9b627","line":14,"updated":"2016-05-13 14:40:15.000000000","message":"s/disks/disk","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/flavor-root-disk-none"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature adds the possibility to define a flavor,"},{"line_number":14,"context_line":"that does not create an ephemeral root disks on the hypervisor."},{"line_number":15,"context_line":"If root disk size is set to \u0027None\u0027, no root disk will be created."},{"line_number":16,"context_line":"A bootable volume needs to be created to launch an instance"},{"line_number":17,"context_line":"from that flavor."}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_eee71a10","line":14,"in_reply_to":"dab17558_a0c9b627","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Currently there is no way to force root disk being on cinder and having"},{"line_number":23,"context_line":"no hypervisor-local ephemeral disks at all."},{"line_number":24,"context_line":"And setting root_gb to 0 defaults in creating an ephemeral root disk"},{"line_number":25,"context_line":"with the size of the glance image."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"We do not want to have ephemeral disks locally on the hypervisor;"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_66bec600","line":24,"updated":"2016-05-13 14:40:15.000000000","message":"s/And setting/Setting","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Currently there is no way to force root disk being on cinder and having"},{"line_number":23,"context_line":"no hypervisor-local ephemeral disks at all."},{"line_number":24,"context_line":"And setting root_gb to 0 defaults in creating an ephemeral root disk"},{"line_number":25,"context_line":"with the size of the glance image."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"We do not want to have ephemeral disks locally on the hypervisor;"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_cee21601","line":24,"in_reply_to":"dab17558_66bec600","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"We do not want to have ephemeral disks locally on the hypervisor;"},{"line_number":28,"context_line":"not on a local filesystem nor on a share mounted to /var/lib/nova/instances."},{"line_number":29,"context_line":"Because, as that shares grow, they get unmaintainable"},{"line_number":30,"context_line":"and performance is getting worse."},{"line_number":31,"context_line":"On a local hypervsisor filesystem is also not always a good idea,"},{"line_number":32,"context_line":"because there are consumers, that do have data in the root disk as well,"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_eb1f1f59","line":29,"updated":"2016-05-13 14:40:15.000000000","message":"s/Because, as that shares grow,/As these shares grow,\n\ns/get/become","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"We do not want to have ephemeral disks locally on the hypervisor;"},{"line_number":28,"context_line":"not on a local filesystem nor on a share mounted to /var/lib/nova/instances."},{"line_number":29,"context_line":"Because, as that shares grow, they get unmaintainable"},{"line_number":30,"context_line":"and performance is getting worse."},{"line_number":31,"context_line":"On a local hypervsisor filesystem is also not always a good idea,"},{"line_number":32,"context_line":"because there are consumers, that do have data in the root disk as well,"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_2ef2c2d2","line":29,"in_reply_to":"dab17558_eb1f1f59","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":27,"context_line":"We do not want to have ephemeral disks locally on the hypervisor;"},{"line_number":28,"context_line":"not on a local filesystem nor on a share mounted to /var/lib/nova/instances."},{"line_number":29,"context_line":"Because, as that shares grow, they get unmaintainable"},{"line_number":30,"context_line":"and performance is getting worse."},{"line_number":31,"context_line":"On a local hypervsisor filesystem is also not always a good idea,"},{"line_number":32,"context_line":"because there are consumers, that do have data in the root disk as well,"},{"line_number":33,"context_line":"which sometimes cannot be simply thrown away."}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_8b9db3bd","line":30,"updated":"2016-05-13 14:40:15.000000000","message":"s/is getting worse/gets worse","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"We do not want to have ephemeral disks locally on the hypervisor;"},{"line_number":28,"context_line":"not on a local filesystem nor on a share mounted to /var/lib/nova/instances."},{"line_number":29,"context_line":"Because, as that shares grow, they get unmaintainable"},{"line_number":30,"context_line":"and performance is getting worse."},{"line_number":31,"context_line":"On a local hypervsisor filesystem is also not always a good idea,"},{"line_number":32,"context_line":"because there are consumers, that do have data in the root disk as well,"},{"line_number":33,"context_line":"which sometimes cannot be simply thrown away."}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_0eed3eef","line":30,"in_reply_to":"dab17558_8b9db3bd","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":28,"context_line":"not on a local filesystem nor on a share mounted to /var/lib/nova/instances."},{"line_number":29,"context_line":"Because, as that shares grow, they get unmaintainable"},{"line_number":30,"context_line":"and performance is getting worse."},{"line_number":31,"context_line":"On a local hypervsisor filesystem is also not always a good idea,"},{"line_number":32,"context_line":"because there are consumers, that do have data in the root disk as well,"},{"line_number":33,"context_line":"which sometimes cannot be simply thrown away."},{"line_number":34,"context_line":"Having more or less all blockdevices in cinder volumes gives us a unique"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_40dd6a6f","line":31,"updated":"2016-05-13 14:40:15.000000000","message":"s/hypervsisor/hypervisor. Consider rewriting this sentence. \"Storing the ephemeral root disk in the hypervisor\u0027s local filesystem is also not a good idea, since consumer data on the root disk cannot simply be deleted.\"","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":28,"context_line":"not on a local filesystem nor on a share mounted to /var/lib/nova/instances."},{"line_number":29,"context_line":"Because, as that shares grow, they get unmaintainable"},{"line_number":30,"context_line":"and performance is getting worse."},{"line_number":31,"context_line":"On a local hypervsisor filesystem is also not always a good idea,"},{"line_number":32,"context_line":"because there are consumers, that do have data in the root disk as well,"},{"line_number":33,"context_line":"which sometimes cannot be simply thrown away."},{"line_number":34,"context_line":"Having more or less all blockdevices in cinder volumes gives us a unique"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_4ebd86d6","line":31,"in_reply_to":"dab17558_40dd6a6f","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":31,"context_line":"On a local hypervsisor filesystem is also not always a good idea,"},{"line_number":32,"context_line":"because there are consumers, that do have data in the root disk as well,"},{"line_number":33,"context_line":"which sometimes cannot be simply thrown away."},{"line_number":34,"context_line":"Having more or less all blockdevices in cinder volumes gives us a unique"},{"line_number":35,"context_line":"and flexible feature set for maintaining block storage of instances and"},{"line_number":36,"context_line":"the instances itsself."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_264b1e2d","line":34,"updated":"2016-05-13 14:40:15.000000000","message":"s/blockdevices/block devices","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":31,"context_line":"On a local hypervsisor filesystem is also not always a good idea,"},{"line_number":32,"context_line":"because there are consumers, that do have data in the root disk as well,"},{"line_number":33,"context_line":"which sometimes cannot be simply thrown away."},{"line_number":34,"context_line":"Having more or less all blockdevices in cinder volumes gives us a unique"},{"line_number":35,"context_line":"and flexible feature set for maintaining block storage of instances and"},{"line_number":36,"context_line":"the instances itsself."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_aeb4f2f1","line":34,"in_reply_to":"dab17558_264b1e2d","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":33,"context_line":"which sometimes cannot be simply thrown away."},{"line_number":34,"context_line":"Having more or less all blockdevices in cinder volumes gives us a unique"},{"line_number":35,"context_line":"and flexible feature set for maintaining block storage of instances and"},{"line_number":36,"context_line":"the instances itsself."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Use Cases"},{"line_number":39,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_c025daae","line":36,"updated":"2016-05-13 14:40:15.000000000","message":"s/itsself/themselves","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":33,"context_line":"which sometimes cannot be simply thrown away."},{"line_number":34,"context_line":"Having more or less all blockdevices in cinder volumes gives us a unique"},{"line_number":35,"context_line":"and flexible feature set for maintaining block storage of instances and"},{"line_number":36,"context_line":"the instances itsself."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Use Cases"},{"line_number":39,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_eecefa81","line":36,"in_reply_to":"dab17558_c025daae","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":39,"context_line":"---------"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The use case for End Users is to not create ephemeral root disks locally on"},{"line_number":42,"context_line":"the hypervisor by accident, or because not beeing aware of."},{"line_number":43,"context_line":"When launching an instance from a flavor with disabled root disk,"},{"line_number":44,"context_line":"the user will be informed to create a bootable volume in order to launch"},{"line_number":45,"context_line":"the instance with that volume. The volume can be a pre-created one or a new"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_eb343f4b","line":42,"updated":"2016-05-13 14:40:15.000000000","message":"Better without the \"or because not beeing aware of\" at the end of this sentence.","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"---------"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The use case for End Users is to not create ephemeral root disks locally on"},{"line_number":42,"context_line":"the hypervisor by accident, or because not beeing aware of."},{"line_number":43,"context_line":"When launching an instance from a flavor with disabled root disk,"},{"line_number":44,"context_line":"the user will be informed to create a bootable volume in order to launch"},{"line_number":45,"context_line":"the instance with that volume. The volume can be a pre-created one or a new"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_2ec92279","line":42,"in_reply_to":"dab17558_eb343f4b","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":42,"context_line":"the hypervisor by accident, or because not beeing aware of."},{"line_number":43,"context_line":"When launching an instance from a flavor with disabled root disk,"},{"line_number":44,"context_line":"the user will be informed to create a bootable volume in order to launch"},{"line_number":45,"context_line":"the instance with that volume. The volume can be a pre-created one or a new"},{"line_number":46,"context_line":"one, created upon the instance launch requets via the block-device parameter."},{"line_number":47,"context_line":"The end user does not need to worry about disk placement; which impacts"},{"line_number":48,"context_line":"instance migration, data persistence/loss, and/or shared storage performance."}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_cb85fbcf","line":45,"updated":"2016-05-13 14:40:15.000000000","message":"s/pre-created/existing","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"the hypervisor by accident, or because not beeing aware of."},{"line_number":43,"context_line":"When launching an instance from a flavor with disabled root disk,"},{"line_number":44,"context_line":"the user will be informed to create a bootable volume in order to launch"},{"line_number":45,"context_line":"the instance with that volume. The volume can be a pre-created one or a new"},{"line_number":46,"context_line":"one, created upon the instance launch requets via the block-device parameter."},{"line_number":47,"context_line":"The end user does not need to worry about disk placement; which impacts"},{"line_number":48,"context_line":"instance migration, data persistence/loss, and/or shared storage performance."}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_0ec41e5d","line":45,"in_reply_to":"dab17558_cb85fbcf","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":43,"context_line":"When launching an instance from a flavor with disabled root disk,"},{"line_number":44,"context_line":"the user will be informed to create a bootable volume in order to launch"},{"line_number":45,"context_line":"the instance with that volume. The volume can be a pre-created one or a new"},{"line_number":46,"context_line":"one, created upon the instance launch requets via the block-device parameter."},{"line_number":47,"context_line":"The end user does not need to worry about disk placement; which impacts"},{"line_number":48,"context_line":"instance migration, data persistence/loss, and/or shared storage performance."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_8b14939f","line":46,"updated":"2016-05-13 14:40:15.000000000","message":"s/requets/request","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":43,"context_line":"When launching an instance from a flavor with disabled root disk,"},{"line_number":44,"context_line":"the user will be informed to create a bootable volume in order to launch"},{"line_number":45,"context_line":"the instance with that volume. The volume can be a pre-created one or a new"},{"line_number":46,"context_line":"one, created upon the instance launch requets via the block-device parameter."},{"line_number":47,"context_line":"The end user does not need to worry about disk placement; which impacts"},{"line_number":48,"context_line":"instance migration, data persistence/loss, and/or shared storage performance."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_aeab5288","line":46,"in_reply_to":"dab17558_8b14939f","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":47,"context_line":"The end user does not need to worry about disk placement; which impacts"},{"line_number":48,"context_line":"instance migration, data persistence/loss, and/or shared storage performance."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The use case for deployers is to have the possibility, preventing customers"},{"line_number":51,"context_line":"from creating ephemeral root_disks locally on the hypervisor. They do not need"},{"line_number":52,"context_line":"to create one big share for /var/lib/nova/instances, which gets mounted on all"},{"line_number":53,"context_line":"hypervisors. As that share grows it gets unmaintainable and performance is"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_c62212a3","line":50,"updated":"2016-05-13 14:40:15.000000000","message":"s/possibility, preventing/ability to prevent","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"The end user does not need to worry about disk placement; which impacts"},{"line_number":48,"context_line":"instance migration, data persistence/loss, and/or shared storage performance."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The use case for deployers is to have the possibility, preventing customers"},{"line_number":51,"context_line":"from creating ephemeral root_disks locally on the hypervisor. They do not need"},{"line_number":52,"context_line":"to create one big share for /var/lib/nova/instances, which gets mounted on all"},{"line_number":53,"context_line":"hypervisors. As that share grows it gets unmaintainable and performance is"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_8eae4e96","line":50,"in_reply_to":"dab17558_c62212a3","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":48,"context_line":"instance migration, data persistence/loss, and/or shared storage performance."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The use case for deployers is to have the possibility, preventing customers"},{"line_number":51,"context_line":"from creating ephemeral root_disks locally on the hypervisor. They do not need"},{"line_number":52,"context_line":"to create one big share for /var/lib/nova/instances, which gets mounted on all"},{"line_number":53,"context_line":"hypervisors. As that share grows it gets unmaintainable and performance is"},{"line_number":54,"context_line":"getting worse. They do not have to deal with customer data loss on ephemeral"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_663406de","line":51,"updated":"2016-05-13 14:40:15.000000000","message":"a/They/Deployers","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":48,"context_line":"instance migration, data persistence/loss, and/or shared storage performance."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The use case for deployers is to have the possibility, preventing customers"},{"line_number":51,"context_line":"from creating ephemeral root_disks locally on the hypervisor. They do not need"},{"line_number":52,"context_line":"to create one big share for /var/lib/nova/instances, which gets mounted on all"},{"line_number":53,"context_line":"hypervisors. As that share grows it gets unmaintainable and performance is"},{"line_number":54,"context_line":"getting worse. They do not have to deal with customer data loss on ephemeral"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_ee955a40","line":51,"in_reply_to":"dab17558_663406de","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":51,"context_line":"from creating ephemeral root_disks locally on the hypervisor. They do not need"},{"line_number":52,"context_line":"to create one big share for /var/lib/nova/instances, which gets mounted on all"},{"line_number":53,"context_line":"hypervisors. As that share grows it gets unmaintainable and performance is"},{"line_number":54,"context_line":"getting worse. They do not have to deal with customer data loss on ephemeral"},{"line_number":55,"context_line":"disks, stored on local hypervisor FS, in case of hypervisor outage."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_6b816f8f","line":54,"updated":"2016-05-13 14:40:15.000000000","message":"s/getting worse/gets worse","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":51,"context_line":"from creating ephemeral root_disks locally on the hypervisor. They do not need"},{"line_number":52,"context_line":"to create one big share for /var/lib/nova/instances, which gets mounted on all"},{"line_number":53,"context_line":"hypervisors. As that share grows it gets unmaintainable and performance is"},{"line_number":54,"context_line":"getting worse. They do not have to deal with customer data loss on ephemeral"},{"line_number":55,"context_line":"disks, stored on local hypervisor FS, in case of hypervisor outage."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_ce905651","line":54,"in_reply_to":"dab17558_6b816f8f","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":69,"context_line":"* return descriptive exception, when flavor with root_disk \u0027None\u0027 and"},{"line_number":70,"context_line":"  requested image larger than given blockdevice layout"},{"line_number":71,"context_line":"* adjust api doc"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* config-drive will not be touched by that change, config-drive will still"},{"line_number":74,"context_line":"  reside on local HV disks, like libvirt.xml and console.log do"},{"line_number":75,"context_line":"* ephemeral_gb will not be touched by that change (if BD mapping with"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_c66fb2fa","line":72,"updated":"2016-05-13 14:40:15.000000000","message":"Does there need to be any code added to provision a new volume in the case where the end user requests an instance but doesn\u0027t provide a block device?","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":69,"context_line":"* return descriptive exception, when flavor with root_disk \u0027None\u0027 and"},{"line_number":70,"context_line":"  requested image larger than given blockdevice layout"},{"line_number":71,"context_line":"* adjust api doc"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* config-drive will not be touched by that change, config-drive will still"},{"line_number":74,"context_line":"  reside on local HV disks, like libvirt.xml and console.log do"},{"line_number":75,"context_line":"* ephemeral_gb will not be touched by that change (if BD mapping with"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_2e0482be","line":72,"in_reply_to":"dab17558_c66fb2fa","updated":"2016-05-13 21:17:28.000000000","message":"this can be done within the request by providing the blockdevice_mapping (image-\u003evolume) wich creates a new bootable volume from a glance image.\n\nBut this does not happen automatically, the user has to provide that parameter, otherwise it will fail with root_gb\u003dNone.\n\nhttp://docs.openstack.org/developer/nova/block_device_mapping.html","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":140,"context_line":"Other deployer impact"},{"line_number":141,"context_line":"---------------------"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"If a deployer doesn\u0027t want any ephemerical/local disk on the hypervisor nodes,"},{"line_number":144,"context_line":"they just create flavors with root_gb\u003dNone and then all users of that cloud"},{"line_number":145,"context_line":"have to provide a volume when creating an instance, or boot from volume where"},{"line_number":146,"context_line":"nova creates the volume to attach."}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_06c9ba79","line":143,"updated":"2016-05-13 14:40:15.000000000","message":"s/ephemerical/ephemeral","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":140,"context_line":"Other deployer impact"},{"line_number":141,"context_line":"---------------------"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"If a deployer doesn\u0027t want any ephemerical/local disk on the hypervisor nodes,"},{"line_number":144,"context_line":"they just create flavors with root_gb\u003dNone and then all users of that cloud"},{"line_number":145,"context_line":"have to provide a volume when creating an instance, or boot from volume where"},{"line_number":146,"context_line":"nova creates the volume to attach."}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_2ea0029f","line":143,"in_reply_to":"dab17558_06c9ba79","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"137912820e7785f7f1da5b7f69200160d2f193bf","unresolved":false,"context_lines":[{"line_number":154,"context_line":"If the user is aware of \u0027what local disk means with all its downsides\u0027 and he"},{"line_number":155,"context_line":"still wants to have it HV local, then we should not prevent that."},{"line_number":156,"context_line":"This will be just limited by the local storage size of the local HV FS."},{"line_number":157,"context_line":"Like an optinal swap device, that will also still reside HV local."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"An admin will create the root_gb\u003dNone flavors and users are encouraged"},{"line_number":160,"context_line":"to use a volume based blockdevice mapping (having all the volume advantages);"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_861aca7a","line":157,"updated":"2016-05-13 14:40:15.000000000","message":"s/optinal/optional","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"4075d64c161b7746b6e5e9ebb7d076cfc30e764a","unresolved":false,"context_lines":[{"line_number":154,"context_line":"If the user is aware of \u0027what local disk means with all its downsides\u0027 and he"},{"line_number":155,"context_line":"still wants to have it HV local, then we should not prevent that."},{"line_number":156,"context_line":"This will be just limited by the local storage size of the local HV FS."},{"line_number":157,"context_line":"Like an optinal swap device, that will also still reside HV local."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"An admin will create the root_gb\u003dNone flavors and users are encouraged"},{"line_number":160,"context_line":"to use a volume based blockdevice mapping (having all the volume advantages);"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dab17558_0e9b7e73","line":157,"in_reply_to":"dab17558_861aca7a","updated":"2016-05-13 21:17:28.000000000","message":"Done","commit_id":"7e9528c8a8d4a5084c12393b4a0bf2300536568f"}]}
