)]}'
{"doc/source/block_device_mapping.rst":[{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"57fc235a62ee42babc68d7bbe344173b05cba3a1","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Nova has a concept of block devices that can be exposed to cloud instances."},{"line_number":18,"context_line":"There are several types of block devices an instance can have (we will go into"},{"line_number":19,"context_line":"more details about this later in this document), and which ones are available"},{"line_number":20,"context_line":"depends on a particular deployment and the policy set. Block device mapping is"},{"line_number":21,"context_line":"a way to organize and keep data about all of the block devices an instance has."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"When we talk about block device mapping, we usually refer to one of two things"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_0ec68816","line":20,"updated":"2015-06-19 17:31:28.000000000","message":"Reading as someone with no detailed insights into internals here, by \"policy\", I assume you\u0027re referring to the attributes related to block device mapping here:\n\nhttps://github.com/openstack/nova/blob/master/etc/nova/policy.json\n\nSpecifically:\n\n\"os_compute_api:os-block-device-mapping-v1:discoverable\"","commit_id":"c8dc1adbf27514d802843980580d55213680eba2"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"3b02b33b46a2fedb903a0f60496ea5fa4dbf5ee8","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Nova has a concept of block devices that can be exposed to cloud instances."},{"line_number":18,"context_line":"There are several types of block devices an instance can have (we will go into"},{"line_number":19,"context_line":"more details about this later in this document), and which ones are available"},{"line_number":20,"context_line":"depends on a particular deployment and the policy set. Block device mapping is"},{"line_number":21,"context_line":"a way to organize and keep data about all of the block devices an instance has."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"When we talk about block device mapping, we usually refer to one of two things"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba3cc151_9cc161e7","line":20,"in_reply_to":"fa32b979_0ec68816","updated":"2015-06-29 16:41:26.000000000","message":"not really - I was only refering to the general deployment setup and limitations an admin might set for a tenant user with regards to quotas etc.\n\nI should probably clarify","commit_id":"c8dc1adbf27514d802843980580d55213680eba2"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"57fc235a62ee42babc68d7bbe344173b05cba3a1","unresolved":false,"context_lines":[{"line_number":69,"context_line":"this page), and would accept only:"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* UUID of the Cinder volume or snapshot"},{"line_number":72,"context_line":"* Type field - used only to distinguish between volumes and snapshots"},{"line_number":73,"context_line":"* Optional size field"},{"line_number":74,"context_line":"* Optional `delete_on_termination` flag"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_b7548921","line":72,"updated":"2015-06-19 17:31:28.000000000","message":"Similar to Andrew\u0027s question, further below, is this \u0027snapshot\u0027 a result of `nova image-create` or `cinder snapshot-create`? I\u0027ll assume the former, given we\u0027re talking about Nova here.","commit_id":"c8dc1adbf27514d802843980580d55213680eba2"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"3b02b33b46a2fedb903a0f60496ea5fa4dbf5ee8","unresolved":false,"context_lines":[{"line_number":69,"context_line":"this page), and would accept only:"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* UUID of the Cinder volume or snapshot"},{"line_number":72,"context_line":"* Type field - used only to distinguish between volumes and snapshots"},{"line_number":73,"context_line":"* Optional size field"},{"line_number":74,"context_line":"* Optional `delete_on_termination` flag"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba3cc151_3c5a9584","line":72,"in_reply_to":"fa32b979_4bb682dd","updated":"2015-06-29 16:41:26.000000000","message":"Done","commit_id":"c8dc1adbf27514d802843980580d55213680eba2"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"f34b91e8032c078ca631f641bc8d8689f0cd76a1","unresolved":false,"context_lines":[{"line_number":69,"context_line":"this page), and would accept only:"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* UUID of the Cinder volume or snapshot"},{"line_number":72,"context_line":"* Type field - used only to distinguish between volumes and snapshots"},{"line_number":73,"context_line":"* Optional size field"},{"line_number":74,"context_line":"* Optional `delete_on_termination` flag"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_4bb682dd","line":72,"in_reply_to":"fa32b979_b7548921","updated":"2015-06-22 14:35:37.000000000","message":"It is actually cinder snapshot-create, so it would be good to clarify here as well.\n\nThe reason this distinction is needed here is that in Cinder a snapshot is not a volume and a different API request is made to find a snapshot vs a volume.  In glance a snapshot and image are the same thing.","commit_id":"c8dc1adbf27514d802843980580d55213680eba2"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"6024b1393631d8a5dfd37a6cfc34fd5f3a969988","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    * `volume` -\u003e `volume` - this is just a Cinder volume to be attached to the"},{"line_number":142,"context_line":"      instance. It can be marked as a boot device."},{"line_number":143,"context_line":"    * `snapshot` -\u003e `volume` - this works exactly as passing `type\u003dsnap` does."},{"line_number":144,"context_line":"      It would create a volume from a snapshot and attach that volume to an"},{"line_number":145,"context_line":"      instance. Can be marked bootable."},{"line_number":146,"context_line":"    * `image` -\u003e `volume` - As one would imagine, this would download a Glance"},{"line_number":147,"context_line":"      image to a cinder volume and attach it to an instance. Can also be marked"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_49003c66","line":144,"range":{"start_line":144,"start_character":38,"end_line":144,"end_character":46},"updated":"2015-06-18 14:59:22.000000000","message":"snapshot could have two meanings here and it would be good to clarify.  This is specifically a Cinder snapshot, as compared to an instance snapshot that\u0027s an image in Glance.","commit_id":"c8dc1adbf27514d802843980580d55213680eba2"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"3b02b33b46a2fedb903a0f60496ea5fa4dbf5ee8","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    * `volume` -\u003e `volume` - this is just a Cinder volume to be attached to the"},{"line_number":142,"context_line":"      instance. It can be marked as a boot device."},{"line_number":143,"context_line":"    * `snapshot` -\u003e `volume` - this works exactly as passing `type\u003dsnap` does."},{"line_number":144,"context_line":"      It would create a volume from a snapshot and attach that volume to an"},{"line_number":145,"context_line":"      instance. Can be marked bootable."},{"line_number":146,"context_line":"    * `image` -\u003e `volume` - As one would imagine, this would download a Glance"},{"line_number":147,"context_line":"      image to a cinder volume and attach it to an instance. Can also be marked"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba3cc151_1cd9d1f3","line":144,"in_reply_to":"fa32b979_49003c66","updated":"2015-06-29 16:41:26.000000000","message":"Done","commit_id":"c8dc1adbf27514d802843980580d55213680eba2"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"57fc235a62ee42babc68d7bbe344173b05cba3a1","unresolved":false,"context_lines":[{"line_number":169,"context_line":"* boot_index - 0 means it\u0027s a boot device (so this way we can avoid guessing"},{"line_number":170,"context_line":"  from a device name which may not make sense in some cases), they are expected"},{"line_number":171,"context_line":"  to be in ascending order for any given instance. Most users would only"},{"line_number":172,"context_line":"  care to specify it for a boot device."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Nova will not allow mixing of two formats in a single request, and will do"},{"line_number":175,"context_line":"basic validation to make sure that the requested block device mapping is valid"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_bac0f02b","line":172,"updated":"2015-06-19 17:31:28.000000000","message":"Thanks, I wondered a few times previously about what this \u0027boot_index\u0027 was previously, recently learnt while testing.","commit_id":"c8dc1adbf27514d802843980580d55213680eba2"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"3b02b33b46a2fedb903a0f60496ea5fa4dbf5ee8","unresolved":false,"context_lines":[{"line_number":169,"context_line":"* boot_index - 0 means it\u0027s a boot device (so this way we can avoid guessing"},{"line_number":170,"context_line":"  from a device name which may not make sense in some cases), they are expected"},{"line_number":171,"context_line":"  to be in ascending order for any given instance. Most users would only"},{"line_number":172,"context_line":"  care to specify it for a boot device."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Nova will not allow mixing of two formats in a single request, and will do"},{"line_number":175,"context_line":"basic validation to make sure that the requested block device mapping is valid"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba3cc151_dce2899f","line":172,"in_reply_to":"fa32b979_bac0f02b","updated":"2015-06-29 16:41:26.000000000","message":"Will add some more clarification here tho","commit_id":"c8dc1adbf27514d802843980580d55213680eba2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee954fc53d111944a43c14fda9e4e4d6f85ffadd","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"* disk_bus and device_type - low level details that some hypervisors (currently"},{"line_number":167,"context_line":"  only libvirt) may support. disk_bus can be one of: `ide`, `usb`, `virtio` or"},{"line_number":168,"context_line":"  `scsi`, while device_type may be `disk`, `cdrom`, `floppy`, or `mmc`. Leaving"},{"line_number":169,"context_line":"  these empty is the most common thing to do."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"* boot_index - 0 means it\u0027s a boot device (so this way we can avoid guessing"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba3cc151_accd9eb8","line":168,"updated":"2015-07-01 18:00:21.000000000","message":"I haven\u0027t seen mmc for device_type but your missing lun and fs, see:\n\nhttps://review.openstack.org/#/c/197237/","commit_id":"2f7d4042136f47072727ebb2c1038c2fe70f42b7"},{"author":{"_account_id":642,"name":"Matt Dietz","email":"matthew.dietz@gmail.com","username":"cerberus"},"change_message_id":"ba7446739e27bc72f82330bd3dbde310c69ad747","unresolved":false,"context_lines":[{"line_number":27,"context_line":"   boot request"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"2. The data structure internal to Nova that is used for recording and keeping"},{"line_number":30,"context_line":"   that is ultimately persisted in the block_device_mapping table. However,"},{"line_number":31,"context_line":"   Nova internally has several \"slightly\" different formats for representing"},{"line_number":32,"context_line":"   the same data. All of them are documented in the code and or presented by"},{"line_number":33,"context_line":"   a distinct set of class, but not knowing that they exist might trip up"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_7d007366","line":30,"updated":"2015-07-02 14:55:26.000000000","message":"assuming \"that\" should be \"what\" or \"that which\"","commit_id":"1c228524b5186a61d41f9d3f25355da47992bbb6"},{"author":{"_account_id":642,"name":"Matt Dietz","email":"matthew.dietz@gmail.com","username":"cerberus"},"change_message_id":"ba7446739e27bc72f82330bd3dbde310c69ad747","unresolved":false,"context_lines":[{"line_number":30,"context_line":"   that is ultimately persisted in the block_device_mapping table. However,"},{"line_number":31,"context_line":"   Nova internally has several \"slightly\" different formats for representing"},{"line_number":32,"context_line":"   the same data. All of them are documented in the code and or presented by"},{"line_number":33,"context_line":"   a distinct set of class, but not knowing that they exist might trip up"},{"line_number":34,"context_line":"   people reading the code. So in addition to BlockDeviceMapping [1]_ objects"},{"line_number":35,"context_line":"   that mirror the database schema, we have:"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_9d2e97f9","line":33,"updated":"2015-07-02 14:55:26.000000000","message":"set of \"classes\"","commit_id":"1c228524b5186a61d41f9d3f25355da47992bbb6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"93711ea24e7eb972af807022e7593ac5d6f66b32","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Currently (early Liberty) users are discouraged from specifying device names"},{"line_number":107,"context_line":"for all calls requiring or allowing block device mapping, except when trying to"},{"line_number":108,"context_line":"override the image block device mapping on instance boot, and it will likely"},{"line_number":109,"context_line":"remain like that in the future."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Block device mapping v2"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_3743836e","line":108,"updated":"2015-07-06 14:33:38.000000000","message":"Should we call out that in the case of using the libvirt driver, the requested device name is completely ignored with https://review.openstack.org/#/c/180638/ ?","commit_id":"1c228524b5186a61d41f9d3f25355da47992bbb6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a1ae8b4d477a4842fd50580bf2970250318543f4","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"* device_name - See the previous section for a more in depth explanation of"},{"line_number":163,"context_line":"  this - currently best left empty (not specified that is), unless the user"},{"line_number":164,"context_line":"  wants to override the existing device specified in the image metadata."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"* disk_bus and device_type - low level details that some hypervisors (currently"},{"line_number":167,"context_line":"  only libvirt) may support. disk_bus can be one of: `ide`, `usb`, `virtio` or"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_972feff5","line":164,"updated":"2015-07-06 14:30:13.000000000","message":"But even then it the requested device name may not be honored, right?  Given:\n\nhttps://review.openstack.org/#/c/189632/2//COMMIT_MSG","commit_id":"1c228524b5186a61d41f9d3f25355da47992bbb6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1c9c98dacb7f29ffcddebde160cae3e89cd3a9bb","unresolved":false,"context_lines":[{"line_number":164,"context_line":"  wants to override the existing device specified in the image metadata."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"* disk_bus and device_type - low level details that some hypervisors (currently"},{"line_number":167,"context_line":"  only libvirt) may support. disk_bus can be one of: `ide`, `usb`, `virtio` or"},{"line_number":168,"context_line":"  `scsi`, while device_type may be `disk`, `cdrom`, `floppy`, or `mmc`. Leaving"},{"line_number":169,"context_line":"  these empty is the most common thing to do."},{"line_number":170,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_89afc893","line":167,"updated":"2015-07-06 19:10:24.000000000","message":"There are more than just the 4 types of disk_bus listed here, see the DiskBus field here:\n\nhttp://git.openstack.org/cgit/openstack/nova/tree/nova/objects/fields.py#n123","commit_id":"1c228524b5186a61d41f9d3f25355da47992bbb6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8495cbb89346b8fbd593e4f1f73d98fc3663443a","unresolved":false,"context_lines":[{"line_number":164,"context_line":"  wants to override the existing device specified in the image metadata."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"* disk_bus and device_type - low level details that some hypervisors (currently"},{"line_number":167,"context_line":"  only libvirt) may support. disk_bus can be one of: `ide`, `usb`, `virtio` or"},{"line_number":168,"context_line":"  `scsi`, while device_type may be `disk`, `cdrom`, `floppy`, or `mmc`. Leaving"},{"line_number":169,"context_line":"  these empty is the most common thing to do."},{"line_number":170,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_6998446b","line":167,"in_reply_to":"ba3cc151_89afc893","updated":"2015-07-06 19:12:38.000000000","message":"Actually looks like the DiskBus field is missing some (lxc and uml), from here:\n\nhttp://git.openstack.org/cgit/openstack/nova/tree/nova/virt/libvirt/blockinfo.py#n112","commit_id":"1c228524b5186a61d41f9d3f25355da47992bbb6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"313d0d7d59013a188a58dcf26b7f2723702c51c8","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"* disk_bus and device_type - low level details that some hypervisors (currently"},{"line_number":167,"context_line":"  only libvirt) may support. disk_bus can be one of: `ide`, `usb`, `virtio` or"},{"line_number":168,"context_line":"  `scsi`, while device_type may be `disk`, `cdrom`, `floppy`, or `mmc`. Leaving"},{"line_number":169,"context_line":"  these empty is the most common thing to do."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"* boot_index - 0 means it\u0027s a boot device (so this way we can avoid guessing"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_2f5aa3f2","line":168,"updated":"2015-07-02 19:19:56.000000000","message":"See comment in previous patch set, \u0027lun\u0027 is also a supported device_type in the libvirt driver and so is \u0027fs\u0027 for parallels.  I haven\u0027t seen mmc in the code though.","commit_id":"1c228524b5186a61d41f9d3f25355da47992bbb6"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"06d3a96e351cc6a680761664c5e4e1e24aa6dab6","unresolved":false,"context_lines":[{"line_number":166,"context_line":"* disk_bus and device_type - low level details that some hypervisors (currently"},{"line_number":167,"context_line":"  only libvirt) may support. disk_bus can be one of: `ide`, `usb`, `virtio` or"},{"line_number":168,"context_line":"  `scsi`, while device_type may be `disk`, `cdrom`, `floppy`, or `mmc`. Leaving"},{"line_number":169,"context_line":"  these empty is the most common thing to do."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"* boot_index - 0 means it\u0027s a boot device (so this way we can avoid guessing"},{"line_number":172,"context_line":"  from a device name which may not make sense in some cases), they are expected"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_d5be21ad","line":169,"updated":"2015-07-02 21:56:30.000000000","message":"It would probably be best to work this in such a way that it\u0027s not considered to be an exhaustive list of options as that may change over time and this doc is likely to get out of date.\n\nIt is good to provide examples like this though.","commit_id":"1c228524b5186a61d41f9d3f25355da47992bbb6"},{"author":{"_account_id":642,"name":"Matt Dietz","email":"matthew.dietz@gmail.com","username":"cerberus"},"change_message_id":"ba7446739e27bc72f82330bd3dbde310c69ad747","unresolved":false,"context_lines":[{"line_number":172,"context_line":"  from a device name which may not make sense in some cases), they are expected"},{"line_number":173,"context_line":"  to be in ascending order for any given instance. Setting a negative value or"},{"line_number":174,"context_line":"  None signifies that the device is not bootable at all. Most users would only"},{"line_number":175,"context_line":"  care to specify it for a boot device."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Nova will not allow mixing of two formats in a single request, and will do"},{"line_number":178,"context_line":"basic validation to make sure that the requested block device mapping is valid"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_8ff5feed","line":175,"updated":"2015-07-02 14:55:26.000000000","message":"Nit: The last sentence might be a little tough to grok. I understand your meaning to be \"The most common usage is to set it to 0, thus denoting a boot device\"","commit_id":"1c228524b5186a61d41f9d3f25355da47992bbb6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"313d0d7d59013a188a58dcf26b7f2723702c51c8","unresolved":false,"context_lines":[{"line_number":172,"context_line":"  from a device name which may not make sense in some cases), they are expected"},{"line_number":173,"context_line":"  to be in ascending order for any given instance. Setting a negative value or"},{"line_number":174,"context_line":"  None signifies that the device is not bootable at all. Most users would only"},{"line_number":175,"context_line":"  care to specify it for a boot device."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Nova will not allow mixing of two formats in a single request, and will do"},{"line_number":178,"context_line":"basic validation to make sure that the requested block device mapping is valid"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_0f40ff05","line":175,"in_reply_to":"ba3cc151_8ff5feed","updated":"2015-07-02 19:19:56.000000000","message":"+1","commit_id":"1c228524b5186a61d41f9d3f25355da47992bbb6"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"eb07ff16c9485fb0c1c246c504a778891d1320e6","unresolved":false,"context_lines":[{"line_number":182,"context_line":"  from a device name which may not make sense in some cases), they are expected"},{"line_number":183,"context_line":"  to be in ascending order for any given instance. Setting a negative value or"},{"line_number":184,"context_line":"  None signifies that the device is not bootable at all. The most common usage"},{"line_number":185,"context_line":"  is to set it to 0, thus denoting a boot device."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Nova will not allow mixing of two formats in a single request, and will do"},{"line_number":188,"context_line":"basic validation to make sure that the requested block device mapping is valid"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a50d1a3_62ef20ea","line":185,"updated":"2015-07-30 09:45:57.000000000","message":"I think this could do with rephrasing. The value 0 is not really special in general. The index is really expressing a boot ordering across devices. Some hypervisors may not support multiple boot devices so would only look for the device with bootindex\u003d0.\n\n* boot_index - Defines the order in which a hypervisor will try devices when attempting to boot the guest from storage. Each device which is capable of being used as boot device should be given a unique boot index, starting from 0 in ascending order. Some hypervisors may not support booting from multiple devices, so will only consider the device with boot index of 0. Some hypervisors will support booting from multiple devices, but only if they are of different types - eg a disk and cdrom. Setting a negative value or None indicates that the device should not be used for booting.\n\n\nWhich in fact reminds me that we should really switch libvirt to use the boot index attribute on \u003cdisk\u003e instead of using the \u003cboot dev\u003e, so that we can fully honour arbitrary boot index ordering even on multiple devices of the same type.","commit_id":"f77d1170538a76c35bf944c2c8b2f66194afe84a"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"005725cee8642642010c7b5147b9c48420122bd6","unresolved":false,"context_lines":[{"line_number":182,"context_line":"  from a device name which may not make sense in some cases), they are expected"},{"line_number":183,"context_line":"  to be in ascending order for any given instance. Setting a negative value or"},{"line_number":184,"context_line":"  None signifies that the device is not bootable at all. The most common usage"},{"line_number":185,"context_line":"  is to set it to 0, thus denoting a boot device."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Nova will not allow mixing of two formats in a single request, and will do"},{"line_number":188,"context_line":"basic validation to make sure that the requested block device mapping is valid"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a50d1a3_221038ab","line":185,"in_reply_to":"3a50d1a3_62ef20ea","updated":"2015-07-30 09:54:02.000000000","message":"Done","commit_id":"f77d1170538a76c35bf944c2c8b2f66194afe84a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6e802e99a3c515d66093b77d808a37ace02ddd30","unresolved":false,"context_lines":[{"line_number":92,"context_line":"in the public API of Nova is obviously not ideal, but it needed to stay for"},{"line_number":93,"context_line":"backwards compatibility. It is also required for some (slightly obscure)"},{"line_number":94,"context_line":"features around overloading a block device in a Glance image when booting an"},{"line_number":95,"context_line":"instance [3]."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The plan for fixing this was to allow users to not specify the device name of a"},{"line_number":98,"context_line":"block device, and Nova will determine it (with the help of the virt driver), so"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a4dcd0f_80f51458","line":95,"updated":"2015-08-05 15:27:14.000000000","message":"s/[3]/[3]_/ to make the footnote link work.","commit_id":"a338a4da11258d2864db791de32a0138852ff5b5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6e802e99a3c515d66093b77d808a37ace02ddd30","unresolved":false,"context_lines":[{"line_number":107,"context_line":"for all calls requiring or allowing block device mapping, except when trying to"},{"line_number":108,"context_line":"override the image block device mapping on instance boot, and it will likely"},{"line_number":109,"context_line":"remain like that in the future. Libvirt device driver will outright override"},{"line_number":110,"context_line":"any device names passed with it\u0027s own values."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Block device mapping v2"},{"line_number":113,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a4dcd0f_34a32102","line":110,"updated":"2015-08-05 15:27:14.000000000","message":"suggestion: could refer as a footnote to the change that did this since it\u0027s merged now.","commit_id":"a338a4da11258d2864db791de32a0138852ff5b5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6e802e99a3c515d66093b77d808a37ace02ddd30","unresolved":false,"context_lines":[{"line_number":174,"context_line":"* disk_bus and device_type - low level details that some hypervisors (currently"},{"line_number":175,"context_line":"  only libvirt) may support. Some example disk_bus values can be: `ide`, `usb`,"},{"line_number":176,"context_line":"  `virtio`, `scsi`, while device_type may be `disk`, `cdrom`, `floppy`, `lun`."},{"line_number":177,"context_line":"  This is not an exhaustive list as it depends on the virtualization driver,"},{"line_number":178,"context_line":"  and may change as more support is added. Leaving these empty is the most"},{"line_number":179,"context_line":"  common thing to do."},{"line_number":180,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a4dcd0f_54858d04","line":177,"updated":"2015-08-05 15:27:14.000000000","message":"Good point to leave this open-ended, but we do have enum fields now for the objects to use so we could also link to that, and the v2.1 API also has it\u0027s own list for jsonschema validation, so at some point we could update this doc to link to those.\n\nhttp://git.openstack.org/cgit/openstack/nova/tree/nova/objects/fields.py#n116\n\nhttp://git.openstack.org/cgit/openstack/nova/tree/nova/objects/fields.py#n168","commit_id":"a338a4da11258d2864db791de32a0138852ff5b5"}]}
