)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"5337a9809418b0b82cedd0f501cc1161938053d4","unresolved":false,"context_lines":[{"line_number":11,"context_line":"information about availability zones across a deployment."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: If473431179f225a15cb7b975deab6b70a25f37b5"},{"line_number":14,"context_line":"Blueprint: availability-zone-real-data-model"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba3cc151_f3300158","line":14,"updated":"2015-07-03 13:54:36.000000000","message":"nit: actual link should be changed https://blueprints.launchpad.net/nova/+spec/make-availability-zone-real-data-model","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"}],"specs/liberty/approved/availability-zone-real-data-model.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The concept of the availability zone in Nova draws its roots from the AWS"},{"line_number":21,"context_line":"concept of the same name. It is intended to denote a group of hardware"},{"line_number":22,"context_line":"resources that share the same failure domain and service level. In other words,"},{"line_number":23,"context_line":"compute and network resources in multiple availability zones are guaranteed to"},{"line_number":24,"context_line":"not have any dependencies, from a power or connectivitity sense, to each other."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_f6a5d0a1","line":21,"updated":"2015-05-19 07:55:22.000000000","message":"but the AWS AZ is not the same ;-)","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":23,"context_line":"compute and network resources in multiple availability zones are guaranteed to"},{"line_number":24,"context_line":"not have any dependencies, from a power or connectivitity sense, to each other."},{"line_number":25,"context_line":"Applications that wish to mitigate single points of failure are encouraged to"},{"line_number":26,"context_line":"be deployed in multiple availability zones for redundancy purposes."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"From the beginning of Nova\u0027s code base, there has been the"},{"line_number":29,"context_line":"assumption in the Nova implementation that a database serving a Nova"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_b6d99824","line":26,"updated":"2015-05-19 07:55:22.000000000","message":"I think it\u0027s cool to provide that but you know, AZs are just for segregating nodes on an end-user view, that\u0027s it. Maybe just saying that is enough ?","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ecc7a61ee0401efc29109f8d84da9dbd7d2827fe","unresolved":false,"context_lines":[{"line_number":23,"context_line":"compute and network resources in multiple availability zones are guaranteed to"},{"line_number":24,"context_line":"not have any dependencies, from a power or connectivitity sense, to each other."},{"line_number":25,"context_line":"Applications that wish to mitigate single points of failure are encouraged to"},{"line_number":26,"context_line":"be deployed in multiple availability zones for redundancy purposes."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"From the beginning of Nova\u0027s code base, there has been the"},{"line_number":29,"context_line":"assumption in the Nova implementation that a database serving a Nova"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_6167b1e9","line":26,"in_reply_to":"7a016987_b6d99824","updated":"2015-05-20 15:12:58.000000000","message":"They should not be called availability zones, then. AZs really are failure domains.","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":35,"context_line":"instead of modifying Nova to store information about multiple availability"},{"line_number":36,"context_line":"zones, these API calls instead rely on iterating over the entire collection of"},{"line_number":37,"context_line":"compute node and service records in the database, and injecting configuration"},{"line_number":38,"context_line":"option values into the returned output."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"There are a number of CONF options that have to do with availability zones:"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_56326460","line":38,"updated":"2015-05-19 07:55:22.000000000","message":"again, maybe just explaining the above is enough ?","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":44,"context_line":"   host that does not belong to a host aggregate that doesn\u0027t have an"},{"line_number":45,"context_line":"   availability zone tagged to it\u0027s extra specs. Otherwise, this option is"},{"line_number":46,"context_line":"   entirely useless, and frankly, confusing due to the actual use of the other"},{"line_number":47,"context_line":"   related CONF options"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":" * `default_schedule_zone` -- This option is used by the scheduler to determine"},{"line_number":50,"context_line":"   which availability zone to place a new VM instance into if the user did not"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_05994cc4","line":47,"updated":"2015-05-19 07:55:22.000000000","message":"IMHO, both opts can be merged into one, but let me review your proposal below ;-)","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":49,"context_line":" * `default_schedule_zone` -- This option is used by the scheduler to determine"},{"line_number":50,"context_line":"   which availability zone to place a new VM instance into if the user did not"},{"line_number":51,"context_line":"   specify one. Only thing is... since the scheduler is only able to"},{"line_number":52,"context_line":"   communicate with a single availability zone (the one it is in), this option"},{"line_number":53,"context_line":"   is next to pointless and actually results in misunderstanding due to its"},{"line_number":54,"context_line":"   default value being None, which has caused bugs"},{"line_number":55,"context_line":"   (https://bugs.launchpad.net/nova/+bug/1451921) due to misunderstanding."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_c5b7b438","line":52,"updated":"2015-05-19 07:55:22.000000000","message":"why the scheduler is only able to communicate with a single AZ ? No ! The scheduler only cares about AZs within the AZFilter, that\u0027s it (unless I misunderstood your point)","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":52,"context_line":"   communicate with a single availability zone (the one it is in), this option"},{"line_number":53,"context_line":"   is next to pointless and actually results in misunderstanding due to its"},{"line_number":54,"context_line":"   default value being None, which has caused bugs"},{"line_number":55,"context_line":"   (https://bugs.launchpad.net/nova/+bug/1451921) due to misunderstanding."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":" * `internal_service_availability_zone` -- Nobody seems to understand at all"},{"line_number":58,"context_line":"   what this option does or was ever used for."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_455504f8","line":55,"updated":"2015-05-19 07:55:22.000000000","message":"formatting nit: please provide this bug as a footnote in the references section","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":55,"context_line":"   (https://bugs.launchpad.net/nova/+bug/1451921) due to misunderstanding."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":" * `internal_service_availability_zone` -- Nobody seems to understand at all"},{"line_number":58,"context_line":"   what this option does or was ever used for."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The intention of this blueprint/spec is to deprecate the"},{"line_number":61,"context_line":"`default_schedule_zone` and `internal_service_availability_zone` CONF options"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_85ebfc12","line":58,"updated":"2015-05-19 07:55:22.000000000","message":"Well, that just means that services (not compute services, but others) have by default this zone, which can be different (eg. \u0027internal\u0027 instead of \u0027nova\u0027)","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ecc7a61ee0401efc29109f8d84da9dbd7d2827fe","unresolved":false,"context_lines":[{"line_number":55,"context_line":"   (https://bugs.launchpad.net/nova/+bug/1451921) due to misunderstanding."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":" * `internal_service_availability_zone` -- Nobody seems to understand at all"},{"line_number":58,"context_line":"   what this option does or was ever used for."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The intention of this blueprint/spec is to deprecate the"},{"line_number":61,"context_line":"`default_schedule_zone` and `internal_service_availability_zone` CONF options"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_21b41933","line":58,"in_reply_to":"7a016987_85ebfc12","updated":"2015-05-20 15:12:58.000000000","message":"Actually, no, the internal service availability zone predates the Cell concept, and cells are actually the correct way of describing this concept now.","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":60,"context_line":"The intention of this blueprint/spec is to deprecate the"},{"line_number":61,"context_line":"`default_schedule_zone` and `internal_service_availability_zone` CONF options"},{"line_number":62,"context_line":"and add a system for Nova to record information about multiple availability"},{"line_number":63,"context_line":"zones in a known deployment."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Use Cases"},{"line_number":66,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_a5e2782d","line":63,"updated":"2015-05-19 07:55:22.000000000","message":"Well, since the AZ information is for end-users asking to get a compute node without knowing the aggregates segregation, I think it would be hard for him to understand that an host could be in multiple places.","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ecc7a61ee0401efc29109f8d84da9dbd7d2827fe","unresolved":false,"context_lines":[{"line_number":60,"context_line":"The intention of this blueprint/spec is to deprecate the"},{"line_number":61,"context_line":"`default_schedule_zone` and `internal_service_availability_zone` CONF options"},{"line_number":62,"context_line":"and add a system for Nova to record information about multiple availability"},{"line_number":63,"context_line":"zones in a known deployment."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Use Cases"},{"line_number":66,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_01eb5d14","line":63,"in_reply_to":"7a016987_a5e2782d","updated":"2015-05-20 15:12:58.000000000","message":"I don\u0027t quite understand the above. Could you rephrase?","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Project Priority"},{"line_number":75,"context_line":"-----------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"This spec does not address any project priority."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Proposed change"},{"line_number":80,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_05c70c97","line":77,"updated":"2015-05-19 07:55:22.000000000","message":"for the moment, but let\u0027s try \u0027scheduler\u0027 if needed ?","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":83,"context_line":"implementation inside of Nova, including:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":" * Determining how and where to store this higher-level information like"},{"line_number":86,"context_line":"   regions and availability zones, if not in the Nova database itself"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":" * Creating a real Nova object representing an availability zone"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_453f4487","line":86,"updated":"2015-05-19 07:55:22.000000000","message":"NOOOOOOOO ! Regions are keystone objects, please don\u0027t !","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":88,"context_line":" * Creating a real Nova object representing an availability zone"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":" * Actually have the Nova database (or some data store) keep records for known"},{"line_number":91,"context_line":"   availability zones"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":" * Having the Compute API return these AZ records instead of the bastardized"},{"line_number":94,"context_line":"   weirdness that is currently in nova/availability_zone.py"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_25444819","line":91,"updated":"2015-05-19 07:55:22.000000000","message":"this is redundant with the above bullet, nope ?","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":94,"context_line":"   weirdness that is currently in nova/availability_zone.py"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":" * Entirely detaching the concept of the Service (and ServiceGroup API) from"},{"line_number":97,"context_line":"   the concept of availability zones."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Alternatives"},{"line_number":100,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_e54ab025","line":97,"updated":"2015-05-19 07:55:22.000000000","message":"Huge plan, you don\u0027t think ?","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    CREATE TABLE availability_zones ("},{"line_number":122,"context_line":"        name VARCHAR(64) NOT NULL,"},{"line_number":123,"context_line":"        region VARCHAR(64) NOT NULL,"},{"line_number":124,"context_line":"        status_uri VARCHAR(200) NOT NULL,"},{"line_number":125,"context_line":"        PRIMARY KEY (name)"},{"line_number":126,"context_line":"    );"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_85609ca6","line":123,"updated":"2015-05-19 07:55:22.000000000","message":"-1 on storing the region. Regions and AZs are bananas and apples, there is no relationship now and I don\u0027t want that to be done.","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"The `os-availability-zone` API extension will be DEPRECATED."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Reason for deprecation: "},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"The information it displays is both incorrect and confusing. The"},{"line_number":136,"context_line":"information is incorrect because the `nova/availability_zones.py` module"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_5696e43f","line":133,"updated":"2015-05-19 07:55:22.000000000","message":"eh :)","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":139,"context_line":"in. For disabled services, it adds the availability zone to a set of"},{"line_number":140,"context_line":"unavailable zones. For enabled services, it adds the availability zone to a set"},{"line_number":141,"context_line":"of available zones.  This means the same availability zone can appear as *both*"},{"line_number":142,"context_line":"available and not available."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"In addition to the above incorrect returned data, the `os-availability-zone`"},{"line_number":145,"context_line":"API extension is Admin-Only. Why? Because it exposes information, including"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_05fcacb6","line":142,"updated":"2015-05-19 07:55:22.000000000","message":"While I totally agree on having the AZ helper module insane, I don\u0027t see a reason to deprecate the API...\n\nIf the helper module is broken, let\u0027s fix it, nope ?","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ecc7a61ee0401efc29109f8d84da9dbd7d2827fe","unresolved":false,"context_lines":[{"line_number":139,"context_line":"in. For disabled services, it adds the availability zone to a set of"},{"line_number":140,"context_line":"unavailable zones. For enabled services, it adds the availability zone to a set"},{"line_number":141,"context_line":"of available zones.  This means the same availability zone can appear as *both*"},{"line_number":142,"context_line":"available and not available."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"In addition to the above incorrect returned data, the `os-availability-zone`"},{"line_number":145,"context_line":"API extension is Admin-Only. Why? Because it exposes information, including"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_61c3318a","line":142,"in_reply_to":"7a016987_05fcacb6","updated":"2015-05-20 15:12:58.000000000","message":"See above. The *API* is what ties the AZ and the services database table together. The API is what needs to be changed completely.","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":166,"context_line":"`HEAD /availability_zones/{az_name}` will return status information about the"},{"line_number":167,"context_line":"availability zone as a returned `OpenStack-Compute-Availability-Zone` HTTP"},{"line_number":168,"context_line":"header with a value to be determined."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Security impact"},{"line_number":171,"context_line":"---------------"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_a5fef8ab","line":169,"updated":"2015-05-19 07:55:22.000000000","message":"You didn\u0027t mention the hell-ish relationship between an instance and an AZ, and I want *THAT* to be fixed.","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ecc7a61ee0401efc29109f8d84da9dbd7d2827fe","unresolved":false,"context_lines":[{"line_number":166,"context_line":"`HEAD /availability_zones/{az_name}` will return status information about the"},{"line_number":167,"context_line":"availability zone as a returned `OpenStack-Compute-Availability-Zone` HTTP"},{"line_number":168,"context_line":"header with a value to be determined."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Security impact"},{"line_number":171,"context_line":"---------------"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_e13de18f","line":169,"in_reply_to":"7a016987_a5fef8ab","updated":"2015-05-20 15:12:58.000000000","message":"Why? What is wrong with the instance.az column, other than it can be NULL?","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"321b00ad9055be7936832775a65a02c880247f44","unresolved":false,"context_lines":[{"line_number":215,"context_line":"out known availability zones, and storing found availability zone records"},{"line_number":216,"context_line":"in local database storage. This system could run in a background thread"},{"line_number":217,"context_line":"from the `nova-api-os-compute` endpoint, or it could run as a separate"},{"line_number":218,"context_line":"daemon process (`nova-az-discoverd`?)."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Assignee(s)"},{"line_number":221,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_450d04e7","line":218,"updated":"2015-05-19 07:55:22.000000000","message":"I think you\u0027re overthinking the problem : there are problems with the AZs but that\u0027s not a reason for just throwing baby with the bath water.","commit_id":"86e9f7c1a13a0854e26153d83dcf7735b82a2974"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":21,"context_line":"concept of the same name. It is intended to denote a group of hardware"},{"line_number":22,"context_line":"resources that share the same failure domain and service level. In other words,"},{"line_number":23,"context_line":"compute and network resources in multiple availability zones are guaranteed to"},{"line_number":24,"context_line":"not have any dependencies, from a power or connectivitity sense, to each other."},{"line_number":25,"context_line":"Applications that wish to mitigate single points of failure are encouraged to"},{"line_number":26,"context_line":"be deployed in multiple availability zones for redundancy purposes."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_48a66a54","line":24,"updated":"2015-06-08 13:39:17.000000000","message":"I am not sure thats actually true. Its just \"some availability or locality\" concept the deployer choses to expose.\n\nNow it should mean something more than that, but I think thats what this spec can really help with.","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"b85ea431624e6d25e64b0e6a59e063ec1473db5e","unresolved":false,"context_lines":[{"line_number":21,"context_line":"concept of the same name. It is intended to denote a group of hardware"},{"line_number":22,"context_line":"resources that share the same failure domain and service level. In other words,"},{"line_number":23,"context_line":"compute and network resources in multiple availability zones are guaranteed to"},{"line_number":24,"context_line":"not have any dependencies, from a power or connectivitity sense, to each other."},{"line_number":25,"context_line":"Applications that wish to mitigate single points of failure are encouraged to"},{"line_number":26,"context_line":"be deployed in multiple availability zones for redundancy purposes."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da20952f_1a70543f","line":24,"updated":"2015-09-06 05:28:37.000000000","message":"s/connectivitity/connectivity/","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a7170a68e7b72ac0c751a753ea0b51b5ebc63a78","unresolved":false,"context_lines":[{"line_number":21,"context_line":"concept of the same name. It is intended to denote a group of hardware"},{"line_number":22,"context_line":"resources that share the same failure domain and service level. In other words,"},{"line_number":23,"context_line":"compute and network resources in multiple availability zones are guaranteed to"},{"line_number":24,"context_line":"not have any dependencies, from a power or connectivitity sense, to each other."},{"line_number":25,"context_line":"Applications that wish to mitigate single points of failure are encouraged to"},{"line_number":26,"context_line":"be deployed in multiple availability zones for redundancy purposes."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a26ad4f_22e27904","line":24,"in_reply_to":"da20952f_1a70543f","updated":"2015-10-28 01:59:07.000000000","message":"I agree with John, at the moment, the concept of AZs is purely abstract, and really depends on the cloud deployment and what the operator did to provide failure domains.\nIn a basic deployment, providing 2 aggregates set as AZs means that the failure domain will be the host, not more than that.\n\nIt\u0027s 100% up to the deployer to make sure that those aggregates/AZs are mapped with his effort to make failure domains more than hosts","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"From the beginning of Nova\u0027s code base, there has been the"},{"line_number":29,"context_line":"assumption in the Nova implementation that a database serving a Nova"},{"line_number":30,"context_line":"installation would only ever serve a single availability zone. This makes"},{"line_number":31,"context_line":"sense, since the database is viewed as one of those things that should not be"},{"line_number":32,"context_line":"shared between availability zones, in order to preserve the original idea of"},{"line_number":33,"context_line":"availability zone isolation. Over time, however, the Nova API developed some"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_e83bd6e9","line":30,"updated":"2015-06-08 13:39:17.000000000","message":"That detail has long since been lost though :(","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a7170a68e7b72ac0c751a753ea0b51b5ebc63a78","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"From the beginning of Nova\u0027s code base, there has been the"},{"line_number":29,"context_line":"assumption in the Nova implementation that a database serving a Nova"},{"line_number":30,"context_line":"installation would only ever serve a single availability zone. This makes"},{"line_number":31,"context_line":"sense, since the database is viewed as one of those things that should not be"},{"line_number":32,"context_line":"shared between availability zones, in order to preserve the original idea of"},{"line_number":33,"context_line":"availability zone isolation. Over time, however, the Nova API developed some"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a26ad4f_42a1b5a8","line":30,"in_reply_to":"3afb71cf_e83bd6e9","updated":"2015-10-28 01:59:07.000000000","message":"By default, all AZs share the same controplane, right? So, unless it\u0027s a cells deployment with AZs mapping child cells, it means that all AZs will share the same MQ and DB.","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":35,"context_line":"instead of modifying Nova to store information about multiple availability"},{"line_number":36,"context_line":"zones, these API calls instead rely on iterating over the entire collection of"},{"line_number":37,"context_line":"compute node and service records in the database, and injecting configuration"},{"line_number":38,"context_line":"option values into the returned output."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"There are a number of CONF options that have to do with availability zones:"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_e844f674","line":38,"updated":"2015-06-08 13:39:17.000000000","message":"I think you give us too much credit here. Its a massive kludge, to hack in what some folks wanted.","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a7170a68e7b72ac0c751a753ea0b51b5ebc63a78","unresolved":false,"context_lines":[{"line_number":36,"context_line":"zones, these API calls instead rely on iterating over the entire collection of"},{"line_number":37,"context_line":"compute node and service records in the database, and injecting configuration"},{"line_number":38,"context_line":"option values into the returned output."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"There are a number of CONF options that have to do with availability zones:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":" * `default_availability_zone` -- This option is ONLY ever used in the GET"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a26ad4f_8276ed3c","line":39,"updated":"2015-10-28 01:59:07.000000000","message":"I\u0027m a bit unclear IMHO : are you trying to explain that AZs should map a controlplane isolation, or are you wanting to explain that it only cares about a dataplan isolation ?","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":60,"context_line":"The intention of this blueprint/spec is to deprecate the"},{"line_number":61,"context_line":"`default_schedule_zone` and `internal_service_availability_zone` CONF options"},{"line_number":62,"context_line":"and add a system for Nova to record information about multiple availability"},{"line_number":63,"context_line":"zones in a known deployment."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Use Cases"},{"line_number":66,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_fb027e08","line":63,"updated":"2015-06-08 13:39:17.000000000","message":"Nit: I guess this should really go in the proposed change section","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":61,"context_line":"`default_schedule_zone` and `internal_service_availability_zone` CONF options"},{"line_number":62,"context_line":"and add a system for Nova to record information about multiple availability"},{"line_number":63,"context_line":"zones in a known deployment."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Use Cases"},{"line_number":66,"context_line":"----------"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_fb927e4a","line":64,"updated":"2015-06-08 13:39:17.000000000","message":"So I think just copying availability zones is a missed opportunity.\n\nIt would be better to support different nesting levels, so you can link to that level when specifying affinity with sever groups (or some concept that replaces those).\n\nIts possible you might want Network vs Network+Power+Cooling AZ, or something like that. Folks had better examples around setting up hadoop clusters or some such.","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":69,"context_line":"availability zones that are in the OpenStack deployment."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"As an operator, I want each Nova availability zone to be able to discover"},{"line_number":72,"context_line":"information about other availability zones within all regions in a deployment."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Project Priority"},{"line_number":75,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_9b14aa44","line":72,"updated":"2015-06-08 13:39:17.000000000","message":"I don\u0027t know what you mean by this really?","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a7170a68e7b72ac0c751a753ea0b51b5ebc63a78","unresolved":false,"context_lines":[{"line_number":69,"context_line":"availability zones that are in the OpenStack deployment."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"As an operator, I want each Nova availability zone to be able to discover"},{"line_number":72,"context_line":"information about other availability zones within all regions in a deployment."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Project Priority"},{"line_number":75,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a26ad4f_a2d8c91e","line":72,"in_reply_to":"3afb71cf_9b14aa44","updated":"2015-10-28 01:59:07.000000000","message":"+1","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a7170a68e7b72ac0c751a753ea0b51b5ebc63a78","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Project Priority"},{"line_number":75,"context_line":"-----------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"This spec does not address any project priority."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Proposed change"},{"line_number":80,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a26ad4f_e2f56183","line":77,"updated":"2015-10-28 01:59:07.000000000","message":"Now you can remove that","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"533241531790bb7f8fd50ee4e5233c373701604f","unresolved":false,"context_lines":[{"line_number":83,"context_line":"implementation inside of Nova, including:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":" * Determining how and where to store this higher-level information like"},{"line_number":86,"context_line":"   regions and availability zones, if not in the Nova database itself"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":" * Creating a real Nova object representing an availability zone"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5afe65bd_5d4b165a","line":86,"updated":"2015-06-01 21:16:59.000000000","message":"At this point I agree with bauzas that regions aren\u0027t a concept Nova should care about.  Perhaps that will change later, but it seems outside the scope of this.\n\nI think availability zones should be kept in the api database that we now have for cells.\n\nIf we want some enforcement in Nova of separation of failure domains, then splitting where we split databases and message queues makes sense.  So a cell becomes an AZ, or at least a cell boundary lines up with an AZ boundary (multiple cells could be in an AZ).  This does have some huge ramifications for how current deployments need to set up their cells if this is enforced so it may not be feasible to do.","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a7170a68e7b72ac0c751a753ea0b51b5ebc63a78","unresolved":false,"context_lines":[{"line_number":83,"context_line":"implementation inside of Nova, including:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":" * Determining how and where to store this higher-level information like"},{"line_number":86,"context_line":"   regions and availability zones, if not in the Nova database itself"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":" * Creating a real Nova object representing an availability zone"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a26ad4f_6265d143","line":86,"in_reply_to":"3afb71cf_5ba0729f","updated":"2015-10-28 01:59:07.000000000","message":"Yeah, I think we could have a nice integration with the cells v2 effort by saying :\n- leave the AZs be abstractive and leave the oerator define what subset of hosts he wants to have for an AZ\n- provide a way for operators to have a better controlplane resiliency by using v2 cells as a way to mitigate DB and MQ failures and map that with AZs\n- do the crap to make that AZ API better - and sure, there are many things that need to be done still","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":83,"context_line":"implementation inside of Nova, including:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":" * Determining how and where to store this higher-level information like"},{"line_number":86,"context_line":"   regions and availability zones, if not in the Nova database itself"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":" * Creating a real Nova object representing an availability zone"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_5ba0729f","line":86,"in_reply_to":"5afe65bd_5d4b165a","updated":"2015-06-08 13:39:17.000000000","message":"+1\n\nKeep regions out of it. I think thats where we need total independence, with optional shared keystone or at least some shared identity system behind keystone.\n\nBut this feels like an API database concept.","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":85,"context_line":" * Determining how and where to store this higher-level information like"},{"line_number":86,"context_line":"   regions and availability zones, if not in the Nova database itself"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":" * Creating a real Nova object representing an availability zone"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":" * Actually have the Nova database (or some data store) keep records for known"},{"line_number":91,"context_line":"   availability zones"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_5bae3286","line":88,"updated":"2015-06-08 13:39:17.000000000","message":"I am tempted to say the availability zone just references a group of host_aggregates?","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":88,"context_line":" * Creating a real Nova object representing an availability zone"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":" * Actually have the Nova database (or some data store) keep records for known"},{"line_number":91,"context_line":"   availability zones"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":" * Having the Compute API return these AZ records instead of the bastardized"},{"line_number":94,"context_line":"   weirdness that is currently in nova/availability_zone.py"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_5bdcf211","line":91,"updated":"2015-06-08 13:39:17.000000000","message":"API database seems like the correct place.","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":" * Entirely detaching the concept of the Service (and ServiceGroup API) from"},{"line_number":97,"context_line":"   the concept of availability zones."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Alternatives"},{"line_number":100,"context_line":"------------"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_fb071e7f","line":98,"updated":"2015-06-08 13:39:17.000000000","message":"+ deprecating the above configs","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"fd632df492bbb44c6f344d8dda4b760418b7a25b","unresolved":false,"context_lines":[{"line_number":113,"context_line":"There shall be new `nova.objects.AvailabilityZone` and"},{"line_number":114,"context_line":"`nova.objects.AvailabilityZoneList` objects."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The database shall get a new table called `availability_zones`, with the"},{"line_number":117,"context_line":"proposed schema:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":".. code:: sql"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a016987_6139f1d6","line":116,"updated":"2015-05-20 15:06:54.000000000","message":"Note that \"The database\" here is not the Nova database necessarily. It could/should be the \"nova api database\" that API cells use. AZ information is similar to the cell-\u003einstance_id mapping table in Cells v2, and the nova api database that stores this information is a natural fit for this information.","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":113,"context_line":"There shall be new `nova.objects.AvailabilityZone` and"},{"line_number":114,"context_line":"`nova.objects.AvailabilityZoneList` objects."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The database shall get a new table called `availability_zones`, with the"},{"line_number":117,"context_line":"proposed schema:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":".. code:: sql"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_1b61da39","line":116,"in_reply_to":"7a016987_6139f1d6","updated":"2015-06-08 13:39:17.000000000","message":"+1","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    CREATE TABLE availability_zones ("},{"line_number":122,"context_line":"        name VARCHAR(64) NOT NULL,"},{"line_number":123,"context_line":"        region VARCHAR(64) NOT NULL,"},{"line_number":124,"context_line":"        status_uri VARCHAR(200) NOT NULL,"},{"line_number":125,"context_line":"        PRIMARY KEY (name)"},{"line_number":126,"context_line":"    );"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_dbb6a289","line":123,"updated":"2015-06-08 13:39:17.000000000","message":"Not sure I like this being here, can\u0027t we talk about this separately?","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    CREATE TABLE availability_zones ("},{"line_number":122,"context_line":"        name VARCHAR(64) NOT NULL,"},{"line_number":123,"context_line":"        region VARCHAR(64) NOT NULL,"},{"line_number":124,"context_line":"        status_uri VARCHAR(200) NOT NULL,"},{"line_number":125,"context_line":"        PRIMARY KEY (name)"},{"line_number":126,"context_line":"    );"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_7b856eab","line":124,"updated":"2015-06-08 13:39:17.000000000","message":"really? what is that?","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":128,"context_line":"REST API impact"},{"line_number":129,"context_line":"---------------"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"The `os-availability-zone` API extension will be DEPRECATED."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Reason for deprecation:"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_9ee818e4","line":131,"updated":"2015-06-08 13:39:17.000000000","message":"can\u0027t we evolve the old one somehow? that would be way less disruptive to our API users, I think?","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        \u0027availability_zones\u0027: ["},{"line_number":158,"context_line":"            {"},{"line_number":159,"context_line":"                \u0027name\u0027: \u003caz_name\u003e,"},{"line_number":160,"context_line":"                \u0027region\u0027: \u003cregion_name\u003e,"},{"line_number":161,"context_line":"                \u0027status_uri\u0027: \u003curi_for_status_info\u003e"},{"line_number":162,"context_line":"            }, ..."},{"line_number":163,"context_line":"        ]"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_9bdcaae5","line":160,"updated":"2015-06-08 13:39:17.000000000","message":"-1\n\nI am not sure we should know that, its a keystone concept really.\n\nWhile it might make sense, maybe lets talk about that in a separate spec?","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"533241531790bb7f8fd50ee4e5233c373701604f","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"`HEAD /availability_zones/{az_name}` will return status information about the"},{"line_number":167,"context_line":"availability zone as a returned `OpenStack-Compute-Availability-Zone` HTTP"},{"line_number":168,"context_line":"header with a value to be determined."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Security impact"},{"line_number":171,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5afe65bd_bd80ca47","line":168,"updated":"2015-06-01 21:16:59.000000000","message":"Is there a reason to put this into a header rather than a response body?","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"`HEAD /availability_zones/{az_name}` will return status information about the"},{"line_number":167,"context_line":"availability zone as a returned `OpenStack-Compute-Availability-Zone` HTTP"},{"line_number":168,"context_line":"header with a value to be determined."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Security impact"},{"line_number":171,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_bbebe677","line":168,"in_reply_to":"5afe65bd_bd80ca47","updated":"2015-06-08 13:39:17.000000000","message":"+1 seems confusing to have that so different to every other API.","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"28f95575051ac773daf0a03b273cd40c48fc3d99","unresolved":false,"context_lines":[{"line_number":166,"context_line":"`HEAD /availability_zones/{az_name}` will return status information about the"},{"line_number":167,"context_line":"availability zone as a returned `OpenStack-Compute-Availability-Zone` HTTP"},{"line_number":168,"context_line":"header with a value to be determined."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Security impact"},{"line_number":171,"context_line":"---------------"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_fb34befb","line":169,"updated":"2015-06-08 13:39:17.000000000","message":"What are we doing about API for adding and removing AZs?","commit_id":"a66b2593609504f098f8fe73aa5a49098b06dcf4"}]}
