)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"cae711c1e1bf36e91c0993d26ed6953e1c762794","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The scenario is simply \"create a fake machine, attach a policy, make"},{"line_number":10,"context_line":"sure the policy is applied on the OVS level\"."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Iebe9b3e9d612d3533381a8cf4d0b9c587f8fda42"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1a4dcd0f_8439f143","line":12,"updated":"2015-08-10 12:55:08.000000000","message":"Partially-Implements: bluerint ml2-qos","commit_id":"34ef0aabb0a1d14ff00ea8dcb5c3bb1cbac173af"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"fd3fe8de59606de86b5b0642051b9d6cf862b856","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The scenario is simply \"create a fake machine, attach a policy, make"},{"line_number":10,"context_line":"sure the policy is applied on the OVS level\"."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Iebe9b3e9d612d3533381a8cf4d0b9c587f8fda42"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1a4dcd0f_1f6335b2","line":12,"in_reply_to":"1a4dcd0f_8439f143","updated":"2015-08-13 16:16:36.000000000","message":"Done","commit_id":"34ef0aabb0a1d14ff00ea8dcb5c3bb1cbac173af"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"c713da8b452a2497eb600bbe981e9ab6feb3abb6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add QoS fullstack test"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Here will be described what this patch implements. I don\u0027t remember it"},{"line_number":10,"context_line":"now."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partially-Implements: blueprint ml2-qos"},{"line_number":13,"context_line":"Change-Id: Iebe9b3e9d612d3533381a8cf4d0b9c587f8fda42"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a4dcd0f_de5dc17d","line":10,"updated":"2015-08-13 16:55:00.000000000","message":"I had a smart comment to put here but I forgot it :)","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"225b4054975ab1f1efa46db3fff52718d50b46df","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add QoS fullstack test"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Here will be described what this patch implements. I don\u0027t remember it"},{"line_number":10,"context_line":"now."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partially-Implements: blueprint ml2-qos"},{"line_number":13,"context_line":"Change-Id: Iebe9b3e9d612d3533381a8cf4d0b9c587f8fda42"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a4dcd0f_2ee33307","line":10,"in_reply_to":"1a4dcd0f_de5dc17d","updated":"2015-08-14 11:04:15.000000000","message":":D","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"}],"neutron/tests/common/machine_fixtures.py":[{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"c713da8b452a2497eb600bbe981e9ab6feb3abb6","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"class FakeFullstackMachine(FakeMachineExecutorMixin, fixtures.Fixture):"},{"line_number":126,"context_line":"    def __init__(self, host, network_id, tenant_id, client, port\u003dNone):"},{"line_number":127,"context_line":"        self.bridge \u003d host.ovs_agent.br_int"},{"line_number":128,"context_line":"        self.hostname \u003d host.neutron_config.host"},{"line_number":129,"context_line":"        self.tenant_id \u003d tenant_id"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_9e6ad9ec","line":126,"updated":"2015-08-13 16:55:00.000000000","message":"Like. Can we rename \u0027port\u0027 to \u0027neutron_port\u0027 (even though it makes us drop a line)?","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"225b4054975ab1f1efa46db3fff52718d50b46df","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"class FakeFullstackMachine(FakeMachineExecutorMixin, fixtures.Fixture):"},{"line_number":126,"context_line":"    def __init__(self, host, network_id, tenant_id, client, port\u003dNone):"},{"line_number":127,"context_line":"        self.bridge \u003d host.ovs_agent.br_int"},{"line_number":128,"context_line":"        self.hostname \u003d host.neutron_config.host"},{"line_number":129,"context_line":"        self.tenant_id \u003d tenant_id"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_2eca536f","line":126,"in_reply_to":"1a4dcd0f_9e6ad9ec","updated":"2015-08-14 11:04:15.000000000","message":"Sure, though I think it\u0027s clear it\u0027s a neutron port.","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"3cae43f75f0c2ac5ca3ea34638393a5552fb1b15","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                body\u003d{\u0027port\u0027: {\u0027network_id\u0027: self.network_id,"},{"line_number":143,"context_line":"                               \u0027tenant_id\u0027: self.tenant_id,"},{"line_number":144,"context_line":"                               \u0027binding:host_id\u0027: self.hostname}})"},{"line_number":145,"context_line":"            self.addCleanup(self.client.delete_port,"},{"line_number":146,"context_line":"                            self.neutron_port[\u0027port\u0027][\u0027id\u0027])"},{"line_number":147,"context_line":"        self.neutron_port_id \u003d self.neutron_port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":148,"context_line":"        self.mac \u003d self.neutron_port[\u0027port\u0027][\u0027mac_address\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_24a4d3b7","line":145,"updated":"2015-08-13 18:51:12.000000000","message":"You\u0027ll need to rebase, this was changed to use the safe_client.","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"225b4054975ab1f1efa46db3fff52718d50b46df","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                body\u003d{\u0027port\u0027: {\u0027network_id\u0027: self.network_id,"},{"line_number":143,"context_line":"                               \u0027tenant_id\u0027: self.tenant_id,"},{"line_number":144,"context_line":"                               \u0027binding:host_id\u0027: self.hostname}})"},{"line_number":145,"context_line":"            self.addCleanup(self.client.delete_port,"},{"line_number":146,"context_line":"                            self.neutron_port[\u0027port\u0027][\u0027id\u0027])"},{"line_number":147,"context_line":"        self.neutron_port_id \u003d self.neutron_port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":148,"context_line":"        self.mac \u003d self.neutron_port[\u0027port\u0027][\u0027mac_address\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_c1b4dd36","line":145,"in_reply_to":"1a4dcd0f_24a4d3b7","updated":"2015-08-14 11:04:15.000000000","message":"Yeah, I\u0027ll do that once I\u0027ll move to master branch.","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"}],"neutron/tests/fullstack/resources/config.py":[{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"fea79723148ebcfe22165432dbad4ae9834e69f7","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"class NeutronConfigFixture(ConfigFixture):"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def __init__(self, temp_dir, connection, rabbitmq_environment,"},{"line_number":100,"context_line":"                 service_plugins):"},{"line_number":101,"context_line":"        super(NeutronConfigFixture, self).__init__("},{"line_number":102,"context_line":"            temp_dir, base_filename\u003d\u0027neutron.conf\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_bc88c823","line":99,"updated":"2015-07-20 19:10:20.000000000","message":"I wonder why not just change the default to add qos and be done with it.","commit_id":"33da8ed97ef4006db95980891af814d82856a973"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"baa688e9e44e3e58eb7e9019d3df77fd6447f7e8","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"class NeutronConfigFixture(ConfigFixture):"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def __init__(self, temp_dir, connection, rabbitmq_environment,"},{"line_number":100,"context_line":"                 service_plugins):"},{"line_number":101,"context_line":"        super(NeutronConfigFixture, self).__init__("},{"line_number":102,"context_line":"            temp_dir, base_filename\u003d\u0027neutron.conf\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_c55fe53f","line":99,"in_reply_to":"3a50d1a3_bc88c823","updated":"2015-07-21 06:30:20.000000000","message":"I think it\u0027s more generic to have a configurable config.","commit_id":"33da8ed97ef4006db95980891af814d82856a973"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"cc2378f51ab78ffcc803627caeb8155929f38b37","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"class NeutronConfigFixture(ConfigFixture):"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def __init__(self, temp_dir, connection, rabbitmq_environment,"},{"line_number":100,"context_line":"                 service_plugins):"},{"line_number":101,"context_line":"        super(NeutronConfigFixture, self).__init__("},{"line_number":102,"context_line":"            temp_dir, base_filename\u003d\u0027neutron.conf\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_a2cbdc1d","line":99,"in_reply_to":"3a50d1a3_c55fe53f","updated":"2015-08-09 14:48:08.000000000","message":"Meh. I\u0027m removing this for now to make this patch as simple as possible (it\u0027s already a bit complicated as it is). Worst case scenario, we can return this.","commit_id":"33da8ed97ef4006db95980891af814d82856a973"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dd1b5e601cca7664e4a4b8dbf7f63b4e827bec50","unresolved":false,"context_lines":[{"line_number":190,"context_line":"            },"},{"line_number":191,"context_line":"        })"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        if enable_qos:"},{"line_number":194,"context_line":"            self.config.update({"},{"line_number":195,"context_line":"                \u0027qos\u0027: {"},{"line_number":196,"context_line":"                    \u0027agent_driver\u0027: \u0027ovs\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_e83bdfe9","line":193,"updated":"2015-08-04 15:30:34.000000000","message":"it should now also enable extension: extensions \u003d qos","commit_id":"33da8ed97ef4006db95980891af814d82856a973"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"cc2378f51ab78ffcc803627caeb8155929f38b37","unresolved":false,"context_lines":[{"line_number":190,"context_line":"            },"},{"line_number":191,"context_line":"        })"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        if enable_qos:"},{"line_number":194,"context_line":"            self.config.update({"},{"line_number":195,"context_line":"                \u0027qos\u0027: {"},{"line_number":196,"context_line":"                    \u0027agent_driver\u0027: \u0027ovs\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_42d0d8c9","line":193,"in_reply_to":"1a4dcd0f_e83bdfe9","updated":"2015-08-09 14:48:08.000000000","message":"Done","commit_id":"33da8ed97ef4006db95980891af814d82856a973"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"fea79723148ebcfe22165432dbad4ae9834e69f7","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        if enable_qos:"},{"line_number":194,"context_line":"            self.config.update({"},{"line_number":195,"context_line":"                \u0027qos\u0027: {"},{"line_number":196,"context_line":"                    \u0027agent_driver\u0027: \u0027ovs\u0027,"},{"line_number":197,"context_line":"                },"},{"line_number":198,"context_line":"            })"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_fcb9702f","line":196,"updated":"2015-07-20 19:10:20.000000000","message":"ovs is the default so you can just remove this I think.","commit_id":"33da8ed97ef4006db95980891af814d82856a973"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"baa688e9e44e3e58eb7e9019d3df77fd6447f7e8","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        if enable_qos:"},{"line_number":194,"context_line":"            self.config.update({"},{"line_number":195,"context_line":"                \u0027qos\u0027: {"},{"line_number":196,"context_line":"                    \u0027agent_driver\u0027: \u0027ovs\u0027,"},{"line_number":197,"context_line":"                },"},{"line_number":198,"context_line":"            })"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_056e2d01","line":196,"in_reply_to":"3a50d1a3_fcb9702f","updated":"2015-07-21 06:30:20.000000000","message":"It is but I\u0027m rather explicit. I consider it better to define everything what\u0027s needed than rely on default values.","commit_id":"33da8ed97ef4006db95980891af814d82856a973"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"cae711c1e1bf36e91c0993d26ed6953e1c762794","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        super(NeutronConfigFixture, self).__init__("},{"line_number":102,"context_line":"            temp_dir, base_filename\u003d\u0027neutron.conf\u0027)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        service_plugins \u003d [\u0027neutron.services.l3_router.\u0027"},{"line_number":105,"context_line":"                           \u0027l3_router_plugin.L3RouterPlugin\u0027]"},{"line_number":106,"context_line":"        if environment_description.enable_qos:"},{"line_number":107,"context_line":"            service_plugins.append(\u0027qos\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_c47db9e8","line":104,"updated":"2015-08-10 12:55:08.000000000","message":"Why don\u0027t we use \u0027router\u0027 alias instead?","commit_id":"34ef0aabb0a1d14ff00ea8dcb5c3bb1cbac173af"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"fd3fe8de59606de86b5b0642051b9d6cf862b856","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        super(NeutronConfigFixture, self).__init__("},{"line_number":102,"context_line":"            temp_dir, base_filename\u003d\u0027neutron.conf\u0027)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        service_plugins \u003d [\u0027neutron.services.l3_router.\u0027"},{"line_number":105,"context_line":"                           \u0027l3_router_plugin.L3RouterPlugin\u0027]"},{"line_number":106,"context_line":"        if environment_description.enable_qos:"},{"line_number":107,"context_line":"            service_plugins.append(\u0027qos\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_ff0689cc","line":104,"in_reply_to":"1a4dcd0f_c47db9e8","updated":"2015-08-13 16:16:36.000000000","message":"Done","commit_id":"34ef0aabb0a1d14ff00ea8dcb5c3bb1cbac173af"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"cae711c1e1bf36e91c0993d26ed6953e1c762794","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"class ML2ConfigFixture(ConfigFixture):"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def __init__(self, temp_dir, tenant_network_types, enable_qos\u003dFalse):"},{"line_number":163,"context_line":"        super(ML2ConfigFixture, self).__init__("},{"line_number":164,"context_line":"            temp_dir, base_filename\u003d\u0027ml2_conf.ini\u0027)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_a462ed14","line":162,"updated":"2015-08-10 12:55:08.000000000","message":"Any particular reason why we push env in server fixture but boolean here and below?","commit_id":"34ef0aabb0a1d14ff00ea8dcb5c3bb1cbac173af"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"fd3fe8de59606de86b5b0642051b9d6cf862b856","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"class ML2ConfigFixture(ConfigFixture):"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def __init__(self, temp_dir, tenant_network_types, enable_qos\u003dFalse):"},{"line_number":163,"context_line":"        super(ML2ConfigFixture, self).__init__("},{"line_number":164,"context_line":"            temp_dir, base_filename\u003d\u0027ml2_conf.ini\u0027)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_48c1054d","line":162,"in_reply_to":"1a4dcd0f_a462ed14","updated":"2015-08-13 16:16:36.000000000","message":"Nope, we can add env","commit_id":"34ef0aabb0a1d14ff00ea8dcb5c3bb1cbac173af"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"cae711c1e1bf36e91c0993d26ed6953e1c762794","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        if enable_qos:"},{"line_number":206,"context_line":"            self.config.update({"},{"line_number":207,"context_line":"                \u0027qos\u0027: {"},{"line_number":208,"context_line":"                    \u0027agent_driver\u0027: \u0027ovs\u0027,"},{"line_number":209,"context_line":"                },"},{"line_number":210,"context_line":"                \u0027agent\u0027: {"},{"line_number":211,"context_line":"                    \u0027extensions\u0027: \u0027qos\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_24db3def","line":208,"updated":"2015-08-10 12:55:08.000000000","message":"That one should go away: it\u0027s a default and it will be killed today: https://review.openstack.org/210998","commit_id":"34ef0aabb0a1d14ff00ea8dcb5c3bb1cbac173af"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"fd3fe8de59606de86b5b0642051b9d6cf862b856","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        if enable_qos:"},{"line_number":206,"context_line":"            self.config.update({"},{"line_number":207,"context_line":"                \u0027qos\u0027: {"},{"line_number":208,"context_line":"                    \u0027agent_driver\u0027: \u0027ovs\u0027,"},{"line_number":209,"context_line":"                },"},{"line_number":210,"context_line":"                \u0027agent\u0027: {"},{"line_number":211,"context_line":"                    \u0027extensions\u0027: \u0027qos\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_3f74f133","line":208,"in_reply_to":"1a4dcd0f_24db3def","updated":"2015-08-13 16:16:36.000000000","message":"Done","commit_id":"34ef0aabb0a1d14ff00ea8dcb5c3bb1cbac173af"}],"neutron/tests/fullstack/resources/environment.py":[{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"fea79723148ebcfe22165432dbad4ae9834e69f7","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"class Environment(fixtures.Fixture):"},{"line_number":111,"context_line":"    def __init__(self, host_attributes, service_plugins):"},{"line_number":112,"context_line":"        \"\"\"Represents a deployment topology."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        Environment is a collection of hosts. It starts a Neutron server"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_3c735882","line":111,"updated":"2015-07-20 19:10:20.000000000","message":"service_plugins definitely belongs to the GlobalEnvironmentAttributes (Which I was asked to remove from the patch you depend on, and moved it to a patch further down the chain).","commit_id":"33da8ed97ef4006db95980891af814d82856a973"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"cc2378f51ab78ffcc803627caeb8155929f38b37","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"class Environment(fixtures.Fixture):"},{"line_number":111,"context_line":"    def __init__(self, host_attributes, service_plugins):"},{"line_number":112,"context_line":"        \"\"\"Represents a deployment topology."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        Environment is a collection of hosts. It starts a Neutron server"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_e2e1e49b","line":111,"in_reply_to":"3a50d1a3_253fa9d7","updated":"2015-08-09 14:48:08.000000000","message":"Done","commit_id":"33da8ed97ef4006db95980891af814d82856a973"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"baa688e9e44e3e58eb7e9019d3df77fd6447f7e8","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"class Environment(fixtures.Fixture):"},{"line_number":111,"context_line":"    def __init__(self, host_attributes, service_plugins):"},{"line_number":112,"context_line":"        \"\"\"Represents a deployment topology."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        Environment is a collection of hosts. It starts a Neutron server"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_253fa9d7","line":111,"in_reply_to":"3a50d1a3_3c735882","updated":"2015-07-21 06:30:20.000000000","message":"Aha","commit_id":"33da8ed97ef4006db95980891af814d82856a973"}],"neutron/tests/fullstack/test_qos.py":[{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"fea79723148ebcfe22165432dbad4ae9834e69f7","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                           \u0027admin_state_up\u0027: \u0027True\u0027,"},{"line_number":50,"context_line":"                           \u0027tenant_id\u0027: self.tenant_id}})"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_qos_bandwith_limit(self):"},{"line_number":53,"context_line":"        qos_policy \u003d self.client.create_qos_policy("},{"line_number":54,"context_line":"            body\u003d{\u0027policy\u0027: {\u0027name\u0027: \u0027fs_policy\u0027,"},{"line_number":55,"context_line":"                             \u0027description\u0027: \u0027Fullstack testing policy\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_9c3aac35","line":52,"updated":"2015-07-20 19:10:20.000000000","message":"Currently this test is better off in tests/neutron/api, I don\u0027t see what full stack is giving you here. If the plan is to assert behavior on the system or testing the integration between the server and the OVS agent then that\u0027s a different story. You didn\u0027t share your plans in the commit message so I don\u0027t know.","commit_id":"33da8ed97ef4006db95980891af814d82856a973"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"baa688e9e44e3e58eb7e9019d3df77fd6447f7e8","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                           \u0027admin_state_up\u0027: \u0027True\u0027,"},{"line_number":50,"context_line":"                           \u0027tenant_id\u0027: self.tenant_id}})"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_qos_bandwith_limit(self):"},{"line_number":53,"context_line":"        qos_policy \u003d self.client.create_qos_policy("},{"line_number":54,"context_line":"            body\u003d{\u0027policy\u0027: {\u0027name\u0027: \u0027fs_policy\u0027,"},{"line_number":55,"context_line":"                             \u0027description\u0027: \u0027Fullstack testing policy\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_c014b345","line":52,"in_reply_to":"3a50d1a3_9c3aac35","updated":"2015-07-21 06:30:20.000000000","message":"Yeah, sorry, it\u0027s a secret :) I\u0027d say the plan is to create a policy with rules, add this policy to resource (port/network) and then check (either by netperf or parsing ovs output) that policy was set on given port.","commit_id":"33da8ed97ef4006db95980891af814d82856a973"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dd1b5e601cca7664e4a4b8dbf7f63b4e827bec50","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                           \u0027admin_state_up\u0027: \u0027True\u0027,"},{"line_number":50,"context_line":"                           \u0027tenant_id\u0027: self.tenant_id}})"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_qos_bandwith_limit(self):"},{"line_number":53,"context_line":"        qos_policy \u003d self.client.create_qos_policy("},{"line_number":54,"context_line":"            body\u003d{\u0027policy\u0027: {\u0027name\u0027: \u0027fs_policy\u0027,"},{"line_number":55,"context_line":"                             \u0027description\u0027: \u0027Fullstack testing policy\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_dc3d84bc","line":52,"in_reply_to":"3a50d1a3_c014b345","updated":"2015-08-04 15:30:34.000000000","message":"ovs output should be enough.","commit_id":"33da8ed97ef4006db95980891af814d82856a973"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"cae711c1e1bf36e91c0993d26ed6953e1c762794","unresolved":false,"context_lines":[{"line_number":29,"context_line":"                [environment.HostDescription(l3_agent\u003dFalse)]))"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        self.tenant_id \u003d uuidutils.generate_uuid()"},{"line_number":32,"context_line":"        #TODO(jschwarz): Use ZZelle\u0027s safe client instead."},{"line_number":33,"context_line":"        self.network \u003d self.client.create_network("},{"line_number":34,"context_line":"            body\u003d{\u0027network\u0027: {\u0027name\u0027: \u0027network-test\u0027,"},{"line_number":35,"context_line":"                              \u0027tenant_id\u0027: self.tenant_id}})"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_df1ca06c","line":32,"updated":"2015-08-10 12:55:08.000000000","message":"I am ignorant. Can you share what\u0027s that about?","commit_id":"34ef0aabb0a1d14ff00ea8dcb5c3bb1cbac173af"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"8a07fb7d9fb86d848f10057da4d82f8fcb9ac9e1","unresolved":false,"context_lines":[{"line_number":29,"context_line":"                [environment.HostDescription(l3_agent\u003dFalse)]))"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        self.tenant_id \u003d uuidutils.generate_uuid()"},{"line_number":32,"context_line":"        #TODO(jschwarz): Use ZZelle\u0027s safe client instead."},{"line_number":33,"context_line":"        self.network \u003d self.client.create_network("},{"line_number":34,"context_line":"            body\u003d{\u0027network\u0027: {\u0027name\u0027: \u0027network-test\u0027,"},{"line_number":35,"context_line":"                              \u0027tenant_id\u0027: self.tenant_id}})"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_1e048916","line":32,"in_reply_to":"1a4dcd0f_df1ca06c","updated":"2015-08-13 16:36:18.000000000","message":"neutron/tests/fullstack/resources/client.py contains a fixture we can use to initialise these resources and implicitly schedule them for deletion. That should make this code a bit nicer.","commit_id":"34ef0aabb0a1d14ff00ea8dcb5c3bb1cbac173af"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"cae711c1e1bf36e91c0993d26ed6953e1c762794","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                             \u0027ip_version\u0027: 4,"},{"line_number":44,"context_line":"                             \u0027enable_dhcp\u0027: False}})"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_qos_bandwith_limit(self):"},{"line_number":47,"context_line":"        qos_policy \u003d self.client.create_qos_policy("},{"line_number":48,"context_line":"            body\u003d{\u0027policy\u0027: {\u0027name\u0027: \u0027fs_policy\u0027,"},{"line_number":49,"context_line":"                             \u0027description\u0027: \u0027Fullstack testing policy\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_3f37c4e4","line":46,"updated":"2015-08-10 12:55:08.000000000","message":"bandwidth","commit_id":"34ef0aabb0a1d14ff00ea8dcb5c3bb1cbac173af"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"cae711c1e1bf36e91c0993d26ed6953e1c762794","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                self.environment.hosts[0],"},{"line_number":62,"context_line":"                self.network[\u0027network\u0027][\u0027id\u0027],"},{"line_number":63,"context_line":"                self.tenant_id,"},{"line_number":64,"context_line":"                self.client))"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        self.client.update_port("},{"line_number":67,"context_line":"            vm.neutron_port_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_bf867463","line":64,"updated":"2015-08-10 12:55:08.000000000","message":"you could usefully check here that it\u0027s not applied yet.","commit_id":"34ef0aabb0a1d14ff00ea8dcb5c3bb1cbac173af"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"cae711c1e1bf36e91c0993d26ed6953e1c762794","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        utils.wait_until_true("},{"line_number":71,"context_line":"            lambda: (vm.bridge.get_qos_bw_limit_for_port(vm.linux_port.name) \u003d\u003d"},{"line_number":72,"context_line":"                     (200, 300)))"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_9fe85818","line":72,"updated":"2015-08-10 12:55:08.000000000","message":"Another scenario we may want is having a port attached before agent is started.","commit_id":"34ef0aabb0a1d14ff00ea8dcb5c3bb1cbac173af"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"c713da8b452a2497eb600bbe981e9ab6feb3abb6","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                             \u0027enable_dhcp\u0027: False}})"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _create_qos_policy(self):"},{"line_number":74,"context_line":"        return self.client.create_qos_policy("},{"line_number":75,"context_line":"            body\u003d{\u0027policy\u0027: {\u0027name\u0027: \u0027fs_policy\u0027,"},{"line_number":76,"context_line":"                             \u0027description\u0027: \u0027Fullstack testing policy\u0027,"},{"line_number":77,"context_line":"                             \u0027shared\u0027: \u0027False\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_21c60a69","line":74,"updated":"2015-08-13 16:55:00.000000000","message":"This should trigger addCleanup() for cleaning up the policy.\n\nThis should also belong in neutron/tests/fullstack/resources/client.py :)","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"366783955355a280e2b175b9979f5b8ddde6d69e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                             \u0027enable_dhcp\u0027: False}})"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _create_qos_policy(self):"},{"line_number":74,"context_line":"        return self.client.create_qos_policy("},{"line_number":75,"context_line":"            body\u003d{\u0027policy\u0027: {\u0027name\u0027: \u0027fs_policy\u0027,"},{"line_number":76,"context_line":"                             \u0027description\u0027: \u0027Fullstack testing policy\u0027,"},{"line_number":77,"context_line":"                             \u0027shared\u0027: \u0027False\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_1cfea838","line":74,"in_reply_to":"1a4dcd0f_01d96583","updated":"2015-08-14 11:38:25.000000000","message":"Ok, I read safe client and I get it now :)","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"225b4054975ab1f1efa46db3fff52718d50b46df","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                             \u0027enable_dhcp\u0027: False}})"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _create_qos_policy(self):"},{"line_number":74,"context_line":"        return self.client.create_qos_policy("},{"line_number":75,"context_line":"            body\u003d{\u0027policy\u0027: {\u0027name\u0027: \u0027fs_policy\u0027,"},{"line_number":76,"context_line":"                             \u0027description\u0027: \u0027Fullstack testing policy\u0027,"},{"line_number":77,"context_line":"                             \u0027shared\u0027: \u0027False\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_01d96583","line":74,"in_reply_to":"1a4dcd0f_21c60a69","updated":"2015-08-14 11:04:15.000000000","message":"Are you sure? This hardcodes values.","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"c713da8b452a2497eb600bbe981e9ab6feb3abb6","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                             \u0027shared\u0027: \u0027False\u0027,"},{"line_number":78,"context_line":"                             \u0027tenant_id\u0027: self.tenant_id}})"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def _create_bw_limit_rule(self, qos_policy_id, limit\u003dNone, burst\u003dNone):"},{"line_number":81,"context_line":"        rule \u003d {\u0027tenant_id\u0027: self.tenant_id}"},{"line_number":82,"context_line":"        if limit:"},{"line_number":83,"context_line":"            rule[\u0027max_kbps\u0027] \u003d limit"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_e19ee268","line":80,"updated":"2015-08-13 16:55:00.000000000","message":"Ditto and Ditto","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"c713da8b452a2497eb600bbe981e9ab6feb3abb6","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        return policy"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def _wait_for_rule_applied(self, limit\u003dNone, burst\u003dNone):"},{"line_number":97,"context_line":"        utils.wait_until_true("},{"line_number":98,"context_line":"            lambda: self.vm.bridge.get_qos_bw_limit_for_port("},{"line_number":99,"context_line":"                self.vm.linux_port.name) \u003d\u003d (limit, burst))"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_6123b2bf","line":96,"updated":"2015-08-13 16:55:00.000000000","message":"You can use the code submitted here:\n\nhttps://review.openstack.org/#/c/211173/3/neutron/tests/common/agents/l2_extensions.py","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"225b4054975ab1f1efa46db3fff52718d50b46df","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        return policy"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def _wait_for_rule_applied(self, limit\u003dNone, burst\u003dNone):"},{"line_number":97,"context_line":"        utils.wait_until_true("},{"line_number":98,"context_line":"            lambda: self.vm.bridge.get_qos_bw_limit_for_port("},{"line_number":99,"context_line":"                self.vm.linux_port.name) \u003d\u003d (limit, burst))"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_81d3355f","line":96,"in_reply_to":"1a4dcd0f_6123b2bf","updated":"2015-08-14 11:04:15.000000000","message":"thanks","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"3cae43f75f0c2ac5ca3ea34638393a5552fb1b15","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def _wait_for_rule_applied(self, limit\u003dNone, burst\u003dNone):"},{"line_number":97,"context_line":"        utils.wait_until_true("},{"line_number":98,"context_line":"            lambda: self.vm.bridge.get_qos_bw_limit_for_port("},{"line_number":99,"context_line":"                self.vm.linux_port.name) \u003d\u003d (limit, burst))"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def _prepare_vm_with_qos_policy(self, limit\u003dNone, burst\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_a4c5433e","line":98,"updated":"2015-08-13 18:51:12.000000000","message":"It\u0027ll be cleaner if this method were to accept the VM parameter instead of use self.vm.","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"225b4054975ab1f1efa46db3fff52718d50b46df","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def _wait_for_rule_applied(self, limit\u003dNone, burst\u003dNone):"},{"line_number":97,"context_line":"        utils.wait_until_true("},{"line_number":98,"context_line":"            lambda: self.vm.bridge.get_qos_bw_limit_for_port("},{"line_number":99,"context_line":"                self.vm.linux_port.name) \u003d\u003d (limit, burst))"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def _prepare_vm_with_qos_policy(self, limit\u003dNone, burst\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_210d81e8","line":98,"in_reply_to":"1a4dcd0f_a4c5433e","updated":"2015-08-14 11:04:15.000000000","message":"These helper methods are just to make it easy to write tests so I can validate it actually works. I plan to re-do the whole thing, based on that I thought environment is per testcase class...","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"3cae43f75f0c2ac5ca3ea34638393a5552fb1b15","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            lambda: self.vm.bridge.get_qos_bw_limit_for_port("},{"line_number":99,"context_line":"                self.vm.linux_port.name) \u003d\u003d (limit, burst))"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def _prepare_vm_with_qos_policy(self, limit\u003dNone, burst\u003dNone):"},{"line_number":102,"context_line":"        self.qos_policy \u003d self._create_qos_policy()"},{"line_number":103,"context_line":"        qos_policy_id \u003d self.qos_policy[\u0027policy\u0027][\u0027id\u0027]"},{"line_number":104,"context_line":"        if not (limit is None and burst is None):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_a4cc6362","line":101,"updated":"2015-08-13 18:51:12.000000000","message":"Please refrain from using instance variables. Can\u0027t this method return \u0027vm\u0027 instead? :( It makes the tests a lot harder to read. Here I am scrolling down gleefully, reading _wait_for_rule_applied when suddenly I see a reference to self.vm. I then have to go search where that is created, it\u0027s unnecessarily complex.","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"c713da8b452a2497eb600bbe981e9ab6feb3abb6","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            self.qos_bw_rule \u003d self._create_bw_limit_rule("},{"line_number":106,"context_line":"                qos_policy_id, limit, burst)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        port \u003d self.client.create_port("},{"line_number":109,"context_line":"            body\u003d{\u0027port\u0027: {\u0027network_id\u0027: self.network_id,"},{"line_number":110,"context_line":"                           \u0027tenant_id\u0027: self.tenant_id,"},{"line_number":111,"context_line":"                           \u0027binding:host_id\u0027: self.hostname,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_c1b2c6e5","line":108,"updated":"2015-08-13 16:55:00.000000000","message":"This exists in the client fixture I mentioned above","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"c713da8b452a2497eb600bbe981e9ab6feb3abb6","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    def test_create_qos_bandwidth_limit_and_burst_on_port(self):"},{"line_number":123,"context_line":"        self._prepare_vm_with_qos_policy_and_rule(limit\u003d200, burst\u003d50)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        self._wait_for_rule_applied(limit\u003d200, burst\u003d50)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def test_create_qos_bandwidth_limit_on_port(self):"},{"line_number":128,"context_line":"        self._prepare_vm_with_qos_policy_and_rule(limit\u003d200)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_a46b08b9","line":125,"updated":"2015-08-13 16:55:00.000000000","message":"Lets define DEFAULT_QOS_LIMIT and DEFAULT_QOS_BURST for these magic numbers.","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"225b4054975ab1f1efa46db3fff52718d50b46df","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    def test_create_qos_bandwidth_limit_and_burst_on_port(self):"},{"line_number":123,"context_line":"        self._prepare_vm_with_qos_policy_and_rule(limit\u003d200, burst\u003d50)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        self._wait_for_rule_applied(limit\u003d200, burst\u003d50)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def test_create_qos_bandwidth_limit_on_port(self):"},{"line_number":128,"context_line":"        self._prepare_vm_with_qos_policy_and_rule(limit\u003d200)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_c1fe1dae","line":125,"in_reply_to":"1a4dcd0f_a46b08b9","updated":"2015-08-14 11:04:15.000000000","message":"Will do","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"3cae43f75f0c2ac5ca3ea34638393a5552fb1b15","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        self._wait_for_rule_applied()"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def test_delete_qos_policy_on_port(self):"},{"line_number":215,"context_line":"        pass"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def test_delete_port_policy(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_641bbbcb","line":214,"updated":"2015-08-13 18:51:12.000000000","message":"As discussed in IRC, fullstack infra actually sets up the whole environment on every test and not test case (Although we would want to probably change that). Even these empty tests take probably 5+ seconds to run. Because of this you\u0027d want more \u0027scenario\u0027 or \u0027lifecycle\u0027 oriented tests, and not a test per flow.","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"225b4054975ab1f1efa46db3fff52718d50b46df","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        self._wait_for_rule_applied()"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def test_delete_qos_policy_on_port(self):"},{"line_number":215,"context_line":"        pass"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def test_delete_port_policy(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_812fb53d","line":214,"in_reply_to":"1a4dcd0f_641bbbcb","updated":"2015-08-14 11:04:15.000000000","message":"Thanks for highlighting this.","commit_id":"4be4c343cc46ab6da78122fd8299806d5f5a23fe"}]}
