)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"74af4966c5dce5fca6fb8a05cc9a88e1a3f7b2fc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix test by waiting to lbaas entity delete"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adding a new timeout paramter in configuration"},{"line_number":10,"context_line":"Reading the timeout paramter in test code."},{"line_number":11,"context_line":"Added a new function for waiting the timeout"},{"line_number":12,"context_line":"calling the function when deleting vips and pools."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUH%2F%2BBjY%3D","line":9,"updated":"2014-01-30 21:47:09.000000000","message":"While you\u0027re making the other changes please read: \n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Information_in_commit_messages\n\nand update the commit message here.\n\nThis commit message doesn\u0027t explain the reasoning behind any of these additions, it just mechanically lists what you did. Especially for something like adding another timeout config option some explanation and background will be useful including why the current parameters aren\u0027t sufficient for this use case.","commit_id":"a63f669e0f75f522e50b3275ca8b89524efb0eeb"}],"tempest/api/network/test_load_balancer.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"74af4966c5dce5fca6fb8a05cc9a88e1a3f7b2fc","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from tempest.common.utils import data_utils"},{"line_number":18,"context_line":"from tempest import exceptions"},{"line_number":19,"context_line":"from tempest import test"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class LoadBalancerJSON(base.BaseNetworkTest):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BBls%3D","line":20,"updated":"2014-01-30 21:47:09.000000000","message":"This should be in it\u0027s own block. See the hacking guidelines:\n\nhttp://docs.openstack.org/developer/hacking/#imports","commit_id":"a63f669e0f75f522e50b3275ca8b89524efb0eeb"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"74af4966c5dce5fca6fb8a05cc9a88e1a3f7b2fc","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        cls.member \u003d cls.create_member(80, cls.pool)"},{"line_number":57,"context_line":"        cls.health_monitor \u003d cls.create_health_monitor(4, 3, \"TCP\", 1)"},{"line_number":58,"context_line":"        cls.lbaas_entity_delete_timeout \u003d\\"},{"line_number":59,"context_line":"            cls.config.network.lbaas_entity_delete_timeout"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":62,"context_line":"    def test_list_vips(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BBmc%3D","line":59,"updated":"2014-01-30 21:47:09.000000000","message":"So the class scoped config use is going away. You need to use a global config object instead, see:\n\nhttp://git.openstack.org/cgit/openstack/tempest/commit/?id\u003d03b48df5c5613869e1ae803c624b710bb3ba1082","commit_id":"a63f669e0f75f522e50b3275ca8b89524efb0eeb"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"74af4966c5dce5fca6fb8a05cc9a88e1a3f7b2fc","unresolved":false,"context_lines":[{"line_number":215,"context_line":"                     (self.health_monitor[\u0027id\u0027], self.pool[\u0027id\u0027]))"},{"line_number":216,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    def _wait_for_entity_delete(self, id, entity_type):"},{"line_number":219,"context_line":"        timer \u003d self.lbaas_entity_delete_timeout"},{"line_number":220,"context_line":"        if entity_type \u003d\u003d \u0027vip\u0027:"},{"line_number":221,"context_line":"            method \u003d \u0027show_vip\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BBko%3D","line":218,"updated":"2014-01-30 21:47:09.000000000","message":"So the rest client already has a wait_for_resource_deletion() method which is essentially what you\u0027re recreating here. Is there a reason why you\u0027re not using that instead.\n\nWe don\u0027t want to duplicate code to do the same thing.","commit_id":"a63f669e0f75f522e50b3275ca8b89524efb0eeb"},{"author":{"_account_id":9731,"name":"izikpenso","email":"izikp@radware.com","username":"izikpenso"},"change_message_id":"207adc8dbd4dabed53bda6818e9bff06f6cdc44b","unresolved":false,"context_lines":[{"line_number":215,"context_line":"                     (self.health_monitor[\u0027id\u0027], self.pool[\u0027id\u0027]))"},{"line_number":216,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    def _wait_for_entity_delete(self, id, entity_type):"},{"line_number":219,"context_line":"        timer \u003d self.lbaas_entity_delete_timeout"},{"line_number":220,"context_line":"        if entity_type \u003d\u003d \u0027vip\u0027:"},{"line_number":221,"context_line":"            method \u003d \u0027show_vip\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F91j0%3D","line":218,"in_reply_to":"AAAAUH%2F%2BBko%3D","updated":"2014-02-03 13:50:28.000000000","message":"Hi Matthew, I\u0027m replying just on this for now, cause this seems to me as a major comment. \nWe are not using the wait_for_resource_deletion() because it calls is_resource_deleted() function with the resource id as a parameter. This mechanism works for all compute resources since each one of them has its own rest client implementation, which contains the implementation of is_resource_deleted() function specific to each resource. In case of network resources, there\u0027s just one rest client implementation for all network resources. That\u0027s the reason why is_resource_deleted() can\u0027t be implemented because the resource type is unknown.\n\nother option is to implement wait_for_resource_deletion() and is_resource_deleted() functions for network rest client while resource type is a parameter to a function. \nThis will be instead of doing the wait functionality in the test code. \n\nDo you think this approach will the right one or do you think there is other way to do it ?","commit_id":"a63f669e0f75f522e50b3275ca8b89524efb0eeb"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"46e0ba0c148e00c575f0f8d6d3aa6858be608f93","unresolved":false,"context_lines":[{"line_number":215,"context_line":"                     (self.health_monitor[\u0027id\u0027], self.pool[\u0027id\u0027]))"},{"line_number":216,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    def _wait_for_entity_delete(self, id, entity_type):"},{"line_number":219,"context_line":"        timer \u003d self.lbaas_entity_delete_timeout"},{"line_number":220,"context_line":"        if entity_type \u003d\u003d \u0027vip\u0027:"},{"line_number":221,"context_line":"            method \u003d \u0027show_vip\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9e9Y%3D","line":218,"in_reply_to":"AAAAUH%2F91j0%3D","updated":"2014-02-06 16:00:03.000000000","message":"Well you could do that and just overload the wait_for_resource_deletion() definition for the network client.\n\nI think that I would probably just subclass the clients for the different resource endpoints in the network_client file or break out the resources from the file into separate clients. There is no reason to have a monolithic network client. It just causes problems like this. There is a reason the other services have split clients per resource endpoint.\n\nGranted that split would be outside the scope of this change and you\u0027d have to make it a patch series.","commit_id":"a63f669e0f75f522e50b3275ca8b89524efb0eeb"}]}
