)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":10,"context_line":"parameter can create cinder volume and attach to instance, but there"},{"line_number":11,"context_line":"aren\u0027t volume type parameter to create a SLA based volume, so"},{"line_number":12,"context_line":"this spec will add the volume type to create api."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I335475ec840a381c3eecfd59ce7a49cc1045673d"},{"line_number":15,"context_line":"bp: add-volume-type-when-boot-instances"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a95cdbc_b0a05ea7","line":13,"updated":"2016-10-04 16:21:16.000000000","message":"You need to have the APIImpact tag in this commit message.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"451666aeaf07090be85f5df56eb1799d81528e45","unresolved":false,"context_lines":[{"line_number":10,"context_line":"parameter can create cinder volume and attach to instance, but there"},{"line_number":11,"context_line":"aren\u0027t volume type parameter to create a SLA based volume, so"},{"line_number":12,"context_line":"this spec will add the volume type to create api."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I335475ec840a381c3eecfd59ce7a49cc1045673d"},{"line_number":15,"context_line":"bp: add-volume-type-when-boot-instances"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a95cdbc_3aaebf2e","line":13,"in_reply_to":"1a95cdbc_b0a05ea7","updated":"2016-10-05 12:53:14.000000000","message":"Done","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"}],"specs/ocata/approved/add-volume-type-when-boot-instances.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"add volume type to create server API"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/enable-volume-types"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_109e7256","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":3},"updated":"2016-10-04 16:21:16.000000000","message":"nit: s/add/Add/","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":8,"context_line":"add volume type to create server API"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/enable-volume-types"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The purpose of this spec is to add volume-type to block_device_mapping"},{"line_number":14,"context_line":"parameter nova create instance API."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_909c426b","line":11,"updated":"2016-10-04 16:21:16.000000000","message":"This is the wrong blueprint for this spec, the blueprint you\u0027re targeting is:\n\nhttps://blueprints.launchpad.net/nova/+spec/add-volume-type-when-boot-instances\n\nBlueprint enable-volume-types is superseded by your blueprint.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"451666aeaf07090be85f5df56eb1799d81528e45","unresolved":false,"context_lines":[{"line_number":8,"context_line":"add volume type to create server API"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/enable-volume-types"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The purpose of this spec is to add volume-type to block_device_mapping"},{"line_number":14,"context_line":"parameter nova create instance API."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_053b68d2","line":11,"in_reply_to":"1a95cdbc_909c426b","updated":"2016-10-05 12:53:14.000000000","message":"Done","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/enable-volume-types"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The purpose of this spec is to add volume-type to block_device_mapping"},{"line_number":14,"context_line":"parameter nova create instance API."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_5079da2e","line":14,"updated":"2016-10-04 16:21:16.000000000","message":"nit: s/parameter nova/parameter of the nova/","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"451666aeaf07090be85f5df56eb1799d81528e45","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/enable-volume-types"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The purpose of this spec is to add volume-type to block_device_mapping"},{"line_number":14,"context_line":"parameter nova create instance API."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_65498c5f","line":14,"in_reply_to":"1a95cdbc_5079da2e","updated":"2016-10-05 12:53:14.000000000","message":"Done","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":33,"context_line":"Use Cases"},{"line_number":34,"context_line":"----------"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* End User creates instance with persistence storage and define the"},{"line_number":37,"context_line":"  persistence storage SLA/QoS level using the ``volume_type`` parameter."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_844b2759","line":36,"updated":"2016-10-04 16:21:16.000000000","message":"As noted in detail in the alternative section below, we\u0027re going to want more information on the scenario that justifies the need for doing this, i.e. what Chet Burgess described at the Austin summit.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":36,"context_line":"* End User creates instance with persistence storage and define the"},{"line_number":37,"context_line":"  persistence storage SLA/QoS level using the ``volume_type`` parameter."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Project Priority"},{"line_number":40,"context_line":"-----------------"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"None"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_841de768","line":42,"range":{"start_line":39,"start_character":0,"end_line":42,"end_character":4},"updated":"2016-10-04 16:21:16.000000000","message":"This isn\u0027t in the spec template and should be removed.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"451666aeaf07090be85f5df56eb1799d81528e45","unresolved":false,"context_lines":[{"line_number":36,"context_line":"* End User creates instance with persistence storage and define the"},{"line_number":37,"context_line":"  persistence storage SLA/QoS level using the ``volume_type`` parameter."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Project Priority"},{"line_number":40,"context_line":"-----------------"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"None"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_6560accf","line":42,"range":{"start_line":39,"start_character":0,"end_line":42,"end_character":4},"in_reply_to":"1a95cdbc_841de768","updated":"2016-10-05 12:53:14.000000000","message":"Done","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The proposal is to add a new microverion for ``os-servers`` POST API"},{"line_number":49,"context_line":"to support ``volume_type`` as an optional parameter to"},{"line_number":50,"context_line":"block_device_mapping_v2. The value of volume_type would be set to none by"},{"line_number":51,"context_line":"default, unless when destination_type is volume and source_type is one"},{"line_number":52,"context_line":"of {blank, image or snapshot}, user then could specify the value of"},{"line_number":53,"context_line":"volume_type. Under this circumstance Nova will save the volume_type"},{"line_number":54,"context_line":"value to DB and post it to cinder in create volume api."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_64f61bd9","line":53,"range":{"start_line":50,"start_character":25,"end_line":53,"end_character":12},"updated":"2016-10-04 16:21:16.000000000","message":"Please describe the error conditions in a bullet format list. For example, will we return a 400 if the user provides a BDM with volume_type + destination_type\u003d\u0027local\u0027 or source_type\u003d\u0027volume\u0027? Or will we just ignore the volume_type in the request?\n\nAnd will we check the existence of the provided volume_type via the Cinder API in the compute API before casting to a compute node to build the server, or will we rely on the volume create API to fail (on the compute) if we pass a volume_type that doesn\u0027t exist? Note: I think we validate the volume_type in the compute API before we cast to the compute to build the server as failing on the compute is expensive and results in a NoValidHost error.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"85345b78e3755241ccf61b8c292f833e59f2ebaf","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The proposal is to add a new microverion for ``os-servers`` POST API"},{"line_number":49,"context_line":"to support ``volume_type`` as an optional parameter to"},{"line_number":50,"context_line":"block_device_mapping_v2. The value of volume_type would be set to none by"},{"line_number":51,"context_line":"default, unless when destination_type is volume and source_type is one"},{"line_number":52,"context_line":"of {blank, image or snapshot}, user then could specify the value of"},{"line_number":53,"context_line":"volume_type. Under this circumstance Nova will save the volume_type"},{"line_number":54,"context_line":"value to DB and post it to cinder in create volume api."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_1a5dace9","line":53,"range":{"start_line":50,"start_character":25,"end_line":53,"end_character":12},"in_reply_to":"1a95cdbc_64f61bd9","updated":"2016-10-04 16:24:47.000000000","message":"Another thing I didn\u0027t consider is the user might not have access to the volume type they are requesting:\n\nhttp://developer.openstack.org/api-ref/block-storage/v2/#volume-type-access-volumes","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":52,"context_line":"of {blank, image or snapshot}, user then could specify the value of"},{"line_number":53,"context_line":"volume_type. Under this circumstance Nova will save the volume_type"},{"line_number":54,"context_line":"value to DB and post it to cinder in create volume api."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Alternatives"},{"line_number":57,"context_line":"------------"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_7a4b105a","line":55,"updated":"2016-10-04 16:21:16.000000000","message":"There is another issue not mentioned here, which is we could have a mixed level of compute nodes in the deployment, e.g. some ocata and some newton. The ocata nodes could have the code to handle passing the volume_type to cinder when creating the volume, but the newton nodes wouldn\u0027t.\n\nSo consider the case that a user wants to create a volume-backed server and provides a non-default volume_type in their request. Now if the scheduler picks a newton compute host to build that server, it\u0027s not going to have the code to check the bdm.volume_type value and pass that to cinder when creating the volume. Now the user checks their created volume and sees that it\u0027s created with a volume type they didn\u0027t expect, and they consider this a bug.\n\nSo how do we want to address this? There are a couple of options when this issue comes up, which it has a few times for other features like this:\n\n1. The compute nodes could advertise a capability boolean flag about whether or not they support creating volumes with a specific volume type. Then the capabilities filter in the scheduler could check that against a request that contains bdms with a volume_type and filter out hosts that don\u0027t support creating those volumes. This is not a trivial change.\n\n2. We could bump the nova-compute service version and check that in the compute API during the server create request. If the minimum nova-compute service version in the deployment is not new enough to support creating volumes with a specific volume_type, we\u0027d fail with a 400 (there might be a more suitable error code for this, you\u0027d have to check with the api-wg team).\n\n--\n\nOption 2 is more straight-forward from a coding perspective and has a time limit on it (we can remove the check once we get to a point that we require ocata computes, which might be pike or queens). It\u0027s less friendly from a usability POV. But it\u0027s also what we\u0027ve done in other cases, like get-me-a-network, virtual device tags and volume multi-attach.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Alternatives"},{"line_number":57,"context_line":"------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"None"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Data model impact"},{"line_number":62,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_e4030b0c","line":59,"updated":"2016-10-04 16:21:16.000000000","message":"There is definitely an alternative here. The user creates the volume via the volume API (cinder) where they can specify the volume type they want, and then provide that to nova when creating the server with source and destination type in the BDM as \u0027volume\u0027.\n\nAt the Austin (newton) summit, Chet Burgess made a case for why that\u0027s not an optimal scenario in all cases, so it would be good to explain in here why we should approve this spec, especially given our stance on no more proxy APIs:\n\nhttp://docs.openstack.org/developer/nova/project_scope.html#no-more-api-proxies\n\nand\n\nhttp://docs.openstack.org/developer/nova/project_scope.html#no-more-orchestration\n\nWe agreed at the Austin summit to support this feature, but we should have clear justification in the spec as to why we\u0027re making exceptions to the policies above.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"539758b366e2fd79be7f07d1757ddc4c35edd35a","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Alternatives"},{"line_number":57,"context_line":"------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"None"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Data model impact"},{"line_number":62,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_494bf02b","line":59,"in_reply_to":"1a95cdbc_537c7f20","updated":"2016-10-04 17:52:08.000000000","message":"Cinder already has a config option for the default volume type, but that might be in the API so it\u0027s global.\n\nIf we had a config option in the compute then I guess that would be one thing, and then I guess deployments that really cared could setup aggregates for different groups of computes that are for different volume types, and then you use special flavors with extra specs to land an instance on a specific aggregate that creates a specific type of volume. It\u0027s gross, but it\u0027s an option.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5d5b594ce56aef8149ed888d6089cc241d4ba2e8","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Alternatives"},{"line_number":57,"context_line":"------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"None"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Data model impact"},{"line_number":62,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_537c7f20","line":59,"in_reply_to":"1a95cdbc_e4030b0c","updated":"2016-10-04 17:17:38.000000000","message":"I don\u0027t recall this discussion, but good to know it happened.\n\nFWIW, I think that regardless of the resource type (volume, network, etc) you\u0027re always going to have to go to the source if you want all the options. If we add volume type here, next we\u0027ll have something else to add. The BDM syntax (and backing storage, and everything else related) is a disaster, IMHO, and BFV is already somewhat of a mess.\n\nMy vote is that we don\u0027t do this. If that means opening a config option to allow the deployer to specify the type used in the call to cinder if the volume is created incidental to a boot, then fine.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":61,"context_line":"Data model impact"},{"line_number":62,"context_line":"-----------------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Enhance block_device_mapping object to include volume_type, add volume_type"},{"line_number":65,"context_line":"to \"BlockDeviceMapping\" class in model.py."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_841a4716","line":64,"updated":"2016-10-04 16:21:16.000000000","message":"You\u0027d also have to update the nova.objects.block_device.BlockDeviceMapping class.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":67,"context_line":"REST API impact"},{"line_number":68,"context_line":"---------------"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"A new microverion for ``os-servers`` POST API will be added"},{"line_number":71,"context_line":"to support ``volume_type`` as an optional parameter in"},{"line_number":72,"context_line":"block_device_mapping_v2 in create server API."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_c487ef10","line":70,"updated":"2016-10-04 16:21:16.000000000","message":"I don\u0027t think you\u0027ll actually be changing the os-servers API, you\u0027ll technically be modifying the os-block-device-mapping server extension:\n\nhttps://github.com/openstack/nova/blob/1af73d1fb3169c5b3cce77d94316922496bbaf9a/nova/api/openstack/compute/block_device_mapping.py\n\nFor example, there will need to be a new schema check based on the microversion, like how 2.32 is handled in there.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"When destination_type is volume and source_type is one of"},{"line_number":75,"context_line":"{blank, snapshot or image}, the \"volume_type\" is valid, Nova accept it,"},{"line_number":76,"context_line":"check it from Cinder and deliver to Cinder in create volume request."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"In other situation, the \"volume_type\" is invalid"},{"line_number":79,"context_line":"and is none by default, Nova will return error when user set it."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_c48e0f27","line":76,"range":{"start_line":76,"start_character":0,"end_line":76,"end_character":21},"updated":"2016-10-04 16:21:16.000000000","message":"I assume this is implied validation in the compute API?","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":75,"context_line":"{blank, snapshot or image}, the \"volume_type\" is valid, Nova accept it,"},{"line_number":76,"context_line":"check it from Cinder and deliver to Cinder in create volume request."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"In other situation, the \"volume_type\" is invalid"},{"line_number":79,"context_line":"and is none by default, Nova will return error when user set it."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"\"block_device_mapping_v2\": ["},{"line_number":82,"context_line":"{"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_84ade78a","line":79,"range":{"start_line":78,"start_character":0,"end_line":79,"end_character":64},"updated":"2016-10-04 16:21:16.000000000","message":"OK, this is what I was asking about above.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"\"block_device_mapping_v2\": ["},{"line_number":82,"context_line":"{"},{"line_number":83,"context_line":"\"device_name\": \"/dev/sda1\","},{"line_number":84,"context_line":"\"source_type\": \"blank\","},{"line_number":85,"context_line":"\"destination_type\": \"volume\","},{"line_number":86,"context_line":"\"volume_type\": \"HighSLA\","}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_64c7fb45","line":83,"updated":"2016-10-04 16:21:16.000000000","message":"nit: let\u0027s not add device_name in the example as we\u0027re talking about removing that support from the API.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"451666aeaf07090be85f5df56eb1799d81528e45","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"\"block_device_mapping_v2\": ["},{"line_number":82,"context_line":"{"},{"line_number":83,"context_line":"\"device_name\": \"/dev/sda1\","},{"line_number":84,"context_line":"\"source_type\": \"blank\","},{"line_number":85,"context_line":"\"destination_type\": \"volume\","},{"line_number":86,"context_line":"\"volume_type\": \"HighSLA\","}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_85a138ac","line":83,"in_reply_to":"1a95cdbc_64c7fb45","updated":"2016-10-05 12:53:14.000000000","message":"Done","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":107,"context_line":"Performance Impact"},{"line_number":108,"context_line":"------------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"None"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Other deployer impact"},{"line_number":113,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_040c7793","line":110,"updated":"2016-10-04 16:21:16.000000000","message":"There is a performance impact to the compute API because we have to make an additional call to Cinder to validate the volume_type passed in actually exists. It\u0027s probably small, but you should mention it.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":135,"context_line":"* Enhance block_device_mapping_v2 parameter in Nova create instance API."},{"line_number":136,"context_line":"* Enhance block_device_mapping object to include volume_type."},{"line_number":137,"context_line":"* Enhance block_device_mapping table to include volume_type."},{"line_number":138,"context_line":"* Enhance attach function in DriverBlankBlockDevice class to \"create_volume\""},{"line_number":139,"context_line":"  API using volume_type."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_248893e7","line":138,"range":{"start_line":138,"start_character":29,"end_line":138,"end_character":51},"updated":"2016-10-04 16:21:16.000000000","message":"It\u0027s more than just the Blank driver, it\u0027s also the image and snapshot device drivers.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"451666aeaf07090be85f5df56eb1799d81528e45","unresolved":false,"context_lines":[{"line_number":135,"context_line":"* Enhance block_device_mapping_v2 parameter in Nova create instance API."},{"line_number":136,"context_line":"* Enhance block_device_mapping object to include volume_type."},{"line_number":137,"context_line":"* Enhance block_device_mapping table to include volume_type."},{"line_number":138,"context_line":"* Enhance attach function in DriverBlankBlockDevice class to \"create_volume\""},{"line_number":139,"context_line":"  API using volume_type."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_6518ac1e","line":138,"range":{"start_line":138,"start_character":29,"end_line":138,"end_character":51},"in_reply_to":"1a95cdbc_248893e7","updated":"2016-10-05 12:53:14.000000000","message":"Done","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":148,"context_line":"Testing"},{"line_number":149,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Add unit test and tempest test for Nova create instance API."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_e464eb4a","line":151,"updated":"2016-10-04 16:21:16.000000000","message":"nit: unit, functional and Tempest tests.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":155,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* CLI Doc http://docs.openstack.org/cli-reference/content/"},{"line_number":158,"context_line":"* API Doc http://developer.openstack.org/api-ref-compute-v2-ext.html"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_c4ed2f90","line":158,"updated":"2016-10-04 16:21:16.000000000","message":"This is the old URL, you want this now:\n\nhttp://developer.openstack.org/api-ref/compute/\n\nWhich is built from the api-ref docs in the nova repo.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":158,"context_line":"* API Doc http://developer.openstack.org/api-ref-compute-v2-ext.html"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"References"},{"line_number":162,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Cinder volume_type APIs and volume create API in"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_64745bcf","line":161,"updated":"2016-10-04 16:21:16.000000000","message":"I would also reference the etherpad that Chet Burgess showed at the Austin summit that led to this coming up again:\n\nhttps://etherpad.openstack.org/p/nova-bfv-volume-type","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"876d66faad4d567ea217214a26e467f86da6eb00","unresolved":false,"context_lines":[{"line_number":168,"context_line":"History"},{"line_number":169,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a95cdbc_67da9d7a","line":171,"updated":"2016-10-04 16:21:16.000000000","message":"There is history as shown in the etherpad:\n\nhttps://etherpad.openstack.org/p/nova-bfv-volume-type\n\nMaybe you want to refer to prior art (blueprints/code) in the references section above, but the History section here should at least have a section saying this is proposed for Ocata. See the spec template for details.","commit_id":"c68cf14cb4cc69dec555426bc22571c15198d323"}]}
