)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"514f5b766459b1130f8885867b4715093403e40b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add metadata functional negative tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The metadata API tests of unexpected status are"},{"line_number":10,"context_line":"not covered enough in tests."},{"line_number":11,"context_line":"Add this for negative functional test."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ic74d584bdce8a0d878e358211d69c7e7f629e457"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a77a97e_5d08f391","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":27},"updated":"2016-11-21 19:07:31.000000000","message":"This description seems a little rough, it is nice to describe what negative tests we want to test here.","commit_id":"b64d68eec0a40706cda95dd1e10c4db8a3c65159"},{"author":{"_account_id":11704,"name":"Maho Koshiya","email":"koshiya.maho@po.ntt-tx.co.jp","username":"koshi-m"},"change_message_id":"5fff871834871aa77ba8489203642dd9b9c8897e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add metadata functional negative tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The metadata API tests of unexpected status are"},{"line_number":10,"context_line":"not covered enough in tests."},{"line_number":11,"context_line":"Add this for negative functional test."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ic74d584bdce8a0d878e358211d69c7e7f629e457"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a74a57a_3c2150a0","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":27},"in_reply_to":"7a77a97e_5d08f391","updated":"2016-11-24 09:25:35.000000000","message":"Done","commit_id":"b64d68eec0a40706cda95dd1e10c4db8a3c65159"}],"nova/tests/functional/api/client.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1378a5a9333902b614a0a3b5934aa9e8a20e34ef","unresolved":false,"context_lines":[{"line_number":365,"context_line":"                             post_body).body[\u0027metadata\u0027]"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    def delete_server_metadata(self, server_id, key):"},{"line_number":368,"context_line":"        return self.api_delete(\u0027/servers/%s/metadata/%s\u0027 %"},{"line_number":369,"context_line":"                            (server_id, key))"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    def get_server_groups(self, all_projects\u003dNone):"},{"line_number":372,"context_line":"        if all_projects:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_43fa93be","line":369,"range":{"start_line":368,"start_character":31,"end_line":369,"end_character":44},"updated":"2016-10-31 10:52:55.000000000","message":"alignment","commit_id":"aa392d9e8984f46e3357dc1356d9107bce6c207a"},{"author":{"_account_id":11704,"name":"Maho Koshiya","email":"koshiya.maho@po.ntt-tx.co.jp","username":"koshi-m"},"change_message_id":"020b0be4be358d5d478d2a7510005a74d27a1655","unresolved":false,"context_lines":[{"line_number":365,"context_line":"                             post_body).body[\u0027metadata\u0027]"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    def delete_server_metadata(self, server_id, key):"},{"line_number":368,"context_line":"        return self.api_delete(\u0027/servers/%s/metadata/%s\u0027 %"},{"line_number":369,"context_line":"                            (server_id, key))"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    def get_server_groups(self, all_projects\u003dNone):"},{"line_number":372,"context_line":"        if all_projects:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_c8a4e9a7","line":369,"range":{"start_line":368,"start_character":31,"end_line":369,"end_character":44},"in_reply_to":"ba5da102_43fa93be","updated":"2016-11-01 04:55:37.000000000","message":"Done","commit_id":"aa392d9e8984f46e3357dc1356d9107bce6c207a"}],"nova/tests/functional/test_servers.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1378a5a9333902b614a0a3b5934aa9e8a20e34ef","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        # Create server with metadata"},{"line_number":351,"context_line":"        server \u003d self._build_minimal_create_server_request()"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        metadata \u003d {}"},{"line_number":354,"context_line":"        metadata[\u0027key_1\u0027] \u003d \u0027value_1\u0027"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"        server[\u0027metadata\u0027] \u003d metadata"},{"line_number":357,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_23af5f95","line":354,"range":{"start_line":353,"start_character":0,"end_line":354,"end_character":37},"updated":"2016-10-31 10:52:55.000000000","message":"It can be as follows:\n\nmetadata \u003d {\u0027key_1\u0027: \u0027value_1\u0027}","commit_id":"aa392d9e8984f46e3357dc1356d9107bce6c207a"},{"author":{"_account_id":11704,"name":"Maho Koshiya","email":"koshiya.maho@po.ntt-tx.co.jp","username":"koshi-m"},"change_message_id":"020b0be4be358d5d478d2a7510005a74d27a1655","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        # Create server with metadata"},{"line_number":351,"context_line":"        server \u003d self._build_minimal_create_server_request()"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        metadata \u003d {}"},{"line_number":354,"context_line":"        metadata[\u0027key_1\u0027] \u003d \u0027value_1\u0027"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"        server[\u0027metadata\u0027] \u003d metadata"},{"line_number":357,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_a8b415d1","line":354,"range":{"start_line":353,"start_character":0,"end_line":354,"end_character":37},"in_reply_to":"ba5da102_23af5f95","updated":"2016-11-01 04:55:37.000000000","message":"Done","commit_id":"aa392d9e8984f46e3357dc1356d9107bce6c207a"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"1378a5a9333902b614a0a3b5934aa9e8a20e34ef","unresolved":false,"context_lines":[{"line_number":369,"context_line":"        found_server \u003d self._wait_for_state_change(found_server, \u0027BUILD\u0027)"},{"line_number":370,"context_line":"        self.assertEqual(\u0027SHELVED\u0027, found_server[\u0027status\u0027])"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"        metadata \u003d {}"},{"line_number":373,"context_line":"        metadata[\u0027key_2\u0027] \u003d \u0027value_2\u0027"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"        # Update Metadata item in not ACTIVE"},{"line_number":376,"context_line":"        ex \u003d self.assertRaises(client.OpenStackApiException,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_4396134d","line":373,"range":{"start_line":372,"start_character":0,"end_line":373,"end_character":37},"updated":"2016-10-31 10:52:55.000000000","message":"ditto","commit_id":"aa392d9e8984f46e3357dc1356d9107bce6c207a"},{"author":{"_account_id":11704,"name":"Maho Koshiya","email":"koshiya.maho@po.ntt-tx.co.jp","username":"koshi-m"},"change_message_id":"020b0be4be358d5d478d2a7510005a74d27a1655","unresolved":false,"context_lines":[{"line_number":369,"context_line":"        found_server \u003d self._wait_for_state_change(found_server, \u0027BUILD\u0027)"},{"line_number":370,"context_line":"        self.assertEqual(\u0027SHELVED\u0027, found_server[\u0027status\u0027])"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"        metadata \u003d {}"},{"line_number":373,"context_line":"        metadata[\u0027key_2\u0027] \u003d \u0027value_2\u0027"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"        # Update Metadata item in not ACTIVE"},{"line_number":376,"context_line":"        ex \u003d self.assertRaises(client.OpenStackApiException,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_28c1e52e","line":373,"range":{"start_line":372,"start_character":0,"end_line":373,"end_character":37},"in_reply_to":"ba5da102_4396134d","updated":"2016-11-01 04:55:37.000000000","message":"Done","commit_id":"aa392d9e8984f46e3357dc1356d9107bce6c207a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"514f5b766459b1130f8885867b4715093403e40b","unresolved":false,"context_lines":[{"line_number":346,"context_line":"        # Cleanup"},{"line_number":347,"context_line":"        self._delete_server(created_server_id)"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"    def test_create_server_with_metadata_negative(self):"},{"line_number":350,"context_line":"        # Create server with metadata"},{"line_number":351,"context_line":"        server \u003d self._build_minimal_create_server_request()"},{"line_number":352,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_fdf0dfcb","line":349,"range":{"start_line":349,"start_character":8,"end_line":349,"end_character":49},"updated":"2016-11-21 19:07:31.000000000","message":"You seem to want to test metadata API cases, not create_server case. So it would be nice to rename this test like \"test_server_metadata_actions_in_negative_409\" or something.","commit_id":"b64d68eec0a40706cda95dd1e10c4db8a3c65159"},{"author":{"_account_id":11704,"name":"Maho Koshiya","email":"koshiya.maho@po.ntt-tx.co.jp","username":"koshi-m"},"change_message_id":"5fff871834871aa77ba8489203642dd9b9c8897e","unresolved":false,"context_lines":[{"line_number":346,"context_line":"        # Cleanup"},{"line_number":347,"context_line":"        self._delete_server(created_server_id)"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"    def test_create_server_with_metadata_negative(self):"},{"line_number":350,"context_line":"        # Create server with metadata"},{"line_number":351,"context_line":"        server \u003d self._build_minimal_create_server_request()"},{"line_number":352,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a74a57a_4913ac66","line":349,"range":{"start_line":349,"start_character":8,"end_line":349,"end_character":49},"in_reply_to":"7a77a97e_fdf0dfcb","updated":"2016-11-24 09:25:35.000000000","message":"Done","commit_id":"b64d68eec0a40706cda95dd1e10c4db8a3c65159"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e2d2972c597d1703544ed67fb5b1bb5c81bf76be","unresolved":false,"context_lines":[{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        metadata \u003d {\u0027key_2\u0027: \u0027value_2\u0027}"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        # Update Metadata item in not ACTIVE"},{"line_number":374,"context_line":"        ex \u003d self.assertRaises(client.OpenStackApiException,"},{"line_number":375,"context_line":"                               self.api.post_server_metadata,"},{"line_number":376,"context_line":"                               server_id, metadata)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_6f05a478","line":373,"range":{"start_line":373,"start_character":34,"end_line":373,"end_character":44},"updated":"2016-11-25 06:04:06.000000000","message":"Update Metadata item for server not in [ACTIVE, PAUSED, SUSPENDED, STOPPED] states","commit_id":"6d145baafaa79fbc1aa50aa13e706e5e19e55517"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"df62de354bde4efe580336d436e95abb9207c77c","unresolved":false,"context_lines":[{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        metadata \u003d {\u0027key_2\u0027: \u0027value_2\u0027}"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        # Update Metadata item in not ACTIVE"},{"line_number":374,"context_line":"        ex \u003d self.assertRaises(client.OpenStackApiException,"},{"line_number":375,"context_line":"                               self.api.post_server_metadata,"},{"line_number":376,"context_line":"                               server_id, metadata)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a71b18c_99e289d4","line":373,"range":{"start_line":373,"start_character":34,"end_line":373,"end_character":44},"in_reply_to":"5a74a57a_450bbf7d","updated":"2016-12-02 01:53:23.000000000","message":"Yea, much better.","commit_id":"6d145baafaa79fbc1aa50aa13e706e5e19e55517"},{"author":{"_account_id":11704,"name":"Maho Koshiya","email":"koshiya.maho@po.ntt-tx.co.jp","username":"koshi-m"},"change_message_id":"6c0a9ecd0e9e0fd9eadcc456bff308bc1f7748d1","unresolved":false,"context_lines":[{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        metadata \u003d {\u0027key_2\u0027: \u0027value_2\u0027}"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        # Update Metadata item in not ACTIVE"},{"line_number":374,"context_line":"        ex \u003d self.assertRaises(client.OpenStackApiException,"},{"line_number":375,"context_line":"                               self.api.post_server_metadata,"},{"line_number":376,"context_line":"                               server_id, metadata)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_450bbf7d","line":373,"range":{"start_line":373,"start_character":34,"end_line":373,"end_character":44},"in_reply_to":"5a74a57a_6570f2a4","updated":"2016-11-30 05:04:55.000000000","message":"Done","commit_id":"6d145baafaa79fbc1aa50aa13e706e5e19e55517"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f527d68e79f2806ff7413ae209ab9ffc30ad81fd","unresolved":false,"context_lines":[{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        metadata \u003d {\u0027key_2\u0027: \u0027value_2\u0027}"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        # Update Metadata item in not ACTIVE"},{"line_number":374,"context_line":"        ex \u003d self.assertRaises(client.OpenStackApiException,"},{"line_number":375,"context_line":"                               self.api.post_server_metadata,"},{"line_number":376,"context_line":"                               server_id, metadata)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_6570f2a4","line":373,"range":{"start_line":373,"start_character":34,"end_line":373,"end_character":44},"in_reply_to":"5a74a57a_6f05a478","updated":"2016-11-29 07:09:17.000000000","message":"That seems a little overkill.\nHow about just\n\n Update Metadata item in SHELVED (not ACTIVE, etc.)\n\nor something.","commit_id":"6d145baafaa79fbc1aa50aa13e706e5e19e55517"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e2d2972c597d1703544ed67fb5b1bb5c81bf76be","unresolved":false,"context_lines":[{"line_number":376,"context_line":"                               server_id, metadata)"},{"line_number":377,"context_line":"        self.assertEqual(409, ex.response.status_code)"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"        # Delete Metadata item in not ACTIVE"},{"line_number":380,"context_line":"        ex \u003d self.assertRaises(client.OpenStackApiException,"},{"line_number":381,"context_line":"                               self.api.delete_server_metadata,"},{"line_number":382,"context_line":"                               server_id, \u0027key_1\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_0f3c302e","line":379,"range":{"start_line":379,"start_character":10,"end_line":379,"end_character":44},"updated":"2016-11-25 06:04:06.000000000","message":"ditto","commit_id":"6d145baafaa79fbc1aa50aa13e706e5e19e55517"},{"author":{"_account_id":11704,"name":"Maho Koshiya","email":"koshiya.maho@po.ntt-tx.co.jp","username":"koshi-m"},"change_message_id":"6c0a9ecd0e9e0fd9eadcc456bff308bc1f7748d1","unresolved":false,"context_lines":[{"line_number":376,"context_line":"                               server_id, metadata)"},{"line_number":377,"context_line":"        self.assertEqual(409, ex.response.status_code)"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"        # Delete Metadata item in not ACTIVE"},{"line_number":380,"context_line":"        ex \u003d self.assertRaises(client.OpenStackApiException,"},{"line_number":381,"context_line":"                               self.api.delete_server_metadata,"},{"line_number":382,"context_line":"                               server_id, \u0027key_1\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_8525d70b","line":379,"range":{"start_line":379,"start_character":10,"end_line":379,"end_character":44},"in_reply_to":"5a74a57a_0f3c302e","updated":"2016-11-30 05:04:55.000000000","message":"Done","commit_id":"6d145baafaa79fbc1aa50aa13e706e5e19e55517"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6248924517377878ca41b672dfb4bfb9607f839a","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        # Change status from ACTIVE to SHELVED for negative test"},{"line_number":366,"context_line":"        self.flags(shelved_offload_time \u003d -1)"},{"line_number":367,"context_line":"        self.api.post_server_action(server_id, {\u0027shelve\u0027: {}})"},{"line_number":368,"context_line":"        found_server \u003d self._wait_for_state_change(found_server, \u0027BUILD\u0027)"},{"line_number":369,"context_line":"        self.assertEqual(\u0027SHELVED\u0027, found_server[\u0027status\u0027])"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        metadata \u003d {\u0027key_2\u0027: \u0027value_2\u0027}"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a71b18c_1c7e24ae","line":368,"updated":"2016-12-04 03:40:33.000000000","message":"The instance won\u0027t be in BUILD status after executed shelve action.","commit_id":"2ff4393625f60b84383ab2a97f7a26ba0bc26b6e"},{"author":{"_account_id":11704,"name":"Maho Koshiya","email":"koshiya.maho@po.ntt-tx.co.jp","username":"koshi-m"},"change_message_id":"4c504d9558bf08cd49e18f2fb5df9199b958e335","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        # Change status from ACTIVE to SHELVED for negative test"},{"line_number":366,"context_line":"        self.flags(shelved_offload_time \u003d -1)"},{"line_number":367,"context_line":"        self.api.post_server_action(server_id, {\u0027shelve\u0027: {}})"},{"line_number":368,"context_line":"        found_server \u003d self._wait_for_state_change(found_server, \u0027BUILD\u0027)"},{"line_number":369,"context_line":"        self.assertEqual(\u0027SHELVED\u0027, found_server[\u0027status\u0027])"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        metadata \u003d {\u0027key_2\u0027: \u0027value_2\u0027}"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a71b18c_cf9909c6","line":368,"in_reply_to":"3a71b18c_1c7e24ae","updated":"2016-12-06 08:45:54.000000000","message":"https://github.com/openstack/nova/blob/master/nova/tests/functional/test_servers.py#L780\n\nLike the above link, I changed it to ACTIVE as wait for state change.","commit_id":"2ff4393625f60b84383ab2a97f7a26ba0bc26b6e"}]}
