)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"ac961de3529b5c25075b92ac03830fbe452d9773","unresolved":false,"context_lines":[{"line_number":12,"context_line":"in OpenStack Patrole project."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ie0d65d83923331caaa9cbbbd63b096ff8400bffa"},{"line_number":15,"context_line":"Partial-Bug:: #1673811"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1a1ced50_e0e344d7","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":22},"updated":"2017-03-21 19:24:00.000000000","message":"nit: Extra colon.","commit_id":"98f9eefc098e32f2567a8f90ce4c4802f9931cab"}],"tempest/lib/api_schema/response/compute/v2_1/servers.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"95fc850973ba206108509ae5e7fe01db23c54e40","unresolved":false,"context_lines":[{"line_number":570,"context_line":"    \u0027response_body\u0027: {"},{"line_number":571,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":572,"context_line":"        \u0027properties\u0027: {"},{"line_number":573,"context_line":"            \u0027adminPass\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}"},{"line_number":574,"context_line":"        },"},{"line_number":575,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":576,"context_line":"        \u0027required\u0027: [\u0027adminPass\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffe62b97_383b36d2","line":573,"range":{"start_line":573,"start_character":46,"end_line":573,"end_character":50},"updated":"2017-03-24 03:24:46.000000000","message":"this cannot be null, either requested one otherwise nova generate one for you.","commit_id":"f06a9ec4a856b772c918bf8113894b9d1c9dd58c"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"ec3c515d58a73fd97fa3605aac70dae0f8678b67","unresolved":false,"context_lines":[{"line_number":570,"context_line":"    \u0027response_body\u0027: {"},{"line_number":571,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":572,"context_line":"        \u0027properties\u0027: {"},{"line_number":573,"context_line":"            \u0027adminPass\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}"},{"line_number":574,"context_line":"        },"},{"line_number":575,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":576,"context_line":"        \u0027required\u0027: [\u0027adminPass\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffe62b97_96a44e0a","line":573,"range":{"start_line":573,"start_character":46,"end_line":573,"end_character":50},"in_reply_to":"ffe62b97_30690a25","updated":"2017-03-24 07:06:37.000000000","message":"Fine, then I will amend this accordingly.","commit_id":"f06a9ec4a856b772c918bf8113894b9d1c9dd58c"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"c6b60f11410026d3588f0ea15da55e89a264749e","unresolved":false,"context_lines":[{"line_number":570,"context_line":"    \u0027response_body\u0027: {"},{"line_number":571,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":572,"context_line":"        \u0027properties\u0027: {"},{"line_number":573,"context_line":"            \u0027adminPass\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}"},{"line_number":574,"context_line":"        },"},{"line_number":575,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":576,"context_line":"        \u0027required\u0027: [\u0027adminPass\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffe62b97_4e12b0b3","line":573,"range":{"start_line":573,"start_character":46,"end_line":573,"end_character":50},"in_reply_to":"ffe62b97_383b36d2","updated":"2017-03-24 05:10:12.000000000","message":"Ghanshyam san, form the API docs (description in Response section) https://developer.openstack.org/api-ref/compute/?expanded\u003devacuate-server-evacuate-action-detail#evacuate-server-evacuate-action\n\nI can see that adminPass will always returned as \"key\" and its value can be either null or a string.\n\n\"If you set this option to False and you try to set the administrative password, the API does not set the password and the response shows a null value for the adminPass parameter.\"\n\nFrom above it seems, for False case it will return -\nadminPass\u003dNull\n\nSo I think null is also required. This is my doubt. Please check the docs and confirm whether I am correct or wrong.","commit_id":"f06a9ec4a856b772c918bf8113894b9d1c9dd58c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b46778d89ffe6c4993e331d8f63fdb5abb008ea9","unresolved":false,"context_lines":[{"line_number":570,"context_line":"    \u0027response_body\u0027: {"},{"line_number":571,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":572,"context_line":"        \u0027properties\u0027: {"},{"line_number":573,"context_line":"            \u0027adminPass\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}"},{"line_number":574,"context_line":"        },"},{"line_number":575,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":576,"context_line":"        \u0027required\u0027: [\u0027adminPass\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffe62b97_30690a25","line":573,"range":{"start_line":573,"start_character":46,"end_line":573,"end_character":50},"in_reply_to":"ffe62b97_4e12b0b3","updated":"2017-03-24 06:03:01.000000000","message":"This is defiantly wrong in doc(ll fix it). Nova does not reurnt adminPass field in response if not set\n\n- https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/evacuate.py#L130-L134","commit_id":"f06a9ec4a856b772c918bf8113894b9d1c9dd58c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"95fc850973ba206108509ae5e7fe01db23c54e40","unresolved":false,"context_lines":[{"line_number":573,"context_line":"            \u0027adminPass\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}"},{"line_number":574,"context_line":"        },"},{"line_number":575,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":576,"context_line":"        \u0027required\u0027: [\u0027adminPass\u0027]"},{"line_number":577,"context_line":"    }"},{"line_number":578,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffe62b97_7821be9f","line":576,"range":{"start_line":576,"start_character":8,"end_line":576,"end_character":33},"updated":"2017-03-24 03:24:46.000000000","message":"this is not right always. Nova return adminPass based on config option enable_instance_password.\n\nso we should have 2 schema here with and without adminPass\nlike- \n\nevacuate_server \u003d {\n    \u0027status_code\u0027: [200]\n}\n\nevacuate_server_with_admin_pass \u003d copy.deepcopy(evacuate_server)\nevacuate_server_with_admin_pass[\u0027response_body\u0027][\u0027properties\u0027][\u0027server\u0027][\n    \u0027properties\u0027].update({\u0027adminPass\u0027: {\u0027type\u0027: \u0027string\u0027}})\nevacuate(_server_with_admin_pass[\u0027response_body\u0027][\u0027properties\u0027][\u0027server\u0027][\n    \u0027required\u0027].append(\u0027adminPass\u0027)","commit_id":"f06a9ec4a856b772c918bf8113894b9d1c9dd58c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b46778d89ffe6c4993e331d8f63fdb5abb008ea9","unresolved":false,"context_lines":[{"line_number":573,"context_line":"            \u0027adminPass\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}"},{"line_number":574,"context_line":"        },"},{"line_number":575,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":576,"context_line":"        \u0027required\u0027: [\u0027adminPass\u0027]"},{"line_number":577,"context_line":"    }"},{"line_number":578,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffe62b97_f04ba2ad","line":576,"range":{"start_line":576,"start_character":8,"end_line":576,"end_character":33},"in_reply_to":"ffe62b97_4eee3089","updated":"2017-03-24 06:03:01.000000000","message":"Actually adminPass field in response is present based on nova config options to we have to adjust the schema accordingly.","commit_id":"f06a9ec4a856b772c918bf8113894b9d1c9dd58c"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"97d782bf5f328cb1e76ea5bae2a47bfba928f0b2","unresolved":false,"context_lines":[{"line_number":573,"context_line":"            \u0027adminPass\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}"},{"line_number":574,"context_line":"        },"},{"line_number":575,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":576,"context_line":"        \u0027required\u0027: [\u0027adminPass\u0027]"},{"line_number":577,"context_line":"    }"},{"line_number":578,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffe62b97_05f0fec8","line":576,"range":{"start_line":576,"start_character":8,"end_line":576,"end_character":33},"in_reply_to":"ffe62b97_7821be9f","updated":"2017-03-24 09:15:53.000000000","message":"Gmann, \nhere you have mentioned \"server\" in properties -\nevacuate_server_with_admin_pass[\u0027response_body\u0027][\u0027properties\u0027][\u0027server\u0027]\n\nDo we need server also ? because in API docs \u0027server; is not there in response.","commit_id":"f06a9ec4a856b772c918bf8113894b9d1c9dd58c"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"c6b60f11410026d3588f0ea15da55e89a264749e","unresolved":false,"context_lines":[{"line_number":573,"context_line":"            \u0027adminPass\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}"},{"line_number":574,"context_line":"        },"},{"line_number":575,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":576,"context_line":"        \u0027required\u0027: [\u0027adminPass\u0027]"},{"line_number":577,"context_line":"    }"},{"line_number":578,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffe62b97_4eee3089","line":576,"range":{"start_line":576,"start_character":8,"end_line":576,"end_character":33},"in_reply_to":"ffe62b97_7821be9f","updated":"2017-03-24 05:10:12.000000000","message":"If above combination {string, null} is true then I think we can ignore this these additional steps.","commit_id":"f06a9ec4a856b772c918bf8113894b9d1c9dd58c"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"ec3c515d58a73fd97fa3605aac70dae0f8678b67","unresolved":false,"context_lines":[{"line_number":573,"context_line":"            \u0027adminPass\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027null\u0027]}"},{"line_number":574,"context_line":"        },"},{"line_number":575,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":576,"context_line":"        \u0027required\u0027: [\u0027adminPass\u0027]"},{"line_number":577,"context_line":"    }"},{"line_number":578,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffe62b97_d69ad6c3","line":576,"range":{"start_line":576,"start_character":8,"end_line":576,"end_character":33},"in_reply_to":"ffe62b97_f04ba2ad","updated":"2017-03-24 07:06:37.000000000","message":"Yes if it does return \"adminPass\" then we have to remove it from required.","commit_id":"f06a9ec4a856b772c918bf8113894b9d1c9dd58c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7a5b82d665f0679b876f99ac30d5ffae1b3c79fe","unresolved":false,"context_lines":[{"line_number":567,"context_line":""},{"line_number":568,"context_line":"evacuate_server \u003d {"},{"line_number":569,"context_line":"    \u0027status_code\u0027: [200],"},{"line_number":570,"context_line":"    \u0027response_body\u0027: {"},{"line_number":571,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":572,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":573,"context_line":"    }"},{"line_number":574,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":8,"id":"ffe62b97_3ad0991f","line":571,"range":{"start_line":570,"start_character":22,"end_line":571,"end_character":25},"updated":"2017-03-25 06:46:08.000000000","message":"it would not be object, its just no body.","commit_id":"1df5c3c70dc135e8ae3c28a0151990bd3fb8b676"}],"tempest/lib/services/compute/servers_client.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0aba0c2ce62b43fca68dc8769765499782b4f8d9","unresolved":false,"context_lines":[{"line_number":821,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":822,"context_line":"        API reference:"},{"line_number":823,"context_line":"        https://developer.openstack.org/api-ref/compute/#evacuate-server-evacuate-action"},{"line_number":824,"context_line":"        \"\"\""},{"line_number":825,"context_line":"        return self.action(server_id, \u0027evacuate\u0027, **kwargs)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_a07cecb5","line":824,"updated":"2017-03-21 19:36:33.000000000","message":"Isn\u0027t a self.validate_response() needed here since https://developer.openstack.org/api-ref/compute/#evacuate-server-evacuate-action returns a response body containing (as an optional field):\n\n{\n    \"adminPass\": \"MySecretPass\"\n}","commit_id":"0e0cd6fed06a677bb53cc78f90efcb08586710ac"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"95fc850973ba206108509ae5e7fe01db23c54e40","unresolved":false,"context_lines":[{"line_number":823,"context_line":"        https://developer.openstack.org/api-ref/compute/#evacuate-server-evacuate-action"},{"line_number":824,"context_line":"        \"\"\""},{"line_number":825,"context_line":"        return self.action(server_id, \u0027evacuate\u0027,"},{"line_number":826,"context_line":"                           schema.evacuate_server,"},{"line_number":827,"context_line":"                           **kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffe62b97_3869f6bd","line":826,"range":{"start_line":826,"start_character":27,"end_line":826,"end_character":49},"updated":"2017-03-24 03:24:46.000000000","message":"schema should be fetched like below\n        if self.enable_instance_password:\n            evacuate_schema \u003d schema.evacuate_server_with_admin_pass\n        else:\n            evacuate_schema \u003d evacuate.create_server","commit_id":"f06a9ec4a856b772c918bf8113894b9d1c9dd58c"}],"tempest/tests/lib/services/compute/test_servers_client.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"95fc850973ba206108509ae5e7fe01db23c54e40","unresolved":false,"context_lines":[{"line_number":326,"context_line":"            name\u003d\u0027fake-name\u0027"},{"line_number":327,"context_line":"            )"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def test_evacuate_server(self):"},{"line_number":330,"context_line":"        self.check_service_client_function("},{"line_number":331,"context_line":"            self.client.evacuate_server,"},{"line_number":332,"context_line":"            \u0027tempest.lib.common.rest_client.RestClient.post\u0027,"},{"line_number":333,"context_line":"            self.FAKE_SERVER_PASSWORD,"},{"line_number":334,"context_line":"            server_id\u003dself.server_id,"},{"line_number":335,"context_line":"            host\u003d\u0027fake-target-host\u0027,"},{"line_number":336,"context_line":"            onSharedStorage\u003dFalse"},{"line_number":337,"context_line":"            )"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def test_change_password_with_str_body(self):"},{"line_number":340,"context_line":"        self._test_change_password()"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffe62b97_38733683","line":337,"range":{"start_line":329,"start_character":0,"end_line":337,"end_character":13},"updated":"2017-03-24 03:24:46.000000000","message":"As there is no actual tests testing that client method, to cover it fully with UT we need to tests this with both, with and without adminPass expected.\n\nAlso with and without byte_body like other tests.","commit_id":"f06a9ec4a856b772c918bf8113894b9d1c9dd58c"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"c6b60f11410026d3588f0ea15da55e89a264749e","unresolved":false,"context_lines":[{"line_number":326,"context_line":"            name\u003d\u0027fake-name\u0027"},{"line_number":327,"context_line":"            )"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def test_evacuate_server(self):"},{"line_number":330,"context_line":"        self.check_service_client_function("},{"line_number":331,"context_line":"            self.client.evacuate_server,"},{"line_number":332,"context_line":"            \u0027tempest.lib.common.rest_client.RestClient.post\u0027,"},{"line_number":333,"context_line":"            self.FAKE_SERVER_PASSWORD,"},{"line_number":334,"context_line":"            server_id\u003dself.server_id,"},{"line_number":335,"context_line":"            host\u003d\u0027fake-target-host\u0027,"},{"line_number":336,"context_line":"            onSharedStorage\u003dFalse"},{"line_number":337,"context_line":"            )"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def test_change_password_with_str_body(self):"},{"line_number":340,"context_line":"        self._test_change_password()"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffe62b97_2e552c51","line":337,"range":{"start_line":329,"start_character":0,"end_line":337,"end_character":13},"in_reply_to":"ffe62b97_38733683","updated":"2017-03-24 05:10:12.000000000","message":"Will add in next patch. Thanks.","commit_id":"f06a9ec4a856b772c918bf8113894b9d1c9dd58c"}]}
