)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2a48ec51ce291169fd96185e1ff0cae3f943f527","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix traceback in resource_cleanup of server rescue tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If server rescue test is skipped then it doesn\u0027t create floating_ips_client"},{"line_number":10,"context_line":"field however resource_cleanup tries to use it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I138ad16489178eb14992493454486c3d5299cf7b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baa201ad_ea2ccf04","line":9,"updated":"2014-10-02 11:57:47.000000000","message":"s/floating_ips_client/floating_ip/","commit_id":"c3679ff8b4a46115f8b8e1f217d53b92573060f1"},{"author":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"change_message_id":"2026308c0297422850f4bfe61776c43afca6a314","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix traceback in resource_cleanup of server rescue tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If server rescue test is skipped then it doesn\u0027t create floating_ips_client"},{"line_number":10,"context_line":"field however resource_cleanup tries to use it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I138ad16489178eb14992493454486c3d5299cf7b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baa201ad_a8c9b65a","line":9,"in_reply_to":"baa201ad_ea2ccf04","updated":"2014-10-06 08:51:07.000000000","message":"the attribute is called \u0027floating_ips_client\u0027","commit_id":"c3679ff8b4a46115f8b8e1f217d53b92573060f1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2a48ec51ce291169fd96185e1ff0cae3f943f527","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix traceback in resource_cleanup of server rescue tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If server rescue test is skipped then it doesn\u0027t create floating_ips_client"},{"line_number":10,"context_line":"field however resource_cleanup tries to use it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I138ad16489178eb14992493454486c3d5299cf7b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baa201ad_0a303355","line":10,"updated":"2014-10-02 11:57:47.000000000","message":"s/use it/remove it/","commit_id":"c3679ff8b4a46115f8b8e1f217d53b92573060f1"},{"author":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"change_message_id":"2026308c0297422850f4bfe61776c43afca6a314","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix traceback in resource_cleanup of server rescue tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If server rescue test is skipped then it doesn\u0027t create floating_ips_client"},{"line_number":10,"context_line":"field however resource_cleanup tries to use it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I138ad16489178eb14992493454486c3d5299cf7b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baa201ad_88d31203","line":10,"in_reply_to":"baa201ad_0a303355","updated":"2014-10-06 08:51:07.000000000","message":"the resource_cleanup fails on access to the client attribute (that\u0027s what I mean under \u0027use it\u0027), it doesn\u0027t need to remove it","commit_id":"c3679ff8b4a46115f8b8e1f217d53b92573060f1"}],"tempest/api/compute/servers/test_server_rescue.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2a48ec51ce291169fd96185e1ff0cae3f943f527","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    @classmethod"},{"line_number":64,"context_line":"    def resource_cleanup(cls):"},{"line_number":65,"context_line":"        # Deleting the floating IP which is created in this method"},{"line_number":66,"context_line":"        if getattr(cls, \u0027floating_ips_client\u0027, None):"},{"line_number":67,"context_line":"            cls.floating_ips_client.delete_floating_ip(cls.floating_ip_id)"},{"line_number":68,"context_line":"        if getattr(cls, \u0027volume\u0027, None):"},{"line_number":69,"context_line":"            cls.delete_volume(cls.volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_4aecfbc7","line":66,"updated":"2014-10-02 11:57:47.000000000","message":"Why don\u0027t you check floating_ip_id existence directly like the following volume check ? Current check seems indirect.","commit_id":"c3679ff8b4a46115f8b8e1f217d53b92573060f1"},{"author":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"change_message_id":"2026308c0297422850f4bfe61776c43afca6a314","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    @classmethod"},{"line_number":64,"context_line":"    def resource_cleanup(cls):"},{"line_number":65,"context_line":"        # Deleting the floating IP which is created in this method"},{"line_number":66,"context_line":"        if getattr(cls, \u0027floating_ips_client\u0027, None):"},{"line_number":67,"context_line":"            cls.floating_ips_client.delete_floating_ip(cls.floating_ip_id)"},{"line_number":68,"context_line":"        if getattr(cls, \u0027volume\u0027, None):"},{"line_number":69,"context_line":"            cls.delete_volume(cls.volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_88a5d2a3","line":66,"in_reply_to":"baa201ad_4aecfbc7","updated":"2014-10-06 08:51:07.000000000","message":"Here I\u0027m checking that the call \u0027cls.floating_ips_client\u0027 do not fail with \u0027has no attribute\u0027 error. Volumes are checked in the same manner.","commit_id":"c3679ff8b4a46115f8b8e1f217d53b92573060f1"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"65dd5a29167b728d23b90137f20a652fb2aa334b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    @classmethod"},{"line_number":64,"context_line":"    def resource_cleanup(cls):"},{"line_number":65,"context_line":"        # Deleting the floating IP which is created in this method"},{"line_number":66,"context_line":"        if getattr(cls, \u0027floating_ips_client\u0027, None):"},{"line_number":67,"context_line":"            cls.floating_ips_client.delete_floating_ip(cls.floating_ip_id)"},{"line_number":68,"context_line":"        if getattr(cls, \u0027volume\u0027, None):"},{"line_number":69,"context_line":"            cls.delete_volume(cls.volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_8c083129","line":66,"in_reply_to":"baa201ad_88a5d2a3","updated":"2014-10-08 21:33:15.000000000","message":"I think Ken\u0027ichi is right. The floating_ips_client will always exist as it is initialized in the base class. It is the cls.floating_ip_id that we want to catch as it will not exist if the create call in resource_setup fails.","commit_id":"c3679ff8b4a46115f8b8e1f217d53b92573060f1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8cecc3253fb3ad50a7bb403819e54e1eb2631a3b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    @classmethod"},{"line_number":64,"context_line":"    def resource_cleanup(cls):"},{"line_number":65,"context_line":"        # Deleting the floating IP which is created in this method"},{"line_number":66,"context_line":"        if getattr(cls, \u0027floating_ips_client\u0027, None):"},{"line_number":67,"context_line":"            cls.floating_ips_client.delete_floating_ip(cls.floating_ip_id)"},{"line_number":68,"context_line":"        if getattr(cls, \u0027volume\u0027, None):"},{"line_number":69,"context_line":"            cls.delete_volume(cls.volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_e8f73e57","line":66,"in_reply_to":"baa201ad_88a5d2a3","updated":"2014-10-06 09:02:08.000000000","message":"My suggestion is just:\n\n if getattr(cls, \u0027floating_ip_id\u0027, None):\n     cls.floating_ips_client.delete_floating_ip(cls.floating_ip_id)\n\nThat is the similar manner to the following volume cleanup(line 68-69), is that wrong?","commit_id":"c3679ff8b4a46115f8b8e1f217d53b92573060f1"}]}
