)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":14,"context_line":"the flavor may have been deleted/recreated in the meantime or the"},{"line_number":15,"context_line":"flavor extra-specs may have been modified."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"DocImpact: The flavor field in the server details will change as of"},{"line_number":18,"context_line":"microversion 2.47 to contain a subset of the flavor details rather"},{"line_number":19,"context_line":"than a link to the flavor."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"df140735_18fda1b0","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":9},"updated":"2017-06-01 21:55:27.000000000","message":"This will generate a nova bug - is there something we\u0027ll actually need to document for this besides what\u0027s going to be in the in-tree docs like the API reference? Like, does something need to change in openstack-manuals? If not, remove this.","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4b492c53095b2d3b8b0b6ebd040375f91b2c132a","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Implements: blueprint instance-flavor-api"},{"line_number":18,"context_line":"Change-Id: If646149efb7eec8c90bf7d07c39ff4c495349941"},{"line_number":19,"context_line":"Depends-On: Ic98d7dd2f44796279e18083a8c423aed0066d177"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"df140735_b970db09","line":19,"updated":"2017-06-02 15:59:21.000000000","message":"You don\u0027t need a depends-on if this change is on top of the dependency.","commit_id":"221a1d2db38d14ffc538f74ae4cca34e49822b13"}],"api-ref/source/parameters.yaml":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"2d6c06f9991d172a7ea75f103ccec399d55e4e2d","unresolved":false,"context_lines":[{"line_number":2211,"context_line":"    - ``ram``: The amount of RAM a flavor has, in MiB."},{"line_number":2212,"context_line":"    - ``disk``: The size of the root disk in GiB."},{"line_number":2213,"context_line":"    - ``ephemeral``: The size of the ephemeral disk in GiB."},{"line_number":2214,"context_line":"    - ``swap``: The size of the dedicated swap disk in GiB."},{"line_number":2215,"context_line":"    - ``rxtx_factor``: The receive / transmit factor (as a float) that will be set on"},{"line_number":2216,"context_line":"      ports if the network backend supports the QOS extension.  Not visible if the user"},{"line_number":2217,"context_line":"      is prevented from retrieving it by policy."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5ff73747_0e4d25c3","line":2214,"range":{"start_line":2214,"start_character":16,"end_line":2214,"end_character":58},"updated":"2017-04-28 06:39:34.000000000","message":"I think it\u0027s MiB\nhttps://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L3171","commit_id":"f0656cb8590df807504d4a0ef8b862ea6c61fa6e"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"7fe189791720499b3cef70105f91f9982d97f316","unresolved":false,"context_lines":[{"line_number":2211,"context_line":"    - ``ram``: The amount of RAM a flavor has, in MiB."},{"line_number":2212,"context_line":"    - ``disk``: The size of the root disk in GiB."},{"line_number":2213,"context_line":"    - ``ephemeral``: The size of the ephemeral disk in GiB."},{"line_number":2214,"context_line":"    - ``swap``: The size of the dedicated swap disk in GiB."},{"line_number":2215,"context_line":"    - ``rxtx_factor``: The receive / transmit factor (as a float) that will be set on"},{"line_number":2216,"context_line":"      ports if the network backend supports the QOS extension.  Not visible if the user"},{"line_number":2217,"context_line":"      is prevented from retrieving it by policy."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5ff73747_54a5f245","line":2214,"range":{"start_line":2214,"start_character":16,"end_line":2214,"end_character":58},"in_reply_to":"5ff73747_0e4d25c3","updated":"2017-04-28 15:09:09.000000000","message":"Yep, you\u0027re right.  Good catch.  I\u0027ve submitted https://review.openstack.org/461074 to fix up the \"flavor_swap\" description below.","commit_id":"f0656cb8590df807504d4a0ef8b862ea6c61fa6e"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"f89f064a90316cd9d15f21e52e3076e2f9281c40","unresolved":false,"context_lines":[{"line_number":2222,"context_line":"  in: body"},{"line_number":2223,"context_line":"  required: true"},{"line_number":2224,"context_line":"  type: object"},{"line_number":2225,"context_line":"  min_version: 2.46"},{"line_number":2226,"context_line":"flavor_swap:"},{"line_number":2227,"context_line":"  description: |"},{"line_number":2228,"context_line":"    The size of a dedicated swap disk that will be allocated, in"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"1f013ff3_eb8ef82c","line":2225,"updated":"2017-05-15 19:04:16.000000000","message":"The documentation principle for complex objects inside the server body has been that every field needs to be documented independently, with the name being \"object.field\" like server_groups.name or os-extended-volumes:volumes_attached.id","commit_id":"cce8f87da6518b1226eb80ffdad062df3d6f5444"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ac9e25e5bda746348fd7a73f113bac89827fe346","unresolved":false,"context_lines":[{"line_number":1995,"context_line":"    only be included if the user is allowed by policy to index flavor"},{"line_number":1996,"context_line":"    extra_specs."},{"line_number":1997,"context_line":"  in: body"},{"line_number":1998,"context_line":"  required: true"},{"line_number":1999,"context_line":"  type: object"},{"line_number":2000,"context_line":"fault:"},{"line_number":2001,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"df140735_0f36d504","line":1998,"range":{"start_line":1998,"start_character":12,"end_line":1998,"end_character":16},"updated":"2017-05-30 07:39:08.000000000","message":"this should be false.","commit_id":"a5c650ee9a8f0ac4c0d2df5b3cd310a8143173e4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":1988,"context_line":"  in: body"},{"line_number":1989,"context_line":"  required: true"},{"line_number":1990,"context_line":"  type: object"},{"line_number":1991,"context_line":"extra_specs_2:"},{"line_number":1992,"context_line":"  min_version: 2.47"},{"line_number":1993,"context_line":"  description: |"},{"line_number":1994,"context_line":"    A dictionary of the flavor\u0027s extra-specs key-and-value pairs.  This will"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"df140735_d868491e","line":1991,"range":{"start_line":1991,"start_character":12,"end_line":1991,"end_character":13},"updated":"2017-06-01 21:55:27.000000000","message":"I tend to like a naming convention that ties it to the microversion rather than just incrementing which is hard to identify later. So would have something like:\n\nextra_specs_2_47\n\nSame throughout.","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":1991,"context_line":"extra_specs_2:"},{"line_number":1992,"context_line":"  min_version: 2.47"},{"line_number":1993,"context_line":"  description: |"},{"line_number":1994,"context_line":"    A dictionary of the flavor\u0027s extra-specs key-and-value pairs.  This will"},{"line_number":1995,"context_line":"    only be included if the user is allowed by policy to index flavor"},{"line_number":1996,"context_line":"    extra_specs."},{"line_number":1997,"context_line":"  in: body"},{"line_number":1998,"context_line":"  required: false"},{"line_number":1999,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"df140735_58cf9955","line":1996,"range":{"start_line":1994,"start_character":67,"end_line":1996,"end_character":16},"updated":"2017-06-01 21:55:27.000000000","message":"Does this mean the \"extra_specs\" won\u0027t be in the nested flavor dict in the response body? Or the key will be there, but the value will be null or {} or something?\n\n\u003clater\u003e\n\nAfter reading the code I guess this means it\u0027s omitted altogether, which is probably better than including the key with a null or {} value when that might not really be the case.","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":2107,"context_line":"  required: true"},{"line_number":2108,"context_line":"  type: integer"},{"line_number":2109,"context_line":"  description: |"},{"line_number":2110,"context_line":"    The number of virtual CPUs that will be allocated to the server."},{"line_number":2111,"context_line":"flavor_disabled:"},{"line_number":2112,"context_line":"  in: body"},{"line_number":2113,"context_line":"  required: false"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"df140735_b8fd956f","line":2110,"range":{"start_line":2110,"start_character":36,"end_line":2110,"end_character":43},"updated":"2017-06-01 21:55:27.000000000","message":"were?","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":2132,"context_line":"  required: true"},{"line_number":2133,"context_line":"  type: integer"},{"line_number":2134,"context_line":"  description: |"},{"line_number":2135,"context_line":"    The size of the root disk that will be created in GiB. If 0 the"},{"line_number":2136,"context_line":"    root disk will be set to exactly the size of the image used to"},{"line_number":2137,"context_line":"    deploy the instance. However, in this case filter scheduler cannot"},{"line_number":2138,"context_line":"    select the compute host based on the virtual image size. Therefore,"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"df140735_38f18596","line":2135,"range":{"start_line":2135,"start_character":35,"end_line":2135,"end_character":42},"updated":"2017-06-01 21:55:27.000000000","message":"was? Maybe we don\u0027t need to care about this level of detail, I just keep thinking about how these are descriptions for a flavor nested within an existing server, so it\u0027s more past-tense in my head.","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":2134,"context_line":"  description: |"},{"line_number":2135,"context_line":"    The size of the root disk that will be created in GiB. If 0 the"},{"line_number":2136,"context_line":"    root disk will be set to exactly the size of the image used to"},{"line_number":2137,"context_line":"    deploy the instance. However, in this case filter scheduler cannot"},{"line_number":2138,"context_line":"    select the compute host based on the virtual image size. Therefore,"},{"line_number":2139,"context_line":"    0 should only be used for volume booted instances or for testing"},{"line_number":2140,"context_line":"    purposes."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"df140735_9837714e","line":2137,"range":{"start_line":2137,"start_character":37,"end_line":2137,"end_character":41},"updated":"2017-06-01 21:55:27.000000000","message":"the case the filter scheduler?\n\nI realize this is a typo in the description above too.","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":2135,"context_line":"    The size of the root disk that will be created in GiB. If 0 the"},{"line_number":2136,"context_line":"    root disk will be set to exactly the size of the image used to"},{"line_number":2137,"context_line":"    deploy the instance. However, in this case filter scheduler cannot"},{"line_number":2138,"context_line":"    select the compute host based on the virtual image size. Therefore,"},{"line_number":2139,"context_line":"    0 should only be used for volume booted instances or for testing"},{"line_number":2140,"context_line":"    purposes."},{"line_number":2141,"context_line":"flavor_ephem_disk:"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"df140735_78401da6","line":2138,"range":{"start_line":2138,"start_character":11,"end_line":2138,"end_character":14},"updated":"2017-06-01 21:55:27.000000000","message":"a","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":2145,"context_line":"  description: |"},{"line_number":2146,"context_line":"    The size of the ephemeral disk that will be created, in"},{"line_number":2147,"context_line":"    GiB. Ephemeral disks may be written over on server state"},{"line_number":2148,"context_line":"    changes. So should only be used as a scratch space for"},{"line_number":2149,"context_line":"    applications that are aware of its limitations. Defaults to 0."},{"line_number":2150,"context_line":"flavor_ephem_disk_2:"},{"line_number":2151,"context_line":"  min_version: 2.47"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"df140735_181c81bf","line":2148,"range":{"start_line":2148,"start_character":11,"end_line":2148,"end_character":15},"updated":"2017-06-01 21:55:27.000000000","message":"on server state changes so should only be used\n\nI know this is also wrong above.","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":2174,"context_line":"  in: body"},{"line_number":2175,"context_line":"  required: true"},{"line_number":2176,"context_line":"  type: string"},{"line_number":2177,"context_line":"flavor_extra_spec_key_3:"},{"line_number":2178,"context_line":"  description: |"},{"line_number":2179,"context_line":"    The extra spec key of a flavor."},{"line_number":2180,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"df140735_384d05c4","line":2177,"range":{"start_line":2177,"start_character":22,"end_line":2177,"end_character":23},"updated":"2017-06-01 21:55:27.000000000","message":"2_47","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4b492c53095b2d3b8b0b6ebd040375f91b2c132a","unresolved":false,"context_lines":[{"line_number":2132,"context_line":"  required: true"},{"line_number":2133,"context_line":"  type: integer"},{"line_number":2134,"context_line":"  description: |"},{"line_number":2135,"context_line":"    The size of the root disk that was created in GiB. If 0 the"},{"line_number":2136,"context_line":"    root disk will be set to exactly the size of the image used to"},{"line_number":2137,"context_line":"    deploy the instance. However, in this case the filter scheduler cannot"},{"line_number":2138,"context_line":"    select a compute host based on the virtual image size. Therefore,"},{"line_number":2139,"context_line":"    0 should only be used for volume booted instances or for testing"},{"line_number":2140,"context_line":"    purposes."},{"line_number":2141,"context_line":"flavor_ephem_disk:"},{"line_number":2142,"context_line":"  in: body"},{"line_number":2143,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"df140735_39eccb8d","line":2140,"range":{"start_line":2135,"start_character":55,"end_line":2140,"end_character":13},"updated":"2017-06-02 15:59:21.000000000","message":"If we\u0027re going with past tense, just remove this part. It\u0027s unnecessary detail for a flavor already embedded in an instance.","commit_id":"221a1d2db38d14ffc538f74ae4cca34e49822b13"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"0241f55495b483629848bf97c5bf99a9ed6781a2","unresolved":false,"context_lines":[{"line_number":1991,"context_line":"extra_specs_2_47:"},{"line_number":1992,"context_line":"  min_version: 2.47"},{"line_number":1993,"context_line":"  description: |"},{"line_number":1994,"context_line":"    A dictionary of the flavor\u0027s extra-specs key-and-value pairs.  This will"},{"line_number":1995,"context_line":"    only be included if the user is allowed by policy to index flavor"},{"line_number":1996,"context_line":"    extra_specs."},{"line_number":1997,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_d1f6c3d7","line":1994,"updated":"2017-06-02 18:36:51.000000000","message":"pretty sure key/value pairs is easier to read and more common than \"key-and-value pairs\". But maybe you\u0027re just speaking Canadian, eh?","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"bff666ace1fe478978b3eabbe4c40cd315a3ee49","unresolved":false,"context_lines":[{"line_number":2107,"context_line":"  required: true"},{"line_number":2108,"context_line":"  type: integer"},{"line_number":2109,"context_line":"  description: |"},{"line_number":2110,"context_line":"    The number of virtual CPUs that were allocated to the server."},{"line_number":2111,"context_line":"flavor_disabled:"},{"line_number":2112,"context_line":"  in: body"},{"line_number":2113,"context_line":"  required: false"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_f122e751","line":2110,"range":{"start_line":2110,"start_character":36,"end_line":2110,"end_character":40},"updated":"2017-06-02 18:39:09.000000000","message":"Why here should be \"were\" instead of \"are\" ?","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"01ab9e311c62176af4f1d12996afc456073ef2a1","unresolved":false,"context_lines":[{"line_number":2107,"context_line":"  required: true"},{"line_number":2108,"context_line":"  type: integer"},{"line_number":2109,"context_line":"  description: |"},{"line_number":2110,"context_line":"    The number of virtual CPUs that were allocated to the server."},{"line_number":2111,"context_line":"flavor_disabled:"},{"line_number":2112,"context_line":"  in: body"},{"line_number":2113,"context_line":"  required: false"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_310bbf7d","line":2110,"range":{"start_line":2110,"start_character":36,"end_line":2110,"end_character":40},"in_reply_to":"df140735_f122e751","updated":"2017-06-02 18:43:25.000000000","message":"Because this is a flavor embedded in an existing server, so the CPUs were already allocated.","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"aeb9a5dba4188cf47707a09d8dc3d9613e969b67","unresolved":false,"context_lines":[{"line_number":2107,"context_line":"  required: true"},{"line_number":2108,"context_line":"  type: integer"},{"line_number":2109,"context_line":"  description: |"},{"line_number":2110,"context_line":"    The number of virtual CPUs that were allocated to the server."},{"line_number":2111,"context_line":"flavor_disabled:"},{"line_number":2112,"context_line":"  in: body"},{"line_number":2113,"context_line":"  required: false"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_717a57f1","line":2110,"range":{"start_line":2110,"start_character":36,"end_line":2110,"end_character":40},"in_reply_to":"df140735_f122e751","updated":"2017-06-02 18:46:53.000000000","message":"It might actually be clearest as \"The number of virtual CPUs allocated to the server\" and then we don\u0027t need to worry about tense.","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"bff666ace1fe478978b3eabbe4c40cd315a3ee49","unresolved":false,"context_lines":[{"line_number":2132,"context_line":"  required: true"},{"line_number":2133,"context_line":"  type: integer"},{"line_number":2134,"context_line":"  description: |"},{"line_number":2135,"context_line":"    The size of the root disk that was created in GiB."},{"line_number":2136,"context_line":"flavor_ephem_disk:"},{"line_number":2137,"context_line":"  in: body"},{"line_number":2138,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_9115ebe7","line":2135,"range":{"start_line":2135,"start_character":35,"end_line":2135,"end_character":38},"updated":"2017-06-02 18:39:09.000000000","message":"ditto","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"aeb9a5dba4188cf47707a09d8dc3d9613e969b67","unresolved":false,"context_lines":[{"line_number":2132,"context_line":"  required: true"},{"line_number":2133,"context_line":"  type: integer"},{"line_number":2134,"context_line":"  description: |"},{"line_number":2135,"context_line":"    The size of the root disk that was created in GiB."},{"line_number":2136,"context_line":"flavor_ephem_disk:"},{"line_number":2137,"context_line":"  in: body"},{"line_number":2138,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_517f53df","line":2135,"range":{"start_line":2135,"start_character":35,"end_line":2135,"end_character":38},"in_reply_to":"df140735_9115ebe7","updated":"2017-06-02 18:46:53.000000000","message":"Similarly this could be \"The size of the root disk in GiB.\"","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"01ab9e311c62176af4f1d12996afc456073ef2a1","unresolved":false,"context_lines":[{"line_number":2132,"context_line":"  required: true"},{"line_number":2133,"context_line":"  type: integer"},{"line_number":2134,"context_line":"  description: |"},{"line_number":2135,"context_line":"    The size of the root disk that was created in GiB."},{"line_number":2136,"context_line":"flavor_ephem_disk:"},{"line_number":2137,"context_line":"  in: body"},{"line_number":2138,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_1110bba7","line":2135,"range":{"start_line":2135,"start_character":35,"end_line":2135,"end_character":38},"in_reply_to":"df140735_9115ebe7","updated":"2017-06-02 18:43:25.000000000","message":"same","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"bff666ace1fe478978b3eabbe4c40cd315a3ee49","unresolved":false,"context_lines":[{"line_number":2148,"context_line":"  required: true"},{"line_number":2149,"context_line":"  type: integer"},{"line_number":2150,"context_line":"  description: |"},{"line_number":2151,"context_line":"    The size of the ephemeral disk that was created, in GiB."},{"line_number":2152,"context_line":"flavor_ephem_disk_in:"},{"line_number":2153,"context_line":"  in: body"},{"line_number":2154,"context_line":"  required: false"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_b1ed8ff1","line":2151,"range":{"start_line":2151,"start_character":40,"end_line":2151,"end_character":43},"updated":"2017-06-02 18:39:09.000000000","message":"ditto","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"0241f55495b483629848bf97c5bf99a9ed6781a2","unresolved":false,"context_lines":[{"line_number":2168,"context_line":"  type: string"},{"line_number":2169,"context_line":"flavor_extra_spec_key_2_47:"},{"line_number":2170,"context_line":"  description: |"},{"line_number":2171,"context_line":"    The extra spec key of a flavor."},{"line_number":2172,"context_line":"  in: body"},{"line_number":2173,"context_line":"  required: true"},{"line_number":2174,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_b1ffcfa9","line":2171,"updated":"2017-06-02 18:36:51.000000000","message":"This should really be \"The key of a flavor extra spec\"","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"aeb9a5dba4188cf47707a09d8dc3d9613e969b67","unresolved":false,"context_lines":[{"line_number":2168,"context_line":"  type: string"},{"line_number":2169,"context_line":"flavor_extra_spec_key_2_47:"},{"line_number":2170,"context_line":"  description: |"},{"line_number":2171,"context_line":"    The extra spec key of a flavor."},{"line_number":2172,"context_line":"  in: body"},{"line_number":2173,"context_line":"  required: true"},{"line_number":2174,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_f1db07ea","line":2171,"in_reply_to":"df140735_b1ffcfa9","updated":"2017-06-02 18:46:53.000000000","message":"Want me to fix up flavor_extra_spec_key2 and flavor_extra_spec_value as well?","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"0241f55495b483629848bf97c5bf99a9ed6781a2","unresolved":false,"context_lines":[{"line_number":2183,"context_line":"  type: string"},{"line_number":2184,"context_line":"flavor_extra_spec_value_2_47:"},{"line_number":2185,"context_line":"  description: |"},{"line_number":2186,"context_line":"    The extra spec value of a flavor."},{"line_number":2187,"context_line":"  in: body"},{"line_number":2188,"context_line":"  required: true"},{"line_number":2189,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_91fccbb5","line":2186,"updated":"2017-06-02 18:36:51.000000000","message":"\"The value of a flavor extra spec\"","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"bff666ace1fe478978b3eabbe4c40cd315a3ee49","unresolved":false,"context_lines":[{"line_number":2195,"context_line":"  in: body"},{"line_number":2196,"context_line":"  required: true"},{"line_number":2197,"context_line":"  type: string"},{"line_number":2198,"context_line":"flavor_id_body_2_46:"},{"line_number":2199,"context_line":"  description: |"},{"line_number":2200,"context_line":"    The ID of the flavor. While people often make this look like"},{"line_number":2201,"context_line":"    an int, this is really a string."},{"line_number":2202,"context_line":"  in: body"},{"line_number":2203,"context_line":"  required: true"},{"line_number":2204,"context_line":"  type: string"},{"line_number":2205,"context_line":"  max_version: 2.46"},{"line_number":2206,"context_line":"flavor_id_body_create:"},{"line_number":2207,"context_line":"  description: |"},{"line_number":2208,"context_line":"    The ID of the flavor. While people often make this look like an int, this"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_510bd3d4","line":2205,"range":{"start_line":2198,"start_character":0,"end_line":2205,"end_character":19},"updated":"2017-06-02 18:39:09.000000000","message":"2.47?","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"da4c7da81e8976ffc754aa0368d4671986261f50","unresolved":false,"context_lines":[{"line_number":2195,"context_line":"  in: body"},{"line_number":2196,"context_line":"  required: true"},{"line_number":2197,"context_line":"  type: string"},{"line_number":2198,"context_line":"flavor_id_body_2_46:"},{"line_number":2199,"context_line":"  description: |"},{"line_number":2200,"context_line":"    The ID of the flavor. While people often make this look like"},{"line_number":2201,"context_line":"    an int, this is really a string."},{"line_number":2202,"context_line":"  in: body"},{"line_number":2203,"context_line":"  required: true"},{"line_number":2204,"context_line":"  type: string"},{"line_number":2205,"context_line":"  max_version: 2.46"},{"line_number":2206,"context_line":"flavor_id_body_create:"},{"line_number":2207,"context_line":"  description: |"},{"line_number":2208,"context_line":"    The ID of the flavor. While people often make this look like an int, this"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_510cf3a3","line":2205,"range":{"start_line":2198,"start_character":0,"end_line":2205,"end_character":19},"in_reply_to":"df140735_510bd3d4","updated":"2017-06-02 18:42:24.000000000","message":"This is a max_version for clarifying capping the microversion. This seems good for me.","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"bff666ace1fe478978b3eabbe4c40cd315a3ee49","unresolved":false,"context_lines":[{"line_number":2233,"context_line":"  in: body"},{"line_number":2234,"context_line":"  required: true"},{"line_number":2235,"context_line":"  type: array"},{"line_number":2236,"context_line":"  max_version: 2.46"},{"line_number":2237,"context_line":"flavor_name:"},{"line_number":2238,"context_line":"  description: |"},{"line_number":2239,"context_line":"    The display name of a flavor."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_310cdfea","line":2236,"updated":"2017-06-02 18:39:09.000000000","message":"ditto","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"aeb9a5dba4188cf47707a09d8dc3d9613e969b67","unresolved":false,"context_lines":[{"line_number":2233,"context_line":"  in: body"},{"line_number":2234,"context_line":"  required: true"},{"line_number":2235,"context_line":"  type: array"},{"line_number":2236,"context_line":"  max_version: 2.46"},{"line_number":2237,"context_line":"flavor_name:"},{"line_number":2238,"context_line":"  description: |"},{"line_number":2239,"context_line":"    The display name of a flavor."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"df140735_f156675c","line":2236,"in_reply_to":"df140735_310cdfea","updated":"2017-06-02 18:46:53.000000000","message":"Max version, same as the one above.","commit_id":"90636e0f33e50857b7d3e6be3ae855918e2c199a"}],"api-ref/source/servers-actions.inc":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ac9e25e5bda746348fd7a73f113bac89827fe346","unresolved":false,"context_lines":[{"line_number":533,"context_line":"  - description: server_description_resp"},{"line_number":534,"context_line":"  - tags: tags"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"**Example Rebuild Server (rebuild Action) (v2.26)**"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.26/server-action-rebuild-resp.json"},{"line_number":539,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"df140735_0a2da394","line":536,"range":{"start_line":536,"start_character":43,"end_line":536,"end_character":48},"updated":"2017-05-30 07:39:08.000000000","message":"we should show v2.47 response example.","commit_id":"a5c650ee9a8f0ac4c0d2df5b3cd310a8143173e4"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ac9e25e5bda746348fd7a73f113bac89827fe346","unresolved":false,"context_lines":[{"line_number":535,"context_line":""},{"line_number":536,"context_line":"**Example Rebuild Server (rebuild Action) (v2.26)**"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.26/server-action-rebuild-resp.json"},{"line_number":539,"context_line":"   :language: javascript"},{"line_number":540,"context_line":""},{"line_number":541,"context_line":"Remove (Disassociate) Floating Ip (removeFloatingIp Action) (DEPRECATED)"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"df140735_6a1c1f6a","line":538,"range":{"start_line":538,"start_character":50,"end_line":538,"end_character":87},"updated":"2017-05-30 07:39:08.000000000","message":"v2.47/server-action-rebuild-resp.json","commit_id":"a5c650ee9a8f0ac4c0d2df5b3cd310a8143173e4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":486,"context_line":"  - preserve_ephemeral: preserve_ephemeral"},{"line_number":487,"context_line":"  - description: server_description"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"**Example Rebuild Server (rebuild Action) (v2.26)**"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.26/server-action-rebuild.json"},{"line_number":492,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"df140735_58a1d993","line":489,"range":{"start_line":489,"start_character":43,"end_line":489,"end_character":48},"updated":"2017-06-01 21:55:27.000000000","message":"I know that the request isn\u0027t changing, but if you\u0027re going to change the response sample to 2.47 then also change this to be 2.47 (and use the 2.47 sample).","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"}],"api-ref/source/servers.inc":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d41a492a18947952a38ac09390d7cd49dcc884fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"dfeb2761_cfa0fba8","updated":"2017-03-31 04:18:55.000000000","message":"for rebuild also you need to change but it seems no response defined for that\n\n- https://github.com/openstack/nova/blob/master/api-ref/source/servers-actions.inc#rebuild-server-rebuild-action\n\nll fix that and ll be easy for you.","commit_id":"c1bee501900773c9a69fc94a7710e014d7b1c167"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d41a492a18947952a38ac09390d7cd49dcc884fe","unresolved":false,"context_lines":[{"line_number":329,"context_line":"  - server: server"},{"line_number":330,"context_line":"  - addresses: addresses"},{"line_number":331,"context_line":"  - created: created"},{"line_number":332,"context_line":"  - flavor: flavor dict"},{"line_number":333,"context_line":"  - hostId: hostId"},{"line_number":334,"context_line":"  - id: server_id"},{"line_number":335,"context_line":"  - image: image"}],"source_content_type":"text/x-c++src","patch_set":3,"id":"dfeb2761_8fdc3347","line":332,"range":{"start_line":332,"start_character":0,"end_line":332,"end_character":23},"updated":"2017-03-31 04:18:55.000000000","message":"actually \u0027flavor\u0027 itself wrong in create server response. correcting it in https://review.openstack.org/#/c/451673/","commit_id":"c1bee501900773c9a69fc94a7710e014d7b1c167"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"4a7ec12259c84cf5cc7444cc1ed6e414cfa9936c","unresolved":false,"context_lines":[{"line_number":329,"context_line":"  - server: server"},{"line_number":330,"context_line":"  - addresses: addresses"},{"line_number":331,"context_line":"  - created: created"},{"line_number":332,"context_line":"  - flavor: flavor dict"},{"line_number":333,"context_line":"  - hostId: hostId"},{"line_number":334,"context_line":"  - id: server_id"},{"line_number":335,"context_line":"  - image: image"}],"source_content_type":"text/x-c++src","patch_set":3,"id":"1a1ced50_3add89e0","line":332,"range":{"start_line":332,"start_character":12,"end_line":332,"end_character":23},"updated":"2017-03-21 19:05:46.000000000","message":"should be defined in parameter.yaml","commit_id":"c1bee501900773c9a69fc94a7710e014d7b1c167"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8b41371f4df322a496120c2d8ca856f2960cfadc","unresolved":false,"context_lines":[{"line_number":501,"context_line":"  - server: server"},{"line_number":502,"context_line":"  - addresses: addresses"},{"line_number":503,"context_line":"  - created: created"},{"line_number":504,"context_line":"  - flavor: flavor_server"},{"line_number":505,"context_line":"  - flavor: flavor_server_2_46"},{"line_number":506,"context_line":"  - hostId: hostId"},{"line_number":507,"context_line":"  - id: server_id"},{"line_number":508,"context_line":"  - image: image"}],"source_content_type":"text/x-c++src","patch_set":7,"id":"ff0f0b1f_1c98b267","line":505,"range":{"start_line":504,"start_character":0,"end_line":505,"end_character":30},"updated":"2017-05-24 06:19:57.000000000","message":"having 2 \u0027flavor\u0027 in doc is little bit confusing. As Sean mentioned in previous file, let\u0027s have a nested structure with \nold elements: with max version \nnew elements: with min version","commit_id":"cce8f87da6518b1226eb80ffdad062df3d6f5444"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"11b48714c5a19435486c5cea28e2a31b64e58b74","unresolved":false,"context_lines":[{"line_number":501,"context_line":"  - server: server"},{"line_number":502,"context_line":"  - addresses: addresses"},{"line_number":503,"context_line":"  - created: created"},{"line_number":504,"context_line":"  - flavor: flavor_server"},{"line_number":505,"context_line":"  - flavor: flavor_server_2_46"},{"line_number":506,"context_line":"  - hostId: hostId"},{"line_number":507,"context_line":"  - id: server_id"},{"line_number":508,"context_line":"  - image: image"}],"source_content_type":"text/x-c++src","patch_set":7,"id":"ff0f0b1f_af22a6b7","line":505,"range":{"start_line":504,"start_character":0,"end_line":505,"end_character":30},"in_reply_to":"ff0f0b1f_1c98b267","updated":"2017-05-24 07:17:05.000000000","message":"++","commit_id":"cce8f87da6518b1226eb80ffdad062df3d6f5444"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8b41371f4df322a496120c2d8ca856f2960cfadc","unresolved":false,"context_lines":[{"line_number":590,"context_line":"  - server: server"},{"line_number":591,"context_line":"  - addresses: addresses"},{"line_number":592,"context_line":"  - created: created"},{"line_number":593,"context_line":"  - flavor: flavor_server"},{"line_number":594,"context_line":"  - flavor: flavor_server_2_46"},{"line_number":595,"context_line":"  - hostId: hostId"},{"line_number":596,"context_line":"  - id: server_id"},{"line_number":597,"context_line":"  - image: image"}],"source_content_type":"text/x-c++src","patch_set":7,"id":"ff0f0b1f_dca59aa3","line":594,"range":{"start_line":593,"start_character":0,"end_line":594,"end_character":30},"updated":"2017-05-24 06:19:57.000000000","message":"ditto","commit_id":"cce8f87da6518b1226eb80ffdad062df3d6f5444"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"11b48714c5a19435486c5cea28e2a31b64e58b74","unresolved":false,"context_lines":[{"line_number":635,"context_line":""},{"line_number":636,"context_line":"**Example Show Server Details**"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":".. literalinclude:: ../../doc/api_samples/servers/server-get-resp.json"},{"line_number":639,"context_line":"   :language: javascript"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"Update Server"}],"source_content_type":"text/x-c++src","patch_set":7,"id":"ff0f0b1f_d2158141","line":638,"range":{"start_line":638,"start_character":4,"end_line":638,"end_character":70},"updated":"2017-05-24 07:17:05.000000000","message":"also bump examples?","commit_id":"cce8f87da6518b1226eb80ffdad062df3d6f5444"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8b41371f4df322a496120c2d8ca856f2960cfadc","unresolved":false,"context_lines":[{"line_number":689,"context_line":"  - server: server"},{"line_number":690,"context_line":"  - addresses: addresses"},{"line_number":691,"context_line":"  - created: created"},{"line_number":692,"context_line":"  - flavor: flavor_server"},{"line_number":693,"context_line":"  - flavor: flavor_server_2_46"},{"line_number":694,"context_line":"  - hostId: hostId"},{"line_number":695,"context_line":"  - id: server_id"},{"line_number":696,"context_line":"  - image: image"}],"source_content_type":"text/x-c++src","patch_set":7,"id":"ff0f0b1f_3cbed6b3","line":693,"range":{"start_line":692,"start_character":0,"end_line":693,"end_character":30},"updated":"2017-05-24 06:19:57.000000000","message":"ditto","commit_id":"cce8f87da6518b1226eb80ffdad062df3d6f5444"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":553,"context_line":"  - OS-EXT-SRV-ATTR:user_data: server_user_data"},{"line_number":554,"context_line":"  - locked: locked"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"**Example List Servers Detailed**"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":".. literalinclude:: /../../doc/api_samples/servers/v2.47/servers-details-resp.json"},{"line_number":559,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"df140735_38c74567","line":556,"range":{"start_line":556,"start_character":2,"end_line":556,"end_character":31},"updated":"2017-06-01 21:55:27.000000000","message":"If we\u0027re going to use a 2.47 sample, then you should rename the title to point that out, like:\n\n\"Example List Servers Detailed (2.47)\"","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":653,"context_line":"  - OS-EXT-SRV-ATTR:user_data: server_user_data"},{"line_number":654,"context_line":"  - locked: locked"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"**Example Show Server Details**"},{"line_number":657,"context_line":""},{"line_number":658,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.47/server-get-resp.json"},{"line_number":659,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"df140735_18c4815e","line":656,"updated":"2017-06-01 21:55:27.000000000","message":"same","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":757,"context_line":"  - OS-EXT-SRV-ATTR:user_data: server_user_data"},{"line_number":758,"context_line":"  - locked: locked"},{"line_number":759,"context_line":""},{"line_number":760,"context_line":"**Example Update server name**"},{"line_number":761,"context_line":""},{"line_number":762,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.47/server-update-resp.json"},{"line_number":763,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"df140735_58b0b98a","line":760,"updated":"2017-06-01 21:55:27.000000000","message":"same as above","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":759,"context_line":""},{"line_number":760,"context_line":"**Example Update server name**"},{"line_number":761,"context_line":""},{"line_number":762,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.47/server-update-resp.json"},{"line_number":763,"context_line":"   :language: javascript"},{"line_number":764,"context_line":""},{"line_number":765,"context_line":"Delete Server"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"df140735_78b37d99","line":762,"range":{"start_line":762,"start_character":50,"end_line":762,"end_character":55},"updated":"2017-06-01 21:55:27.000000000","message":"You should use the 2.47 request sample above too if you\u0027re going to do it for the response sample.","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"}],"doc/api_samples/servers/v2.43/servers-list-resp.json":[{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"4a7ec12259c84cf5cc7444cc1ed6e414cfa9936c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1a1ced50_3d2823e2","line":19,"updated":"2017-03-21 19:05:46.000000000","message":"Do we need this file in v2.43?","commit_id":"c1bee501900773c9a69fc94a7710e014d7b1c167"}],"doc/api_samples/servers/v2.47/server-get-resp.json":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        \"flavor\": {"},{"line_number":36,"context_line":"            \"disk\": 1,"},{"line_number":37,"context_line":"            \"ephemeral\": 0,"},{"line_number":38,"context_line":"            \"extra_specs\": {},"},{"line_number":39,"context_line":"            \"original_name\": \"m1.tiny\","},{"line_number":40,"context_line":"            \"ram\": 512,"},{"line_number":41,"context_line":"            \"swap\": 0,"}],"source_content_type":"application/json","patch_set":12,"id":"df140735_b838f5ed","line":38,"range":{"start_line":38,"start_character":12,"end_line":38,"end_character":30},"updated":"2017-06-01 21:55:27.000000000","message":"Can we have a sample that actually has some extra specs in it, like in the spec?\n\n\"extra_specs\": {\n    \"hw:cpu_model\": \"SandyBridge\",\n    \"hw:mem_page_size\": \"2048\",\n    \"hw:cpu_policy\": \"dedicated\"\n}","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"a438e5ee4e2a242ce932859f44c435b4dcdb89d4","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        \"flavor\": {"},{"line_number":36,"context_line":"            \"disk\": 1,"},{"line_number":37,"context_line":"            \"ephemeral\": 0,"},{"line_number":38,"context_line":"            \"extra_specs\": {},"},{"line_number":39,"context_line":"            \"original_name\": \"m1.tiny\","},{"line_number":40,"context_line":"            \"ram\": 512,"},{"line_number":41,"context_line":"            \"swap\": 0,"}],"source_content_type":"application/json","patch_set":12,"id":"df140735_fd541100","line":38,"range":{"start_line":38,"start_character":12,"end_line":38,"end_character":30},"in_reply_to":"df140735_b838f5ed","updated":"2017-06-02 06:10:37.000000000","message":"Done.  You would not believe how much work this was.  I hope you appreciate it.","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"}],"nova/api/openstack/compute/rest_api_version_history.rst":[{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"4a7ec12259c84cf5cc7444cc1ed6e414cfa9936c","unresolved":false,"context_lines":[{"line_number":482,"context_line":"----"},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"  Replace the \u0027flavor\u0027 name/ref with the actual flavor details from the embedded"},{"line_number":485,"context_line":"  flavor object when displaying server details.  TODO: expand with details."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a1ced50_ba4b3986","line":485,"range":{"start_line":485,"start_character":49,"end_line":485,"end_character":75},"updated":"2017-03-21 19:05:46.000000000","message":"This needs to be updated.","commit_id":"c1bee501900773c9a69fc94a7710e014d7b1c167"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":548,"context_line":""},{"line_number":549,"context_line":"2.47"},{"line_number":550,"context_line":"----"},{"line_number":551,"context_line":"  Replace the ``flavor`` name/ref with the actual flavor details from the embedded"},{"line_number":552,"context_line":"  flavor object when displaying server details.  Requests made with microversion"},{"line_number":553,"context_line":"  \u003e\u003d 2.47 will no longer return the flavor ID/link but instead will return a"},{"line_number":554,"context_line":"  subset of the flavor details.  If the user is prevented by policy from"}],"source_content_type":"text/x-rst","patch_set":12,"id":"df140735_e32ebe90","line":551,"updated":"2017-06-01 21:55:27.000000000","message":"Probably doesn\u0027t matter but everything else in here has a blank line before the description.","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4b492c53095b2d3b8b0b6ebd040375f91b2c132a","unresolved":false,"context_lines":[{"line_number":448,"context_line":"    @validation.schema(schema_server_create_v242, \u00272.42\u0027)"},{"line_number":449,"context_line":"    def create(self, req, body):"},{"line_number":450,"context_line":"        \"\"\"Creates a new server for a given user.\"\"\""},{"line_number":451,"context_line":"        LOG.info(\"this is a test\")"},{"line_number":452,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":453,"context_line":"        server_dict \u003d body[\u0027server\u0027]"},{"line_number":454,"context_line":"        password \u003d self._get_server_admin_password(server_dict)"}],"source_content_type":"text/x-python","patch_set":15,"id":"df140735_7952433d","line":451,"updated":"2017-06-02 15:59:21.000000000","message":"Remove this.","commit_id":"221a1d2db38d14ffc538f74ae4cca34e49822b13"}],"nova/api/openstack/compute/views/servers.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d41a492a18947952a38ac09390d7cd49dcc884fe","unresolved":false,"context_lines":[{"line_number":256,"context_line":"            \"original_name\": instance_type.name"},{"line_number":257,"context_line":"        }"},{"line_number":258,"context_line":"        context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":259,"context_line":"        if context.can(fes_policies.POLICY_ROOT % \u0027index\u0027, fatal\u003dFalse):"},{"line_number":260,"context_line":"            flavordict[\u0027extra_specs\u0027] \u003d instance_type.extra_specs"},{"line_number":261,"context_line":"        if context.can(fr_policies.BASE_POLICY_NAME, fatal\u003dFalse):"},{"line_number":262,"context_line":"            flavordict[\u0027rxtx_factor\u0027] \u003d instance_type.rxtx_factor"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfeb2761_3538dad1","line":259,"range":{"start_line":259,"start_character":51,"end_line":259,"end_character":56},"updated":"2017-03-31 04:18:55.000000000","message":"as this is extra_specs for particular flavor, we should use \u0027show\u0027 polocy here instead of \u0027index\u0027?\n\nif context.can(fes_policies.POLICY_ROOT % \u0027show\u0027, fatal\u003dFalse):","commit_id":"c1bee501900773c9a69fc94a7710e014d7b1c167"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"21ce5ab1a4d2f8c1fdb7e41fa6925be9e2e1040b","unresolved":false,"context_lines":[{"line_number":256,"context_line":"            \"original_name\": instance_type.name"},{"line_number":257,"context_line":"        }"},{"line_number":258,"context_line":"        context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":259,"context_line":"        if context.can(fes_policies.POLICY_ROOT % \u0027index\u0027, fatal\u003dFalse):"},{"line_number":260,"context_line":"            flavordict[\u0027extra_specs\u0027] \u003d instance_type.extra_specs"},{"line_number":261,"context_line":"        if context.can(fr_policies.BASE_POLICY_NAME, fatal\u003dFalse):"},{"line_number":262,"context_line":"            flavordict[\u0027rxtx_factor\u0027] \u003d instance_type.rxtx_factor"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_dd92b59f","line":259,"range":{"start_line":259,"start_character":51,"end_line":259,"end_character":56},"in_reply_to":"dfeb2761_3538dad1","updated":"2017-04-25 20:37:09.000000000","message":"You might think so, but the \"show\" policy is for showing a single extra-spec.  The index policy is used for showing all the extra-specs for a flavor.","commit_id":"c1bee501900773c9a69fc94a7710e014d7b1c167"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"11b48714c5a19435486c5cea28e2a31b64e58b74","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from nova import objects"},{"line_number":29,"context_line":"from nova.objects import base as obj_base"},{"line_number":30,"context_line":"from nova import utils"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_cf103a5a","side":"PARENT","line":31,"updated":"2017-05-24 07:17:05.000000000","message":"seems unrelated","commit_id":"35eaa27a04612d85c20f067ab5bf1425b4a4f78e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8b41371f4df322a496120c2d8ca856f2960cfadc","unresolved":false,"context_lines":[{"line_number":255,"context_line":"            \"original_name\": instance_type.name"},{"line_number":256,"context_line":"        }"},{"line_number":257,"context_line":"        context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":258,"context_line":"        if context.can(fes_policies.POLICY_ROOT % \u0027index\u0027, fatal\u003dFalse):"},{"line_number":259,"context_line":"            flavordict[\u0027extra_specs\u0027] \u003d instance_type.extra_specs"},{"line_number":260,"context_line":"        if context.can(fr_policies.BASE_POLICY_NAME, fatal\u003dFalse):"},{"line_number":261,"context_line":"            flavordict[\u0027rxtx_factor\u0027] \u003d instance_type.rxtx_factor"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_1c82f2c8","line":258,"range":{"start_line":258,"start_character":0,"end_line":258,"end_character":72},"updated":"2017-05-24 06:19:57.000000000","message":"Policy checks are usually done in controller side and having few of them in view is little bit hard to debug if something goes wrong.\nTo move policy checks to controller side we need to pass rule checks info from controller to view but that is more hotchpotch may be :).","commit_id":"cce8f87da6518b1226eb80ffdad062df3d6f5444"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"193bae6e543f5e77aad003258a9b87ccf1fde27e","unresolved":false,"context_lines":[{"line_number":255,"context_line":"            \"original_name\": instance_type.name"},{"line_number":256,"context_line":"        }"},{"line_number":257,"context_line":"        context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":258,"context_line":"        if context.can(fes_policies.POLICY_ROOT % \u0027index\u0027, fatal\u003dFalse):"},{"line_number":259,"context_line":"            flavordict[\u0027extra_specs\u0027] \u003d instance_type.extra_specs"},{"line_number":260,"context_line":"        if context.can(fr_policies.BASE_POLICY_NAME, fatal\u003dFalse):"},{"line_number":261,"context_line":"            flavordict[\u0027rxtx_factor\u0027] \u003d instance_type.rxtx_factor"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_3d268518","line":258,"range":{"start_line":258,"start_character":0,"end_line":258,"end_character":72},"in_reply_to":"ff0f0b1f_1c82f2c8","updated":"2017-05-26 06:29:45.000000000","message":"I took a crack at moving the policy check to the controller side, and it got kind of ugly.  Instead of one check we end up with three.\n\nIn api.openstack.compute.views.servers.ViewBuilder we need to add a new parameter to show() and detail() to tell it whether to include the extra specs, but that means we\u0027d need to add the new parameter to _list_view(), which then means we\u0027d need to add an unused parameter to basic() because it\u0027s also called by _list_view().\n\nI can push the change up for review if you really want it, but having the check in the view gives much cleaner code.","commit_id":"cce8f87da6518b1226eb80ffdad062df3d6f5444"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"92c34e98707b9de8ff12bdab1fc7d2cf126a5f72","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":258,"context_line":"        if context.can(fes_policies.POLICY_ROOT % \u0027index\u0027, fatal\u003dFalse):"},{"line_number":259,"context_line":"            flavordict[\u0027extra_specs\u0027] \u003d instance_type.extra_specs"},{"line_number":260,"context_line":"        if context.can(fr_policies.BASE_POLICY_NAME, fatal\u003dFalse):"},{"line_number":261,"context_line":"            flavordict[\u0027rxtx_factor\u0027] \u003d instance_type.rxtx_factor"},{"line_number":262,"context_line":"        return flavordict"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    def _get_flavor(self, request, instance):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f044301_ec059012","line":261,"range":{"start_line":260,"start_character":8,"end_line":261,"end_character":65},"updated":"2017-05-10 12:54:06.000000000","message":"Let\u0027s not return this, I plan on deprecating this out of the API in Queens. It\u0027s a legacy hack for nova-network and we don\u0027t want to be exposing it anymore.\n\nProbably also needs a spec amendment if this was called out in the spec as a field we\u0027ll return.","commit_id":"cce8f87da6518b1226eb80ffdad062df3d6f5444"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":255,"context_line":"            \"original_name\": instance_type.name"},{"line_number":256,"context_line":"        }"},{"line_number":257,"context_line":"        context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":258,"context_line":"        if context.can(fes_policies.POLICY_ROOT % \u0027index\u0027, fatal\u003dFalse):"},{"line_number":259,"context_line":"            flavordict[\u0027extra_specs\u0027] \u003d instance_type.extra_specs"},{"line_number":260,"context_line":"        return flavordict"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    def _get_flavor(self, request, instance):"}],"source_content_type":"text/x-python","patch_set":12,"id":"df140735_a3432613","line":259,"range":{"start_line":258,"start_character":8,"end_line":259,"end_character":65},"updated":"2017-06-01 21:55:27.000000000","message":"I\u0027ve found out that this is always going to pass because the default rule is admin_or_owner and we don\u0027t pass a target to the context.can check method, so it defaults to using the project_id and user_id on the context object, so it basically compares against the context itself which is the \u0027owner\u0027 - there isn\u0027t an owner. So the only way to really fail this check is if the policy is changed to be admin only and it\u0027s a non-admin showing the details.\n\nWe have the flavor.projects (tenant access) stuff so at some point in the future we could get the list of projects that have access to the flavor to determine if the project in this context can get the details - but that\u0027s a bigger problem, plus I don\u0027t think it means anything for a public flavor since microversion \u003e\u003d 2.7 won\u0027t allow you to add tenant access to public flavors.\n\n--\n\nHaving said all of that, you don\u0027t actually have a test anywhere that changes the policy so that this won\u0027t be returned in the response, we should have something for that. I\u0027m not exactly sure what the best way to test this is, but I think you could do something like this:\n\nhttps://github.com/openstack/nova/blob/master/nova/tests/unit/api/openstack/compute/test_flavor_access.py#L425\n\nAnd make the rule admin-only in the test.","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"a438e5ee4e2a242ce932859f44c435b4dcdb89d4","unresolved":false,"context_lines":[{"line_number":255,"context_line":"            \"original_name\": instance_type.name"},{"line_number":256,"context_line":"        }"},{"line_number":257,"context_line":"        context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":258,"context_line":"        if context.can(fes_policies.POLICY_ROOT % \u0027index\u0027, fatal\u003dFalse):"},{"line_number":259,"context_line":"            flavordict[\u0027extra_specs\u0027] \u003d instance_type.extra_specs"},{"line_number":260,"context_line":"        return flavordict"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    def _get_flavor(self, request, instance):"}],"source_content_type":"text/x-python","patch_set":12,"id":"df140735_b510fba9","line":259,"range":{"start_line":258,"start_character":8,"end_line":259,"end_character":65},"in_reply_to":"df140735_a3432613","updated":"2017-06-02 06:10:37.000000000","message":"Arguably you want regular users to be able to see the extra-specs that were used originally to boot their instance so that if they want to make another similar instance they can find a new flavor with similar extra-specs.\n\nNew test added.","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"}],"nova/tests/functional/api_sample_tests/test_servers.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d41a492a18947952a38ac09390d7cd49dcc884fe","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        self._verify_response(\u0027server-put-resp\u0027, subs, response, 200)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"class ServersSampleJson243Test(ServersSampleJsonTest):"},{"line_number":179,"context_line":"    microversion \u003d \u00272.43\u0027"},{"line_number":180,"context_line":"    scenarios \u003d [(\u0027v2_43\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"class ServersSampleJson232Test(ServersSampleBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfeb2761_d5e88e17","line":180,"range":{"start_line":178,"start_character":0,"end_line":180,"end_character":58},"updated":"2017-03-31 04:18:55.000000000","message":"rebuild tests are in presents in actions class tests and we do not need to be run all those tests for 2.43. So can you explicitly add rebuild tests under this class.\n\n    def test_server_rebuild(self):\n        uuid \u003d self._post_server()\n        image \u003d fake.get_valid_image_id()\n        params \u003d {\n            \u0027uuid\u0027: image,\n            \u0027name\u0027: \u0027foobar\u0027,\n            \u0027pass\u0027: \u0027seekr3t\u0027,\n            \u0027hostid\u0027: \u0027[a-f0-9]+\u0027,\n            \u0027access_ip_v4\u0027: \u00271.2.3.4\u0027,\n            \u0027access_ip_v6\u0027: \u002780fe::\u0027,\n        }\n\n        resp \u003d self._do_post(\u0027servers/%s/action\u0027 % uuid,\n                             \u0027server-action-rebuild\u0027, params)\n        subs \u003d params.copy()\n        del subs[\u0027uuid\u0027]\n        self._verify_response(\u0027server-action-rebuild-resp\u0027, subs, resp, 202)","commit_id":"c1bee501900773c9a69fc94a7710e014d7b1c167"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"21ce5ab1a4d2f8c1fdb7e41fa6925be9e2e1040b","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        self._verify_response(\u0027server-put-resp\u0027, subs, response, 200)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"class ServersSampleJson243Test(ServersSampleJsonTest):"},{"line_number":179,"context_line":"    microversion \u003d \u00272.43\u0027"},{"line_number":180,"context_line":"    scenarios \u003d [(\u0027v2_43\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"class ServersSampleJson232Test(ServersSampleBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_1d5dbde8","line":180,"range":{"start_line":178,"start_character":0,"end_line":180,"end_character":58},"in_reply_to":"dfeb2761_d5e88e17","updated":"2017-04-25 20:37:09.000000000","message":"Done","commit_id":"c1bee501900773c9a69fc94a7710e014d7b1c167"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d41a492a18947952a38ac09390d7cd49dcc884fe","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        self._post_server(use_common_server_api_samples\u003dFalse)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"class ServersUpdateSampleJsonTest(ServersSampleBase):"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def test_update_server(self):"},{"line_number":213,"context_line":"        uuid \u003d self._post_server()"},{"line_number":214,"context_line":"        subs \u003d {}"},{"line_number":215,"context_line":"        subs[\u0027hostid\u0027] \u003d \u0027[a-f0-9]+\u0027"},{"line_number":216,"context_line":"        subs[\u0027access_ip_v4\u0027] \u003d \u00271.2.3.4\u0027"},{"line_number":217,"context_line":"        subs[\u0027access_ip_v6\u0027] \u003d \u002780fe::\u0027"},{"line_number":218,"context_line":"        response \u003d self._do_put(\u0027servers/%s\u0027 % uuid,"},{"line_number":219,"context_line":"                                \u0027server-update-req\u0027, subs)"},{"line_number":220,"context_line":"        self._verify_response(\u0027server-update-resp\u0027, subs, response, 200)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"class ServerSortKeysJsonTests(ServersSampleBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfeb2761_75a9c2dd","line":220,"range":{"start_line":210,"start_character":0,"end_line":220,"end_character":72},"updated":"2017-03-31 04:18:55.000000000","message":"run 2.43 tests for update case also.\n\n\nclass ServersUpdateSampleJson243Test(ServersUpdateSampleJsonTest):\n    microversion \u003d \u00272.43\u0027\n    scenarios \u003d [(\u0027v2_43\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]","commit_id":"c1bee501900773c9a69fc94a7710e014d7b1c167"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"21ce5ab1a4d2f8c1fdb7e41fa6925be9e2e1040b","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        self._post_server(use_common_server_api_samples\u003dFalse)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"class ServersUpdateSampleJsonTest(ServersSampleBase):"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def test_update_server(self):"},{"line_number":213,"context_line":"        uuid \u003d self._post_server()"},{"line_number":214,"context_line":"        subs \u003d {}"},{"line_number":215,"context_line":"        subs[\u0027hostid\u0027] \u003d \u0027[a-f0-9]+\u0027"},{"line_number":216,"context_line":"        subs[\u0027access_ip_v4\u0027] \u003d \u00271.2.3.4\u0027"},{"line_number":217,"context_line":"        subs[\u0027access_ip_v6\u0027] \u003d \u002780fe::\u0027"},{"line_number":218,"context_line":"        response \u003d self._do_put(\u0027servers/%s\u0027 % uuid,"},{"line_number":219,"context_line":"                                \u0027server-update-req\u0027, subs)"},{"line_number":220,"context_line":"        self._verify_response(\u0027server-update-resp\u0027, subs, response, 200)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"class ServerSortKeysJsonTests(ServersSampleBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_fd73317f","line":220,"range":{"start_line":210,"start_character":0,"end_line":220,"end_character":72},"in_reply_to":"dfeb2761_75a9c2dd","updated":"2017-04-25 20:37:09.000000000","message":"Done","commit_id":"c1bee501900773c9a69fc94a7710e014d7b1c167"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        self._verify_response(\u0027server-put-resp\u0027, subs, response, 200)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"class ServersSampleJson247Test(ServersSampleJsonTest):"},{"line_number":179,"context_line":"    microversion \u003d \u00272.47\u0027"},{"line_number":180,"context_line":"    scenarios \u003d [(\u0027v2_47\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"df140735_a310c6a9","line":178,"range":{"start_line":178,"start_character":6,"end_line":178,"end_character":30},"updated":"2017-06-01 21:55:27.000000000","message":"Please move this after ServersSampleJson242Test otherwise the order on the tests looks odd because you\u0027re injecting this between 2.19 and 2.32.","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"}],"nova/tests/functional/wsgi/test_servers.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        get_resp \u003d self.api.api_get(\u0027servers/%s\u0027 %"},{"line_number":63,"context_line":"                                    create_resp.body[\u0027server\u0027][\u0027id\u0027])"},{"line_number":64,"context_line":"        flavor_get_resp \u003d self.api.api_get(\u0027flavors/%s\u0027 %"},{"line_number":65,"context_line":"                                            body[\u0027server\u0027][\u0027flavorRef\u0027])"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        server \u003d get_resp.body[\u0027server\u0027]"},{"line_number":68,"context_line":"        # Validate a few things"}],"source_content_type":"text/x-python","patch_set":12,"id":"df140735_a38566d1","line":65,"range":{"start_line":65,"start_character":43,"end_line":65,"end_character":44},"updated":"2017-06-01 21:55:27.000000000","message":"nit: line these up","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        get_resp \u003d self.api.api_get(\u0027servers/%s\u0027 %"},{"line_number":94,"context_line":"                                    create_resp.body[\u0027server\u0027][\u0027id\u0027])"},{"line_number":95,"context_line":"        flavor_get_resp \u003d self.api.api_get(\u0027flavors/%s\u0027 %"},{"line_number":96,"context_line":"                                            body[\u0027server\u0027][\u0027flavorRef\u0027])"},{"line_number":97,"context_line":"        server \u003d get_resp.body[\u0027server\u0027]"},{"line_number":98,"context_line":"        # Just validate some basics"},{"line_number":99,"context_line":"        self.assertEqual(\u0027foo\u0027, server[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"df140735_43744afe","line":96,"range":{"start_line":96,"start_character":43,"end_line":96,"end_character":44},"updated":"2017-06-01 21:55:27.000000000","message":"same","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"}],"nova/tests/unit/api/openstack/compute/test_serversV21.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aa54119b3564b1eac28d8bc69386f7651da6d3d8","unresolved":false,"context_lines":[{"line_number":1665,"context_line":"class ServerControllerTestV247(ControllerTest):"},{"line_number":1666,"context_line":"    \"\"\"Server controller test for microversion 2.47"},{"line_number":1667,"context_line":""},{"line_number":1668,"context_line":"    The intent here is simply to verify that when showing server details"},{"line_number":1669,"context_line":"    after microversion 2.47 that the flavor is shown as a dict of flavor"},{"line_number":1670,"context_line":"    information rather than as dict of id/links."},{"line_number":1671,"context_line":"    \"\"\""},{"line_number":1672,"context_line":"    wsgi_api_version \u003d \u00272.47\u0027"},{"line_number":1673,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"df140735_c3ce1a2c","line":1670,"range":{"start_line":1668,"start_character":4,"end_line":1670,"end_character":48},"updated":"2017-06-01 21:55:27.000000000","message":"We already cover this in the functional api samples tests don\u0027t we? Isn\u0027t this just redundant?\n\nMaybe use this for your policy check test for flavor extra specs like this guy:\n\nhttps://github.com/openstack/nova/blob/master/nova/tests/unit/api/openstack/compute/test_flavor_access.py#L425","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"a438e5ee4e2a242ce932859f44c435b4dcdb89d4","unresolved":false,"context_lines":[{"line_number":1665,"context_line":"class ServerControllerTestV247(ControllerTest):"},{"line_number":1666,"context_line":"    \"\"\"Server controller test for microversion 2.47"},{"line_number":1667,"context_line":""},{"line_number":1668,"context_line":"    The intent here is simply to verify that when showing server details"},{"line_number":1669,"context_line":"    after microversion 2.47 that the flavor is shown as a dict of flavor"},{"line_number":1670,"context_line":"    information rather than as dict of id/links."},{"line_number":1671,"context_line":"    \"\"\""},{"line_number":1672,"context_line":"    wsgi_api_version \u003d \u00272.47\u0027"},{"line_number":1673,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"df140735_75cf0356","line":1670,"range":{"start_line":1668,"start_character":4,"end_line":1670,"end_character":48},"in_reply_to":"df140735_c3ce1a2c","updated":"2017-06-02 06:10:37.000000000","message":"I added a new test where the flavor extra specs are not included due to policy, and left this one here as contrast to the new one.\n\nYes it overlaps the functional tests.","commit_id":"30951ebc080b1829134872c031dcf8aec3dc7453"}],"releasenotes/notes/display-flavor-dict-in-server-details-589c1db487f226cb.yaml":[{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"4a7ec12259c84cf5cc7444cc1ed6e414cfa9936c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    this microversion will now see the \"flavor\" information displayed as a"},{"line_number":5,"context_line":"    dict when displaying server details via the `servers` REST API endpoint."},{"line_number":6,"context_line":"    If the user is prevented by policy from indexing extra-specs, then the"},{"line_number":7,"context_line":"    \"extra_specs\" field will not be included in the flavor information."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9a30ddce_7d6aadef","line":7,"updated":"2017-03-21 19:05:46.000000000","message":"\"rxtx_factor\" should also be mentioned here.","commit_id":"c1bee501900773c9a69fc94a7710e014d7b1c167"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"21ce5ab1a4d2f8c1fdb7e41fa6925be9e2e1040b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    this microversion will now see the \"flavor\" information displayed as a"},{"line_number":5,"context_line":"    dict when displaying server details via the `servers` REST API endpoint."},{"line_number":6,"context_line":"    If the user is prevented by policy from indexing extra-specs, then the"},{"line_number":7,"context_line":"    \"extra_specs\" field will not be included in the flavor information."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5ff73747_bdac898c","line":7,"in_reply_to":"9a30ddce_7d6aadef","updated":"2017-04-25 20:37:09.000000000","message":"Done","commit_id":"c1bee501900773c9a69fc94a7710e014d7b1c167"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"2d6c06f9991d172a7ea75f103ccec399d55e4e2d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - A new 2.46 microversion was added to the Compute API.  Users specifying"},{"line_number":4,"context_line":"    this microversion will now see the \"flavor\" information displayed as a"},{"line_number":5,"context_line":"    dict when displaying server details via the `servers` REST API endpoint."},{"line_number":6,"context_line":"    If the user is prevented by policy from indexing extra-specs, then the"},{"line_number":7,"context_line":"    \"extra_specs\" field will not be included in the flavor information."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5ff73747_ae6991f9","line":4,"range":{"start_line":3,"start_character":65,"end_line":4,"end_character":21},"updated":"2017-04-28 06:39:34.000000000","message":"maybe \u0027this microversion or later\u0027 ?","commit_id":"f0656cb8590df807504d4a0ef8b862ea6c61fa6e"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"7fe189791720499b3cef70105f91f9982d97f316","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - A new 2.46 microversion was added to the Compute API.  Users specifying"},{"line_number":4,"context_line":"    this microversion will now see the \"flavor\" information displayed as a"},{"line_number":5,"context_line":"    dict when displaying server details via the `servers` REST API endpoint."},{"line_number":6,"context_line":"    If the user is prevented by policy from indexing extra-specs, then the"},{"line_number":7,"context_line":"    \"extra_specs\" field will not be included in the flavor information."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5ff73747_df5b5bf3","line":4,"range":{"start_line":3,"start_character":65,"end_line":4,"end_character":21},"in_reply_to":"5ff73747_ae6991f9","updated":"2017-04-28 15:09:09.000000000","message":"Done","commit_id":"f0656cb8590df807504d4a0ef8b862ea6c61fa6e"}]}
