)]}'
{"specs/pike/approved/az-block-name-update.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9079b470ec730fd5a1d75fa583017763c10cc1ee","unresolved":false,"context_lines":[{"line_number":83,"context_line":"---------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"No changes from a REST perspective, but some change in the HTTP response on"},{"line_number":86,"context_line":"a specific case."},{"line_number":87,"context_line":"To be clear, we would return HTTP400 (mapped on"},{"line_number":88,"context_line":"InvalidAggregateActionUpdateMeta exception) instead of HTTP200 if some"},{"line_number":89,"context_line":"instances are still present."}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_84493b32","line":86,"range":{"start_line":86,"start_character":2,"end_line":86,"end_character":15},"updated":"2017-04-04 17:10:57.000000000","message":"Can we clarify which REST API this is for.\n\nIf you add/remove a host from an AZ related aggregate, is that allowed? Maybe only allowed when there are no instances on that host?","commit_id":"f5a23230ed72aa45c6e1b6525a26e883ba6e0f58"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9079b470ec730fd5a1d75fa583017763c10cc1ee","unresolved":false,"context_lines":[{"line_number":86,"context_line":"a specific case."},{"line_number":87,"context_line":"To be clear, we would return HTTP400 (mapped on"},{"line_number":88,"context_line":"InvalidAggregateActionUpdateMeta exception) instead of HTTP200 if some"},{"line_number":89,"context_line":"instances are still present."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"A microversion would signal that behavioural change."},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_a9b09844","line":89,"updated":"2017-04-04 17:10:57.000000000","message":"What about just always blocking the rename if there are any hosts in the aggregate?","commit_id":"f5a23230ed72aa45c6e1b6525a26e883ba6e0f58"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"b62ce95594eba4f5b7d3cc78ecdd63e63ec4bf75","unresolved":false,"context_lines":[{"line_number":88,"context_line":"InvalidAggregateActionUpdateMeta exception) instead of HTTP200 if some"},{"line_number":89,"context_line":"instances are still present."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"A microversion would signal that behavioural change."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Security impact"},{"line_number":94,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_4b6b4984","line":91,"updated":"2017-04-04 14:17:32.000000000","message":"Are you saying it would be true for all versions, but microversion just as a signal?","commit_id":"f5a23230ed72aa45c6e1b6525a26e883ba6e0f58"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":" Stop accepting to update AZ names if instances are there already"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/az-block-name-update"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_2a23f5a8","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":1},"updated":"2017-04-12 16:42:59.000000000","message":"You\u0027ve got a weird whitespace here.","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Availability zones (AZs) are just an abstract API model that doesn\u0027t correspond"},{"line_number":21,"context_line":"to some real object on the Nova side. Rather, it\u0027s just a Facade for exposing"},{"line_number":22,"context_line":"to end-users the value of a specific aggregate metadata key and thus allow"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_2a58952e","line":19,"updated":"2017-04-12 16:42:59.000000000","message":"nit: one too many blank lines","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Availability zones (AZs) are just an abstract API model that doesn\u0027t correspond"},{"line_number":21,"context_line":"to some real object on the Nova side. Rather, it\u0027s just a Facade for exposing"},{"line_number":22,"context_line":"to end-users the value of a specific aggregate metadata key and thus allow"},{"line_number":23,"context_line":"end-users to play with aggregates using certain rules."},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_ea662ded","line":21,"range":{"start_line":21,"start_character":13,"end_line":21,"end_character":19},"updated":"2017-04-12 16:42:59.000000000","message":"I think you\u0027re referring to something in the data model here, but using the word \u0027object\u0027 could be confusing.","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":25,"context_line":"The fact is that it\u0027s possible for an end-user to list all the availability"},{"line_number":26,"context_line":"zones and accordingly boot instances on some AZs. Unfortunately, as an operator"},{"line_number":27,"context_line":"can modify any metadata, it is possible to change the value of the"},{"line_number":28,"context_line":"availability_zone key for a specific aggregate and accordingly change what the"},{"line_number":29,"context_line":"user can see when looking at AZs. As a consequence, it\u0027s highly confusing. Say"},{"line_number":30,"context_line":"I\u0027m Alice and I want to boot an instance on AZ foo, I do that. Then, 2 weeks"},{"line_number":31,"context_line":"after, I want to start yet another server and I\u0027m looking up at AZ foo but"},{"line_number":32,"context_line":"can\u0027t find it. Why ? Eh, wait? Why my existing server is in AZ \u0027bar\u0027 ?"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_ead98d82","line":29,"range":{"start_line":28,"start_character":51,"end_line":29,"end_character":32},"updated":"2017-04-12 16:42:59.000000000","message":"The non-admin user can\u0027t see the metadata, so this is confusing.\n\nThe admin changes the aggregate metadata which affects the behavior of the AZ, but that\u0027s not something the user knows about until they try booting new instances into the same AZ or moving instances already in that AZ (to/from the AZ), right?","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"283e590fcff45d68d6019ce4bcf72a386f0e118a","unresolved":false,"context_lines":[{"line_number":25,"context_line":"The fact is that it\u0027s possible for an end-user to list all the availability"},{"line_number":26,"context_line":"zones and accordingly boot instances on some AZs. Unfortunately, as an operator"},{"line_number":27,"context_line":"can modify any metadata, it is possible to change the value of the"},{"line_number":28,"context_line":"availability_zone key for a specific aggregate and accordingly change what the"},{"line_number":29,"context_line":"user can see when looking at AZs. As a consequence, it\u0027s highly confusing. Say"},{"line_number":30,"context_line":"I\u0027m Alice and I want to boot an instance on AZ foo, I do that. Then, 2 weeks"},{"line_number":31,"context_line":"after, I want to start yet another server and I\u0027m looking up at AZ foo but"},{"line_number":32,"context_line":"can\u0027t find it. Why ? Eh, wait? Why my existing server is in AZ \u0027bar\u0027 ?"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_e01f3e6e","line":29,"range":{"start_line":28,"start_character":51,"end_line":29,"end_character":32},"in_reply_to":"bff0334d_ead98d82","updated":"2017-10-03 17:46:44.000000000","message":"Non-admin users can see a list of availability zones, I think.  So if the operator deletes one or renames it...","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":27,"context_line":"can modify any metadata, it is possible to change the value of the"},{"line_number":28,"context_line":"availability_zone key for a specific aggregate and accordingly change what the"},{"line_number":29,"context_line":"user can see when looking at AZs. As a consequence, it\u0027s highly confusing. Say"},{"line_number":30,"context_line":"I\u0027m Alice and I want to boot an instance on AZ foo, I do that. Then, 2 weeks"},{"line_number":31,"context_line":"after, I want to start yet another server and I\u0027m looking up at AZ foo but"},{"line_number":32,"context_line":"can\u0027t find it. Why ? Eh, wait? Why my existing server is in AZ \u0027bar\u0027 ?"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"See, there are a ton of implications when changing an AZ name. For example, yet"},{"line_number":35,"context_line":"another problem would be that Bob who is admin wanted to have all the instances"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_2a42d50f","line":32,"range":{"start_line":30,"start_character":63,"end_line":32,"end_character":70},"updated":"2017-04-12 16:42:59.000000000","message":"Maybe I\u0027m missing some detail here, but I thought you are talking about changing aggregate metadata which affects the behavior of the AZ, not renaming the AZ.","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"283e590fcff45d68d6019ce4bcf72a386f0e118a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"can modify any metadata, it is possible to change the value of the"},{"line_number":28,"context_line":"availability_zone key for a specific aggregate and accordingly change what the"},{"line_number":29,"context_line":"user can see when looking at AZs. As a consequence, it\u0027s highly confusing. Say"},{"line_number":30,"context_line":"I\u0027m Alice and I want to boot an instance on AZ foo, I do that. Then, 2 weeks"},{"line_number":31,"context_line":"after, I want to start yet another server and I\u0027m looking up at AZ foo but"},{"line_number":32,"context_line":"can\u0027t find it. Why ? Eh, wait? Why my existing server is in AZ \u0027bar\u0027 ?"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"See, there are a ton of implications when changing an AZ name. For example, yet"},{"line_number":35,"context_line":"another problem would be that Bob who is admin wanted to have all the instances"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_bb1a9b6c","line":32,"range":{"start_line":30,"start_character":63,"end_line":32,"end_character":70},"in_reply_to":"bff0334d_2a42d50f","updated":"2017-10-03 17:46:44.000000000","message":"An AZ is just a special kind of host aggregate, and the name of the AZ is stored as host aggregate metadata.","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"See, there are a ton of implications when changing an AZ name. For example, yet"},{"line_number":35,"context_line":"another problem would be that Bob who is admin wanted to have all the instances"},{"line_number":36,"context_line":"be in a specific AZ by default, so he gently did set default_schedule_zone to"},{"line_number":37,"context_line":"\"foo\". Unfortunately, Charlie wanted to rename \"foo\" into \"bar\". He did that,"},{"line_number":38,"context_line":"so kabooooom for all new instances which can\u0027t find \"foo\"."},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_6a0a1dd2","line":36,"range":{"start_line":36,"start_character":53,"end_line":36,"end_character":74},"updated":"2017-04-12 16:42:59.000000000","message":"Let\u0027s be clear that this is a config option.\n\nAlso, default_schedule_zone is not tested anywhere. We should fix that. And the config option help text does not say what happens if it\u0027s not set. I guess it\u0027s just the same as not specifying AZ at all, which I think then just defaults to default_availability_zone which is \u0027nova\u0027.\n\nThis is really confusing:\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2017-April/115355.html","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":35,"context_line":"another problem would be that Bob who is admin wanted to have all the instances"},{"line_number":36,"context_line":"be in a specific AZ by default, so he gently did set default_schedule_zone to"},{"line_number":37,"context_line":"\"foo\". Unfortunately, Charlie wanted to rename \"foo\" into \"bar\". He did that,"},{"line_number":38,"context_line":"so kabooooom for all new instances which can\u0027t find \"foo\"."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"All of that is very error-prone and since we don\u0027t expose the aggregate UUID"},{"line_number":41,"context_line":"for knowing the real value of an AZ, the only unique identifier is the name."}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_4a9d1908","line":38,"range":{"start_line":38,"start_character":21,"end_line":38,"end_character":58},"updated":"2017-04-12 16:42:59.000000000","message":"So Charlie renamed the AZ or changed the config option value?\n\nIt would maybe help if you explained how the rename happens with ``PUT /os-aggregates/{aggregate_id}`` requests or nova CLI commands showing this as an example.","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":37,"context_line":"\"foo\". Unfortunately, Charlie wanted to rename \"foo\" into \"bar\". He did that,"},{"line_number":38,"context_line":"so kabooooom for all new instances which can\u0027t find \"foo\"."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"All of that is very error-prone and since we don\u0027t expose the aggregate UUID"},{"line_number":41,"context_line":"for knowing the real value of an AZ, the only unique identifier is the name."},{"line_number":42,"context_line":"Yeah, terrible."},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_aa7945c5","line":40,"range":{"start_line":40,"start_character":43,"end_line":40,"end_character":76},"updated":"2017-04-12 16:42:59.000000000","message":"We do expose the aggregate uuid in microversion 2.41, but maybe you mean for the end user here?","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":59,"context_line":"proposed metadata differs from the existing metadata."},{"line_number":60,"context_line":"See nova.compute.api.is_safe_to_update_az() method for the current logic."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"As a consequence, it would return InvalidAggregateActionUpdateMeta exception"},{"line_number":63,"context_line":"for something we previously accepted, so I\u0027m gonna propose an API microversion"},{"line_number":64,"context_line":"for signaling that. If the asked microversion is older, then we would keep the"},{"line_number":65,"context_line":"legacy behaviour."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_ca2c89ad","line":65,"range":{"start_line":62,"start_character":0,"end_line":65,"end_character":17},"updated":"2017-04-12 16:42:59.000000000","message":"Isn\u0027t the legacy behavior broken? This almost sounds like more of a bug fix than a microversion. It might be worth asking in the operators list if anyone actually relies on this busted behavior, or if they\u0027d just like it fixed so they don\u0027t hurt their users.","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"283e590fcff45d68d6019ce4bcf72a386f0e118a","unresolved":false,"context_lines":[{"line_number":59,"context_line":"proposed metadata differs from the existing metadata."},{"line_number":60,"context_line":"See nova.compute.api.is_safe_to_update_az() method for the current logic."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"As a consequence, it would return InvalidAggregateActionUpdateMeta exception"},{"line_number":63,"context_line":"for something we previously accepted, so I\u0027m gonna propose an API microversion"},{"line_number":64,"context_line":"for signaling that. If the asked microversion is older, then we would keep the"},{"line_number":65,"context_line":"legacy behaviour."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_3b20eb9b","line":65,"range":{"start_line":62,"start_character":0,"end_line":65,"end_character":17},"in_reply_to":"bff0334d_ca2c89ad","updated":"2017-10-03 17:46:44.000000000","message":"For what it\u0027s worth, I agree that this is arguably a bugfix.","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6dd6035ad5ca9125206809956a167727d5f3cf81","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"We could expose the aggregate UUID besides the AZ name when listing all AZs"},{"line_number":71,"context_line":"and we could accept to pass an aggregate UUID instead of a string for"},{"line_number":72,"context_line":"specifying which AZ we want to boot in, but that\u0027s a very huge modification"},{"line_number":73,"context_line":"impacting a lot of APIs."}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf659307_3ba51105","line":70,"updated":"2018-03-27 14:41:45.000000000","message":"Microversion 2.41 shows the aggregate UUID in the API:\n\nhttps://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id37\n\nSo relying on UUID rather than name is possible now...","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":73,"context_line":"impacting a lot of APIs."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"We could also not accept to modify aggregate AZ metadata if there are already"},{"line_number":76,"context_line":"compute nodes within that aggregate, but we think it is preferrable to just"},{"line_number":77,"context_line":"destroy instances if you want to update the AZ metadata instead of trying to"},{"line_number":78,"context_line":"move the host to another aggregate which would be more impactful."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_252326a9","line":77,"range":{"start_line":76,"start_character":37,"end_line":77,"end_character":17},"updated":"2017-04-12 16:42:59.000000000","message":"I\u0027m not following here, surely we don\u0027t do this automatically. You mean we think it\u0027s preferable for the admin to migrate the instances first or something?","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8522dc3839296651af0e17de498af676405dae02","unresolved":false,"context_lines":[{"line_number":76,"context_line":"compute nodes within that aggregate, but we think it is preferrable to just"},{"line_number":77,"context_line":"destroy instances if you want to update the AZ metadata instead of trying to"},{"line_number":78,"context_line":"move the host to another aggregate which would be more impactful."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Data model impact"},{"line_number":81,"context_line":"-----------------"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf659307_63296999","line":79,"updated":"2018-03-29 05:23:14.000000000","message":"If the user changes the AZ metadata, can we change the hosts in that aggregate\u0027s AZ also. We can send a RPC call to the host, let the host update the instance\u0027s AZ also.","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"51b805f7765e05797418f13d8800d19584f32609","unresolved":false,"context_lines":[{"line_number":76,"context_line":"compute nodes within that aggregate, but we think it is preferrable to just"},{"line_number":77,"context_line":"destroy instances if you want to update the AZ metadata instead of trying to"},{"line_number":78,"context_line":"move the host to another aggregate which would be more impactful."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Data model impact"},{"line_number":81,"context_line":"-----------------"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf659307_9e117255","line":79,"in_reply_to":"bf659307_63296999","updated":"2018-03-29 05:25:37.000000000","message":"From the mail-list, Matt is looking for a backport solution. At least, this way isn\u0027t backportable","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":93,"context_line":"* ``set_metadata`` for modifying the AZ metadata"},{"line_number":94,"context_line":"* ``add_host`` for adding a host into an aggregate"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"If some instances are already in the aggregate related to this HTTP call or if"},{"line_number":97,"context_line":"the host to add into the aggregate is already having active instances, then"},{"line_number":98,"context_line":"the HTTP response will be HTTP400 (mapped on"},{"line_number":99,"context_line":"InvalidAggregateActionUpdateMeta exception) instead of HTTP200."},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_2571e6a8","line":97,"range":{"start_line":96,"start_character":73,"end_line":97,"end_character":69},"updated":"2017-04-12 16:42:59.000000000","message":"Why does adding the host into the aggregate break things? I can understand changing the metadata and thus the behavior of the aggregate is bad, but not sure about the host thing.","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"283e590fcff45d68d6019ce4bcf72a386f0e118a","unresolved":false,"context_lines":[{"line_number":93,"context_line":"* ``set_metadata`` for modifying the AZ metadata"},{"line_number":94,"context_line":"* ``add_host`` for adding a host into an aggregate"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"If some instances are already in the aggregate related to this HTTP call or if"},{"line_number":97,"context_line":"the host to add into the aggregate is already having active instances, then"},{"line_number":98,"context_line":"the HTTP response will be HTTP400 (mapped on"},{"line_number":99,"context_line":"InvalidAggregateActionUpdateMeta exception) instead of HTTP200."},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_8061aa14","line":97,"range":{"start_line":96,"start_character":73,"end_line":97,"end_character":69},"in_reply_to":"bff0334d_2571e6a8","updated":"2017-10-03 17:46:44.000000000","message":"Maybe the idea is that you\u0027re changing the AZ of the host, which could result in a mismatch between the new AZ and the AZ that the instance said it wanted to be in?","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":127,"context_line":"In order to allow operators to semantically \"rename\" AZs (ie. having instances"},{"line_number":128,"context_line":"to be seen in \"bar\" AZ instead of \"foo\") which is very terrible for end users,"},{"line_number":129,"context_line":"I still propose the following workaround :"},{"line_number":130,"context_line":"* create a new aggregate with AZ value equals to \"bar\" (let\u0027s call it agg-bar)"},{"line_number":131,"context_line":"* create a new aggregate with no AZ metadata (let\u0027s call agg-noaz)"},{"line_number":132,"context_line":"* Move hosts from the aggregate with \"foo\" (named agg-foo) to agg-noaz"},{"line_number":133,"context_line":"* Then, move host from agg-noaz to agg-bar"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_c5611ad5","line":130,"updated":"2017-04-12 16:42:59.000000000","message":"You need a blank line before the bullet list starts to render it properly.","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":129,"context_line":"I still propose the following workaround :"},{"line_number":130,"context_line":"* create a new aggregate with AZ value equals to \"bar\" (let\u0027s call it agg-bar)"},{"line_number":131,"context_line":"* create a new aggregate with no AZ metadata (let\u0027s call agg-noaz)"},{"line_number":132,"context_line":"* Move hosts from the aggregate with \"foo\" (named agg-foo) to agg-noaz"},{"line_number":133,"context_line":"* Then, move host from agg-noaz to agg-bar"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Good luck with your users if you still do that, because the related instances"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_a5b17646","line":132,"updated":"2017-04-12 16:42:59.000000000","message":"But above you said you can\u0027t add a host to an aggregate that has instances on it.","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":133,"context_line":"* Then, move host from agg-noaz to agg-bar"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Good luck with your users if you still do that, because the related instances"},{"line_number":136,"context_line":"will be having OS-EXT-AZ:availability_zone to be different, but meh you know"},{"line_number":137,"context_line":"what you do."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Developer impact"},{"line_number":140,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_257fa666","line":137,"range":{"start_line":136,"start_character":68,"end_line":137,"end_character":12},"updated":"2017-04-12 16:42:59.000000000","message":"Do you? If the API lets me shoot myself in the foot that doesn\u0027t mean I\u0027m trying to do it intentionally, it means I\u0027m trying to solve some kind of problem and the API let me do it. Shame on the API for that then.","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":156,"context_line":"Work Items"},{"line_number":157,"context_line":"----------"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* Modify is_safe_to_update_az to optionnally verify instances"},{"line_number":160,"context_line":"* Expose a new API microversion that would trigger that new behaviour for the"},{"line_number":161,"context_line":"  above os-aggregates REST resource"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_059a62b7","line":159,"range":{"start_line":159,"start_character":33,"end_line":159,"end_character":44},"updated":"2017-04-12 16:42:59.000000000","message":"optionally","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":157,"context_line":"----------"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* Modify is_safe_to_update_az to optionnally verify instances"},{"line_number":160,"context_line":"* Expose a new API microversion that would trigger that new behaviour for the"},{"line_number":161,"context_line":"  above os-aggregates REST resource"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_45f18a00","line":160,"updated":"2017-04-12 16:42:59.000000000","message":"This is kind of weird. Shouldn\u0027t we fix the bug as the default behavior in all microversions, and then if you really want to break things, you use the new microversion to opt into that behavior, like with a --force parameter or something?","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":168,"context_line":"Testing"},{"line_number":169,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Classic unittests should cover that. No Tempest tests need to be touched."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Documentation Impact"},{"line_number":174,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_05df0269","line":171,"updated":"2017-04-12 16:42:59.000000000","message":"Functional tests since it\u0027s a microversion.","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"786f9e5fa8084c3e560273aea00e08ab867fa407","unresolved":false,"context_lines":[{"line_number":173,"context_line":"Documentation Impact"},{"line_number":174,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"None."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"References"},{"line_number":179,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bff0334d_650a4ed2","line":176,"updated":"2017-04-12 16:42:59.000000000","message":"The in-tree API reference would need to be updated.\n\nWe might also have something in the admin guide for this.\n\nAnd:\n\nhttps://docs.openstack.org/developer/nova/aggregates.html\n\nhttps://docs.openstack.org/admin-guide/dashboard-manage-host-aggregates.html","commit_id":"eee941d9a46943dd087013ffb82fb1319b1e3cc8"}],"specs/pike/az-block-name-update.rst":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e5a60b05585db70504b3d20fc0f1fe06b5a786b6","unresolved":false,"context_lines":[{"line_number":55,"context_line":"We already have a mechanism for ensuring that you can\u0027t add a host into two"},{"line_number":56,"context_line":"distinct AZs by verifying when you update an aggregate metadate or when you"},{"line_number":57,"context_line":"add a host into an aggregate. I\u0027m proposing to augment that mechanism by"},{"line_number":58,"context_line":"verifying that the aggregate doesn\u0027t have running instances in it if the"},{"line_number":59,"context_line":"proposed metadata differs from the existing metadata."},{"line_number":60,"context_line":"See nova.compute.api.is_safe_to_update_az() method for the current logic."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a1ff146_59c61a4a","line":58,"range":{"start_line":58,"start_character":29,"end_line":58,"end_character":59},"updated":"2017-03-16 10:59:00.000000000","message":"Does the instance need to be ACTIVE? I guess renaming the AZ with non running instances also cause the same confusion you described above.","commit_id":"60bd99a23739cb224841c3cda9eafef913e26ff9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8e99a21f14c64448291b2727fea5a1187cb2267d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"We already have a mechanism for ensuring that you can\u0027t add a host into two"},{"line_number":56,"context_line":"distinct AZs by verifying when you update an aggregate metadate or when you"},{"line_number":57,"context_line":"add a host into an aggregate. I\u0027m proposing to augment that mechanism by"},{"line_number":58,"context_line":"verifying that the aggregate doesn\u0027t have running instances in it if the"},{"line_number":59,"context_line":"proposed metadata differs from the existing metadata."},{"line_number":60,"context_line":"See nova.compute.api.is_safe_to_update_az() method for the current logic."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a1ced50_9bc1b631","line":58,"range":{"start_line":58,"start_character":29,"end_line":58,"end_character":59},"in_reply_to":"3a1ff146_59c61a4a","updated":"2017-03-16 22:19:40.000000000","message":"Yeah, sorry, I meant \u0027existing instances\u0027.","commit_id":"60bd99a23739cb224841c3cda9eafef913e26ff9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e5a60b05585db70504b3d20fc0f1fe06b5a786b6","unresolved":false,"context_lines":[{"line_number":120,"context_line":"exposed in \"bar\" for users), I would propose to create a new aggregate with"},{"line_number":121,"context_line":"AZ value equals to \"bar\" and then move their hosts from the aggregate with"},{"line_number":122,"context_line":"\"foo\" to another aggregate having no AZ metadata, and then finally the"},{"line_number":123,"context_line":"aggregate with \"bar\"."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Developer impact"},{"line_number":126,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a1ff146_794af6c6","line":123,"updated":"2017-03-16 10:59:00.000000000","message":"+1","commit_id":"60bd99a23739cb224841c3cda9eafef913e26ff9"}]}
