)]}'
{"tempest/api/compute/admin/test_migrations.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"f36fb6ab311a973649eceb664e11ff201dd29de8","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                                       \u0027ACTIVE\u0027)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        server \u003d self.servers_client.show_server(server[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":109,"context_line":"        # Nova API \u003e 2.46 no longer includes flavor.id"},{"line_number":110,"context_line":"        if server[\u0027flavor\u0027].get(\u0027id\u0027):"},{"line_number":111,"context_line":"            self.assertEqual(flavor[\u0027id\u0027], server[\u0027flavor\u0027][\u0027id\u0027])"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _test_cold_migrate_server(self, revert\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_a76a187e","line":110,"range":{"start_line":109,"start_character":8,"end_line":110,"end_character":38},"updated":"2018-03-29 21:03:14.000000000","message":"Is this the most rigorous way to do this? I think there\u0027s a different way:\n\n    if api_version_utils.compare_version_header_to_response(\n            \"OpenStack-API-Version\", \"compute 2.46\", image.response, \"lt\"):\n        self.assertEqual(flavor[\u0027id\u0027], server[\u0027flavor\u0027][\u0027id\u0027])\n    else:\n        self.assertNotIn(\u0027id\u0027, server[\u0027flavor\u0027])","commit_id":"d4db3f4bb641a08b3316218d83a5e9b7e16e7372"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"60e03abea85e146973c9475081ff5e78a56b4fe2","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                                       \u0027ACTIVE\u0027)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        server \u003d self.servers_client.show_server(server[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":109,"context_line":"        # Nova API \u003e 2.46 no longer includes flavor.id"},{"line_number":110,"context_line":"        if server[\u0027flavor\u0027].get(\u0027id\u0027):"},{"line_number":111,"context_line":"            self.assertEqual(flavor[\u0027id\u0027], server[\u0027flavor\u0027][\u0027id\u0027])"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _test_cold_migrate_server(self, revert\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_936632c1","line":110,"range":{"start_line":109,"start_character":8,"end_line":110,"end_character":38},"in_reply_to":"bf659307_337ba67b","updated":"2018-03-30 01:41:16.000000000","message":"Maybe \"\u0027id\u0027 not in response \u003e2.46\" is already checked by schema?\nflavor \u003d {\n    ...\n    \u0027additionalProperties\u0027: False,\n    \u0027required\u0027: [\u0027original_name\u0027, \u0027disk\u0027, \u0027ephemeral\u0027, \u0027ram\u0027, \u0027swap\u0027, \u0027vcpus\u0027]\n}","commit_id":"d4db3f4bb641a08b3316218d83a5e9b7e16e7372"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"883f672ac3ca867607a41f8f22cef09f16b733da","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                                       \u0027ACTIVE\u0027)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        server \u003d self.servers_client.show_server(server[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":109,"context_line":"        # Nova API \u003e 2.46 no longer includes flavor.id"},{"line_number":110,"context_line":"        if server[\u0027flavor\u0027].get(\u0027id\u0027):"},{"line_number":111,"context_line":"            self.assertEqual(flavor[\u0027id\u0027], server[\u0027flavor\u0027][\u0027id\u0027])"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _test_cold_migrate_server(self, revert\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_93f63263","line":110,"range":{"start_line":109,"start_character":8,"end_line":110,"end_character":38},"in_reply_to":"bf659307_936632c1","updated":"2018-03-30 02:17:34.000000000","message":"The reason why I only put \"if server[\u0027flavor\u0027].get(\u0027id\u0027)\" is:\n1. \u0027id\u0027 should in \u0027flavor\u0027 \u003c\u003d2.46, and \u0027id\u0027 should not in \u0027flavor\u0027 \u003e2.46, this will be checked by schema, so we needn\u0027t care it.\n2. if flavor schema check is ok, then we can simply check flavor[\u0027id\u0027] if \u0027id\u0027 is in flavor.\nthe helper gmann mentioned will be of much help, we can refactor the code when it\u0027s available:)","commit_id":"d4db3f4bb641a08b3316218d83a5e9b7e16e7372"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4e2db4e8394e8e052c1f627a9057d558797eacb2","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                                       \u0027ACTIVE\u0027)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        server \u003d self.servers_client.show_server(server[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":109,"context_line":"        # Nova API \u003e 2.46 no longer includes flavor.id"},{"line_number":110,"context_line":"        if server[\u0027flavor\u0027].get(\u0027id\u0027):"},{"line_number":111,"context_line":"            self.assertEqual(flavor[\u0027id\u0027], server[\u0027flavor\u0027][\u0027id\u0027])"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _test_cold_migrate_server(self, revert\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_c4e7ff11","line":110,"range":{"start_line":109,"start_character":8,"end_line":110,"end_character":38},"in_reply_to":"bf659307_93f63263","updated":"2018-03-30 08:42:59.000000000","message":"got your point and agree. may be hepler here (https://review.openstack.org/#/c/557907/) not needed. \n\nonly think if you can add in comment about schema handling things to remember in future that why we are not checking  explicit microversion here.","commit_id":"d4db3f4bb641a08b3316218d83a5e9b7e16e7372"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b596c1e1fc2a7a99956097dc6887585aafbab65d","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                                       \u0027ACTIVE\u0027)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        server \u003d self.servers_client.show_server(server[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":109,"context_line":"        # Nova API \u003e 2.46 no longer includes flavor.id"},{"line_number":110,"context_line":"        if server[\u0027flavor\u0027].get(\u0027id\u0027):"},{"line_number":111,"context_line":"            self.assertEqual(flavor[\u0027id\u0027], server[\u0027flavor\u0027][\u0027id\u0027])"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _test_cold_migrate_server(self, revert\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_337ba67b","line":110,"range":{"start_line":109,"start_character":8,"end_line":110,"end_character":38},"in_reply_to":"bf659307_a76a187e","updated":"2018-03-30 01:36:13.000000000","message":"+1, i agree with Felipe. in addition i think we should check self.request_microversion (as you are doing in other patches)instead of response microversion which is more explicit. like we have requested microversion \u003e2.46 so no \u0027id\u0027 in response. \n\nlet me add a helper method for that too and we can use that in everywhere.","commit_id":"d4db3f4bb641a08b3316218d83a5e9b7e16e7372"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"659f03c911da61ed426b25354f083877cad8d261","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                                       \u0027ACTIVE\u0027)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        server \u003d self.servers_client.show_server(server[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":109,"context_line":"        # Nova API \u003e 2.46 no longer includes flavor.id"},{"line_number":110,"context_line":"        if server[\u0027flavor\u0027].get(\u0027id\u0027):"},{"line_number":111,"context_line":"            self.assertEqual(flavor[\u0027id\u0027], server[\u0027flavor\u0027][\u0027id\u0027])"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _test_cold_migrate_server(self, revert\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_44de8f11","line":110,"range":{"start_line":109,"start_character":8,"end_line":110,"end_character":38},"in_reply_to":"bf659307_c4e7ff11","updated":"2018-03-30 08:56:09.000000000","message":"yes comment message is modified:)","commit_id":"d4db3f4bb641a08b3316218d83a5e9b7e16e7372"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a8e3ffe6904b8bda3ff7fd4b2e250a0ac0653f3b","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        # Nova API \u003e 2.46 no longer includes flavor.id, and schema check"},{"line_number":110,"context_line":"        # will cover whether \u0027id\u0027 should be in flavor"},{"line_number":111,"context_line":"        if server[\u0027flavor\u0027].get(\u0027id\u0027):"},{"line_number":112,"context_line":"            self.assertEqual(flavor[\u0027id\u0027], server[\u0027flavor\u0027][\u0027id\u0027])"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def _test_cold_migrate_server(self, revert\u003dFalse):"},{"line_number":115,"context_line":"        if CONF.compute.min_compute_nodes \u003c 2:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_455d0613","line":112,"updated":"2018-04-02 22:55:53.000000000","message":"v2.47+ contains flavor info itself instead of the id.\nIn addition, the purpose of this test is verifying flavor is valid. It is not good to just skip the check here.\n\nHow about checking some flavor info(original_name, vcpus, ram, etc) here?\n\nref: https://developer.openstack.org/api-ref/compute/#show-server-details","commit_id":"d106e8449b38367ff81ebc271ded5bf149c4f16f"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"72c69ffdfea0249824dba16629305f8ebb4c3951","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        # Nova API \u003e 2.46 no longer includes flavor.id, and schema check"},{"line_number":110,"context_line":"        # will cover whether \u0027id\u0027 should be in flavor"},{"line_number":111,"context_line":"        if server[\u0027flavor\u0027].get(\u0027id\u0027):"},{"line_number":112,"context_line":"            self.assertEqual(flavor[\u0027id\u0027], server[\u0027flavor\u0027][\u0027id\u0027])"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def _test_cold_migrate_server(self, revert\u003dFalse):"},{"line_number":115,"context_line":"        if CONF.compute.min_compute_nodes \u003c 2:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_cb584732","line":112,"in_reply_to":"bf659307_455d0613","updated":"2018-04-03 02:14:04.000000000","message":"Thanks, I ever thought of this too, done.","commit_id":"d106e8449b38367ff81ebc271ded5bf149c4f16f"}],"tempest/api/compute/base.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c78bc958b3dbdb465df3f9394478cd4cc459f386","unresolved":false,"context_lines":[{"line_number":536,"context_line":"            self.assertEqual(flavor_id, server_flavor[\u0027id\u0027], msg)"},{"line_number":537,"context_line":"        else:"},{"line_number":538,"context_line":"            flavor \u003d self.flavors_client.show_flavor(flavor_id)[\u0027flavor\u0027]"},{"line_number":539,"context_line":"            for key in [\u0027original_name\u0027, \u0027ram\u0027, \u0027vcpus\u0027, \u0027disk\u0027]:"},{"line_number":540,"context_line":"                msg \u003d (\u0027attribute %s in server flavor is not same as \u0027"},{"line_number":541,"context_line":"                       \u0027flavor!\u0027 % key)"},{"line_number":542,"context_line":"                self.assertEqual(flavor[key], server_flavor[key], msg)"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"class BaseV2ComputeAdminTest(BaseV2ComputeTest):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_e8b08942","line":542,"range":{"start_line":539,"start_character":0,"end_line":542,"end_character":70},"updated":"2018-06-01 18:47:23.000000000","message":"Humm, the job fails due to this change like:\n\nTraceback (most recent call last):\n  File \"tempest/api/compute/volumes/test_attach_volume.py\", line 431, in test_resize_server_with_multiattached_volume\n    self.resize_server(server[\u0027id\u0027], self.flavor_ref_alt)\n  File \"tempest/api/compute/base.py\", line 411, in resize_server\n    self.assert_flavor_equal(new_flavor_id, server[\u0027flavor\u0027])\n  File \"tempest/api/compute/base.py\", line 542, in assert_flavor_equal\n    self.assertEqual(flavor[key], server_flavor[key], msg)\nKeyError: \u0027original_name\u0027\n\nNeed to investigate more.","commit_id":"9299c1d2bf3bbf1a3a9e5f35e2c26ba249011e05"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f6512bfe9b80550946f05684dcdebf46da4e42cd","unresolved":false,"context_lines":[{"line_number":537,"context_line":"        else:"},{"line_number":538,"context_line":"            flavor \u003d self.flavors_client.show_flavor(flavor_id)[\u0027flavor\u0027]"},{"line_number":539,"context_line":"            for key in [\u0027original_name\u0027, \u0027ram\u0027, \u0027vcpus\u0027, \u0027disk\u0027]:"},{"line_number":540,"context_line":"                self.assertIn(key, flavor)"},{"line_number":541,"context_line":"                self.assertIn(key, server_flavor)"},{"line_number":542,"context_line":"                msg \u003d (\u0027attribute %s in server flavor is not same as \u0027"},{"line_number":543,"context_line":"                       \u0027flavor!\u0027 % key)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_2832fc5e","line":540,"updated":"2018-06-01 22:52:18.000000000","message":"Traceback (most recent call last):\n  File \"tempest/api/compute/volumes/test_attach_volume.py\", line 431, in test_resize_server_with_multiattached_volume\n    self.resize_server(server[\u0027id\u0027], self.flavor_ref_alt)\n  File \"tempest/api/compute/base.py\", line 411, in resize_server\n    self.assert_flavor_equal(new_flavor_id, server[\u0027flavor\u0027])\n  File \"tempest/api/compute/base.py\", line 544, in assert_flavor_equal\n    self.assertIn(key, flavor)\n  File \"/opt/stack/new/tempest/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py\", line 417, in assertIn\n    self.assertThat(haystack, Contains(needle), message)\n  File \"/opt/stack/new/tempest/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py\", line 498, in assertThat\n    raise mismatch_error\ntesttools.matchers._impl.MismatchError: \u0027original_name\u0027 not in {u\u0027OS-FLV-EXT-DATA:ephemeral\u0027: 0, u\u0027description\u0027: None, u\u0027os-flavor-access:is_public\u0027: True, u\u0027OS-FLV-DISABLED:disabled\u0027: False, u\u0027links\u0027: [{u\u0027rel\u0027: u\u0027self\u0027, u\u0027href\u0027: u\u0027http://158.69.86.9/compute/v2.1/flavors/84\u0027}, {u\u0027rel\u0027: u\u0027bookmark\u0027, u\u0027href\u0027: u\u0027http://158.69.86.9/compute/flavors/84\u0027}], u\u0027id\u0027: u\u002784\u0027, u\u0027disk\u0027: 0, u\u0027rxtx_factor\u0027: 1.0, u\u0027name\u0027: u\u0027m1.micro\u0027, u\u0027vcpus\u0027: 1, u\u0027swap\u0027: u\u0027\u0027, u\u0027ram\u0027: 128}","commit_id":"52d62d10552c85cef8b4384bcb222c3e2a000aa5"}]}
