)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12112,"name":"Tom Swanson","email":"tom_swanson@dell.com","username":"tomswanson"},"change_message_id":"3f730142f2ab2e7c7ab0a63ca8b7a19c2ff9f52f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add multiattach policy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch add the policy for creating and retyping volumes"},{"line_number":10,"context_line":"with volume types that indicate multi attach capabilities."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"We use policy to control the use of this particular type,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f91af0f_1168d8b6","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":14},"updated":"2018-01-08 20:31:34.000000000","message":"adds","commit_id":"0d89dc9032a985856ad0ddaa67a9513c17fb150c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"c4d18f155b0e24a245c448d568d818d9981d049e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add multiattach policy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch add the policy for creating and retyping volumes"},{"line_number":10,"context_line":"with volume types that indicate multi attach capabilities."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"We use policy to control the use of this particular type,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f91af0f_453e9a8b","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":14},"in_reply_to":"9f91af0f_1168d8b6","updated":"2018-01-08 23:58:54.000000000","message":"Ok, ok... I\u0027ll fix it.","commit_id":"0d89dc9032a985856ad0ddaa67a9513c17fb150c"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"7f4a3cda46940a471a9f39c1cc2c411b484d7382","unresolved":false,"context_lines":[{"line_number":10,"context_line":"with volume types that indicate multi attach capabilities."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"We use policy to control the use of this particular type,"},{"line_number":13,"context_line":"and we also limit the ability to retype a volumes"},{"line_number":14,"context_line":"multi attach settings to only volumes that are in available"},{"line_number":15,"context_line":"status.  We need to to do this because multi attach has"},{"line_number":16,"context_line":"implications for things on the Compute side (ie libvirt)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7f96bb07_0fda8ae8","line":13,"range":{"start_line":13,"start_character":42,"end_line":13,"end_character":49},"updated":"2018-01-11 02:57:23.000000000","message":"volume\u0027s?","commit_id":"8c5112f92cf60db903415579ba40cca1d37eb318"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"7f4a3cda46940a471a9f39c1cc2c411b484d7382","unresolved":false,"context_lines":[{"line_number":12,"context_line":"We use policy to control the use of this particular type,"},{"line_number":13,"context_line":"and we also limit the ability to retype a volumes"},{"line_number":14,"context_line":"multi attach settings to only volumes that are in available"},{"line_number":15,"context_line":"status.  We need to to do this because multi attach has"},{"line_number":16,"context_line":"implications for things on the Compute side (ie libvirt)"},{"line_number":17,"context_line":"that would require detach/reattach to keep things synced"},{"line_number":18,"context_line":"correctly."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7f96bb07_8fc69a16","line":15,"range":{"start_line":15,"start_character":17,"end_line":15,"end_character":19},"updated":"2018-01-11 02:57:23.000000000","message":"duplicate","commit_id":"8c5112f92cf60db903415579ba40cca1d37eb318"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d6251e123ce26320ed20ab740fcc54720ddef76","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"1. MULTIATTACH_POLICY"},{"line_number":15,"context_line":"General policy to disallow creating volumes of type multiattach"},{"line_number":16,"context_line":"as well as retyping volumes to/from a multiattach type."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"2. BOOTABLE_MULTIATTACH_POLICY"},{"line_number":19,"context_line":"Specific policy to disallow creating multiple attachments for"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7f96bb07_c827a764","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":55},"updated":"2018-01-11 18:26:04.000000000","message":"I thought we said we just wouldn\u0027t allow changing the multiattach value on an in-use volume during a retype period, regardless of policy? Or am I misunderstanding the statement here?","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"96aa60012a6dc02f383696c30bd312598b285d4e","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"1. MULTIATTACH_POLICY"},{"line_number":15,"context_line":"General policy to disallow creating volumes of type multiattach"},{"line_number":16,"context_line":"as well as retyping volumes to/from a multiattach type."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"2. BOOTABLE_MULTIATTACH_POLICY"},{"line_number":19,"context_line":"Specific policy to disallow creating multiple attachments for"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7f96bb07_bf74cc9a","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":55},"in_reply_to":"7f96bb07_1c063188","updated":"2018-01-11 23:31:29.000000000","message":"Yeah I think so.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e9f8e1d9433064342831882d5f5c45567afe094b","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"1. MULTIATTACH_POLICY"},{"line_number":15,"context_line":"General policy to disallow creating volumes of type multiattach"},{"line_number":16,"context_line":"as well as retyping volumes to/from a multiattach type."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"2. BOOTABLE_MULTIATTACH_POLICY"},{"line_number":19,"context_line":"Specific policy to disallow creating multiple attachments for"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7f96bb07_1c063188","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":55},"in_reply_to":"7f96bb07_c827a764","updated":"2018-01-11 22:04:50.000000000","message":"so we good here?","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d6251e123ce26320ed20ab740fcc54720ddef76","unresolved":false,"context_lines":[{"line_number":20,"context_line":"any volume that is `bootable`."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"We use policy to control the use of this particular type,"},{"line_number":23,"context_line":"and we also limit the ability to retype a volumes"},{"line_number":24,"context_line":"multi attach settings to only volumes that are in available"},{"line_number":25,"context_line":"status.  We need to to do this because multi attach has"},{"line_number":26,"context_line":"implications for things on the Compute side (ie libvirt)"},{"line_number":27,"context_line":"that would require detach/reattach to keep things synced"},{"line_number":28,"context_line":"correctly."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7f96bb07_e82ce348","line":25,"range":{"start_line":23,"start_character":0,"end_line":25,"end_character":6},"updated":"2018-01-11 18:26:04.000000000","message":"ah here we go","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d6251e123ce26320ed20ab740fcc54720ddef76","unresolved":false,"context_lines":[{"line_number":27,"context_line":"that would require detach/reattach to keep things synced"},{"line_number":28,"context_line":"correctly."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Currently there\u0027s no back end reporting the `mulitattach\u003dTrue`"},{"line_number":31,"context_line":"capability, that will be in the next patch of this series."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change-Id: I3fd8afe9cbae3c733a6530dce7be6fef8d53cfa6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7f96bb07_481b971a","line":30,"range":{"start_line":30,"start_character":45,"end_line":30,"end_character":56},"updated":"2018-01-11 18:26:04.000000000","message":"multiattach","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"56ada137690bb4b0a1cdb0bbaadd0bfe10ba6942","unresolved":false,"context_lines":[{"line_number":27,"context_line":"that would require detach/reattach to keep things synced"},{"line_number":28,"context_line":"correctly."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Currently there\u0027s no back end reporting the `mulitattach\u003dTrue`"},{"line_number":31,"context_line":"capability, that will be in the next patch of this series."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change-Id: I3fd8afe9cbae3c733a6530dce7be6fef8d53cfa6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7f96bb07_31674828","line":30,"range":{"start_line":30,"start_character":45,"end_line":30,"end_character":56},"in_reply_to":"7f96bb07_481b971a","updated":"2018-01-15 18:11:14.000000000","message":"Done","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"}],"cinder/policies/attachments.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"194d53b8249a7d05264ca8aae0383f250d29262e","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        ]),"},{"line_number":57,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":58,"context_line":"        name\u003dMULTIATTACH_BOOTABLE_VOLUME_POLICY,"},{"line_number":59,"context_line":"        check_str\u003d\"\","},{"line_number":60,"context_line":"        description\u003d\"Allow multiattach of bootable volumes.\","},{"line_number":61,"context_line":"        operations\u003d["},{"line_number":62,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f96bb07_9cb29a48","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":20},"updated":"2018-01-17 23:34:49.000000000","message":"This should be base.RULE_ADMIN_OR_OWNER","commit_id":"9a9eddabca3512d73cff180e72e0c1168fe0d4a3"}],"cinder/policies/volumes.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2b89ed6502056249d6068b3dcc3146fd7912a150","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        ]),"},{"line_number":165,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":166,"context_line":"        name\u003dMULTIATTACH_POLICY,"},{"line_number":167,"context_line":"        check_str\u003dbase.RULE_ADMIN_API,"},{"line_number":168,"context_line":"        description\u003d\"Create multiattach capable volume.\","},{"line_number":169,"context_line":"        operations\u003d["},{"line_number":170,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f96bb07_0fc5aa8e","line":167,"updated":"2018-01-11 02:14:39.000000000","message":"Why is this an admin-only API? This should be the same as CREATE_POLICY so a non-admin can create a multiattach volume, right?\n\nAlso, the nova spec says we were going to add a policy rule to cinder to enable/disable multiattach+bootable volumes (to disable boot from volume with multiattach volumes if operators didn\u0027t trust that) - but that wasn\u0027t called out in the cinder spec, I\u0027m assuming that was an oversight?","commit_id":"c9342064c11bd97fbe6f0603399af0177963d64a"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"5821ee56dc2f5b36c11bda093d26389b31532e42","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        ]),"},{"line_number":165,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":166,"context_line":"        name\u003dMULTIATTACH_POLICY,"},{"line_number":167,"context_line":"        check_str\u003dbase.RULE_ADMIN_API,"},{"line_number":168,"context_line":"        description\u003d\"Create multiattach capable volume.\","},{"line_number":169,"context_line":"        operations\u003d["},{"line_number":170,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f96bb07_8a9448ea","line":167,"in_reply_to":"7f96bb07_0fc5aa8e","updated":"2018-01-11 04:13:33.000000000","message":"fine by me, I\u0027ll change it.  I set it this way be default as per discussions in IRC and the conclusion that we\u0027d rather be *safe* and allow the cloud admin to modify this if they wanted to let their tenants use it.  Of course they can also just disable it if they wish too.  Works for me.\n\nAs far as the nova spec; it\u0027s not an oversight I don\u0027t have any plan for adding anything on Cinder for that.  I\u0027ll add it though, just for you because I want you to be happy.","commit_id":"c9342064c11bd97fbe6f0603399af0177963d64a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"703ea5f15e06a42fa4ce81854d3d6603610e4c27","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        ]),"},{"line_number":165,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":166,"context_line":"        name\u003dMULTIATTACH_POLICY,"},{"line_number":167,"context_line":"        check_str\u003dbase.RULE_ADMIN_API,"},{"line_number":168,"context_line":"        description\u003d\"Create multiattach capable volume.\","},{"line_number":169,"context_line":"        operations\u003d["},{"line_number":170,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f96bb07_587a8c24","line":167,"in_reply_to":"7f96bb07_8a9448ea","updated":"2018-01-11 16:16:57.000000000","message":"Looks like there is no existing policy check for making a bootable volume, but it looks like we could just add the policy check in here:\n\nhttps://github.com/openstack/cinder/blob/master/cinder/api/contrib/volume_actions.py#L362\n\nSuch that if bootable flag is going to be set to True and the volume is multiattach\u003dTrue, check the policy and default to allow it.","commit_id":"c9342064c11bd97fbe6f0603399af0177963d64a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bcc07c1c09a2c48e8e1663ba227d84798868a100","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        ]),"},{"line_number":165,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":166,"context_line":"        name\u003dMULTIATTACH_POLICY,"},{"line_number":167,"context_line":"        check_str\u003dbase.RULE_ADMIN_API,"},{"line_number":168,"context_line":"        description\u003d\"Create multiattach capable volume.\","},{"line_number":169,"context_line":"        operations\u003d["},{"line_number":170,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_8f5f7ae4","line":167,"updated":"2018-01-11 02:15:08.000000000","message":"Why is this an admin-only API? This should be the same as CREATE_POLICY so a non-admin can create a multiattach volume, right?\n\nAlso, the nova spec says we were going to add a policy rule to cinder to enable/disable multiattach+bootable volumes (to disable boot from volume with multiattach volumes if operators didn\u0027t trust that) - but that wasn\u0027t called out in the cinder spec, I\u0027m assuming that was an oversight?","commit_id":"8c5112f92cf60db903415579ba40cca1d37eb318"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d6251e123ce26320ed20ab740fcc54720ddef76","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        operations\u003d["},{"line_number":181,"context_line":"            {"},{"line_number":182,"context_line":"                \u0027method\u0027: \u0027POST\u0027,"},{"line_number":183,"context_line":"                \u0027path\u0027: \u0027/volumes\u0027"},{"line_number":184,"context_line":"            }"},{"line_number":185,"context_line":"        ]),"},{"line_number":186,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_68ed33ee","line":183,"updated":"2018-01-11 18:26:04.000000000","message":"This is the wrong path, it should be:\n\n/v2/{project_id}/volumes/{volume_id}/action\n\nFor the os-set_bootable action:\n\nhttps://developer.openstack.org/api-ref/block-storage/v2/#update-volume-bootable-status","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"56ada137690bb4b0a1cdb0bbaadd0bfe10ba6942","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        operations\u003d["},{"line_number":181,"context_line":"            {"},{"line_number":182,"context_line":"                \u0027method\u0027: \u0027POST\u0027,"},{"line_number":183,"context_line":"                \u0027path\u0027: \u0027/volumes\u0027"},{"line_number":184,"context_line":"            }"},{"line_number":185,"context_line":"        ]),"},{"line_number":186,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_8b286be2","line":183,"in_reply_to":"7f96bb07_5faee8e7","updated":"2018-01-15 18:11:14.000000000","message":"Regardless of how we implement this, one thing you\u0027re right for sure is that I have this in the wrong place.  I\u0027ve moved it to attachments assuming that everyone ends up being ok with enforcing it at attach time as opposed to setting the flag etc.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"2669b44d8cb124684c7677bfecf29cdea141262f","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        operations\u003d["},{"line_number":181,"context_line":"            {"},{"line_number":182,"context_line":"                \u0027method\u0027: \u0027POST\u0027,"},{"line_number":183,"context_line":"                \u0027path\u0027: \u0027/volumes\u0027"},{"line_number":184,"context_line":"            }"},{"line_number":185,"context_line":"        ]),"},{"line_number":186,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_8c520c67","line":183,"in_reply_to":"7f96bb07_68ed33ee","updated":"2018-01-11 23:16:57.000000000","message":"Keep in mind that bootable can be set elsewhere, not just via that API extension.  we set this directly when issuing create-from-image for example.  We also xfr this flag via a direct parameter copy when doing clones etc.\n\nIf what you really want is to say \"No booting of multiattach at all\" (wish I don\u0027t think is necessary or necessarily correct); I think it would be better to do something at the object and db layer (in a perfect world everything would be using objects but that\u0027s not the case).  \n\nRegardless, my point here is I don\u0027t think it\u0027s a good idea to try and manage multiple points in the code that can set this flag; I also don\u0027t think it\u0027s good to have to worry about making sure reviewers notice when something changes and he/she misses this little detail.\n\nBy just having it impact additional attach calls this alleviates all of this, gives a single checkpoint and avoids all the various corner cases etc.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"96aa60012a6dc02f383696c30bd312598b285d4e","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        operations\u003d["},{"line_number":181,"context_line":"            {"},{"line_number":182,"context_line":"                \u0027method\u0027: \u0027POST\u0027,"},{"line_number":183,"context_line":"                \u0027path\u0027: \u0027/volumes\u0027"},{"line_number":184,"context_line":"            }"},{"line_number":185,"context_line":"        ]),"},{"line_number":186,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_5faee8e7","line":183,"in_reply_to":"7f96bb07_8c520c67","updated":"2018-01-11 23:31:29.000000000","message":"I don\u0027t know anything about all of the create-from-image or cloning stuff in cinder and how bootable can automatically be set. I think the general idea was just that operators would want a way to disable their users from being able to boot from a multiattach volume. How that happens in the best way, I\u0027m not sure - I thought it was just controlled via the os-set_bootable action API, but I didn\u0027t know about the other stuff.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"}],"cinder/tests/unit/volume/test_volume.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d6251e123ce26320ed20ab740fcc54720ddef76","unresolved":false,"context_lines":[{"line_number":620,"context_line":"        foo \u003d objects.VolumeType.get_by_name_or_id(elevated,"},{"line_number":621,"context_line":"                                                   \"multiattach-type\")"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        vol \u003d volume_api.create(self.context,"},{"line_number":624,"context_line":"                                1,"},{"line_number":625,"context_line":"                                \u0027admin-vol\u0027,"},{"line_number":626,"context_line":"                                \u0027description\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_48c95776","line":623,"range":{"start_line":623,"start_character":8,"end_line":623,"end_character":11},"updated":"2018-01-11 18:26:04.000000000","message":"If the volume type defines multiattach\u003dTrue, shouldn\u0027t you assert that the volume has multiattach\u003dTrue set if it\u0027s using that volume type?","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e9f8e1d9433064342831882d5f5c45567afe094b","unresolved":false,"context_lines":[{"line_number":620,"context_line":"        foo \u003d objects.VolumeType.get_by_name_or_id(elevated,"},{"line_number":621,"context_line":"                                                   \"multiattach-type\")"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        vol \u003d volume_api.create(self.context,"},{"line_number":624,"context_line":"                                1,"},{"line_number":625,"context_line":"                                \u0027admin-vol\u0027,"},{"line_number":626,"context_line":"                                \u0027description\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_bc529d66","line":623,"range":{"start_line":623,"start_character":8,"end_line":623,"end_character":11},"in_reply_to":"7f96bb07_48c95776","updated":"2018-01-11 22:04:50.000000000","message":"Yeah, except this patch implements policy only; it doesn\u0027t include any implementation what so ever including setting the multiattach bit.  For that you need to wait for: https://review.openstack.org/#/c/532280/","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"}],"cinder/volume/api.py":[{"author":{"_account_id":14532,"name":"Gerald McBrearty","email":"gfm@us.ibm.com","username":"gfm"},"change_message_id":"1de916ec4c230e3f360e4cebef052211c68b84c0","unresolved":false,"context_lines":[{"line_number":1643,"context_line":"                self._is_multiattach(vol_type)):"},{"line_number":1644,"context_line":"            tgt_is_multiattach \u003d True"},{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"        if src_is_multiattach !\u003d tgt_is_multiattach:"},{"line_number":1647,"context_line":"            if volume.status !\u003d \"available\":"},{"line_number":1648,"context_line":"                msg \u003d _(\u0027Invalid volume_type passed, retypes affecting \u0027"},{"line_number":1649,"context_line":"                        \u0027multiattach are only allowed on available volumes, \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_d12fd085","line":1646,"updated":"2018-01-08 20:27:06.000000000","message":"Question: Would it make sense to allow the retype to multiattach \u003d False if the volume is attached?\n\nPreventing the change to True while attached can\u0027t be done because nova has to do to something to make this work correctly. But does it matter if nova is using multiattach and we mark the volume as False?","commit_id":"0d89dc9032a985856ad0ddaa67a9513c17fb150c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"c4d18f155b0e24a245c448d568d818d9981d049e","unresolved":false,"context_lines":[{"line_number":1643,"context_line":"                self._is_multiattach(vol_type)):"},{"line_number":1644,"context_line":"            tgt_is_multiattach \u003d True"},{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"        if src_is_multiattach !\u003d tgt_is_multiattach:"},{"line_number":1647,"context_line":"            if volume.status !\u003d \"available\":"},{"line_number":1648,"context_line":"                msg \u003d _(\u0027Invalid volume_type passed, retypes affecting \u0027"},{"line_number":1649,"context_line":"                        \u0027multiattach are only allowed on available volumes, \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_85ea620c","line":1646,"in_reply_to":"9f91af0f_d12fd085","updated":"2018-01-08 23:58:54.000000000","message":"Not really, because the nova side still has it as multiattach and has created it\u0027s connections that way.  I get what you\u0027re saying; but we discusssed this and agreed to just limit it to available volumes (at least for now).  \n\nI also made that pretty explicit in the spec:\n    https://specs.openstack.org/openstack/cinder-specs/specs/queens/enable-multiattach.html","commit_id":"0d89dc9032a985856ad0ddaa67a9513c17fb150c"},{"author":{"_account_id":14532,"name":"Gerald McBrearty","email":"gfm@us.ibm.com","username":"gfm"},"change_message_id":"1de916ec4c230e3f360e4cebef052211c68b84c0","unresolved":false,"context_lines":[{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"        if src_is_multiattach !\u003d tgt_is_multiattach:"},{"line_number":1647,"context_line":"            if volume.status !\u003d \"available\":"},{"line_number":1648,"context_line":"                msg \u003d _(\u0027Invalid volume_type passed, retypes affecting \u0027"},{"line_number":1649,"context_line":"                        \u0027multiattach are only allowed on available volumes, \u0027"},{"line_number":1650,"context_line":"                        \u0027the specified volume however currently has a status \u0027"},{"line_number":1651,"context_line":"                        \u0027of: %s.\u0027) % volume.status"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_0e0c373f","line":1648,"updated":"2018-01-08 20:27:06.000000000","message":"Is this really the result of an invalid type?\nSound like more like \"Invalid retype request,\" to me.","commit_id":"0d89dc9032a985856ad0ddaa67a9513c17fb150c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"c4d18f155b0e24a245c448d568d818d9981d049e","unresolved":false,"context_lines":[{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"        if src_is_multiattach !\u003d tgt_is_multiattach:"},{"line_number":1647,"context_line":"            if volume.status !\u003d \"available\":"},{"line_number":1648,"context_line":"                msg \u003d _(\u0027Invalid volume_type passed, retypes affecting \u0027"},{"line_number":1649,"context_line":"                        \u0027multiattach are only allowed on available volumes, \u0027"},{"line_number":1650,"context_line":"                        \u0027the specified volume however currently has a status \u0027"},{"line_number":1651,"context_line":"                        \u0027of: %s.\u0027) % volume.status"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_a53d2690","line":1648,"in_reply_to":"9f91af0f_0e0c373f","updated":"2018-01-08 23:58:54.000000000","message":"Seemed reasonable to me to be InvalidType, it\u0027s invalid because that type is NOT a valid type selection based on policy.\n\nThere is not \"InvalidRetypeRequest\", but if folks want something different here I\u0027m open to proposals/discussion.","commit_id":"0d89dc9032a985856ad0ddaa67a9513c17fb150c"},{"author":{"_account_id":25376,"name":"zhuangzejian","email":"zzj123389602@gmail.com","username":"smartu3"},"change_message_id":"f66c1535519106a1223ed2761e8bb4ebee57a76a","unresolved":false,"context_lines":[{"line_number":1628,"context_line":""},{"line_number":1629,"context_line":"        # NOTE(jdg): We check here if multiattach is involved in either side"},{"line_number":1630,"context_line":"        # of the retype, we can\u0027t change multiattach on an in-use volume"},{"line_number":1631,"context_line":"        # vol because there\u0027s things the hypervisor needs when attaching, so"},{"line_number":1632,"context_line":"        # we just disallow retype of in-use volumes in this case.  You still"},{"line_number":1633,"context_line":"        # have to get through scheduling if all the conditions are met, we"},{"line_number":1634,"context_line":"        # should consider an up front capabilities check to give fast feedback"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f91af0f_706259da","line":1631,"range":{"start_line":1631,"start_character":10,"end_line":1631,"end_character":13},"updated":"2018-01-10 06:17:23.000000000","message":"redundant vol?","commit_id":"c9342064c11bd97fbe6f0603399af0177963d64a"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"78025685256dc4841bb9347b92b3fd23cd92ff41","unresolved":false,"context_lines":[{"line_number":1628,"context_line":""},{"line_number":1629,"context_line":"        # NOTE(jdg): We check here if multiattach is involved in either side"},{"line_number":1630,"context_line":"        # of the retype, we can\u0027t change multiattach on an in-use volume"},{"line_number":1631,"context_line":"        # vol because there\u0027s things the hypervisor needs when attaching, so"},{"line_number":1632,"context_line":"        # we just disallow retype of in-use volumes in this case.  You still"},{"line_number":1633,"context_line":"        # have to get through scheduling if all the conditions are met, we"},{"line_number":1634,"context_line":"        # should consider an up front capabilities check to give fast feedback"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f96bb07_339eda07","line":1631,"range":{"start_line":1631,"start_character":10,"end_line":1631,"end_character":13},"in_reply_to":"9f91af0f_706259da","updated":"2018-01-10 20:50:15.000000000","message":"Thanks, done.","commit_id":"c9342064c11bd97fbe6f0603399af0177963d64a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d6251e123ce26320ed20ab740fcc54720ddef76","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def _is_multiattach(self, volume_type):"},{"line_number":197,"context_line":"        specs \u003d getattr(volume_type, \u0027extra_specs\u0027, {})"},{"line_number":198,"context_line":"        return specs.get(\u0027multiattach\u0027) \u003d\u003d \u0027\u003cis\u003e True\u0027"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def create(self, context, size, name, description, snapshot\u003dNone,"},{"line_number":201,"context_line":"               image_id\u003dNone, volume_type\u003dNone, metadata\u003dNone,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_a87a5b21","line":198,"range":{"start_line":198,"start_character":44,"end_line":198,"end_character":48},"updated":"2018-01-11 18:26:04.000000000","message":"So this can have other semantics like \u003cis not\u003e or something? Why not just deal with a boolean value rather than strings with weird conditionals? This could just be something standard with how volume type extra specs work in Cinder that I\u0027m not familiar with.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"96aa60012a6dc02f383696c30bd312598b285d4e","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def _is_multiattach(self, volume_type):"},{"line_number":197,"context_line":"        specs \u003d getattr(volume_type, \u0027extra_specs\u0027, {})"},{"line_number":198,"context_line":"        return specs.get(\u0027multiattach\u0027) \u003d\u003d \u0027\u003cis\u003e True\u0027"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def create(self, context, size, name, description, snapshot\u003dNone,"},{"line_number":201,"context_line":"               image_id\u003dNone, volume_type\u003dNone, metadata\u003dNone,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_df83d855","line":198,"range":{"start_line":198,"start_character":44,"end_line":198,"end_character":48},"in_reply_to":"7f96bb07_4c8f24cc","updated":"2018-01-11 23:31:29.000000000","message":"That\u0027s fine, I just didn\u0027t know about the volume type extra specs semantics.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e9f8e1d9433064342831882d5f5c45567afe094b","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def _is_multiattach(self, volume_type):"},{"line_number":197,"context_line":"        specs \u003d getattr(volume_type, \u0027extra_specs\u0027, {})"},{"line_number":198,"context_line":"        return specs.get(\u0027multiattach\u0027) \u003d\u003d \u0027\u003cis\u003e True\u0027"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def create(self, context, size, name, description, snapshot\u003dNone,"},{"line_number":201,"context_line":"               image_id\u003dNone, volume_type\u003dNone, metadata\u003dNone,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_fceee586","line":198,"range":{"start_line":198,"start_character":44,"end_line":198,"end_character":48},"in_reply_to":"7f96bb07_a87a5b21","updated":"2018-01-11 22:04:50.000000000","message":"Ask the folks that voted on the scheduler changes that require it.  Personally I\u0027m not a fan, but in that past that\u0027s been the \"standard\" in Cinder for specifications.  If that\u0027s not the case anymore the W000T I\u0027m happy.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"56ada137690bb4b0a1cdb0bbaadd0bfe10ba6942","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def _is_multiattach(self, volume_type):"},{"line_number":197,"context_line":"        specs \u003d getattr(volume_type, \u0027extra_specs\u0027, {})"},{"line_number":198,"context_line":"        return specs.get(\u0027multiattach\u0027) \u003d\u003d \u0027\u003cis\u003e True\u0027"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def create(self, context, size, name, description, snapshot\u003dNone,"},{"line_number":201,"context_line":"               image_id\u003dNone, volume_type\u003dNone, metadata\u003dNone,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_4b50235e","line":198,"range":{"start_line":198,"start_character":44,"end_line":198,"end_character":48},"in_reply_to":"7f96bb07_df83d855","updated":"2018-01-15 18:11:14.000000000","message":"I\u0027m with you, I\u0027d prefer this to just be simple boolean (T/F); I\u0027ll verify that works with the scheduler and change it if it does.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"2669b44d8cb124684c7677bfecf29cdea141262f","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def _is_multiattach(self, volume_type):"},{"line_number":197,"context_line":"        specs \u003d getattr(volume_type, \u0027extra_specs\u0027, {})"},{"line_number":198,"context_line":"        return specs.get(\u0027multiattach\u0027) \u003d\u003d \u0027\u003cis\u003e True\u0027"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def create(self, context, size, name, description, snapshot\u003dNone,"},{"line_number":201,"context_line":"               image_id\u003dNone, volume_type\u003dNone, metadata\u003dNone,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_4c8f24cc","line":198,"range":{"start_line":198,"start_character":44,"end_line":198,"end_character":48},"in_reply_to":"7f96bb07_fceee586","updated":"2018-01-11 23:16:57.000000000","message":"I did not consider a desire to say multiattach: False because that doesn\u0027t make any sense to me.  If you don\u0027t want multiattach, then don\u0027t create a volume with the multiattach type (the volume.multiattach field will be False so you couldn\u0027t do multiple attachments even if you try), or just don\u0027t attach it multiple times?\n\nOtherwise, we have a problem due to the way the scheduler works; you would need to have multiple backends, one that says \"multiattach: True\" and another that says \"multiattach: False\", but for the most part from the backends perspective there\u0027s no difference.  I guess we could add another well known type-key to do this, but it seems like that\u0027s just adding another unnecessary dial that we really don\u0027t need.  Our API is already bloated with unnecessary things; I\u0027d hate to add another if we can avoid it.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d6251e123ce26320ed20ab740fcc54720ddef76","unresolved":false,"context_lines":[{"line_number":206,"context_line":"               group\u003dNone, group_snapshot\u003dNone, source_group\u003dNone,"},{"line_number":207,"context_line":"               backup\u003dNone):"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        # context.authorize(vol_policy.CREATE_FROM_IMAGE_POLICY)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        # Check up front for legacy replication parameters to quick fail"},{"line_number":212,"context_line":"        if source_replica:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_e8af0392","line":209,"updated":"2018-01-11 18:26:04.000000000","message":"This is an unrelated change - should split this out. I\u0027m assuming it was commented out for a reason.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e9f8e1d9433064342831882d5f5c45567afe094b","unresolved":false,"context_lines":[{"line_number":206,"context_line":"               group\u003dNone, group_snapshot\u003dNone, source_group\u003dNone,"},{"line_number":207,"context_line":"               backup\u003dNone):"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        # context.authorize(vol_policy.CREATE_FROM_IMAGE_POLICY)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        # Check up front for legacy replication parameters to quick fail"},{"line_number":212,"context_line":"        if source_replica:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_3c9a0d14","line":209,"in_reply_to":"7f96bb07_e8af0392","updated":"2018-01-11 22:04:50.000000000","message":"You\u0027re correct; this was uninentional","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d6251e123ce26320ed20ab740fcc54720ddef76","unresolved":false,"context_lines":[{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        utils.check_metadata_properties(metadata)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        if (volume_type and self._is_multiattach(volume_type)):"},{"line_number":290,"context_line":"            context.authorize(vol_policy.MULTIATTACH_POLICY)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        create_what \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_288f2b2b","line":289,"updated":"2018-01-11 18:26:04.000000000","message":"Since volume_type is not required and there is a default, we aren\u0027t checking the MULTIATTACH_POLICY here even if multiattach\u003dTrue.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e9f8e1d9433064342831882d5f5c45567afe094b","unresolved":false,"context_lines":[{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        utils.check_metadata_properties(metadata)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        if (volume_type and self._is_multiattach(volume_type)):"},{"line_number":290,"context_line":"            context.authorize(vol_policy.MULTIATTACH_POLICY)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        create_what \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_97cbfa51","line":289,"in_reply_to":"7f96bb07_288f2b2b","updated":"2018-01-11 22:04:50.000000000","message":"That\u0027s corrrect, that multiattach argument is deprecated here: https://review.openstack.org/#/c/531570/\n\nIf I were king of the world I would\u0027ve just deleted all that nonsense and made it go away but I know I can\u0027t do that so alas it\u0027s still there.  Also based on history some folks (hu-humm); get upset if old behaviors change or don\u0027t work even when new ones are introduced; so I ignore it and leave it alone for now.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"2669b44d8cb124684c7677bfecf29cdea141262f","unresolved":false,"context_lines":[{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        utils.check_metadata_properties(metadata)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        if (volume_type and self._is_multiattach(volume_type)):"},{"line_number":290,"context_line":"            context.authorize(vol_policy.MULTIATTACH_POLICY)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        create_what \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_8c73ece7","line":289,"in_reply_to":"7f96bb07_97cbfa51","updated":"2018-01-11 23:16:57.000000000","message":"To clarify my point above, the intent here is to allow those that are using that old busted junk to still use it and inform that that it\u0027s a bad idea and that option is deprecated and get things moved over to something a bit more sane and reasonable.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d6251e123ce26320ed20ab740fcc54720ddef76","unresolved":false,"context_lines":[{"line_number":1634,"context_line":"        # should consider an up front capabilities check to give fast feedback"},{"line_number":1635,"context_line":"        # rather than \"No hosts found\" and error status"},{"line_number":1636,"context_line":"        src_is_multiattach \u003d False"},{"line_number":1637,"context_line":"        if (volume.volume_type and"},{"line_number":1638,"context_line":"                self._is_multiattach(volume.volume_type)):"},{"line_number":1639,"context_line":"            src_is_multiattach \u003d True"},{"line_number":1640,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_28940b37","line":1637,"range":{"start_line":1637,"start_character":12,"end_line":1637,"end_character":30},"updated":"2018-01-11 18:26:04.000000000","message":"Can there be cases where a volume doesn\u0027t have a type?","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e9f8e1d9433064342831882d5f5c45567afe094b","unresolved":false,"context_lines":[{"line_number":1634,"context_line":"        # should consider an up front capabilities check to give fast feedback"},{"line_number":1635,"context_line":"        # rather than \"No hosts found\" and error status"},{"line_number":1636,"context_line":"        src_is_multiattach \u003d False"},{"line_number":1637,"context_line":"        if (volume.volume_type and"},{"line_number":1638,"context_line":"                self._is_multiattach(volume.volume_type)):"},{"line_number":1639,"context_line":"            src_is_multiattach \u003d True"},{"line_number":1640,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_17ddaa13","line":1637,"range":{"start_line":1637,"start_character":12,"end_line":1637,"end_character":30},"in_reply_to":"7f96bb07_28940b37","updated":"2018-01-11 22:04:50.000000000","message":"yeah, it\u0027s completely valid to not have a default type configured and thus volume.volume_type \u003d None","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d6251e123ce26320ed20ab740fcc54720ddef76","unresolved":false,"context_lines":[{"line_number":1636,"context_line":"        src_is_multiattach \u003d False"},{"line_number":1637,"context_line":"        if (volume.volume_type and"},{"line_number":1638,"context_line":"                self._is_multiattach(volume.volume_type)):"},{"line_number":1639,"context_line":"            src_is_multiattach \u003d True"},{"line_number":1640,"context_line":""},{"line_number":1641,"context_line":"        tgt_is_multiattach \u003d False"},{"line_number":1642,"context_line":"        if (vol_type and"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_c898076c","line":1639,"updated":"2018-01-11 18:26:04.000000000","message":"Why not just check the volume.multiattach attribute?","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"56ada137690bb4b0a1cdb0bbaadd0bfe10ba6942","unresolved":false,"context_lines":[{"line_number":1636,"context_line":"        src_is_multiattach \u003d False"},{"line_number":1637,"context_line":"        if (volume.volume_type and"},{"line_number":1638,"context_line":"                self._is_multiattach(volume.volume_type)):"},{"line_number":1639,"context_line":"            src_is_multiattach \u003d True"},{"line_number":1640,"context_line":""},{"line_number":1641,"context_line":"        tgt_is_multiattach \u003d False"},{"line_number":1642,"context_line":"        if (vol_type and"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_cb46737d","line":1639,"in_reply_to":"7f96bb07_b7f6368f","updated":"2018-01-15 18:11:14.000000000","message":"After coming back to this you\u0027re right; it\u0027s kinda stupid to go through the e-specs check rather than just rely on the flag.  I\u0027ve updated this to just check volume.multiattach on the source, thanks!","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e9f8e1d9433064342831882d5f5c45567afe094b","unresolved":false,"context_lines":[{"line_number":1636,"context_line":"        src_is_multiattach \u003d False"},{"line_number":1637,"context_line":"        if (volume.volume_type and"},{"line_number":1638,"context_line":"                self._is_multiattach(volume.volume_type)):"},{"line_number":1639,"context_line":"            src_is_multiattach \u003d True"},{"line_number":1640,"context_line":""},{"line_number":1641,"context_line":"        tgt_is_multiattach \u003d False"},{"line_number":1642,"context_line":"        if (vol_type and"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_b7f6368f","line":1639,"in_reply_to":"7f96bb07_c898076c","updated":"2018-01-11 22:04:50.000000000","message":"Valid point, I guess that since I was in the \"changing from Type A to Type B\" mode my brain just found it logical to check the type specification.\n\nUsing volume.multiattach on the src \"should\" work just fine but this was more expclicit and I didn\u0027t have to worry about some change sometime in the future impacting/breaking this.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d6251e123ce26320ed20ab740fcc54720ddef76","unresolved":false,"context_lines":[{"line_number":1649,"context_line":"                        \u0027multiattach are only allowed on available volumes, \u0027"},{"line_number":1650,"context_line":"                        \u0027the specified volume however currently has a status \u0027"},{"line_number":1651,"context_line":"                        \u0027of: %s.\u0027) % volume.status"},{"line_number":1652,"context_line":"                LOG.error(msg)"},{"line_number":1653,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":1654,"context_line":"            context.authorize(vol_policy.MULTIATTACH_POLICY)"},{"line_number":1655,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_28bdebb6","line":1652,"range":{"start_line":1652,"start_character":16,"end_line":1652,"end_character":30},"updated":"2018-01-11 18:26:04.000000000","message":"This isn\u0027t really an error, it\u0027s just something the API doesn\u0027t support - no need to page an operator in the middle of the night because a user screwed up.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e9f8e1d9433064342831882d5f5c45567afe094b","unresolved":false,"context_lines":[{"line_number":1649,"context_line":"                        \u0027multiattach are only allowed on available volumes, \u0027"},{"line_number":1650,"context_line":"                        \u0027the specified volume however currently has a status \u0027"},{"line_number":1651,"context_line":"                        \u0027of: %s.\u0027) % volume.status"},{"line_number":1652,"context_line":"                LOG.error(msg)"},{"line_number":1653,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":1654,"context_line":"            context.authorize(vol_policy.MULTIATTACH_POLICY)"},{"line_number":1655,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_172b6aeb","line":1652,"range":{"start_line":1652,"start_character":16,"end_line":1652,"end_character":30},"in_reply_to":"7f96bb07_28bdebb6","updated":"2018-01-11 22:04:50.000000000","message":"You\u0027re correct sir, I\u0027ll downgrade it to Info I think","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"c9adab3766b9bf6f02d37576aac685d12ba7e9e2","unresolved":false,"context_lines":[{"line_number":2055,"context_line":"        if vref.get(\u0027multiatach\u0027, False) and vref.status \u003d\u003d \u0027in-use\u0027:"},{"line_number":2056,"context_line":"            context.authorize(vol_policy.BOOTABLE_MULTIATTACH_POLICY)"},{"line_number":2057,"context_line":""},{"line_number":2058,"context_line":"        multiattach_allowed \u003d vref.multiattach if not vref.bootable else False"},{"line_number":2059,"context_line":""},{"line_number":2060,"context_line":"        # FIXME(JDG):  We want to be able to do things here like reserve a"},{"line_number":2061,"context_line":"        # volume for Nova to do BFV WHILE the volume may be in the process of"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_2833abad","line":2058,"range":{"start_line":2058,"start_character":8,"end_line":2058,"end_character":78},"updated":"2018-01-11 18:18:39.000000000","message":"Does this say that we allow multiattach only if the volume is not bootable? As by default we want to allow booting from multiattach volumes.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"2669b44d8cb124684c7677bfecf29cdea141262f","unresolved":false,"context_lines":[{"line_number":2055,"context_line":"        if vref.get(\u0027multiatach\u0027, False) and vref.status \u003d\u003d \u0027in-use\u0027:"},{"line_number":2056,"context_line":"            context.authorize(vol_policy.BOOTABLE_MULTIATTACH_POLICY)"},{"line_number":2057,"context_line":""},{"line_number":2058,"context_line":"        multiattach_allowed \u003d vref.multiattach if not vref.bootable else False"},{"line_number":2059,"context_line":""},{"line_number":2060,"context_line":"        # FIXME(JDG):  We want to be able to do things here like reserve a"},{"line_number":2061,"context_line":"        # volume for Nova to do BFV WHILE the volume may be in the process of"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_1f1ce068","line":2058,"range":{"start_line":2058,"start_character":8,"end_line":2058,"end_character":78},"in_reply_to":"7f96bb07_2833abad","updated":"2018-01-11 23:16:57.000000000","message":"Hmmm, yeah; I screwed with that a bit and broke the logic in the call while reworking the policy stuff that was requested.  That variable can go away now, because we catch the policy check above at line #2055","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d6251e123ce26320ed20ab740fcc54720ddef76","unresolved":false,"context_lines":[{"line_number":2055,"context_line":"        if vref.get(\u0027multiatach\u0027, False) and vref.status \u003d\u003d \u0027in-use\u0027:"},{"line_number":2056,"context_line":"            context.authorize(vol_policy.BOOTABLE_MULTIATTACH_POLICY)"},{"line_number":2057,"context_line":""},{"line_number":2058,"context_line":"        multiattach_allowed \u003d vref.multiattach if not vref.bootable else False"},{"line_number":2059,"context_line":""},{"line_number":2060,"context_line":"        # FIXME(JDG):  We want to be able to do things here like reserve a"},{"line_number":2061,"context_line":"        # volume for Nova to do BFV WHILE the volume may be in the process of"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_88d0bff9","line":2058,"range":{"start_line":2058,"start_character":8,"end_line":2058,"end_character":78},"in_reply_to":"7f96bb07_2833abad","updated":"2018-01-11 18:26:04.000000000","message":"Yeah I don\u0027t get this check - I expected to see the bootable policy check in the os-set_bootable API controller code, not when reserving an attachment.\n\nThe bootable check should happen here:\n\nhttps://github.com/openstack/cinder/blob/master/cinder/api/contrib/volume_actions.py#L363\n\nThat\u0027s regardless of attachments I think. Maybe there is confusion on what\u0027s being asked?","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"ae2d85da5ebc7840e4f3a6d61cbf7bd6cd6a077c","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def _is_multiattach(self, volume_type):"},{"line_number":197,"context_line":"        specs \u003d getattr(volume_type, \u0027extra_specs\u0027, {})"},{"line_number":198,"context_line":"        return specs.get(\u0027multiattach\u0027, False)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def create(self, context, size, name, description, snapshot\u003dNone,"},{"line_number":201,"context_line":"               image_id\u003dNone, volume_type\u003dNone, metadata\u003dNone,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_2d910048","line":198,"range":{"start_line":198,"start_character":15,"end_line":198,"end_character":46},"updated":"2018-01-16 18:37:51.000000000","message":"This now returns \u0027\u003cis\u003e True\u0027 as opposed to True which gets directly used in the following patch as the value for the \u0027multiattach\u0027 field.\n\nIf I\u0027m not mistaken then you will need to switch back to the previous version of the line, which was:\n\nspecs.get(\u0027multiattach\u0027, False) \u003d\u003d \u0027\u003cis\u003e True\u0027","commit_id":"5e2b5dfb750f195952bb1465e0f63e1f016c65b3"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"bf4232406def690a5cf2bb1a8471c7ffe4b53536","unresolved":false,"context_lines":[{"line_number":2051,"context_line":""},{"line_number":2052,"context_line":"        # Multiattach of bootable volumes is a special case with it\u0027s own"},{"line_number":2053,"context_line":"        # policy, check that here right off the bat"},{"line_number":2054,"context_line":"        if (vref.get(\u0027multiatach\u0027, False) and"},{"line_number":2055,"context_line":"                vref.status \u003d\u003d \u0027in-use\u0027 and"},{"line_number":2056,"context_line":"                vref.bootable):"},{"line_number":2057,"context_line":"            context.authorize("}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_3c771f05","line":2054,"range":{"start_line":2054,"start_character":22,"end_line":2054,"end_character":32},"updated":"2018-01-15 18:46:57.000000000","message":"s/multiatach/multiattach/","commit_id":"5e2b5dfb750f195952bb1465e0f63e1f016c65b3"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"194d53b8249a7d05264ca8aae0383f250d29262e","unresolved":false,"context_lines":[{"line_number":1649,"context_line":"                        \u0027multiattach are only allowed on available volumes, \u0027"},{"line_number":1650,"context_line":"                        \u0027the specified volume however currently has a status \u0027"},{"line_number":1651,"context_line":"                        \u0027of: %s.\u0027) % volume.status"},{"line_number":1652,"context_line":"                LOG.info(msg)"},{"line_number":1653,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":1654,"context_line":"            context.authorize(vol_policy.MULTIATTACH_POLICY)"},{"line_number":1655,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7f96bb07_e18695b9","line":1652,"range":{"start_line":1652,"start_character":15,"end_line":1652,"end_character":29},"updated":"2018-01-17 23:34:49.000000000","message":"This should probably be a LOG.error.  Again, not worth holding up the merge of this.","commit_id":"9a9eddabca3512d73cff180e72e0c1168fe0d4a3"}],"cinder/volume/drivers/lvm.py":[{"author":{"_account_id":25376,"name":"zhuangzejian","email":"zzj123389602@gmail.com","username":"smartu3"},"change_message_id":"f66c1535519106a1223ed2761e8bb4ebee57a76a","unresolved":false,"context_lines":[{"line_number":276,"context_line":"            total_volumes\u003dtotal_volumes,"},{"line_number":277,"context_line":"            filter_function\u003dself.get_filter_function(),"},{"line_number":278,"context_line":"            goodness_function\u003dself.get_goodness_function(),"},{"line_number":279,"context_line":"            multiattach\u003dTrue"},{"line_number":280,"context_line":"        ))"},{"line_number":281,"context_line":"        data[\"pools\"].append(single_pool)"},{"line_number":282,"context_line":"        data[\"shared_targets\"] \u003d False"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f91af0f_10ad0d9a","line":279,"range":{"start_line":279,"start_character":12,"end_line":279,"end_character":28},"updated":"2018-01-10 06:17:23.000000000","message":"Does LVM support multiattach? From link https://review.openstack.org/#/c/516859/\nAnd Matt\u0027s patch seems not to be merged.","commit_id":"c9342064c11bd97fbe6f0603399af0177963d64a"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"78025685256dc4841bb9347b92b3fd23cd92ff41","unresolved":false,"context_lines":[{"line_number":276,"context_line":"            total_volumes\u003dtotal_volumes,"},{"line_number":277,"context_line":"            filter_function\u003dself.get_filter_function(),"},{"line_number":278,"context_line":"            goodness_function\u003dself.get_goodness_function(),"},{"line_number":279,"context_line":"            multiattach\u003dTrue"},{"line_number":280,"context_line":"        ))"},{"line_number":281,"context_line":"        data[\"pools\"].append(single_pool)"},{"line_number":282,"context_line":"        data[\"shared_targets\"] \u003d False"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f96bb07_73bd4267","line":279,"range":{"start_line":279,"start_character":12,"end_line":279,"end_character":28},"in_reply_to":"9f91af0f_10ad0d9a","updated":"2018-01-10 20:50:15.000000000","message":"Ooops, yeah; this slipped in from my testing.  I\u0027ll change it back so we just use Matts patch for it.  Thanks","commit_id":"c9342064c11bd97fbe6f0603399af0177963d64a"}],"releasenotes/notes/add_multiattach_policies-8e0b22505ed6cbd8.yaml":[{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"c9adab3766b9bf6f02d37576aac685d12ba7e9e2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    policies, the first being a general policy to allow the creation or"},{"line_number":5,"context_line":"    retyping of multiattach volumes ``MULTIATTACH_POLICY``."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    The second policy if specifically for disallowing the ability to create"},{"line_number":8,"context_line":"    multiple attachments on a volume that is marked as bootable"},{"line_number":9,"context_line":"    ``BOOTABLE_MULTIATTACH_POLICY``."},{"line_number":10,"context_line":"upgrade:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7f96bb07_88cf5f7e","line":7,"range":{"start_line":7,"start_character":22,"end_line":7,"end_character":24},"updated":"2018-01-11 18:18:39.000000000","message":"is","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"56ada137690bb4b0a1cdb0bbaadd0bfe10ba6942","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    policies, the first being a general policy to allow the creation or"},{"line_number":5,"context_line":"    retyping of multiattach volumes ``MULTIATTACH_POLICY``."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    The second policy if specifically for disallowing the ability to create"},{"line_number":8,"context_line":"    multiple attachments on a volume that is marked as bootable"},{"line_number":9,"context_line":"    ``BOOTABLE_MULTIATTACH_POLICY``."},{"line_number":10,"context_line":"upgrade:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7f96bb07_ce0f61df","line":7,"range":{"start_line":7,"start_character":22,"end_line":7,"end_character":24},"in_reply_to":"7f96bb07_88cf5f7e","updated":"2018-01-15 18:11:14.000000000","message":"Done","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"c9adab3766b9bf6f02d37576aac685d12ba7e9e2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    policies, the first being a general policy to allow the creation or"},{"line_number":5,"context_line":"    retyping of multiattach volumes ``MULTIATTACH_POLICY``."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    The second policy if specifically for disallowing the ability to create"},{"line_number":8,"context_line":"    multiple attachments on a volume that is marked as bootable"},{"line_number":9,"context_line":"    ``BOOTABLE_MULTIATTACH_POLICY``."},{"line_number":10,"context_line":"upgrade:"},{"line_number":11,"context_line":"  - The default for these new policies is ADMIN_OR_OWNER be aware that if you"},{"line_number":12,"context_line":"    do NOT wish to support the multiattach options in your deployment or if"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7f96bb07_c8b567f0","line":9,"range":{"start_line":7,"start_character":4,"end_line":9,"end_character":36},"updated":"2018-01-11 18:18:39.000000000","message":"In the meeting today we talked about not allowing setting a multiattach volume bootable. In addition it makes sense to disallow multiple attachments to a bootable volume to be absolutely on the safe side.\n\nMeeting logs: http://eavesdrop.openstack.org/meetings/cinder_nova_api_changes/2018/cinder_nova_api_changes.2018-01-11-16.00.log.html#l-39","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e9f8e1d9433064342831882d5f5c45567afe094b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    policies, the first being a general policy to allow the creation or"},{"line_number":5,"context_line":"    retyping of multiattach volumes ``MULTIATTACH_POLICY``."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    The second policy if specifically for disallowing the ability to create"},{"line_number":8,"context_line":"    multiple attachments on a volume that is marked as bootable"},{"line_number":9,"context_line":"    ``BOOTABLE_MULTIATTACH_POLICY``."},{"line_number":10,"context_line":"upgrade:"},{"line_number":11,"context_line":"  - The default for these new policies is ADMIN_OR_OWNER be aware that if you"},{"line_number":12,"context_line":"    do NOT wish to support the multiattach options in your deployment or if"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7f96bb07_e9bb82e2","line":9,"range":{"start_line":7,"start_character":4,"end_line":9,"end_character":36},"in_reply_to":"7f96bb07_c8b567f0","updated":"2018-01-11 22:04:50.000000000","message":"I disagree","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"3be2bb8e5efb40abf5faadda4d7175b7716d7504","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    policies, the first being a general policy to allow the creation or"},{"line_number":5,"context_line":"    retyping of multiattach volumes ``MULTIATTACH_POLICY``."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    The second policy if specifically for disallowing the ability to create"},{"line_number":8,"context_line":"    multiple attachments on a volume that is marked as bootable"},{"line_number":9,"context_line":"    ``BOOTABLE_MULTIATTACH_POLICY``."},{"line_number":10,"context_line":"upgrade:"},{"line_number":11,"context_line":"  - The default for these new policies is ADMIN_OR_OWNER be aware that if you"},{"line_number":12,"context_line":"    do NOT wish to support the multiattach options in your deployment or if"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7f96bb07_dccf1bae","line":9,"range":{"start_line":7,"start_character":4,"end_line":9,"end_character":36},"in_reply_to":"7f96bb07_e9bb82e2","updated":"2018-01-15 18:27:39.000000000","message":"Discussed on IRC, agreed on the above.","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d6251e123ce26320ed20ab740fcc54720ddef76","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    multiple attachments on a volume that is marked as bootable"},{"line_number":9,"context_line":"    ``BOOTABLE_MULTIATTACH_POLICY``."},{"line_number":10,"context_line":"upgrade:"},{"line_number":11,"context_line":"  - The default for these new policies is ADMIN_OR_OWNER be aware that if you"},{"line_number":12,"context_line":"    do NOT wish to support the multiattach options in your deployment or if"},{"line_number":13,"context_line":"    you would like to restrict it\u0027s access while testing you\u0027ll need to"},{"line_number":14,"context_line":"    modify these policy rules."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7f96bb07_68f0d391","line":11,"range":{"start_line":11,"start_character":42,"end_line":11,"end_character":56},"updated":"2018-01-11 18:26:04.000000000","message":"; be aware...","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"56ada137690bb4b0a1cdb0bbaadd0bfe10ba6942","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    multiple attachments on a volume that is marked as bootable"},{"line_number":9,"context_line":"    ``BOOTABLE_MULTIATTACH_POLICY``."},{"line_number":10,"context_line":"upgrade:"},{"line_number":11,"context_line":"  - The default for these new policies is ADMIN_OR_OWNER be aware that if you"},{"line_number":12,"context_line":"    do NOT wish to support the multiattach options in your deployment or if"},{"line_number":13,"context_line":"    you would like to restrict it\u0027s access while testing you\u0027ll need to"},{"line_number":14,"context_line":"    modify these policy rules."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7f96bb07_0e06a9cf","line":11,"range":{"start_line":11,"start_character":42,"end_line":11,"end_character":56},"in_reply_to":"7f96bb07_68f0d391","updated":"2018-01-15 18:11:14.000000000","message":"Done","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"c9adab3766b9bf6f02d37576aac685d12ba7e9e2","unresolved":false,"context_lines":[{"line_number":10,"context_line":"upgrade:"},{"line_number":11,"context_line":"  - The default for these new policies is ADMIN_OR_OWNER be aware that if you"},{"line_number":12,"context_line":"    do NOT wish to support the multiattach options in your deployment or if"},{"line_number":13,"context_line":"    you would like to restrict it\u0027s access while testing you\u0027ll need to"},{"line_number":14,"context_line":"    modify these policy rules."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7f96bb07_c8aa4784","line":13,"range":{"start_line":13,"start_character":31,"end_line":13,"end_character":35},"updated":"2018-01-11 18:18:39.000000000","message":"its","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"56ada137690bb4b0a1cdb0bbaadd0bfe10ba6942","unresolved":false,"context_lines":[{"line_number":10,"context_line":"upgrade:"},{"line_number":11,"context_line":"  - The default for these new policies is ADMIN_OR_OWNER be aware that if you"},{"line_number":12,"context_line":"    do NOT wish to support the multiattach options in your deployment or if"},{"line_number":13,"context_line":"    you would like to restrict it\u0027s access while testing you\u0027ll need to"},{"line_number":14,"context_line":"    modify these policy rules."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7f96bb07_6e696d89","line":13,"range":{"start_line":13,"start_character":31,"end_line":13,"end_character":35},"in_reply_to":"7f96bb07_c8aa4784","updated":"2018-01-15 18:11:14.000000000","message":"Done","commit_id":"bb9a7ce86bc7f929318b1de9e665d0326ee06181"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8941a17138dc7bdb824b847b1cdc5ad384c0a716","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    multiple attachments on a volume that is marked as bootable, and is an"},{"line_number":10,"context_line":"    attachment policy with the name ``MULTIATTACH_BOOTABLE_VOLUME_POLICY``."},{"line_number":11,"context_line":"upgrade:"},{"line_number":12,"context_line":"  - The default for these new policies is ADMIN_OR_OWNER; be aware that if you"},{"line_number":13,"context_line":"    do NOT wish to support the multiattach options in your deployment or if"},{"line_number":14,"context_line":"    you would like to restrict its access while testing you\u0027ll need to"},{"line_number":15,"context_line":"    modify these policy rules."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"7f96bb07_1996c03f","line":12,"updated":"2018-01-17 01:07:55.000000000","message":"This will end up in a separate place in the generated release notes, so this isn\u0027t going to make much sense out of context.","commit_id":"2caa8de9f8b4a1491108af6ba724527a389a4c67"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d9c96e0a5cbec3e5809318bbdc136dc27d4c94c3","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    The second policy is specifically for disallowing the ability to create"},{"line_number":9,"context_line":"    multiple attachments on a volume that is marked as bootable, and is an"},{"line_number":10,"context_line":"    attachment policy with the name ``MULTIATTACH_BOOTABLE_VOLUME_POLICY``."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    The default for these new policies is ``ADMIN_OR_OWNER``; be aware that"},{"line_number":13,"context_line":"    if you wish to disable either of these policies for your users you will"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"5f93b717_a9bcb8bb","line":10,"range":{"start_line":10,"start_character":38,"end_line":10,"end_character":72},"updated":"2018-01-24 20:42:47.000000000","message":"This is not the actual policy rule, this is a variable name in code - totally different things.","commit_id":"f38e77cb181e1d94cfc8456f16600b0860419792"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b35258b3d69db34dd29a74a3c993c98202a23d32","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    The second policy is specifically for disallowing the ability to create"},{"line_number":9,"context_line":"    multiple attachments on a volume that is marked as bootable, and is an"},{"line_number":10,"context_line":"    attachment policy with the name ``MULTIATTACH_BOOTABLE_VOLUME_POLICY``."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    The default for these new policies is ``ADMIN_OR_OWNER``; be aware that"},{"line_number":13,"context_line":"    if you wish to disable either of these policies for your users you will"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"5f93b717_096ccc34","line":10,"range":{"start_line":10,"start_character":38,"end_line":10,"end_character":72},"in_reply_to":"5f93b717_a9bcb8bb","updated":"2018-01-24 20:49:23.000000000","message":"https://review.openstack.org/#/c/537652/","commit_id":"f38e77cb181e1d94cfc8456f16600b0860419792"}]}
