)]}'
{"tempest/common/waiters.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"0d6630bb67212b72108e33fd0813f12e399ef6aa","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from oslo_log import log as logging"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest import config"},{"line_number":17,"context_line":"from tempest.lib.common import lib_waiters"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"CONF \u003d config.CONF"},{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_c731670d","line":17,"updated":"2016-05-30 15:00:49.000000000","message":"lib_waiters or just waiters ?","commit_id":"6a57d4dd3d9910fbe537224505472c86d186f089"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"3da8aab2f3a8d376c00f6f4ab0bdb3a6e3efe561","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from oslo_log import log as logging"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest import config"},{"line_number":17,"context_line":"from tempest.lib.common import lib_waiters"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"CONF \u003d config.CONF"},{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_e3abbed4","line":17,"in_reply_to":"9abb7d3a_c731670d","updated":"2016-05-30 15:11:00.000000000","message":"please change this \u0027from tempest.lib.common import lib_waiters\u0027 for this \u0027from tempest.lib.common import waiters\u0027 as Jordan comments. This will also fail the gate.","commit_id":"6a57d4dd3d9910fbe537224505472c86d186f089"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"3da8aab2f3a8d376c00f6f4ab0bdb3a6e3efe561","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    LOG.warning(\"tempest.common.waiters.wait_for_server_status is deprecated \""},{"line_number":28,"context_line":"                \"in favor of tempest.lib.common.waiters\""},{"line_number":29,"context_line":"                \".wait_for_server_status.\")"},{"line_number":30,"context_line":"    lib_waiters.wait_for_server_status(client, server_id, status,"},{"line_number":31,"context_line":"                                       ready_wait\u003dTrue, extra_timeout\u003d0,"},{"line_number":32,"context_line":"                                       raise_on_error\u003dTrue)"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_633b4e9d","line":30,"range":{"start_line":30,"start_character":4,"end_line":30,"end_character":15},"updated":"2016-05-30 15:11:00.000000000","message":"Ditto","commit_id":"6a57d4dd3d9910fbe537224505472c86d186f089"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"3da8aab2f3a8d376c00f6f4ab0bdb3a6e3efe561","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    LOG.warning(\"tempest.common.waiters.wait_for_server_termination is \""},{"line_number":37,"context_line":"                \"deprecated in favor of tempest.lib.common.waiters\""},{"line_number":38,"context_line":"                \".wait_for_server_termination.\")"},{"line_number":39,"context_line":"    lib_waiters.wait_for_server_termination(client, server_id,"},{"line_number":40,"context_line":"                                            ignore_error\u003dFalse)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_8390f244","line":39,"range":{"start_line":39,"start_character":4,"end_line":39,"end_character":15},"updated":"2016-05-30 15:11:00.000000000","message":"ditto","commit_id":"6a57d4dd3d9910fbe537224505472c86d186f089"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"3da8aab2f3a8d376c00f6f4ab0bdb3a6e3efe561","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    LOG.warning(\"tempest.common.waiters.wait_for_image_status is deprecated \""},{"line_number":45,"context_line":"                \"in favor of tempest.lib.common.waiters\""},{"line_number":46,"context_line":"                \".wait_for_image_status.\")"},{"line_number":47,"context_line":"    lib_waiters.wait_for_image_status(client, image_id, status)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def wait_for_volume_status(client, volume_id, status):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_a39d365b","line":47,"range":{"start_line":47,"start_character":4,"end_line":47,"end_character":15},"updated":"2016-05-30 15:11:00.000000000","message":"ditto","commit_id":"6a57d4dd3d9910fbe537224505472c86d186f089"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"3da8aab2f3a8d376c00f6f4ab0bdb3a6e3efe561","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    LOG.warning(\"tempest.common.waiters.wait_for_image_status is deprecated \""},{"line_number":52,"context_line":"                \"in favor of tempest.lib.common.waiters\""},{"line_number":53,"context_line":"                \".wait_for_volume_status.\")"},{"line_number":54,"context_line":"    lib_waiters.wait_for_volume_status(client, volume_id, status)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"def wait_for_snapshot_status(client, snapshot_id, status):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_03a522a1","line":54,"range":{"start_line":54,"start_character":4,"end_line":54,"end_character":15},"updated":"2016-05-30 15:11:00.000000000","message":"ditto","commit_id":"6a57d4dd3d9910fbe537224505472c86d186f089"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"3da8aab2f3a8d376c00f6f4ab0bdb3a6e3efe561","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    LOG.warning(\"tempest.common.waiters.wait_for_snapshot_status is \""},{"line_number":59,"context_line":"                \"deprecated in favor of tempest.lib.common.waiters\""},{"line_number":60,"context_line":"                \".wait_for_snapshot_status.\")"},{"line_number":61,"context_line":"    lib_waiters.wait_for_snapshot_status(client, snapshot_id, status)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def wait_for_bm_node_status(client, node_id, attr, status):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_83b752d7","line":61,"range":{"start_line":61,"start_character":4,"end_line":61,"end_character":15},"updated":"2016-05-30 15:11:00.000000000","message":"ditto","commit_id":"6a57d4dd3d9910fbe537224505472c86d186f089"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"3da8aab2f3a8d376c00f6f4ab0bdb3a6e3efe561","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    LOG.warning(\"tempest.common.waiters.wait_for_bm_node_status is deprecated \""},{"line_number":66,"context_line":"                \"in favor of tempest.lib.common.waiters\""},{"line_number":67,"context_line":"                \".wait_for_bm_node_status.\")"},{"line_number":68,"context_line":"    lib_waiters.wait_for_bm_node_status(client, node_id, attr, status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_03cc0269","line":68,"range":{"start_line":68,"start_character":4,"end_line":68,"end_character":15},"updated":"2016-05-30 15:11:00.000000000","message":"ditto","commit_id":"6a57d4dd3d9910fbe537224505472c86d186f089"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"6d18fe76821a62e701a15c26bc654e99b9000ef8","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from oslo_log import log as logging"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest import config"},{"line_number":17,"context_line":"from tempest.lib.common import waiters as lib_waiters"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"CONF \u003d config.CONF"},{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_66cb5c1f","line":17,"range":{"start_line":17,"start_character":38,"end_line":17,"end_character":53},"updated":"2016-05-30 15:30:52.000000000","message":"Why don\u0027t you directly import waiters? I understand that this \u0027fixes\u0027 the other usages directly but IMHO it could be confusing.","commit_id":"4a9744bd7d8945015da647405d32c1fd37d5fb00"},{"author":{"_account_id":4727,"name":"Itzik Brown","email":"itzikb@redhat.com","username":"itzikb1"},"change_message_id":"142d3a57fbc926aa3a941dd6e193038ee590612b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from oslo_log import log as logging"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest import config"},{"line_number":17,"context_line":"from tempest.lib.common import waiters as lib_waiters"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"CONF \u003d config.CONF"},{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_29ef65b1","line":17,"range":{"start_line":17,"start_character":38,"end_line":17,"end_character":53},"in_reply_to":"9abb7d3a_66cb5c1f","updated":"2016-05-30 15:44:14.000000000","message":"Done","commit_id":"4a9744bd7d8945015da647405d32c1fd37d5fb00"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"6d18fe76821a62e701a15c26bc654e99b9000ef8","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    LOG.warning(\"tempest.common.waiters.wait_for_server_status is deprecated \""},{"line_number":28,"context_line":"                \"in favor of tempest.lib.common.waiters\""},{"line_number":29,"context_line":"                \".wait_for_server_status.\")"},{"line_number":30,"context_line":"    lib_waiters.wait_for_server_status(client, server_id, status,"},{"line_number":31,"context_line":"                                       ready_wait\u003dTrue, extra_timeout\u003d0,"},{"line_number":32,"context_line":"                                       raise_on_error\u003dTrue)"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_26e2f49f","line":30,"range":{"start_line":30,"start_character":4,"end_line":30,"end_character":15},"updated":"2016-05-30 15:30:52.000000000","message":"I\u0027d use waiters.wait_for_server_status...","commit_id":"4a9744bd7d8945015da647405d32c1fd37d5fb00"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"6d18fe76821a62e701a15c26bc654e99b9000ef8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    LOG.warning(\"tempest.common.waiters.wait_for_server_termination is \""},{"line_number":37,"context_line":"                \"deprecated in favor of tempest.lib.common.waiters\""},{"line_number":38,"context_line":"                \".wait_for_server_termination.\")"},{"line_number":39,"context_line":"    lib_waiters.wait_for_server_termination(client, server_id,"},{"line_number":40,"context_line":"                                            ignore_error\u003dFalse)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_86ef6086","line":39,"range":{"start_line":39,"start_character":4,"end_line":39,"end_character":15},"updated":"2016-05-30 15:30:52.000000000","message":"ditto","commit_id":"4a9744bd7d8945015da647405d32c1fd37d5fb00"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"6d18fe76821a62e701a15c26bc654e99b9000ef8","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    LOG.warning(\"tempest.common.waiters.wait_for_image_status is deprecated \""},{"line_number":45,"context_line":"                \"in favor of tempest.lib.common.waiters\""},{"line_number":46,"context_line":"                \".wait_for_image_status.\")"},{"line_number":47,"context_line":"    lib_waiters.wait_for_image_status(client, image_id, status)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def wait_for_volume_status(client, volume_id, status):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_e6fe2c37","line":47,"range":{"start_line":47,"start_character":4,"end_line":47,"end_character":15},"updated":"2016-05-30 15:30:52.000000000","message":"ditto","commit_id":"4a9744bd7d8945015da647405d32c1fd37d5fb00"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"6d18fe76821a62e701a15c26bc654e99b9000ef8","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    LOG.warning(\"tempest.common.waiters.wait_for_image_status is deprecated \""},{"line_number":52,"context_line":"                \"in favor of tempest.lib.common.waiters\""},{"line_number":53,"context_line":"                \".wait_for_volume_status.\")"},{"line_number":54,"context_line":"    lib_waiters.wait_for_volume_status(client, volume_id, status)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"def wait_for_snapshot_status(client, snapshot_id, status):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_46fe1838","line":54,"range":{"start_line":54,"start_character":4,"end_line":54,"end_character":15},"updated":"2016-05-30 15:30:52.000000000","message":"ditto","commit_id":"4a9744bd7d8945015da647405d32c1fd37d5fb00"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"6d18fe76821a62e701a15c26bc654e99b9000ef8","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    LOG.warning(\"tempest.common.waiters.wait_for_snapshot_status is \""},{"line_number":59,"context_line":"                \"deprecated in favor of tempest.lib.common.waiters\""},{"line_number":60,"context_line":"                \".wait_for_snapshot_status.\")"},{"line_number":61,"context_line":"    lib_waiters.wait_for_snapshot_status(client, snapshot_id, status)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def wait_for_bm_node_status(client, node_id, attr, status):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_068b70c4","line":61,"range":{"start_line":61,"start_character":4,"end_line":61,"end_character":15},"updated":"2016-05-30 15:30:52.000000000","message":"ditto","commit_id":"4a9744bd7d8945015da647405d32c1fd37d5fb00"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"6d18fe76821a62e701a15c26bc654e99b9000ef8","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    LOG.warning(\"tempest.common.waiters.wait_for_bm_node_status is deprecated \""},{"line_number":66,"context_line":"                \"in favor of tempest.lib.common.waiters\""},{"line_number":67,"context_line":"                \".wait_for_bm_node_status.\")"},{"line_number":68,"context_line":"    lib_waiters.wait_for_bm_node_status(client, node_id, attr, status)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_86bda06a","line":68,"range":{"start_line":68,"start_character":4,"end_line":68,"end_character":15},"updated":"2016-05-30 15:30:52.000000000","message":"ditto","commit_id":"4a9744bd7d8945015da647405d32c1fd37d5fb00"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"c142d33efe62ca7a7c18da7c2722a2ce9bac1091","unresolved":false,"context_lines":[{"line_number":24,"context_line":"def wait_for_server_status(client, server_id, status, ready_wait\u003dTrue,"},{"line_number":25,"context_line":"                           extra_timeout\u003d0, raise_on_error\u003dTrue,"},{"line_number":26,"context_line":"                           ready_wait_time\u003dCONF.compute.ready_wait):"},{"line_number":27,"context_line":"    LOG.warning(\"tempest.common.waiters.wait_for_server_status is deprecated \""},{"line_number":28,"context_line":"                \"in favor of tempest.lib.common.waiters\""},{"line_number":29,"context_line":"                \".wait_for_server_status.\")"},{"line_number":30,"context_line":"    waiters.wait_for_server_status(client, server_id, status,"},{"line_number":31,"context_line":"                                   ready_wait\u003dTrue, extra_timeout\u003d0,"},{"line_number":32,"context_line":"                                   raise_on_error\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":19,"id":"dada55a8_25868edb","line":29,"range":{"start_line":27,"start_character":4,"end_line":29,"end_character":43},"updated":"2016-07-24 15:11:30.000000000","message":"All of these LOG.warning messages can be easily turned into a decorator that does this instead :)","commit_id":"5fc9df7d08d120be8e9dc0da263896111ffa5e9a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b68e6845b0ff48998423bdf3aa9c0f1e211216f5","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# NOTE(afazekas): This function needs to know a token and a subject."},{"line_number":24,"context_line":"def wait_for_server_status(client, server_id, status, ready_wait\u003dTrue,"},{"line_number":25,"context_line":"                           extra_timeout\u003d0, raise_on_error\u003dTrue,"},{"line_number":26,"context_line":"                           ready_wait_time\u003dCONF.compute.ready_wait):"},{"line_number":27,"context_line":"    waiters.wait_for_server_status(client, server_id, status,"}],"source_content_type":"text/x-python","patch_set":38,"id":"1a95cdbc_8a7d8ae9","line":24,"updated":"2016-10-06 13:44:12.000000000","message":"That\u0027s not how you properly deprecate a function. As is, how is the caller supposed to know this is deprecated ? No log, no warning ?\n\nHave a look at that commit https://github.com/openstack/tempest/commit/35a6375fd172220693ee62315035ac2c1b8eb508 to see the usage of oslodebcollector.","commit_id":"017326df4b258045072381a47057e0bf25ad37ad"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b529509606e4789a3c9e0b56606c6d32a89f18e7","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# NOTE(afazekas): This function needs to know a token and a subject."},{"line_number":24,"context_line":"def wait_for_server_status(client, server_id, status, ready_wait\u003dTrue,"},{"line_number":25,"context_line":"                           extra_timeout\u003d0, raise_on_error\u003dTrue,"},{"line_number":26,"context_line":"                           ready_wait_time\u003dCONF.compute.ready_wait):"},{"line_number":27,"context_line":"    waiters.wait_for_server_status(client, server_id, status,"}],"source_content_type":"text/x-python","patch_set":38,"id":"1a95cdbc_a5cb59a4","line":24,"in_reply_to":"1a95cdbc_8a7d8ae9","updated":"2016-10-06 13:55:17.000000000","message":"Ok, so in order to avoid having our logs full of warnings, it was decided not to use debtcollector in that patch but in another patch. Because that patch is big already","commit_id":"017326df4b258045072381a47057e0bf25ad37ad"}],"tempest/lib/common/image.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"64cf9f39a7cc63ef60fe76f7812b85bd1a1c20b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"7a8ec9b2_fe1e4f5d","updated":"2016-09-19 08:59:44.000000000","message":"This looks like a duplication of tempest/common/image.py.\n\nWhy would the code live at two different places ?","commit_id":"7f63713f4f467f51a607f1616b2abe5cf961f73e"},{"author":{"_account_id":4727,"name":"Itzik Brown","email":"itzikb@redhat.com","username":"itzikb1"},"change_message_id":"e97c96d5dda96f8624a549da05473a4c626d24e3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"7a8ec9b2_3f234ebe","in_reply_to":"7a8ec9b2_fe1e4f5d","updated":"2016-09-19 10:28:39.000000000","message":"Done","commit_id":"7f63713f4f467f51a607f1616b2abe5cf961f73e"}],"tempest/lib/common/waiters.py":[{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"7bee8dd04ba1d1b5487b105f259f4fc5037a2b50","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# NOTE(afazekas): This function needs to know a token and a subject."},{"line_number":30,"context_line":"def wait_for_server_status(client, server_id, status, ready_wait\u003dTrue,"},{"line_number":31,"context_line":"                           extra_timeout\u003d0, raise_on_error\u003dTrue,"},{"line_number":32,"context_line":"                           ready_wait_time\u003d0):"},{"line_number":33,"context_line":"    \"\"\"Wait for a server to reach a given status.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_d5adb132","line":30,"updated":"2016-05-29 14:59:15.000000000","message":"This patch, as it is, duplicates wait_for_sever_{status|termination} instead of moves it. That being said, those two functions are currently used by out of tree projects:\n\nhttp://codesearch.openstack.org/?q\u003dwait_for_server_status\nhttp://git.openstack.org/cgit/openstack/ironic/tree/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py#n17\n\nWhat we\u0027ve done in Neutron in situations such as this is use the debtcollector library. Under tempest/common/waiters, you\u0027d keep the symbols for the two functions, but have them point to the new location with a warning. You can see an example here https://github.com/openstack/neutron/blob/master/neutron/i18n.py.\n\nThat wait Ironic and other projects that use the waiter functions won\u0027t break, but will see a warning that the function will be removed in a future release.","commit_id":"6acd2f59785c966ba0825b4e46290c2b171c793b"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"6c06c5fa472898848c5f777155894ad9fdd8c6dc","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            raise exceptions.TimeoutException(message)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"def wait_for_bm_node_status(client, node_id, attr, status):"},{"line_number":235,"context_line":"    \"\"\"Waits for a baremetal node attribute to reach given status."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    The client should have a show_node(node_uuid) method to get the node."}],"source_content_type":"text/x-python","patch_set":40,"id":"ba5da102_82009735","line":234,"updated":"2016-11-03 17:24:26.000000000","message":"Given that we are in the middle of removing Ironic tests from Tempest I don\u0027t think moving this waiter to tempest/lib/ is a good idea.","commit_id":"c54e534a49a10d394fbdfca3fd1cf0a1aec288cc"}],"tempest/lib/exceptions.py":[{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"dc22c7589fa0254cd152317f40005ec29bf17327","unresolved":false,"context_lines":[{"line_number":223,"context_line":"               \"stdout:\\n%(stdout)s\")"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"class AddImageException(TempestException):"},{"line_number":227,"context_line":"    message \u003d \"Image %(image_id)s failed to become ACTIVE in the allotted time\""},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1aa78d24_6e9fe603","line":226,"range":{"start_line":226,"start_character":6,"end_line":226,"end_character":24},"updated":"2016-07-04 10:49:39.000000000","message":"At least some of these exceptions are duplicated with the ones declared in tempest/exceptions.py - do we want to remove them from there and fix the imports appropriately?","commit_id":"ec28092ac87718ce7ed7f12c01b248772f86dae0"},{"author":{"_account_id":4727,"name":"Itzik Brown","email":"itzikb@redhat.com","username":"itzikb1"},"change_message_id":"4519763f02f1f5caefbd98d1e0bc7a64b029ff75","unresolved":false,"context_lines":[{"line_number":223,"context_line":"               \"stdout:\\n%(stdout)s\")"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"class AddImageException(TempestException):"},{"line_number":227,"context_line":"    message \u003d \"Image %(image_id)s failed to become ACTIVE in the allotted time\""},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1aa78d24_aa74119c","line":226,"range":{"start_line":226,"start_character":6,"end_line":226,"end_character":24},"in_reply_to":"1aa78d24_6e9fe603","updated":"2016-07-04 13:05:38.000000000","message":"@John - I\u0027ll resolve Jenkins failure first and see whether we should move the exceptions","commit_id":"ec28092ac87718ce7ed7f12c01b248772f86dae0"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"004f779de5884ef06a006b5064d227de12d66a77","unresolved":false,"context_lines":[{"line_number":223,"context_line":"               \"stdout:\\n%(stdout)s\")"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"class AddImageException(TempestException):"},{"line_number":227,"context_line":"    message \u003d \"Image %(image_id)s failed to become ACTIVE in the allotted time\""},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1aa78d24_4a748d34","line":226,"range":{"start_line":226,"start_character":6,"end_line":226,"end_character":24},"in_reply_to":"1aa78d24_aa74119c","updated":"2016-07-04 13:13:53.000000000","message":"Fair enough :)","commit_id":"ec28092ac87718ce7ed7f12c01b248772f86dae0"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"c954a0a471b07f6d2d1d8ad2c7f17994c2006c03","unresolved":false,"context_lines":[{"line_number":241,"context_line":"    message \u003d \"Error registering plugin %(name)s: %(detailed_error)s\""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"class AddImageException(TempestException):"},{"line_number":245,"context_line":"    message \u003d \"Image %(image_id)s failed to become ACTIVE in the allotted time\""},{"line_number":246,"context_line":""},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"fa7ab95a_f88dabd3","line":244,"updated":"2016-08-30 11:15:07.000000000","message":"The exceptions are now duplicated. Defined here and also in tempest/exceptions.py, why is that ?","commit_id":"6a9224f12728c6f27b58f4a5e2341a0a4376c025"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"78a9b47797ef5a8e27c28b395936762122564002","unresolved":false,"context_lines":[{"line_number":241,"context_line":"    message \u003d \"Error registering plugin %(name)s: %(detailed_error)s\""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"class AddImageException(TempestException):"},{"line_number":245,"context_line":"    message \u003d \"Image %(image_id)s failed to become ACTIVE in the allotted time\""},{"line_number":246,"context_line":""},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"fa7ab95a_044e16c1","line":244,"in_reply_to":"fa7ab95a_09667150","updated":"2016-08-31 12:09:54.000000000","message":"I agree with Jordan. Since this patch introduces code duplicity, this path should also eliminate it (IMO at least).","commit_id":"6a9224f12728c6f27b58f4a5e2341a0a4376c025"},{"author":{"_account_id":4727,"name":"Itzik Brown","email":"itzikb@redhat.com","username":"itzikb1"},"change_message_id":"f5fa761719806dde21f6165ae37d45309ef15bc9","unresolved":false,"context_lines":[{"line_number":241,"context_line":"    message \u003d \"Error registering plugin %(name)s: %(detailed_error)s\""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"class AddImageException(TempestException):"},{"line_number":245,"context_line":"    message \u003d \"Image %(image_id)s failed to become ACTIVE in the allotted time\""},{"line_number":246,"context_line":""},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"fa7ab95a_09667150","line":244,"in_reply_to":"fa7ab95a_f88dabd3","updated":"2016-08-30 14:45:32.000000000","message":"The only exceptions here are the ones that are needed for the waiters functions. It may require another patch to move all the tempest exceptions to lib if desired and adjust the tempest tests.","commit_id":"6a9224f12728c6f27b58f4a5e2341a0a4376c025"}]}
