)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"117e98f2e34bf715e3f87d1c8a0e916e42349699","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-03-02 15:25:50 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Show persisted scheduler hints in server details"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements bp show-scheduler-hints-in-server-details"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: If5ea058a3905c07362f848a0e1910ed923d081c1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a30ddce_b5bf1e5f","line":8,"updated":"2017-03-08 12:01:28.000000000","message":"we need \u0027APIImpact\u0027 flag.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"}],"specs/pike/approved/scheduler-hints-in-server-details.rst":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e936b3aded4c2d98f987f5ba25025b29538f9bbd","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Proposed change"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Modify the API response for ``GET /servers/{server-id}`` to contain "},{"line_number":35,"context_line":"information about the scheduler hints. "},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Create a new entry in the API response, named \"scheduler_hints\". Its"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba2be162_b373947f","line":34,"range":{"start_line":34,"start_character":67,"end_line":34,"end_character":68},"updated":"2017-03-02 14:14:11.000000000","message":"nit: trailing whitespace","commit_id":"8e7ec881fc00b81f53f401c40cc02a539d387a1b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e936b3aded4c2d98f987f5ba25025b29538f9bbd","unresolved":false,"context_lines":[{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Modify the API response for ``GET /servers/{server-id}`` to contain "},{"line_number":35,"context_line":"information about the scheduler hints. "},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Create a new entry in the API response, named \"scheduler_hints\". Its"},{"line_number":38,"context_line":"value will be an object, the persisted scheduler hints. Scheduler hints"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba2be162_3306c4ce","line":35,"range":{"start_line":35,"start_character":38,"end_line":35,"end_character":39},"updated":"2017-03-02 14:14:11.000000000","message":"ditto","commit_id":"8e7ec881fc00b81f53f401c40cc02a539d387a1b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e936b3aded4c2d98f987f5ba25025b29538f9bbd","unresolved":false,"context_lines":[{"line_number":65,"context_line":"* Request Method:"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"  * GET"},{"line_number":68,"context_line":"  "},{"line_number":69,"context_line":"* Proposed JSON response::"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba2be162_f3042cc1","line":68,"updated":"2017-03-02 14:14:11.000000000","message":"ditto","commit_id":"8e7ec881fc00b81f53f401c40cc02a539d387a1b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e936b3aded4c2d98f987f5ba25025b29538f9bbd","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    {"},{"line_number":72,"context_line":"        \"server\": {"},{"line_number":73,"context_line":"            \"scheduler_hints\": {"},{"line_number":74,"context_line":"\t\t\t    \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":75,"context_line":"\t\t\t\t\"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba2be162_5330989e","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":7},"updated":"2017-03-02 14:14:11.000000000","message":"nit: replace tab with space","commit_id":"8e7ec881fc00b81f53f401c40cc02a539d387a1b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e936b3aded4c2d98f987f5ba25025b29538f9bbd","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        \"server\": {"},{"line_number":73,"context_line":"            \"scheduler_hints\": {"},{"line_number":74,"context_line":"\t\t\t    \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":75,"context_line":"\t\t\t\t\"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            },"},{"line_number":78,"context_line":"            \u003cother stuff\u003e"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba2be162_f31b4c19","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":4},"updated":"2017-03-02 14:14:11.000000000","message":"nit: replace tab with space","commit_id":"8e7ec881fc00b81f53f401c40cc02a539d387a1b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3c827db86e233240fca2bf2871a068fec70f9f78","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Nova persists the scheduler hints provided at instance boot. Nova uses the"},{"line_number":20,"context_line":"persistent hints later when the instance is migrated or evacuated. However"},{"line_number":21,"context_line":"there is no way to get the hints of an already booted instance through the"},{"line_number":22,"context_line":"Nova REST API."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_a223a104","line":22,"updated":"2017-03-07 11:09:21.000000000","message":"Maybe just adding that scheduler hints are not modified ?","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"50f2594d6f1b59187c0db63b3454ef7f7e636fac","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Nova persists the scheduler hints provided at instance boot. Nova uses the"},{"line_number":20,"context_line":"persistent hints later when the instance is migrated or evacuated. However"},{"line_number":21,"context_line":"there is no way to get the hints of an already booted instance through the"},{"line_number":22,"context_line":"Nova REST API."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_bd549354","line":22,"in_reply_to":"9a30ddce_0991e9f0","updated":"2017-03-07 15:24:09.000000000","message":"Good point. I agree to mention that the hints are read only.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"61db13373f01e45a00d688c1c460332d9e3202f4","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Nova persists the scheduler hints provided at instance boot. Nova uses the"},{"line_number":20,"context_line":"persistent hints later when the instance is migrated or evacuated. However"},{"line_number":21,"context_line":"there is no way to get the hints of an already booted instance through the"},{"line_number":22,"context_line":"Nova REST API."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_0991e9f0","line":22,"in_reply_to":"9a30ddce_3658cffa","updated":"2017-03-07 14:19:14.000000000","message":"It\u0027s just a nit, but I mean you could have mentioned that scheduler hints are never modified, so when looking at the Spec record, we still get the hints that were provided by the boot call.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ef5f3dad4488283a36ab41129312aee5c42770d1","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Nova persists the scheduler hints provided at instance boot. Nova uses the"},{"line_number":20,"context_line":"persistent hints later when the instance is migrated or evacuated. However"},{"line_number":21,"context_line":"there is no way to get the hints of an already booted instance through the"},{"line_number":22,"context_line":"Nova REST API."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_3658cffa","line":22,"in_reply_to":"9a30ddce_a223a104","updated":"2017-03-07 12:26:23.000000000","message":"Do you mean that we should mention that it is not the scope of this spec to allow modifying the hints?","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b118418c530641c7f1d9bb10d2b961ef57b0e7bc","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Nova persists the scheduler hints provided at instance boot. Nova uses the"},{"line_number":20,"context_line":"persistent hints later when the instance is migrated or evacuated. However"},{"line_number":21,"context_line":"there is no way to get the hints of an already booted instance through the"},{"line_number":22,"context_line":"Nova REST API."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_b8e8177e","line":22,"in_reply_to":"9a30ddce_bd549354","updated":"2017-03-07 18:29:18.000000000","message":"Yeah, not a bad idea to add that, but not a blocker for me.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2e2cda61be79dd91a4fbd8249c8f0689dfac94d5","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Proposed change"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Modify the API response for ``GET /servers/{server-id}`` to contain"},{"line_number":35,"context_line":"information about the scheduler hints."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Create a new entry in the API response, named \"scheduler_hints\". Its"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_156e2a2f","line":34,"range":{"start_line":34,"start_character":28,"end_line":34,"end_character":56},"updated":"2017-03-08 12:01:08.000000000","message":"We have full response of servers in the `GET /servers/detail`, \u0027PUT /server/{server_id}\u0027, and \u0027rebuild action. so probably we just need to get consistent.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3c827db86e233240fca2bf2871a068fec70f9f78","unresolved":false,"context_lines":[{"line_number":39,"context_line":"are persisted here [1]."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Also the python-novaclient will be adapted to the new API."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_25797b94","line":42,"updated":"2017-03-07 11:09:21.000000000","message":"Old instances (Liberty and before) were not having persisted hints so we had a data migration by Mitaka creating fake RequestSpec record for them and persisted then.\n\nI just wonder if we should show then false hints ? I don\u0027t know how we can identify if we created a fake Spec, but I\u0027d prefer to see a discussion here.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"86c539c4a28436b65a243bbf548d3b7d4529115e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"are persisted here [1]."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Also the python-novaclient will be adapted to the new API."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_6587f30f","line":42,"in_reply_to":"9a30ddce_25797b94","updated":"2017-03-07 11:18:03.000000000","message":"sorry, I meant Mitaka and older instances, given the data online migration was provided by Newton :\n\nhttps://github.com/openstack/nova/blob/stable/newton/nova/objects/request_spec.py#L501-L583\n\nAfter thinking more of that, I think it should maybe just be a documentation impact, but I\u0027m not sure.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b118418c530641c7f1d9bb10d2b961ef57b0e7bc","unresolved":false,"context_lines":[{"line_number":39,"context_line":"are persisted here [1]."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Also the python-novaclient will be adapted to the new API."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_987ef3e2","line":42,"in_reply_to":"9a30ddce_5d363704","updated":"2017-03-07 18:29:18.000000000","message":"Random idea, can we return \"null\" for when the scheduler hints are not available?\n\nWhen there are none, but we can get them, we return {}?","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ef5f3dad4488283a36ab41129312aee5c42770d1","unresolved":false,"context_lines":[{"line_number":39,"context_line":"are persisted here [1]."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Also the python-novaclient will be adapted to the new API."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_bbe7483f","line":42,"in_reply_to":"9a30ddce_6587f30f","updated":"2017-03-07 12:26:23.000000000","message":"It seems to me that the group hint is populated from the server_groups table[1]. However all the other hints are gone for older instances. \n\nWe need to document that in the API doc. Also we could define the value of the new scheduler_hints field the following way:\n- null value means that data is not available because instance is older than Newton\n- {} value means that data is available but no hints was provided at instance boot\n- {somehint: \"somevalue\"} means somehint was provided with somevalue at the instance boot.\n\nThis way the missing data case can be clearly identified on the client side.\n\n[1]https://github.com/openstack/nova/blob/stable/newton/nova/objects/request_spec.py#L542","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f946dc53cdd3e1038cd81c254d6bc28ea7c0356e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"are persisted here [1]."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Also the python-novaclient will be adapted to the new API."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_e7357046","line":42,"in_reply_to":"9a30ddce_987ef3e2","updated":"2017-03-08 10:57:58.000000000","message":"@John: I had the same idea above. It all depends on how the data migration was done. If the missing data was filled with {} when the data migrated to the RequestSpec then nova has no way to distinguish between unavailable and available but empty. In the other hand if the data migration put null to the db then we can use that in the implementation and in the REST response to indicate missing data.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"50f2594d6f1b59187c0db63b3454ef7f7e636fac","unresolved":false,"context_lines":[{"line_number":39,"context_line":"are persisted here [1]."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Also the python-novaclient will be adapted to the new API."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_5d363704","line":42,"in_reply_to":"9a30ddce_ac41cb3b","updated":"2017-03-07 15:24:09.000000000","message":"OK. I like the definition \u0027current hints for the next instance moves\u0027.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"61db13373f01e45a00d688c1c460332d9e3202f4","unresolved":false,"context_lines":[{"line_number":39,"context_line":"are persisted here [1]."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Also the python-novaclient will be adapted to the new API."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_ac41cb3b","line":42,"in_reply_to":"9a30ddce_bbe7483f","updated":"2017-03-07 14:19:14.000000000","message":"I mean, we should maybe need to explain that getting the hints could be wrong if the instance was created before Newton. That said, there is no way to know which cycle was in the instance creation, so I\u0027m just trying to explain that instead of being the hints for the instance creation, it\u0027s just the current hints for the next instance moves.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2fcaba1710e23c4cc8001874bc75b18df129c84c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        \"server\": {"},{"line_number":73,"context_line":"            \"scheduler_hints\": {"},{"line_number":74,"context_line":"                                \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":75,"context_line":"                                \"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":76,"context_line":"            },"},{"line_number":77,"context_line":"            \u003cother stuff\u003e"},{"line_number":78,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_b09e4cb6","line":75,"updated":"2017-03-08 12:11:19.000000000","message":"What is the API contract at here? It is open dict, or a dict with limited valid value.\n\nIf the user added a custom filter with a custom hints, should we show them in the response also?\n\nAnd the scheduler_hints in the request can accepts everything https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/schemas/scheduler_hints.py#L71\n\nAnd you pointed out the hints is a dict of string in the object. So the user can put anything in the scheduler hints, and the user can get those thing from the response?\n\nIf yes, looks like we create another \u0027metadata\u0027 API for the user.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3c827db86e233240fca2bf2871a068fec70f9f78","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            \u003cother stuff\u003e"},{"line_number":78,"context_line":"        }"},{"line_number":79,"context_line":"    }"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Security impact"},{"line_number":83,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_c51dff67","line":80,"updated":"2017-03-07 11:09:21.000000000","message":"Maybe also adding a paragraph about the default policy being the same, ie. admin_or_owner for GET /servers/\u003cserver_id\u003e ?\n\nTbh, as an user, I would not be agreeing if anyone but me could see my scheduler hints.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"61db13373f01e45a00d688c1c460332d9e3202f4","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            \u003cother stuff\u003e"},{"line_number":78,"context_line":"        }"},{"line_number":79,"context_line":"    }"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Security impact"},{"line_number":83,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_8c7327b1","line":80,"in_reply_to":"9a30ddce_76c40792","updated":"2017-03-07 14:19:14.000000000","message":"Sure, just wanted to say that we could possibly explicitly add that in the spec.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2e2cda61be79dd91a4fbd8249c8f0689dfac94d5","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            \u003cother stuff\u003e"},{"line_number":78,"context_line":"        }"},{"line_number":79,"context_line":"    }"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Security impact"},{"line_number":83,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_f5a2764a","line":80,"in_reply_to":"9a30ddce_78c77f12","updated":"2017-03-08 12:01:08.000000000","message":"we have hints \u0027build_near_host_ip\u0027 and \u0027cidr\u0027. That isn\u0027t something the normal user should know. But yes, the normal user won\u0027t use those hints also, as they don\u0027t know those cloud underlayer info. So I think we are good for have admin_or_owner rule.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b118418c530641c7f1d9bb10d2b961ef57b0e7bc","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            \u003cother stuff\u003e"},{"line_number":78,"context_line":"        }"},{"line_number":79,"context_line":"    }"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Security impact"},{"line_number":83,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_78c77f12","line":80,"in_reply_to":"9a30ddce_8c7327b1","updated":"2017-03-07 18:29:18.000000000","message":"Hmm, I don\u0027t think there is any really need to mention policy. You could say this has the same permissions as access all of the server information, but thats over kill I feel.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ef5f3dad4488283a36ab41129312aee5c42770d1","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            \u003cother stuff\u003e"},{"line_number":78,"context_line":"        }"},{"line_number":79,"context_line":"    }"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Security impact"},{"line_number":83,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_76c40792","line":80,"in_reply_to":"9a30ddce_c51dff67","updated":"2017-03-07 12:26:23.000000000","message":"admin_or_owner policy works for me.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cf1eca7b8e0f1d9ba83fbc9677c6ec2a96641936","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            \u003cother stuff\u003e"},{"line_number":78,"context_line":"        }"},{"line_number":79,"context_line":"    }"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Security impact"},{"line_number":83,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a1ff146_a4173753","line":80,"in_reply_to":"9a30ddce_f5a2764a","updated":"2017-03-14 17:43:47.000000000","message":"oh... good point alex.","commit_id":"ec1c16180bb5d8a53a8fe65036e34d3976988bae"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1e5ee529c03fd01c3c2da31c939d3978f8f8c161","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        \"server\": {"},{"line_number":81,"context_line":"            \"scheduler_hints\": {"},{"line_number":82,"context_line":"                                \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":83,"context_line":"                                \"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":84,"context_line":"            },"},{"line_number":85,"context_line":"            \u003cother stuff\u003e"},{"line_number":86,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a30ddce_d59469e3","line":83,"updated":"2017-03-09 10:41:52.000000000","message":"Yeah Alex made a valid comment.\n\nI\u0027m personnally in favor of restricting the list to the hints that are not additional properties in the JSON schema in order to avoid those hints to be a new free metadata API.","commit_id":"ea22d288f051b6f8e97b5d978b60fb27e5e9ad8f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f85b991acafc0deea8ae0a9dbd0a96be1d334109","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        \"server\": {"},{"line_number":81,"context_line":"            \"scheduler_hints\": {"},{"line_number":82,"context_line":"                                \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":83,"context_line":"                                \"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":84,"context_line":"            },"},{"line_number":85,"context_line":"            \u003cother stuff\u003e"},{"line_number":86,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a30ddce_f0edfbef","line":83,"in_reply_to":"9a30ddce_d59469e3","updated":"2017-03-09 10:55:56.000000000","message":"I\u0027m fortunate enough not to have custom filters with hints in our deployments. So it is OK to me to restrict the value here to the hints that vanilla nova supports. \n\nHowever I have to mention that it is against the general API rule somebody mentioned on the PTG: what goes in comes out.","commit_id":"ea22d288f051b6f8e97b5d978b60fb27e5e9ad8f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"1db606a952831691da0f26c9acbc9c5698dbddfd","unresolved":false,"context_lines":[{"line_number":20,"context_line":"persistent hints later when the instance is migrated or evacuated. However"},{"line_number":21,"context_line":"there is no way to get the hints of an already booted instance through the"},{"line_number":22,"context_line":"Nova REST API. Note that the scheduler hints are read-only as the hints are"},{"line_number":23,"context_line":"persisted at instance boot. In the current spec, we do not want to change on"},{"line_number":24,"context_line":"this."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfeb2761_9b388c3d","line":23,"updated":"2017-04-04 10:55:21.000000000","message":"s/ on$//","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"195ef493fe56e49569b3f7fc574b75ced1077578","unresolved":false,"context_lines":[{"line_number":20,"context_line":"persistent hints later when the instance is migrated or evacuated. However"},{"line_number":21,"context_line":"there is no way to get the hints of an already booted instance through the"},{"line_number":22,"context_line":"Nova REST API. Note that the scheduler hints are read-only as the hints are"},{"line_number":23,"context_line":"persisted at instance boot. In the current spec, we do not want to change on"},{"line_number":24,"context_line":"this."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfeb2761_5772d47c","line":23,"in_reply_to":"dfeb2761_9b388c3d","updated":"2017-04-04 16:23:17.000000000","message":"Done","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"11a0f4f896bcc468c50904d2796625619d541eea","unresolved":false,"context_lines":[{"line_number":27,"context_line":"---------"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"I as a server owner want to know about the scheduler hints my server"},{"line_number":30,"context_line":"was booted with so that I know what hint nova will use when I migrate my"},{"line_number":31,"context_line":"server."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a1ff146_802be0ea","line":30,"updated":"2017-03-15 13:41:56.000000000","message":"Note that when migrating an instance, we already get the scheduler hints via the request spec and use that to migrate the instance to another host that satisfies the original request spec. So if that\u0027s the use case, I don\u0027t think it\u0027s valid since we already do it automatically.","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f7797177707b7f21bf26e328960416a3fcc03cbe","unresolved":false,"context_lines":[{"line_number":27,"context_line":"---------"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"I as a server owner want to know about the scheduler hints my server"},{"line_number":30,"context_line":"was booted with so that I know what hint nova will use when I migrate my"},{"line_number":31,"context_line":"server."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a1ff146_58e8db10","line":30,"in_reply_to":"3a1ff146_802be0ea","updated":"2017-03-16 09:32:28.000000000","message":"Exactly. Nova will behave according to the scheduler hint which is good. But before the migration there is no way to tell based on the Nova API what are those hints that will be followed. See the issue with that in my next comment answering Seans question.","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"3fb59a5cfaf80d21a3f89702227501454b698132","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"I as a server owner want to know about the scheduler hints my server"},{"line_number":30,"context_line":"was booted with so that I know what hint nova will use when I migrate my"},{"line_number":31,"context_line":"server."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Proposed change"},{"line_number":34,"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":5,"id":"3a1ff146_201eac0c","line":31,"updated":"2017-03-15 13:38:16.000000000","message":"If you are using scheduler hints, are you doing so in an adhoc way? Or are you managing this with an external tool. It doesn\u0027t seem sufficient to make Nova the source of truth for this if there is already a system on the other side that\u0027s keeping track of these.","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f7797177707b7f21bf26e328960416a3fcc03cbe","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"I as a server owner want to know about the scheduler hints my server"},{"line_number":30,"context_line":"was booted with so that I know what hint nova will use when I migrate my"},{"line_number":31,"context_line":"server."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Proposed change"},{"line_number":34,"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":5,"id":"3a1ff146_d8fe8b6a","line":31,"in_reply_to":"3a1ff146_201eac0c","updated":"2017-03-16 09:32:28.000000000","message":"Both is true. There are cases when an external, higher level system generates same_host and different_host hints. This case we have a source of information to query, therefore no problem.\n\nBut also there are cases when the use specifies same_host, different_host hints during boot. \n\nImagine that you have two instances. InstanceA booted without hints and InstanceB booted with --hint same_host\u003dInstanceA.uuid Then half a year passed and the instances needs to be migrated / evacuated due to maintenance / fault. If we move the instances by ordering them like InstanceA and InstanceB the the move will work. But If we try to move them in the other order then the move will fail. \nSo use cases:\nThe user booted instances with hints and later the instances needs to be moved either by the user or by an external management system that has know priory knowledge of the hints (e.g. automatic evacuation). We can only guarantee a successful move if the user / external system can get information about the hints used in the original boot. \n\nAlso imagine that the user issue the migrate commands in the wrong order. The migration fails. User opens a ticket, support checks the nova db and tells the user what is the correct order of migration. The problem with this is that it needs manual intervention from somebody that has access to the nova db. \nIn the other hand when we have the proposed API we can write a nice document (or an automatic script) for the user to follow to make sure the migration will succeed. \n\nAs a workaround we can always ask the user to store the hints in the instance metadata as well which can be read and write by the user / external system but that will lead to duplicated data in the nova db.","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f13f5869c2a9d7d07df43766db5c15e04cceb525","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"I as a server owner want to know about the scheduler hints my server"},{"line_number":30,"context_line":"was booted with so that I know what hint nova will use when I migrate my"},{"line_number":31,"context_line":"server."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Proposed change"},{"line_number":34,"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":5,"id":"3a1ff146_aacb271d","line":31,"in_reply_to":"3a1ff146_3f1cd711","updated":"2017-03-16 14:49:57.000000000","message":"We had discussion in the past about the bidirectionalness of the placement hints [1] based on that it seems this is a hard topic that I would avoid if possible. \nIn my view the server group concept is better than the same_host and different_host scheduler hints but at the moment I have to support both.\n\nMy use case is really just about same_host and different_host hints so I can live with an API that returns only such hints. \nHowever looking at the supported hints in [2] I can imagine that somebody has similar problems with target_cell and different_cell hints. Maybe even with build_near_host_ip hint as well.\n\nWould you be totally against returning the hints in tree filters support, based on the list in [2]?\n\n\n[1]https://review.openstack.org/#/c/183837/4/specs/liberty/approved/generic-scheduling-policies.rst\n[2]https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/schemas/scheduler_hints.py","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5bfacecdbd6c9abf1a269642ffb81a1e4a35d25c","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"I as a server owner want to know about the scheduler hints my server"},{"line_number":30,"context_line":"was booted with so that I know what hint nova will use when I migrate my"},{"line_number":31,"context_line":"server."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Proposed change"},{"line_number":34,"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":5,"id":"1a1ced50_6331c2ec","line":31,"in_reply_to":"3a1ff146_85bbbce4","updated":"2017-03-16 16:20:41.000000000","message":"Imagine that you have a tool doing OVF translation to nova API calls and that tool uses same_host and different_host hints. This tool already needs to depend on the names of the hints which is not documented in the API but documented elsewhere [1]. It might not as hard contract as an API contract but it still a contract you cannot really change easily without causing pain to the deployers. \n\nOne way to resolve this would be to make the OVF translator stateful and save the generated hints but that would be the only reason to make a translator stateful so I try to get avoid that.\nAnother way would be to store the hints in the instance metadata but that would be again quite hackish and would duplicate data in the nova db. \n\nCould we expose the scheduler hints without adding it to the API contract. I mean nova was able to document the os:scheduler_hint key in the request without making the valid values of that field part of the API contract so we could be able to do the same trick on the definition of the response. Don\u0027t we? Would it be an acceptable compromise until placement work replaces the current hint with something better?\n\nI\u0027m not aware of the plan in the placement api to replace scheduler hints with something better defined so I don\u0027t know how long I have to keep my downstream hack alive.  \n\n[1] https://docs.openstack.org/draft/config-reference/compute/schedulers.html","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"3bed294e4e8979bab80812e5bb37627cad128c5c","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"I as a server owner want to know about the scheduler hints my server"},{"line_number":30,"context_line":"was booted with so that I know what hint nova will use when I migrate my"},{"line_number":31,"context_line":"server."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Proposed change"},{"line_number":34,"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":5,"id":"3a1ff146_85bbbce4","line":31,"in_reply_to":"3a1ff146_aacb271d","updated":"2017-03-16 15:02:18.000000000","message":"The thing is, up until this point scheduler hints have been completely free form, which has meant they are largely skirting the API. When we start returning these and documenting the return values, we\u0027re going to start really forming these as strong contracts going forward.\n\nI think my real question is, is this need so pressing that we want to expose this now, or are we close enough around changes in placement that the real fix is near, and now we\u0027ve bound ourselves into this.\n\ni.e. it\u0027s fine that the scheduler hints feature is not round trip complete, it is not intended to be used that way. Making it round trip complete makes it be used and trusted in a way that is not intended. And it is better to keep the feature at partial completeness and have users know that they should really not do adhoc affinity for long running environments.","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"7026f4102e2be377fc758ce5557946a1ddb2d2d8","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"I as a server owner want to know about the scheduler hints my server"},{"line_number":30,"context_line":"was booted with so that I know what hint nova will use when I migrate my"},{"line_number":31,"context_line":"server."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Proposed change"},{"line_number":34,"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":5,"id":"3a1ff146_3f1cd711","line":31,"in_reply_to":"3a1ff146_d8fe8b6a","updated":"2017-03-16 14:27:22.000000000","message":"So here are my concerns.\n\nThe use case here *really* is not for all scheduler hints, it\u0027s for 2 very specific cases around affinity/antiaffinity. Part of the challenge is that we make you do it in this adhoc way where you do A, then B(samehost\u003dA). Which means that a management move of A breaks the policy and no one knows. Or the same thing about different hosts.\n\nIt feels like when B(samehost\u003dA) happens, and is successful, we should also annotate B as (samehost\u003dB). Which, I get complicates the move. On the different host case though it would prevent things from piling back up.\n\nAnyway, I\u0027d much rather actually get to the root case here. Or at the minimum if we are punting on this, we specifically only expose the same/different host hints, and nothing else at this stage. Which is a far more constrained set of things.","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"be05c8694a5d0a28988dc6be67b26e6c7f243e8e","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Create a new entry in the API response, named \"scheduler_hints\". Its"},{"line_number":40,"context_line":"value will be an object, the persisted scheduler hints. Scheduler hints"},{"line_number":41,"context_line":"are persisted here [1]."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Also the python-novaclient will be adapted to the new API."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a1ff146_ff1ff858","line":41,"updated":"2017-03-14 17:44:44.000000000","message":"Can we be explicit about what happens in the case where the server is so old we have not persisted any scheduler_hints.","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"195ef493fe56e49569b3f7fc574b75ced1077578","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Create a new entry in the API response, named \"scheduler_hints\". Its"},{"line_number":40,"context_line":"value will be an object, the persisted scheduler hints. Scheduler hints"},{"line_number":41,"context_line":"are persisted here [1]."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Also the python-novaclient will be adapted to the new API."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfeb2761_53909fed","line":41,"in_reply_to":"3a1ff146_ff1ff858","updated":"2017-04-04 16:23:17.000000000","message":"Done","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fe9c5bf60c9d7a125e725b5ddd3ecf15864fa495","unresolved":false,"context_lines":[{"line_number":64,"context_line":"In the response for URL: ``GET /servers/{server-id}``:"},{"line_number":65,"context_line":"* The current response will be extended in a new microversion with a"},{"line_number":66,"context_line":"new entry called \"scheduler_hints\". The value of the field will contain"},{"line_number":67,"context_line":"the persisted scheduler hints, which are supported by default. So the"},{"line_number":68,"context_line":"response will not contain any deployer specific hints. The default policy"},{"line_number":69,"context_line":"is ``admin_or_owner`` for this field."},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a1ff146_61f1b1cd","line":67,"range":{"start_line":67,"start_character":31,"end_line":67,"end_character":62},"updated":"2017-03-14 17:14:55.000000000","message":"FWIW, we have a JSON schema telling which hints we support so I\u0027d be happy to see it used for knowing which hints we should return, but that\u0027s an implementation discussion...\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/schemas/scheduler_hints.py","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"195ef493fe56e49569b3f7fc574b75ced1077578","unresolved":false,"context_lines":[{"line_number":64,"context_line":"In the response for URL: ``GET /servers/{server-id}``:"},{"line_number":65,"context_line":"* The current response will be extended in a new microversion with a"},{"line_number":66,"context_line":"new entry called \"scheduler_hints\". The value of the field will contain"},{"line_number":67,"context_line":"the persisted scheduler hints, which are supported by default. So the"},{"line_number":68,"context_line":"response will not contain any deployer specific hints. The default policy"},{"line_number":69,"context_line":"is ``admin_or_owner`` for this field."},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfeb2761_d3b5cf7f","line":67,"range":{"start_line":67,"start_character":31,"end_line":67,"end_character":62},"in_reply_to":"3a1ff146_61f1b1cd","updated":"2017-04-04 16:23:17.000000000","message":"I noted that. Thanks.","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c18fd89055b93871425df22432a5ffe2c190c6bd","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* URL:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  * /v2.1/servers/{server_id}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Request Method:"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a1ff146_0403ab74","line":73,"updated":"2017-03-14 17:37:22.000000000","message":"We tend to keep GET /servers/detail in sync with the response from GET /servers/{server-id}. It would be good just to confirm that is true here.","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1fbc6a614dfd1ea274cb82a53b926d839c2ef3d7","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* URL:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  * /v2.1/servers/{server_id}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Request Method:"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a1ff146_b0368db2","line":73,"in_reply_to":"3a1ff146_0403ab74","updated":"2017-03-14 19:13:08.000000000","message":"Fair point.","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"195ef493fe56e49569b3f7fc574b75ced1077578","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* URL:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  * /v2.1/servers/{server_id}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Request Method:"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfeb2761_53a9bf21","line":73,"in_reply_to":"3a1ff146_257137e1","updated":"2017-04-04 16:23:17.000000000","message":"Done","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f7797177707b7f21bf26e328960416a3fcc03cbe","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* URL:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  * /v2.1/servers/{server_id}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Request Method:"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a1ff146_257137e1","line":73,"in_reply_to":"3a1ff146_b0368db2","updated":"2017-03-16 09:32:28.000000000","message":"There was a discussion about having a subresource on the API meeting [1] but I don\u0027t see a decision. Which direction we should take, extending server response or adding a new subresource?\n\n[1] http://eavesdrop.openstack.org/meetings/nova_api/2017/nova_api.2017-03-15-13.00.log.html#l-19","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"b1a2f294bbca4fa06d5f8e7e43425b0bce26bab4","unresolved":false,"context_lines":[{"line_number":79,"context_line":"* Proposed JSON response::"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    {"},{"line_number":82,"context_line":"        \"server\": {"},{"line_number":83,"context_line":"            \"scheduler_hints\": {"},{"line_number":84,"context_line":"                                \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":85,"context_line":"                                \"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":86,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a1ff146_4be2fdd6","line":83,"range":{"start_line":82,"start_character":8,"end_line":83,"end_character":32},"updated":"2017-03-15 06:53:43.000000000","message":"FYI, when creating, the \"os:scheduler_hints\" prams is in the same level of \"servers\", I mean:\nbody\u003d{\n\u0027server\u0027:{xxx}\n\u0027os:scheduler_hints\u0027:{xxx}\n}","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4dc5d0c702ab6f4230db7f6e0bc1d438619cef4b","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    {"},{"line_number":82,"context_line":"        \"server\": {"},{"line_number":83,"context_line":"            \"scheduler_hints\": {"},{"line_number":84,"context_line":"                                \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":85,"context_line":"                                \"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":86,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a1ff146_2402673f","line":83,"range":{"start_line":83,"start_character":13,"end_line":83,"end_character":28},"updated":"2017-03-14 17:40:12.000000000","message":"It feels like this key should match the key you specify when you create the server, I believe that is \"os:scheduler_hints\", but I am not 100% sure on that.\n\nWe could just make it possible to pass in \"scheduler_hints\" to the API, so it can match.\n\nI would love others in the API sub-team to confirm their thoughts.","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7aafd984b3267f93c2eaa2ee129970f4c32690cd","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    {"},{"line_number":82,"context_line":"        \"server\": {"},{"line_number":83,"context_line":"            \"scheduler_hints\": {"},{"line_number":84,"context_line":"                                \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":85,"context_line":"                                \"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":86,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfeb2761_3e64e9b8","line":83,"updated":"2017-04-03 17:01:21.000000000","message":"Please don\u0027t append the old API extension stuff to the attribute name. I actually prefer Sean\u0027s previous suggestion of limiting this to just the affinity/anti-affinity scheduler hints and adding the following to the main \"server\" response payload:\n\n {\n   \"server\": {\n     ...\n     \"same_host\": \u003cinstance_uuid\u003e,\n     \"different_host\": [\u003cinstance_uuid\u003e, ... ]\n   }\n }\n\nalternately, we could go with something like:\n\n {\n   \"server\": {\n     ...\n     \"placement\": {\n       \"constraints\": {\n         \"near\": {\n           \"uuid\": \u003cinstance_uuid\u003e,\n           \"scope\": \"host\"\n         },\n         \"not_near\": [\n           {\n             \"uuid\": \u003cinstance_uuid\u003e,\n             \"scope\": \"host_aggregate\"\n           },\n           ...\n         ]\n       }\n     }\n   }\n }\n\nor something like that...","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f7797177707b7f21bf26e328960416a3fcc03cbe","unresolved":false,"context_lines":[{"line_number":79,"context_line":"* Proposed JSON response::"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    {"},{"line_number":82,"context_line":"        \"server\": {"},{"line_number":83,"context_line":"            \"scheduler_hints\": {"},{"line_number":84,"context_line":"                                \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":85,"context_line":"                                \"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":86,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a1ff146_1396444c","line":83,"range":{"start_line":82,"start_character":8,"end_line":83,"end_character":32},"in_reply_to":"3a1ff146_4be2fdd6","updated":"2017-03-16 09:32:28.000000000","message":"@John: there is two accepted prefix, os:scheduler_hints and OS-SCH-HNT:scheduler_hints see [1]\nLet\u0027s use one of that in the response. I vote for OS-SCH-HNT as the OS- prefix is use more often in the API than the simpler os: one.\n\n[1]https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/schemas/scheduler_hints.py#L75-L78\n\n@Zhenyu: Good point. It is OK for me to move this to the same level as the server key in the response too.","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"195ef493fe56e49569b3f7fc574b75ced1077578","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    {"},{"line_number":82,"context_line":"        \"server\": {"},{"line_number":83,"context_line":"            \"scheduler_hints\": {"},{"line_number":84,"context_line":"                                \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":85,"context_line":"                                \"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":86,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfeb2761_334abbab","line":83,"in_reply_to":"dfeb2761_3e64e9b8","updated":"2017-04-04 16:23:17.000000000","message":"I tried to propose a compromise. Putting the name of the hints to the response would create a heavier API contract and I agree that we should not make the API contract around scheduler hints heavier.\n@Jay: do you accept the current proposal? At least there are no API extension prefixes in there. ;)","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"be05c8694a5d0a28988dc6be67b26e6c7f243e8e","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"* Add \"scheduler_hints\" field to the server details response in a"},{"line_number":137,"context_line":"  new microversion, and fill it with the persisted scheduler hints"},{"line_number":138,"context_line":"* Extend existing functional tests"},{"line_number":139,"context_line":"* Update the API documentation"},{"line_number":140,"context_line":"* Update python-novaclient and its tests"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a1ff146_04bbab73","line":138,"range":{"start_line":138,"start_character":18,"end_line":138,"end_character":34},"updated":"2017-03-14 17:44:44.000000000","message":"I assume we mean tempest here? we should be explicit.","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f7797177707b7f21bf26e328960416a3fcc03cbe","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"* Add \"scheduler_hints\" field to the server details response in a"},{"line_number":137,"context_line":"  new microversion, and fill it with the persisted scheduler hints"},{"line_number":138,"context_line":"* Extend existing functional tests"},{"line_number":139,"context_line":"* Update the API documentation"},{"line_number":140,"context_line":"* Update python-novaclient and its tests"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a1ff146_d382ecff","line":138,"range":{"start_line":138,"start_character":18,"end_line":138,"end_character":34},"in_reply_to":"3a1ff146_04bbab73","updated":"2017-03-16 09:32:28.000000000","message":"why don\u0027t we have both? :)","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"195ef493fe56e49569b3f7fc574b75ced1077578","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"* Add \"scheduler_hints\" field to the server details response in a"},{"line_number":137,"context_line":"  new microversion, and fill it with the persisted scheduler hints"},{"line_number":138,"context_line":"* Extend existing functional tests"},{"line_number":139,"context_line":"* Update the API documentation"},{"line_number":140,"context_line":"* Update python-novaclient and its tests"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfeb2761_33a63b55","line":138,"range":{"start_line":138,"start_character":18,"end_line":138,"end_character":34},"in_reply_to":"3a1ff146_d382ecff","updated":"2017-04-04 16:23:17.000000000","message":"Done","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"be05c8694a5d0a28988dc6be67b26e6c7f243e8e","unresolved":false,"context_lines":[{"line_number":137,"context_line":"  new microversion, and fill it with the persisted scheduler hints"},{"line_number":138,"context_line":"* Extend existing functional tests"},{"line_number":139,"context_line":"* Update the API documentation"},{"line_number":140,"context_line":"* Update python-novaclient and its tests"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a1ff146_6481bf8f","line":140,"updated":"2017-03-14 17:44:44.000000000","message":"I guess thats just raising the max API version?","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"195ef493fe56e49569b3f7fc574b75ced1077578","unresolved":false,"context_lines":[{"line_number":137,"context_line":"  new microversion, and fill it with the persisted scheduler hints"},{"line_number":138,"context_line":"* Extend existing functional tests"},{"line_number":139,"context_line":"* Update the API documentation"},{"line_number":140,"context_line":"* Update python-novaclient and its tests"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dfeb2761_1365771e","line":140,"in_reply_to":"3a1ff146_53aefc85","updated":"2017-04-04 16:23:17.000000000","message":"Done","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f7797177707b7f21bf26e328960416a3fcc03cbe","unresolved":false,"context_lines":[{"line_number":137,"context_line":"  new microversion, and fill it with the persisted scheduler hints"},{"line_number":138,"context_line":"* Extend existing functional tests"},{"line_number":139,"context_line":"* Update the API documentation"},{"line_number":140,"context_line":"* Update python-novaclient and its tests"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a1ff146_53aefc85","line":140,"in_reply_to":"3a1ff146_6481bf8f","updated":"2017-03-16 09:32:28.000000000","message":"and adding the hints to the CLI output.","commit_id":"605bbc1ac62f64c9c1d58aed76331ce6d34b0183"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5aa70e9e26ec53936fb0568d202bc38cb84804b5","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"---------"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The user boots InstanceA without hints then she boots InstanceB with"},{"line_number":29,"context_line":"--hint same_host\u003dInstanceA."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Automatic evacuation"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_ffe771ab","line":28,"updated":"2017-04-04 18:18:48.000000000","message":"This isn\u0027t really a use case.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e9ff47482c0372d30c31871c4624eb674a4ea65f","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"---------"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The user boots InstanceA without hints then she boots InstanceB with"},{"line_number":29,"context_line":"--hint same_host\u003dInstanceA."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Automatic evacuation"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bff0334d_7e782a29","line":28,"in_reply_to":"dfeb2761_ffe771ab","updated":"2017-04-07 15:23:03.000000000","message":"Yeah, this is a preamble for the use cases below.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7ee8a38fb496beab8f487651641f29fe4d93f60a","unresolved":false,"context_lines":[{"line_number":36,"context_line":"However if the evacuation engine starts with InstanceA then evacuates InstanceB"},{"line_number":37,"context_line":"then both evacuations will be successful and the scheduler will keep the"},{"line_number":38,"context_line":"placement rule defined by the same_host hint at boot and will place InstanceB"},{"line_number":39,"context_line":"to the same host as InstanceA."},{"line_number":40,"context_line":"Therefore this evacuation engine needs to know what scheduler hints was used"},{"line_number":41,"context_line":"during the boot of the instances so that it can order the evacuations properly."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_df7b8e78","line":39,"updated":"2017-04-04 17:38:45.000000000","message":"its harder when you use server group affinity to do the same thing, as you have to force all the host moves.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e9ff47482c0372d30c31871c4624eb674a4ea65f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"However if the evacuation engine starts with InstanceA then evacuates InstanceB"},{"line_number":37,"context_line":"then both evacuations will be successful and the scheduler will keep the"},{"line_number":38,"context_line":"placement rule defined by the same_host hint at boot and will place InstanceB"},{"line_number":39,"context_line":"to the same host as InstanceA."},{"line_number":40,"context_line":"Therefore this evacuation engine needs to know what scheduler hints was used"},{"line_number":41,"context_line":"during the boot of the instances so that it can order the evacuations properly."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"bff0334d_5ed686f3","line":39,"in_reply_to":"dfeb2761_df7b8e78","updated":"2017-04-07 15:23:03.000000000","message":"Yes actually in case of a server group moving instances with affinity is only possible if the move operation ignores the placement rules. \nHowever the automatic evacuation engine at least has a way to know that the instances are part of a server group and if the group policy is affinity then simply state that it is not possible to move without ignoring the placement rule.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fb524a2944b96fa712da31bd09ccea49e17af995","unresolved":false,"context_lines":[{"line_number":38,"context_line":"placement rule defined by the same_host hint at boot and will place InstanceB"},{"line_number":39,"context_line":"to the same host as InstanceA."},{"line_number":40,"context_line":"Therefore this evacuation engine needs to know what scheduler hints was used"},{"line_number":41,"context_line":"during the boot of the instances so that it can order the evacuations properly."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Please note that this spec does not want to change the way the same_host and"},{"line_number":44,"context_line":"different_host hints work i.e. that these hint are not bidirectional. That"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5ff73747_2392a19f","line":41,"range":{"start_line":41,"start_character":48,"end_line":41,"end_character":79},"updated":"2017-04-25 17:38:01.000000000","message":"its not quite that simple. when instanceA is migrated it must be migrated to a host that is cappable of hosting instanceA and instanceB or the migration of instanceB will still fail so the scheduler/placement api would have to consider the allocations requirement for the entire affinity group.\n\nim not sure that would be possible currently without have claims in the placement api and the abbility to specify the use of those claimed resources as part of the migration request for the group as a whole.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd9298145861a7c312e917ed25e7427d7106f976","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"User issued move"},{"line_number":48,"context_line":"~~~~~~~~~~~~~~~~"},{"line_number":49,"context_line":"User issues migrate or resize command on InstanceB and that will fail with"},{"line_number":50,"context_line":"NoValidHost as the scheduler enforces the same_host hint provided at boot."},{"line_number":51,"context_line":"User does not understand the situation so she opens a support ticket."},{"line_number":52,"context_line":"The support person has to look into the nova DB to see the same_host hint that"},{"line_number":53,"context_line":"explains the NoValidHost. The support person cannot provide any procedure to"},{"line_number":54,"context_line":"the user that the user can use in the future to understand the situation so"},{"line_number":55,"context_line":"either the user always remember what hints was used for the instances or she"},{"line_number":56,"context_line":"has to contact support in every such case."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Note that similar issues can be produced with different_host hint if the number"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_3f339916","line":56,"range":{"start_line":49,"start_character":0,"end_line":56,"end_character":42},"updated":"2017-04-04 18:34:27.000000000","message":"Eww. This really seems like something we could just detect earlier in the process and fail with a 409 or something in the API rather than an async NoValidHost, or at least put a reasonable fault on the instance. But then we have to start encoding scheduler hint checks into the API which we don\u0027t want to do I suppose.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fb524a2944b96fa712da31bd09ccea49e17af995","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"User issued move"},{"line_number":48,"context_line":"~~~~~~~~~~~~~~~~"},{"line_number":49,"context_line":"User issues migrate or resize command on InstanceB and that will fail with"},{"line_number":50,"context_line":"NoValidHost as the scheduler enforces the same_host hint provided at boot."},{"line_number":51,"context_line":"User does not understand the situation so she opens a support ticket."},{"line_number":52,"context_line":"The support person has to look into the nova DB to see the same_host hint that"},{"line_number":53,"context_line":"explains the NoValidHost. The support person cannot provide any procedure to"},{"line_number":54,"context_line":"the user that the user can use in the future to understand the situation so"},{"line_number":55,"context_line":"either the user always remember what hints was used for the instances or she"},{"line_number":56,"context_line":"has to contact support in every such case."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Note that similar issues can be produced with different_host hint if the number"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5ff73747_63954940","line":56,"range":{"start_line":49,"start_character":0,"end_line":56,"end_character":42},"in_reply_to":"bff0334d_3e4d029a","updated":"2017-04-25 17:38:01.000000000","message":"resize seams valid for the user to do but migrate is generally an admin only command so im not sure this make sense to talk about as a user action unless user here does not map to tenant? in that case the language regarding opening a support ticket is a little strange.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e9ff47482c0372d30c31871c4624eb674a4ea65f","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"User issued move"},{"line_number":48,"context_line":"~~~~~~~~~~~~~~~~"},{"line_number":49,"context_line":"User issues migrate or resize command on InstanceB and that will fail with"},{"line_number":50,"context_line":"NoValidHost as the scheduler enforces the same_host hint provided at boot."},{"line_number":51,"context_line":"User does not understand the situation so she opens a support ticket."},{"line_number":52,"context_line":"The support person has to look into the nova DB to see the same_host hint that"},{"line_number":53,"context_line":"explains the NoValidHost. The support person cannot provide any procedure to"},{"line_number":54,"context_line":"the user that the user can use in the future to understand the situation so"},{"line_number":55,"context_line":"either the user always remember what hints was used for the instances or she"},{"line_number":56,"context_line":"has to contact support in every such case."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Note that similar issues can be produced with different_host hint if the number"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bff0334d_3e4d029a","line":56,"range":{"start_line":49,"start_character":0,"end_line":56,"end_character":42},"in_reply_to":"dfeb2761_3f339916","updated":"2017-04-07 15:23:03.000000000","message":"With two instances this seems trivial. But if you have 10 instances with intricate connections using both same_host and different_host hints then the algorithm becomes complex (not to talk about mixing in server groups as well). I guess nova doesn\u0027t want add that complexity as it can sit in the external evacuation engine.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2575a7982d926afcc417873ea9b8210760108548","unresolved":false,"context_lines":[{"line_number":82,"context_line":"of ``scheduler_hints``, mainly when an instance is created with Mitaka or"},{"line_number":83,"context_line":"older release. They did not have persisted hints, so the new"},{"line_number":84,"context_line":"``scheduler_hints`` field\u0027s value contains the current hints that will be"},{"line_number":85,"context_line":"considered for the next instance moves. If the instance is soo old that there"},{"line_number":86,"context_line":"is no RequestSpec in the db for the instance then the value of the new"},{"line_number":87,"context_line":"scheduler_hints key will be set to None."},{"line_number":88,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_c9807c49","line":85,"updated":"2017-04-04 16:45:41.000000000","message":"s/soo/so/","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"53db5abc6b422c5fd51f58a32270dbf6b3a4c81e","unresolved":false,"context_lines":[{"line_number":84,"context_line":"``scheduler_hints`` field\u0027s value contains the current hints that will be"},{"line_number":85,"context_line":"considered for the next instance moves. If the instance is soo old that there"},{"line_number":86,"context_line":"is no RequestSpec in the db for the instance then the value of the new"},{"line_number":87,"context_line":"scheduler_hints key will be set to None."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Alternatives"},{"line_number":90,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_c2dcd2e5","line":87,"range":{"start_line":87,"start_character":35,"end_line":87,"end_character":39},"updated":"2017-04-04 18:49:49.000000000","message":"Looking at the change for exposing instance.flavor in the server details response, if the flavor does not have extra_specs then we\u0027re returning {} rather than None.\n\nhttps://review.openstack.org/#/c/434514/3/doc/api_samples/servers/v2.43/server-get-resp.json@38\n\nWe should probably be consistent here.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e9ff47482c0372d30c31871c4624eb674a4ea65f","unresolved":false,"context_lines":[{"line_number":84,"context_line":"``scheduler_hints`` field\u0027s value contains the current hints that will be"},{"line_number":85,"context_line":"considered for the next instance moves. If the instance is soo old that there"},{"line_number":86,"context_line":"is no RequestSpec in the db for the instance then the value of the new"},{"line_number":87,"context_line":"scheduler_hints key will be set to None."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Alternatives"},{"line_number":90,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bff0334d_d125e7ac","line":87,"range":{"start_line":87,"start_character":35,"end_line":87,"end_character":39},"in_reply_to":"dfeb2761_c2dcd2e5","updated":"2017-04-07 15:23:03.000000000","message":"This is debatable as there are two distinct cases:\n1) there is no data available about the scheduler_hints as there is no RequestSpec object attached to the instance as the instance is older that RequestSpec introduction.\n2) the user didn\u0027t specify any scheduler_hints at boot.\n\nReturning {} for #1 can be misleading and we can actually use  null to signal #1 and use the natural {} in #2","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7ee8a38fb496beab8f487651641f29fe4d93f60a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":102,"context_line":"Instead of showing the scheduler hints directly in the GET /server/{server-id}"},{"line_number":103,"context_line":"response, show the hints under the metadata key of the server response."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Data model impact"},{"line_number":107,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_1f2a167e","line":104,"updated":"2017-04-04 17:38:45.000000000","message":"I think we should include the alternative we were discussing around:\n\n* formalise scheduler_hints (plugin system, stricter validation, discovery, etc)\n* then expose just the ones the system accepts.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fb524a2944b96fa712da31bd09ccea49e17af995","unresolved":false,"context_lines":[{"line_number":101,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":102,"context_line":"Instead of showing the scheduler hints directly in the GET /server/{server-id}"},{"line_number":103,"context_line":"response, show the hints under the metadata key of the server response."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Data model impact"},{"line_number":107,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5ff73747_6602f60b","line":104,"in_reply_to":"bff0334d_511797ee","updated":"2017-04-25 17:38:01.000000000","message":"making the validation strict is quite hard while keep backwards compatiablity given the power of the query option.\n\nhttps://github.com/openstack/nova/blob/3e7709d778e600160ac32e38de34c0b236d1605d/nova/api/openstack/compute/schemas/scheduler_hints.py#L47-L51\n\nWhen used with the json filter \n\nhttps://github.com/openstack/nova/blob/master/nova/scheduler/filters/json_filter.py\n\ni have seen the scheduler hints used to choose a host by hypervizer type, hostname and cpu id to list but 3 usecases.\n\nit may be limited to data in the host_state object but that is still alot of control https://github.com/openstack/nova/blob/c9eb9530314d047f5013941ebcfd5ef0192a9dc3/nova/scheduler/host_manager.py#L103\n\ni agree that the soft and hard constraits concept in the placement api review has a more generic way to accomplish this\npeopel have enabled some of those usescases using the json filter already.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd9298145861a7c312e917ed25e7427d7106f976","unresolved":false,"context_lines":[{"line_number":101,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":102,"context_line":"Instead of showing the scheduler hints directly in the GET /server/{server-id}"},{"line_number":103,"context_line":"response, show the hints under the metadata key of the server response."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Data model impact"},{"line_number":107,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_a23f8eb2","line":104,"in_reply_to":"dfeb2761_1f2a167e","updated":"2017-04-04 18:34:27.000000000","message":"During the March 23 2017 nova meeting we also talked about a much higher level (and invasive) set of changes which related to entire server groups:\n\nhttp://eavesdrop.openstack.org/meetings/nova/2017/nova.2017-03-23-14.00.log.html\n\nOr tagging like instances and then say, migrate all instances with the same tag. But we talked about a few alternatives in that meeting and I thought gibi was going to propose a backlog spec with the high-level idea.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e9ff47482c0372d30c31871c4624eb674a4ea65f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":102,"context_line":"Instead of showing the scheduler hints directly in the GET /server/{server-id}"},{"line_number":103,"context_line":"response, show the hints under the metadata key of the server response."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Data model impact"},{"line_number":107,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bff0334d_511797ee","line":104,"in_reply_to":"dfeb2761_a23f8eb2","updated":"2017-04-07 15:23:03.000000000","message":"Yes there is a lot of thing can / should be fixed about scheduler hints. However I feel I cannot do both the notification transformation work and redesigning the scheduler hints at the same time. So I\u0027m putting the scheduler hint stuff aside for a while. \nBTW there was a pretty good discussion about redesigning scheduler hints in [1] so I suggest to continue that instead of starting a new one.\n\n[1]https://review.openstack.org/#/c/183837","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"7cc77b29b5875e346a586172370fd5bf0d669678","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    {"},{"line_number":126,"context_line":"        \"server\": {"},{"line_number":127,"context_line":"            \"scheduler_hints\": {"},{"line_number":128,"context_line":"                \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":129,"context_line":"                \"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":130,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_84201b4a","line":127,"range":{"start_line":127,"start_character":12,"end_line":127,"end_character":29},"updated":"2017-04-04 17:13:02.000000000","message":"So will this key be in *all* responses? Or only in those for servers that were created with hints?","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e9ff47482c0372d30c31871c4624eb674a4ea65f","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    {"},{"line_number":126,"context_line":"        \"server\": {"},{"line_number":127,"context_line":"            \"scheduler_hints\": {"},{"line_number":128,"context_line":"                \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":129,"context_line":"                \"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":130,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bff0334d_b1d02321","line":127,"range":{"start_line":127,"start_character":12,"end_line":127,"end_character":29},"in_reply_to":"dfeb2761_62df46d6","updated":"2017-04-07 15:23:03.000000000","message":"I think we have an extra option to cover here, see my answer at L104","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"10e61b0c61f456889a58083a80f931f426d834b6","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    {"},{"line_number":126,"context_line":"        \"server\": {"},{"line_number":127,"context_line":"            \"scheduler_hints\": {"},{"line_number":128,"context_line":"                \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":129,"context_line":"                \"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":130,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_84a13b97","line":127,"range":{"start_line":127,"start_character":12,"end_line":127,"end_character":29},"in_reply_to":"dfeb2761_84201b4a","updated":"2017-04-04 17:17:57.000000000","message":"It should be in all responses, and sometimes empty right?\n\nMight be good to confirm that I guess.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e8964f74ad881f79270d6869cb6d427c26cd373b","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    {"},{"line_number":126,"context_line":"        \"server\": {"},{"line_number":127,"context_line":"            \"scheduler_hints\": {"},{"line_number":128,"context_line":"                \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":129,"context_line":"                \"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":130,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_c4d3c3d4","line":127,"range":{"start_line":127,"start_character":12,"end_line":127,"end_character":29},"in_reply_to":"dfeb2761_84a13b97","updated":"2017-04-04 17:24:05.000000000","message":"See line 87. It will be present with a value of None.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"53db5abc6b422c5fd51f58a32270dbf6b3a4c81e","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    {"},{"line_number":126,"context_line":"        \"server\": {"},{"line_number":127,"context_line":"            \"scheduler_hints\": {"},{"line_number":128,"context_line":"                \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":129,"context_line":"                \"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":130,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_62df46d6","line":127,"range":{"start_line":127,"start_character":12,"end_line":127,"end_character":29},"in_reply_to":"dfeb2761_c2c73296","updated":"2017-04-04 18:49:49.000000000","message":"For the flavors change we\u0027re returning {} if the flavor does not have extra specs:\n\nhttps://review.openstack.org/#/c/434514/3/doc/api_samples/servers/v2.43/server-get-resp.json@38","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd9298145861a7c312e917ed25e7427d7106f976","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    {"},{"line_number":126,"context_line":"        \"server\": {"},{"line_number":127,"context_line":"            \"scheduler_hints\": {"},{"line_number":128,"context_line":"                \"group\": \"2eeb70fe-0e2b-48ab-bdb0-67f83a090188\","},{"line_number":129,"context_line":"                \"same_host\": \"45a4ae81-b117-4f08-883b-bb6990774203\""},{"line_number":130,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_c2c73296","line":127,"range":{"start_line":127,"start_character":12,"end_line":127,"end_character":29},"in_reply_to":"dfeb2761_c4d3c3d4","updated":"2017-04-04 18:34:27.000000000","message":"Hmm, would need to cross-reference this with the spec to expose flavor information in the server response because we could have the same thing with flavor extra_specs, where there are none or you don\u0027t have permission to see them - do we return extra_specs: None or not include extra_specs at all?","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2575a7982d926afcc417873ea9b8210760108548","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* URL:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"  * /v2.1/servers/detail"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"* Request Method:"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_a999b8c4","line":137,"updated":"2017-04-04 16:45:41.000000000","message":"/servers/{server_id}/detail (here and above on line 71)","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd9298145861a7c312e917ed25e7427d7106f976","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* URL:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"  * /v2.1/servers/detail"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"* Request Method:"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_22f01efe","line":137,"in_reply_to":"dfeb2761_a999b8c4","updated":"2017-04-04 18:34:27.000000000","message":"We don\u0027t have a /servers/{server_id}/detail API.\n\nWe have /servers/detail to list servers with details, and /servers/{server_id} to get details for a specific server.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7ee8a38fb496beab8f487651641f29fe4d93f60a","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        ]"},{"line_number":155,"context_line":"    }"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"The default policy of the new field is  ``admin_or_owner``."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Note that the scheduler_hints key are outside of the server key in the POST"},{"line_number":160,"context_line":"request but if we want to keep the above two responses consistent then we have"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_ffa1b2f9","line":157,"range":{"start_line":157,"start_character":42,"end_line":157,"end_character":56},"updated":"2017-04-04 17:38:45.000000000","message":"All the move operations that need this appear to be admin only, its tempting to make this admin only.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fb524a2944b96fa712da31bd09ccea49e17af995","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        ]"},{"line_number":155,"context_line":"    }"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"The default policy of the new field is  ``admin_or_owner``."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Note that the scheduler_hints key are outside of the server key in the POST"},{"line_number":160,"context_line":"request but if we want to keep the above two responses consistent then we have"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5ff73747_c34adc53","line":157,"range":{"start_line":157,"start_character":42,"end_line":157,"end_character":56},"in_reply_to":"dfeb2761_82d80a1e","updated":"2017-04-25 17:38:01.000000000","message":"if we used none ya there would be no way to disambiguate the case of no scheduler hints and no permission\nso either an explict sentinel is need to signify the latter other then none or an empty dict or the key should be ommited from the responce.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fe6973c0c7202fa1b3c80badbbd83102d39dcabb","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        ]"},{"line_number":155,"context_line":"    }"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"The default policy of the new field is  ``admin_or_owner``."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Note that the scheduler_hints key are outside of the server key in the POST"},{"line_number":160,"context_line":"request but if we want to keep the above two responses consistent then we have"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_82d80a1e","line":157,"range":{"start_line":157,"start_character":42,"end_line":157,"end_character":56},"in_reply_to":"dfeb2761_ffa1b2f9","updated":"2017-04-04 18:43:09.000000000","message":"For the flavors spec, it says:\n\nhttps://specs.openstack.org/openstack/nova-specs/specs/pike/approved/instance-flavor-api.html#proposed-change\n\n\"The visibility of the flavor data within the server resource will be controlled by the same policy rules as are used for displaying the flavor rxtx_factor and flavor extra_specs when displaying flavor details.\"\n\nSo if you don\u0027t have permission to see the hints, are we going to exclude the scheduler_hints key in the response, or just map it to None? I think we need to exclude it to be consistent, and not confusing since None would be confusing if the instance was booted with hints but we said it wasn\u0027t due to policy.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2575a7982d926afcc417873ea9b8210760108548","unresolved":false,"context_lines":[{"line_number":159,"context_line":"Note that the scheduler_hints key are outside of the server key in the POST"},{"line_number":160,"context_line":"request but if we want to keep the above two responses consistent then we have"},{"line_number":161,"context_line":"to put the scheduler_hint key inside the server blob in the response as the"},{"line_number":162,"context_line":"/v2.1/servers/detail API returns a list of servers."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Note that there are concerns that by this change the name of the scheduler"},{"line_number":165,"context_line":"hints become part of the API contract. As the scheduler hints are something"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_8996f492","line":162,"updated":"2017-04-04 16:45:41.000000000","message":"Correct. Also, /servers/{server_id}/detail","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd9298145861a7c312e917ed25e7427d7106f976","unresolved":false,"context_lines":[{"line_number":159,"context_line":"Note that the scheduler_hints key are outside of the server key in the POST"},{"line_number":160,"context_line":"request but if we want to keep the above two responses consistent then we have"},{"line_number":161,"context_line":"to put the scheduler_hint key inside the server blob in the response as the"},{"line_number":162,"context_line":"/v2.1/servers/detail API returns a list of servers."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Note that there are concerns that by this change the name of the scheduler"},{"line_number":165,"context_line":"hints become part of the API contract. As the scheduler hints are something"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_223ede8b","line":162,"in_reply_to":"dfeb2761_8996f492","updated":"2017-04-04 18:34:27.000000000","message":"See above, that doesn\u0027t exist.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2575a7982d926afcc417873ea9b8210760108548","unresolved":false,"context_lines":[{"line_number":171,"context_line":"then she already made a dependency to that names. So seeing the same names in"},{"line_number":172,"context_line":"the server responses does not create additional dependency. In the other hand"},{"line_number":173,"context_line":"users that are not using this feature will not see any value appearing in the"},{"line_number":174,"context_line":"new scheduler_hints key so there is no new dependency there either."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_698f3075","line":174,"updated":"2017-04-04 16:45:41.000000000","message":"Agreed.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd9298145861a7c312e917ed25e7427d7106f976","unresolved":false,"context_lines":[{"line_number":251,"context_line":"References"},{"line_number":252,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"[1]: https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/schemas/scheduler_hints.py#L18"},{"line_number":255,"context_line":"[2]: https://docs.openstack.org/cli-reference/nova.html#nova-show"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dfeb2761_df16ed55","line":254,"updated":"2017-04-04 18:34:27.000000000","message":"nit: if you\u0027re going to use a line number reference, I would link from a tag or commit hash since the line number may change over time.","commit_id":"da5c23f8b52bf0b836b4bf3fb8cbc6a482e70351"}]}
