)]}'
{"tempest/api/network/admin/test_l3_agent_scheduler.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"5ec44f3e7e796a17688b192ba894505a0a1621ff","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        # That said, let\u0027s preserve the existing test logic, where the extra"},{"line_number":72,"context_line":"        # query and setup steps are only required if the extension is available"},{"line_number":73,"context_line":"        # and only if the router\u0027s default type is distributed."},{"line_number":74,"context_line":"        cls.is_dvr_router \u003d None"},{"line_number":75,"context_line":"        if test.is_extension_enabled(\u0027dvr\u0027, \u0027network\u0027):"},{"line_number":76,"context_line":"            cls.is_dvr_router \u003d cls.admin_client.show_router("},{"line_number":77,"context_line":"                cls.router[\u0027id\u0027])[\u0027router\u0027].get(\u0027distributed\u0027, False)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_348eac79","line":74,"updated":"2015-06-17 13:52:23.000000000","message":"A good catch! But I think it is more logical to set this variable to False.","commit_id":"dbad158434cd669a5e700f9a64690689bd01a33f"},{"author":{"_account_id":8344,"name":"fumihiko kakuma","email":"kakuma@valinux.co.jp","username":"kakuma"},"change_message_id":"fbf7a3ccb1eb8c1bb35604402ec17cd1fcc27ba6","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        # That said, let\u0027s preserve the existing test logic, where the extra"},{"line_number":72,"context_line":"        # query and setup steps are only required if the extension is available"},{"line_number":73,"context_line":"        # and only if the router\u0027s default type is distributed."},{"line_number":74,"context_line":"        cls.is_dvr_router \u003d None"},{"line_number":75,"context_line":"        if test.is_extension_enabled(\u0027dvr\u0027, \u0027network\u0027):"},{"line_number":76,"context_line":"            cls.is_dvr_router \u003d cls.admin_client.show_router("},{"line_number":77,"context_line":"                cls.router[\u0027id\u0027])[\u0027router\u0027].get(\u0027distributed\u0027, False)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_3219c3d7","line":74,"in_reply_to":"fa32b979_348eac79","updated":"2015-06-17 22:48:06.000000000","message":"I thought that cls.is_dvr_router should have an object rather than a boolean to be saw at L76 and I set None.","commit_id":"dbad158434cd669a5e700f9a64690689bd01a33f"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"f3d02661eaf50dbb34e121868275cd1f9b50bffe","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @classmethod"},{"line_number":86,"context_line":"    def resource_cleanup(cls):"},{"line_number":87,"context_line":"        if cls.is_dvr_router:"},{"line_number":88,"context_line":"            cls.client.remove_router_interface_with_port_id("},{"line_number":89,"context_line":"                cls.router[\u0027id\u0027], cls.port[\u0027id\u0027])"},{"line_number":90,"context_line":"        super(L3AgentSchedulerTestJSON, cls).resource_cleanup()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_8ddd10e2","line":87,"updated":"2015-06-17 23:18:06.000000000","message":"So I think you can use something like this\n\n    if getattr(cls, \u0027is_dvr_router\u0027, False):\n        ...\n\nand remove line 74.","commit_id":"dbad158434cd669a5e700f9a64690689bd01a33f"},{"author":{"_account_id":8344,"name":"fumihiko kakuma","email":"kakuma@valinux.co.jp","username":"kakuma"},"change_message_id":"622ea580c2749dbf38c2ddebfba411e01c6191bf","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @classmethod"},{"line_number":86,"context_line":"    def resource_cleanup(cls):"},{"line_number":87,"context_line":"        if cls.is_dvr_router:"},{"line_number":88,"context_line":"            cls.client.remove_router_interface_with_port_id("},{"line_number":89,"context_line":"                cls.router[\u0027id\u0027], cls.port[\u0027id\u0027])"},{"line_number":90,"context_line":"        super(L3AgentSchedulerTestJSON, cls).resource_cleanup()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_4a6ccb07","line":87,"in_reply_to":"fa32b979_88fade73","updated":"2015-06-18 00:54:23.000000000","message":"If you like False, I will use it.\nYes, I agree that set is_dvr_router to False at L29.","commit_id":"dbad158434cd669a5e700f9a64690689bd01a33f"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"b2e863ba5cf47b8aabbf987d1ccaae54d9c66b7f","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @classmethod"},{"line_number":86,"context_line":"    def resource_cleanup(cls):"},{"line_number":87,"context_line":"        if cls.is_dvr_router:"},{"line_number":88,"context_line":"            cls.client.remove_router_interface_with_port_id("},{"line_number":89,"context_line":"                cls.router[\u0027id\u0027], cls.port[\u0027id\u0027])"},{"line_number":90,"context_line":"        super(L3AgentSchedulerTestJSON, cls).resource_cleanup()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_88fade73","line":87,"in_reply_to":"fa32b979_8ddd10e2","updated":"2015-06-17 23:48:31.000000000","message":"Let\u0027s not overcomplicate if don\u0027t absolutely have to.\n\nperhaps it\u0027s a lot cleaner and readable if we set is_dvr_router to None at line 29. False or None, it doesn\u0027t really make any difference, but I agree that False is slightly more appropriate.","commit_id":"dbad158434cd669a5e700f9a64690689bd01a33f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"858d0945fd48d13ccec006bca00170887432149b","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                    cls.router[\u0027id\u0027], cls.port[\u0027id\u0027])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @classmethod"},{"line_number":86,"context_line":"    def resource_cleanup(cls):"},{"line_number":87,"context_line":"        if cls.is_dvr_router:"},{"line_number":88,"context_line":"            cls.client.remove_router_interface_with_port_id("},{"line_number":89,"context_line":"                cls.router[\u0027id\u0027], cls.port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_93f1ae6d","line":86,"updated":"2015-06-18 03:06:49.000000000","message":"We can do this like- if (hasattr(cls, \u0027is_dvr_router\u0027) and cls.is_dvr_router):","commit_id":"077e01ff23ff7c20141aea2992bc6c00b953e88b"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"dd5c84875731a19597d2e512a09cd11f61dac43b","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                    cls.router[\u0027id\u0027], cls.port[\u0027id\u0027])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @classmethod"},{"line_number":86,"context_line":"    def resource_cleanup(cls):"},{"line_number":87,"context_line":"        if cls.is_dvr_router:"},{"line_number":88,"context_line":"            cls.client.remove_router_interface_with_port_id("},{"line_number":89,"context_line":"                cls.router[\u0027id\u0027], cls.port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_9ebd35da","line":86,"in_reply_to":"fa32b979_93f1ae6d","updated":"2015-06-18 03:39:45.000000000","message":"see comments on PS1. IMO I don\u0027t see that this notation is going to be any clearer than a plain check.\n\nLet\u0027s not be \u0027clever\u0027 just for the sake of it.","commit_id":"077e01ff23ff7c20141aea2992bc6c00b953e88b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"80376c2d6f7e57e0a1382bb133b82313bd05c685","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                    cls.router[\u0027id\u0027], cls.port[\u0027id\u0027])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @classmethod"},{"line_number":86,"context_line":"    def resource_cleanup(cls):"},{"line_number":87,"context_line":"        if cls.is_dvr_router:"},{"line_number":88,"context_line":"            cls.client.remove_router_interface_with_port_id("},{"line_number":89,"context_line":"                cls.router[\u0027id\u0027], cls.port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_59e7c7ab","line":86,"in_reply_to":"fa32b979_9ebd35da","updated":"2015-06-18 05:42:44.000000000","message":"no so strong opinion about that but i feel we are declaring unnecessary extra class variable.\n\nHere situation is just simple if extension is enabled then only create that variable and while access just check the same thing.\n\nI prefer getattr or hasattr  than declaring extra class variable even DVR extension is disabled.","commit_id":"077e01ff23ff7c20141aea2992bc6c00b953e88b"}]}
