)]}'
{"specs/queens-template.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"88a00741376c031d6e6e8aeeee138946ec9c59c6","unresolved":false,"context_lines":[{"line_number":295,"context_line":"Describe any potential upgrade impact on the system, such as:"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"* If this change adds a new REST API microversion, how will the old"},{"line_number":298,"context_line":"  microversion be handled? What will the behavior be when N-1 nodes"},{"line_number":299,"context_line":"  make requests with the old microversion during an upgrade to N?"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"* If this change adds a database migration, how will old/existing"},{"line_number":302,"context_line":"  records be handled or updated? Is an online data migration needed?"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ffa3b31_413a94e7","line":299,"range":{"start_line":298,"start_character":27,"end_line":299,"end_character":65},"updated":"2017-04-13 20:54:33.000000000","message":"This is a bit specific to your case with compute nodes calling placement, but that\u0027s not normal.\n\nA more normal scenario is, control plane code relies on the compute node doing something. So the control plane code needs to check the minimum compute service version in the deployment before it can do that new thing. You could give an example here to clarify if you want, e.g. In Ocata, the FilterScheduler did not use the Placement service until all compute services where upgraded to at least Ocata.","commit_id":"ab2cb0111ccd4d3a178725fe3dd45201d8871291"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"de2804f04b3df940084b89a4750f728cdb3819be","unresolved":false,"context_lines":[{"line_number":294,"context_line":""},{"line_number":295,"context_line":"Describe any potential upgrade impact on the system, such as:"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"* If this change adds a new REST API microversion, how will the old"},{"line_number":298,"context_line":"  microversion be handled?"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"* If this change adds a database migration, how will old/existing"},{"line_number":301,"context_line":"  records be handled or updated? Is an online data migration needed?"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f1a1f67_e09f5d4d","line":298,"range":{"start_line":297,"start_character":2,"end_line":298,"end_character":26},"updated":"2017-07-19 22:37:38.000000000","message":"This is usually not an upgrade impact IMO. The point of the new microversion is to avoid changing behavior in the existing supported microversions. Upgrades usually shouldn\u0027t come into play.","commit_id":"975e66468a9e76d587f058edd5c717affa0cd093"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"de2804f04b3df940084b89a4750f728cdb3819be","unresolved":false,"context_lines":[{"line_number":297,"context_line":"* If this change adds a new REST API microversion, how will the old"},{"line_number":298,"context_line":"  microversion be handled?"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"* If this change adds a database migration, how will old/existing"},{"line_number":301,"context_line":"  records be handled or updated? Is an online data migration needed?"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"* If this change adds a new feature to the compute host that the API relies on,"},{"line_number":304,"context_line":"  the API will need to check the minimum compute service version in the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f1a1f67_20b315eb","line":301,"range":{"start_line":300,"start_character":2,"end_line":301,"end_character":68},"updated":"2017-07-19 22:37:38.000000000","message":"I think this is already covered in the \u0027Data model impact\u0027 section.","commit_id":"975e66468a9e76d587f058edd5c717affa0cd093"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"de2804f04b3df940084b89a4750f728cdb3819be","unresolved":false,"context_lines":[{"line_number":300,"context_line":"* If this change adds a database migration, how will old/existing"},{"line_number":301,"context_line":"  records be handled or updated? Is an online data migration needed?"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"* If this change adds a new feature to the compute host that the API relies on,"},{"line_number":304,"context_line":"  the API will need to check the minimum compute service version in the"},{"line_number":305,"context_line":"  deployment before using the new feature. For example, in Ocata, the"},{"line_number":306,"context_line":"  FilterScheduler did not use the Placement API until all compute services were"},{"line_number":307,"context_line":"  upgraded to at least Ocata."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f1a1f67_802d49ff","line":307,"range":{"start_line":303,"start_character":2,"end_line":307,"end_character":29},"updated":"2017-07-19 22:37:38.000000000","message":"If you remove the two above and are looking for more examples, you could also use the 2.49 microversion for tagged attach. In that case there was a new virt driver capabilities flag introduced in the compute. Similar with 2.51 and the volume-extended change, there was a new driver flag for it. In those cases we need to consider that the API supports a new microversion but not all of the computes do yet. Since we don\u0027t expose capabilities for the computes out of the API, and don\u0027t have RPC calls for most things, one solution is considering a new policy rule (we did that in Cinder for the attached volume extend feature) to allow operators to effectively disable the feature in their cloud if they can\u0027t support it yet until they are upgraded.","commit_id":"975e66468a9e76d587f058edd5c717affa0cd093"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bf75da3ddc8e03c93ec0a8350170fa59c7ac364b","unresolved":false,"context_lines":[{"line_number":300,"context_line":"* If this change adds a database migration, how will old/existing"},{"line_number":301,"context_line":"  records be handled or updated? Is an online data migration needed?"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"* If this change adds a new feature to the compute host that the API relies on,"},{"line_number":304,"context_line":"  the API will need to check the minimum compute service version in the"},{"line_number":305,"context_line":"  deployment before using the new feature. For example, in Ocata, the"},{"line_number":306,"context_line":"  FilterScheduler did not use the Placement API until all compute services were"},{"line_number":307,"context_line":"  upgraded to at least Ocata."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f287b81_359a0014","line":307,"range":{"start_line":303,"start_character":2,"end_line":307,"end_character":29},"in_reply_to":"1f1a1f67_802d49ff","updated":"2017-08-23 20:30:04.000000000","message":"Another thing we could add, after all the mixed-compute shenanigans with older computes overwriting allocations that the scheduler created, is mentioning that we support a mixed compute version deployment (N-1) so is there anything running on older compute service code that could impact what\u0027s being added, especially related to anything involving move operations like migrate/resize/unshelve/evacuate.","commit_id":"975e66468a9e76d587f058edd5c717affa0cd093"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"576bed34ed6856228b7274e0118b8784a74a30a1","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"* If this change is a new binary, how would it be deployed?"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"* Please state anything that those doing continuous deployment, or those"},{"line_number":276,"context_line":"  upgrading from the previous release, need to be aware of. Also describe"},{"line_number":277,"context_line":"  any plans to deprecate configuration values or features.  For example, if we"},{"line_number":278,"context_line":"  change the directory name that instances are stored in, how do we handle"},{"line_number":279,"context_line":"  instance directories created before the change landed?  Do we move them?  Do"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f4b6375_c8c0c853","line":276,"range":{"start_line":275,"start_character":62,"end_line":276,"end_character":39},"updated":"2017-10-19 12:04:27.000000000","message":"This can be removed now.","commit_id":"be10d16ac34861ea8cf66f5d337c38e833693d44"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a3f3bf61e7c2e99add0c317f74c7832821a15eb1","unresolved":false,"context_lines":[{"line_number":304,"context_line":"  uncommon for one virt driver to implement a new feature exposed out of the"},{"line_number":305,"context_line":"  API before the others. For example, extending the size of an attached"},{"line_number":306,"context_line":"  volume. Since Nova does not yet have any type of sophisticated *capabilities*"},{"line_number":307,"context_line":"  API so a user can know what actions can be performed on a given instance,"},{"line_number":308,"context_line":"  consider adding a new policy rule to at least let operators that cannot"},{"line_number":309,"context_line":"  support a virt-specific feature disable it in their cloud which is at least"},{"line_number":310,"context_line":"  presented to the user in an understandable way by getting a ``403 Forbidden``"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f4b6375_bc26f5b6","line":307,"range":{"start_line":307,"start_character":16,"end_line":307,"end_character":19},"updated":"2017-10-19 07:30:10.000000000","message":"s/can/can\u0027t/?","commit_id":"be10d16ac34861ea8cf66f5d337c38e833693d44"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"afc1a3a09c39f39e3a058f7e7df2e59b90edb0f3","unresolved":false,"context_lines":[{"line_number":304,"context_line":"  uncommon for one virt driver to implement a new feature exposed out of the"},{"line_number":305,"context_line":"  API before the others. For example, extending the size of an attached"},{"line_number":306,"context_line":"  volume. Since Nova does not yet have any type of sophisticated *capabilities*"},{"line_number":307,"context_line":"  API so a user can know what actions can be performed on a given instance,"},{"line_number":308,"context_line":"  consider adding a new policy rule to at least let operators that cannot"},{"line_number":309,"context_line":"  support a virt-specific feature disable it in their cloud which is at least"},{"line_number":310,"context_line":"  presented to the user in an understandable way by getting a ``403 Forbidden``"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f4b6375_c0abf8d3","line":307,"range":{"start_line":307,"start_character":16,"end_line":307,"end_character":19},"in_reply_to":"3f4b6375_bc26f5b6","updated":"2017-10-19 16:32:04.000000000","message":"I think \u0027can\u0027 is correct.  I believe the intent is for it to be grouped like this:\n\nSince Nova does not yet have any type of [sophisticated *capabilities* API so a user can know what actions can be performed on a given instance]\n\nand not like this:\n\nSince [Nova does not yet have any type of sophisticated *capabilities* API] so [a user can(\u0027t) know what actions can be performed on a given instance]\n\nThough this is a helluva sentence, and could probably stand to be split up into more readable chunks.","commit_id":"be10d16ac34861ea8cf66f5d337c38e833693d44"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"3f50fe7089fa0461a771197b61c913a426fdf598","unresolved":false,"context_lines":[{"line_number":305,"context_line":"  API before the others. For example, extending the size of an attached"},{"line_number":306,"context_line":"  volume. Since Nova does not yet have any type of sophisticated *capabilities*"},{"line_number":307,"context_line":"  API so a user can know what actions can be performed on a given instance,"},{"line_number":308,"context_line":"  consider adding a new policy rule to at least let operators that cannot"},{"line_number":309,"context_line":"  support a virt-specific feature disable it in their cloud which is at least"},{"line_number":310,"context_line":"  presented to the user in an understandable way by getting a ``403 Forbidden``"},{"line_number":311,"context_line":"  error."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f287b81_7497a3ed","line":308,"range":{"start_line":308,"start_character":11,"end_line":308,"end_character":35},"updated":"2017-08-31 15:41:46.000000000","message":"This isn\u0027t always possible if an existing API is being extended - for instance a xenapi operator can\u0027t just disable the interface attachment API because libvirt now supports tagged attachment. Not sure we need to mention this possibility since all it implies is catching a NotSupported exception in the API if the request lands on a virt driver that doesn\u0027t support it.","commit_id":"be10d16ac34861ea8cf66f5d337c38e833693d44"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"afc1a3a09c39f39e3a058f7e7df2e59b90edb0f3","unresolved":false,"context_lines":[{"line_number":305,"context_line":"  API before the others. For example, extending the size of an attached"},{"line_number":306,"context_line":"  volume. Since Nova does not yet have any type of sophisticated *capabilities*"},{"line_number":307,"context_line":"  API so a user can know what actions can be performed on a given instance,"},{"line_number":308,"context_line":"  consider adding a new policy rule to at least let operators that cannot"},{"line_number":309,"context_line":"  support a virt-specific feature disable it in their cloud which is at least"},{"line_number":310,"context_line":"  presented to the user in an understandable way by getting a ``403 Forbidden``"},{"line_number":311,"context_line":"  error."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f4b6375_e0c5d48f","line":308,"range":{"start_line":308,"start_character":11,"end_line":308,"end_character":35},"in_reply_to":"3f4b6375_07925bf7","updated":"2017-10-19 16:32:04.000000000","message":"You don\u0027t *have* to add a new policy rule.  The discussion here is a good example of what it would mean to \"consider\" it, hence that word choice.","commit_id":"be10d16ac34861ea8cf66f5d337c38e833693d44"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"460520e276e89478f0aa36c7af0ad18cf17bf977","unresolved":false,"context_lines":[{"line_number":305,"context_line":"  API before the others. For example, extending the size of an attached"},{"line_number":306,"context_line":"  volume. Since Nova does not yet have any type of sophisticated *capabilities*"},{"line_number":307,"context_line":"  API so a user can know what actions can be performed on a given instance,"},{"line_number":308,"context_line":"  consider adding a new policy rule to at least let operators that cannot"},{"line_number":309,"context_line":"  support a virt-specific feature disable it in their cloud which is at least"},{"line_number":310,"context_line":"  presented to the user in an understandable way by getting a ``403 Forbidden``"},{"line_number":311,"context_line":"  error."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f4b6375_07925bf7","line":308,"range":{"start_line":308,"start_character":11,"end_line":308,"end_character":35},"in_reply_to":"3f4b6375_a7d6e74e","updated":"2017-10-19 02:54:40.000000000","message":"So we\u0027d do a policy check similar to [L108] on [L118] as well, except for \u0027tagged_create\u0027 instead of just \u0027create\u0027?\n\n[L108] https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/attach_interfaces.py#L108\n[L118] https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/attach_interfaces.py#L118","commit_id":"be10d16ac34861ea8cf66f5d337c38e833693d44"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b13cce8b0c8a9592daa1698de0f34bc30f3dede","unresolved":false,"context_lines":[{"line_number":305,"context_line":"  API before the others. For example, extending the size of an attached"},{"line_number":306,"context_line":"  volume. Since Nova does not yet have any type of sophisticated *capabilities*"},{"line_number":307,"context_line":"  API so a user can know what actions can be performed on a given instance,"},{"line_number":308,"context_line":"  consider adding a new policy rule to at least let operators that cannot"},{"line_number":309,"context_line":"  support a virt-specific feature disable it in their cloud which is at least"},{"line_number":310,"context_line":"  presented to the user in an understandable way by getting a ``403 Forbidden``"},{"line_number":311,"context_line":"  error."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f4b6375_a7d6e74e","line":308,"range":{"start_line":308,"start_character":11,"end_line":308,"end_character":35},"in_reply_to":"7f287b81_7497a3ed","updated":"2017-10-19 02:28:47.000000000","message":"For that example, the policy rule wouldn\u0027t be on attaching interfaces, but on attaching interfaces with a tag.","commit_id":"be10d16ac34861ea8cf66f5d337c38e833693d44"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7c7b42fb5cc7588e3b97d88e880c0d114041f15e","unresolved":false,"context_lines":[{"line_number":306,"context_line":"  volume. Since Nova does not yet have any type of sophisticated *capabilities*"},{"line_number":307,"context_line":"  API so a user can know what actions can be performed on a given instance,"},{"line_number":308,"context_line":"  consider adding a new policy rule to at least let operators that cannot"},{"line_number":309,"context_line":"  support a virt-specific feature disable it in their cloud which is at least"},{"line_number":310,"context_line":"  presented to the user in an understandable way by getting a ``403 Forbidden``"},{"line_number":311,"context_line":"  error."},{"line_number":312,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f4b6375_13a8fd74","line":309,"range":{"start_line":309,"start_character":69,"end_line":309,"end_character":77},"updated":"2017-10-23 17:28:23.000000000","message":"This is the second \"at least\" in this sentence, which doesn\u0027t sound great.","commit_id":"be10d16ac34861ea8cf66f5d337c38e833693d44"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a3f3bf61e7c2e99add0c317f74c7832821a15eb1","unresolved":false,"context_lines":[{"line_number":307,"context_line":"  API so a user can know what actions can be performed on a given instance,"},{"line_number":308,"context_line":"  consider adding a new policy rule to at least let operators that cannot"},{"line_number":309,"context_line":"  support a virt-specific feature disable it in their cloud which is at least"},{"line_number":310,"context_line":"  presented to the user in an understandable way by getting a ``403 Forbidden``"},{"line_number":311,"context_line":"  error."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"* Nova supports N-1 version *nova-compute* services for rolling upgrades. Does"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f4b6375_dc565107","line":310,"range":{"start_line":310,"start_character":64,"end_line":310,"end_character":77},"updated":"2017-10-19 07:30:10.000000000","message":"may I ask why 403 is better than 400 which is just returned by some kind of NotImplementedException rasing?","commit_id":"be10d16ac34861ea8cf66f5d337c38e833693d44"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"73f404338122f41bd59249c76ce1885495a47a95","unresolved":false,"context_lines":[{"line_number":307,"context_line":"  API so a user can know what actions can be performed on a given instance,"},{"line_number":308,"context_line":"  consider adding a new policy rule to at least let operators that cannot"},{"line_number":309,"context_line":"  support a virt-specific feature disable it in their cloud which is at least"},{"line_number":310,"context_line":"  presented to the user in an understandable way by getting a ``403 Forbidden``"},{"line_number":311,"context_line":"  error."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"* Nova supports N-1 version *nova-compute* services for rolling upgrades. Does"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f4b6375_c103f741","line":310,"range":{"start_line":310,"start_character":64,"end_line":310,"end_character":77},"in_reply_to":"3f4b6375_0100ef66","updated":"2017-10-19 20:46:22.000000000","message":"If something is not implemented then yes, 400 is supposed to be the response, but if there\u0027s a policy rule that is explicitly set that says \"tell my users they can\u0027t do this\" then 403 is right.","commit_id":"be10d16ac34861ea8cf66f5d337c38e833693d44"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e1a7a282fbf3bb003ee845eb10e7eaa759913440","unresolved":false,"context_lines":[{"line_number":307,"context_line":"  API so a user can know what actions can be performed on a given instance,"},{"line_number":308,"context_line":"  consider adding a new policy rule to at least let operators that cannot"},{"line_number":309,"context_line":"  support a virt-specific feature disable it in their cloud which is at least"},{"line_number":310,"context_line":"  presented to the user in an understandable way by getting a ``403 Forbidden``"},{"line_number":311,"context_line":"  error."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"* Nova supports N-1 version *nova-compute* services for rolling upgrades. Does"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f4b6375_0100ef66","line":310,"range":{"start_line":310,"start_character":64,"end_line":310,"end_character":77},"in_reply_to":"3f4b6375_dc565107","updated":"2017-10-19 20:40:26.000000000","message":"Policy rules fail with a 403. Auth failures are a 401. We\u0027ve returned 501 Not Implemented in the past for things but it\u0027s not accurate:\n\nhttps://specs.openstack.org/openstack/api-wg/guidelines/http.html#use-of-501-not-implemented\n\nThat guideline says to return a 400. I think it just depends on where you check for it, is it via policy or via some rpc call to the backend code that raises NotImplementedError?","commit_id":"be10d16ac34861ea8cf66f5d337c38e833693d44"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bdaddc18905eb5ef66262b09b2a8d0b3202ae418","unresolved":false,"context_lines":[{"line_number":308,"context_line":"  consider adding a new policy rule to at least let operators that cannot"},{"line_number":309,"context_line":"  support a virt-specific feature disable it in their cloud which is at least"},{"line_number":310,"context_line":"  presented to the user in an understandable way by getting a ``403 Forbidden``"},{"line_number":311,"context_line":"  error."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"* Nova supports N-1 version *nova-compute* services for rolling upgrades. Does"},{"line_number":314,"context_line":"  the proposed change need to consider older code running that may impact how"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f4b6375_77c2d687","line":311,"updated":"2017-10-19 08:19:25.000000000","message":"Well, that bullet section is maybe something we should be discussing but I\u0027m not sure we could use it as an example. Anyway, just an opinion but I\u0027m fine with removing or modifying that section in a follow-up change.","commit_id":"be10d16ac34861ea8cf66f5d337c38e833693d44"}]}
