)]}'
{"rally-jobs/rally-neutron.yaml":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"2e2720ca226b9038dc565bee72061bbbd3d4f42a","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        users:"},{"line_number":196,"context_line":"          tenants: 1"},{"line_number":197,"context_line":"          users_per_tenant: 1"},{"line_number":198,"context_line":"        network: {\"add_lb_pool\": True}"},{"line_number":199,"context_line":"        quotas:"},{"line_number":200,"context_line":"          neutron:"},{"line_number":201,"context_line":"            network: -1"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"fa32b979_808b1268","line":198,"updated":"2015-06-22 10:54:35.000000000","message":"Why do not use YAML style?\n\n   network:\n     add_lb_pool: True","commit_id":"a7227b9d29df36f2475b554c707e4675f82ec1c4"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"9a2d0c5bc31f4dbbc89b5b1bf013a831e923d983","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        vip_create_args: {}"},{"line_number":193,"context_line":"      runner:"},{"line_number":194,"context_line":"        type: \"constant\""},{"line_number":195,"context_line":"        times: {{smoke or 20}}"},{"line_number":196,"context_line":"        concurrency: 10"},{"line_number":197,"context_line":"      context:"},{"line_number":198,"context_line":"        users:"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"da20952f_1da84e76","line":195,"updated":"2015-08-31 15:18:21.000000000","message":"We have `1\u0027 on gates http://logs.openstack.org/18/193818/14/check/gate-rally-dsvm-neutron-rally/e23a609/rally-plot/results.html.gz#/NeutronLoadbalancerV1.create_and_delete_vips\n\n1 iteration is almost useless - please use at least 2, and set `concurrency\u0027 to value less or equal to `times\u0027","commit_id":"88b15afb8adcfcfeb42b51986d25b68536787293"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"09ae76b8f1ae34de2806bf383776a08fb382f7fd","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        vip_create_args: {}"},{"line_number":193,"context_line":"      runner:"},{"line_number":194,"context_line":"        type: \"constant\""},{"line_number":195,"context_line":"        times: {{smoke or 20}}"},{"line_number":196,"context_line":"        concurrency: 10"},{"line_number":197,"context_line":"      context:"},{"line_number":198,"context_line":"        users:"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"da20952f_635b8455","line":195,"in_reply_to":"da20952f_1da84e76","updated":"2015-09-02 09:36:28.000000000","message":"Done","commit_id":"88b15afb8adcfcfeb42b51986d25b68536787293"}],"rally/plugins/openstack/scenarios/neutron/loadbalancer_v1.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"d07201089d379b22a3ceb12a8148fbce0d57030c","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        vips \u003d []"},{"line_number":124,"context_line":"        for net in self.context.get(\"tenant\", {}).get(\"networks\", []):"},{"line_number":125,"context_line":"            for pool in net[\"lb_pools\"]:"},{"line_number":126,"context_line":"                vips.append(self._create_v1_vip(pool, **vip_create_args))"},{"line_number":127,"context_line":"        for vip in vips:"},{"line_number":128,"context_line":"            self._delete_v1_vip(vip[\"vip\"])"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_1be46539","line":126,"updated":"2015-06-21 20:14:36.000000000","message":"This will cause error if vip_create_args is None","commit_id":"7d87adfb679d2532c09f4054ae8d757c266bbc08"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"e252a0b81f7e50c22d0f8ea5a10e929b530ae3e5","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        vips \u003d []"},{"line_number":124,"context_line":"        for net in self.context.get(\"tenant\", {}).get(\"networks\", []):"},{"line_number":125,"context_line":"            for pool in net[\"lb_pools\"]:"},{"line_number":126,"context_line":"                vips.append(self._create_v1_vip(pool, **vip_create_args))"},{"line_number":127,"context_line":"        for vip in vips:"},{"line_number":128,"context_line":"            self._delete_v1_vip(vip[\"vip\"])"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_b39a3dc4","line":126,"in_reply_to":"fa32b979_1be46539","updated":"2015-06-22 05:24:29.000000000","message":"Nice catch, I should handle it with\nvip_create_args \u003d vip_create_args or {}\nbefore entering the loop. \nThanks.","commit_id":"7d87adfb679d2532c09f4054ae8d757c266bbc08"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"2688e721f78709f778cb4e32f126ff04fc5d409e","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        self._list_v1_vips()"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    @validation.restricted_parameters(\"subnet_id\", subdict\u003d\"vip_create_args\")"},{"line_number":109,"context_line":"    @validation.restricted_parameters(\"pool_id\", subdict\u003d\"vip_create_args\")"},{"line_number":110,"context_line":"    @validation.required_services(consts.Service.NEUTRON)"},{"line_number":111,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":112,"context_line":"    @validation.required_contexts(\"network\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_b878d12c","line":109,"updated":"2015-06-30 09:03:42.000000000","message":"Use @validation.restricted_parameters([\"subnet_id\", \"pool_id\"], subdict\u003d\"vip_create_args\") instead.","commit_id":"37d6c120b9779506d63a231e40848f1e2a2793c1"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"1251b20692baa020ab01b37e24df1f7728d73883","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    @validation.restricted_parameters([\"pool_id\", \"subnet_id\"],"},{"line_number":115,"context_line":"                                      subdict\u003d\"vip_create_args\")"},{"line_number":116,"context_line":"    @validation.required_services(consts.Service.NEUTRON)"},{"line_number":117,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":118,"context_line":"    @validation.required_contexts(\"network\")"},{"line_number":119,"context_line":"    @validation.required_contexts(\"lbaas_v1\")"},{"line_number":120,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"neutron\"]})"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_bd3f9886","line":117,"updated":"2015-07-04 10:52:29.000000000","message":"We request users only but in _delete_v1_vip use admin client","commit_id":"beae096c38dbaf78bd98029c5a8a02ec7b1adb1e"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"5561087a9ad662c112bf252b56982ccd1815c114","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    @validation.restricted_parameters([\"pool_id\", \"subnet_id\"],"},{"line_number":115,"context_line":"                                      subdict\u003d\"vip_create_args\")"},{"line_number":116,"context_line":"    @validation.required_services(consts.Service.NEUTRON)"},{"line_number":117,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":118,"context_line":"    @validation.required_contexts(\"network\")"},{"line_number":119,"context_line":"    @validation.required_contexts(\"lbaas_v1\")"},{"line_number":120,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"neutron\"]})"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_07d7cced","line":117,"in_reply_to":"ba3cc151_bd3f9886","updated":"2015-07-14 19:02:55.000000000","message":"I agree. I will change it to admin","commit_id":"beae096c38dbaf78bd98029c5a8a02ec7b1adb1e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"1251b20692baa020ab01b37e24df1f7728d73883","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    def create_and_delete_vips(self, vip_create_args\u003dNone):"},{"line_number":122,"context_line":"        \"\"\"Create a vip(v1) and then delete vips(v1)."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        Measure the \"neutron lb-vip-create\" and \"neutron lb-vip-delete\""},{"line_number":125,"context_line":"        command performance. The scenario creates a vip for pool and"},{"line_number":126,"context_line":"        then deletes those vips."},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_3d54e8c8","line":124,"updated":"2015-07-04 10:52:29.000000000","message":"This function not measure anything. Measurements makes by atomic actions.","commit_id":"beae096c38dbaf78bd98029c5a8a02ec7b1adb1e"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"5561087a9ad662c112bf252b56982ccd1815c114","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    def create_and_delete_vips(self, vip_create_args\u003dNone):"},{"line_number":122,"context_line":"        \"\"\"Create a vip(v1) and then delete vips(v1)."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        Measure the \"neutron lb-vip-create\" and \"neutron lb-vip-delete\""},{"line_number":125,"context_line":"        command performance. The scenario creates a vip for pool and"},{"line_number":126,"context_line":"        then deletes those vips."},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_c732445f","line":124,"in_reply_to":"ba3cc151_3d54e8c8","updated":"2015-07-14 19:02:55.000000000","message":"I am performing the atomic action in the utils.","commit_id":"beae096c38dbaf78bd98029c5a8a02ec7b1adb1e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"1251b20692baa020ab01b37e24df1f7728d73883","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        for net in self.context.get(\"tenant\", {}).get(\"networks\", []):"},{"line_number":133,"context_line":"            for pool in net[\"lb_pools\"]:"},{"line_number":134,"context_line":"                vips.append(self._create_v1_vip(pool, **vip_create_args))"},{"line_number":135,"context_line":"        for vip in vips:"},{"line_number":136,"context_line":"            self._delete_v1_vip(vip[\"vip\"][\"id\"])"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_7d4a7029","line":135,"updated":"2015-07-04 10:52:29.000000000","message":"As I mentioned in other you patches on review use AtomicAction context","commit_id":"beae096c38dbaf78bd98029c5a8a02ec7b1adb1e"},{"author":{"_account_id":16958,"name":"Jean-Philippe Braun","email":"jean-philippe.braun@cloudwatt.com","username":"eon"},"change_message_id":"37cfc52dea285b24dbdba252d88f9dec4d047aa3","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        vip_create_args \u003d vip_create_args or {}"},{"line_number":131,"context_line":"        for net in self.context.get(\"tenant\", {}).get(\"networks\", []):"},{"line_number":132,"context_line":"            for pool in net[\"lb_pools\"]:"},{"line_number":133,"context_line":"                vips.append(self._create_v1_vip(pool, **vip_create_args))"},{"line_number":134,"context_line":"        for vip in vips:"},{"line_number":135,"context_line":"            self._delete_v1_vip(vip[\"vip\"][\"id\"])"}],"source_content_type":"text/x-python","patch_set":13,"id":"da20952f_fe22d4b8","line":133,"updated":"2015-08-27 09:22:06.000000000","message":"This can\u0027t work with my network backend (opencontrail). If you run this scenario multiple times it will try to add multiple vips on each pool created by the context. That can\u0027t happen.","commit_id":"68a44fd11e1b9490092526824d68589bad898f21"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"5f7c987aa5e0b1d4ac59350b7a82397d02d4f778","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        vip_create_args \u003d vip_create_args or {}"},{"line_number":131,"context_line":"        for net in self.context.get(\"tenant\", {}).get(\"networks\", []):"},{"line_number":132,"context_line":"            for pool in net[\"lb_pools\"]:"},{"line_number":133,"context_line":"                vips.append(self._create_v1_vip(pool, **vip_create_args))"},{"line_number":134,"context_line":"        for vip in vips:"},{"line_number":135,"context_line":"            self._delete_v1_vip(vip[\"vip\"][\"id\"])"}],"source_content_type":"text/x-python","patch_set":13,"id":"da20952f_c20c9d96","line":133,"in_reply_to":"da20952f_fe22d4b8","updated":"2015-08-28 05:10:32.000000000","message":"There is no problem with the logic. This is a create and delete vips testcase. I am deleting the vip then and there. See Line #134 \u0026 #135","commit_id":"68a44fd11e1b9490092526824d68589bad898f21"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"9a2d0c5bc31f4dbbc89b5b1bf013a831e923d983","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        vip_create_args \u003d vip_create_args or {}"},{"line_number":131,"context_line":"        for net in self.context.get(\"tenant\", {}).get(\"networks\", []):"},{"line_number":132,"context_line":"            for pool in net[\"lb_pools\"]:"},{"line_number":133,"context_line":"                vips.append(self._create_v1_vip(pool, **vip_create_args))"},{"line_number":134,"context_line":"        for vip in vips:"},{"line_number":135,"context_line":"            self._delete_v1_vip(vip[\"vip\"])"}],"source_content_type":"text/x-python","patch_set":14,"id":"da20952f_fda9da24","line":133,"updated":"2015-08-31 15:18:21.000000000","message":"_create_v1_vip() does not have atomic action, so we do not measure it\n\nhttp://logs.openstack.org/18/193818/14/check/gate-rally-dsvm-neutron-rally/e23a609/rally-plot/results.html.gz#/NeutronLoadbalancerV1.create_and_delete_vips/details","commit_id":"88b15afb8adcfcfeb42b51986d25b68536787293"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"09ae76b8f1ae34de2806bf383776a08fb382f7fd","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        vip_create_args \u003d vip_create_args or {}"},{"line_number":131,"context_line":"        for net in self.context.get(\"tenant\", {}).get(\"networks\", []):"},{"line_number":132,"context_line":"            for pool in net[\"lb_pools\"]:"},{"line_number":133,"context_line":"                vips.append(self._create_v1_vip(pool, **vip_create_args))"},{"line_number":134,"context_line":"        for vip in vips:"},{"line_number":135,"context_line":"            self._delete_v1_vip(vip[\"vip\"])"}],"source_content_type":"text/x-python","patch_set":14,"id":"da20952f_c3493090","line":133,"in_reply_to":"da20952f_fda9da24","updated":"2015-09-02 09:36:28.000000000","message":"Done","commit_id":"88b15afb8adcfcfeb42b51986d25b68536787293"}],"rally/plugins/openstack/scenarios/neutron/utils.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"2e2720ca226b9038dc565bee72061bbbd3d4f42a","unresolved":false,"context_lines":[{"line_number":363,"context_line":"        return self.clients(\"neutron\").list_vips()"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"    @base.atomic_action_timer(\"neutron.delete_vip\")"},{"line_number":366,"context_line":"    def _delete_v1_vip(self, vip):"},{"line_number":367,"context_line":"        \"\"\"Delete neutron vip."},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        :param vip: Vip object"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_c0f35a9e","line":366,"updated":"2015-06-22 10:54:35.000000000","message":"I recommend to use vip_id instead of vip, because:\n\n 1) you need only ID here\n 2) that is common practice for deletion methods","commit_id":"a7227b9d29df36f2475b554c707e4675f82ec1c4"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"2e2720ca226b9038dc565bee72061bbbd3d4f42a","unresolved":false,"context_lines":[{"line_number":366,"context_line":"    def _delete_v1_vip(self, vip):"},{"line_number":367,"context_line":"        \"\"\"Delete neutron vip."},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        :param vip: Vip object"},{"line_number":370,"context_line":"        \"\"\""},{"line_number":371,"context_line":"        self.admin_clients(\"neutron\").delete_vip(vip[\"id\"])"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_60adae87","line":369,"updated":"2015-06-22 10:54:35.000000000","message":"What is `Vip object\u0027? Instance of some specific new-style class (any new-style class is based on type `object\u0027)? dict?\n\nI would recommend to be more accurate:\n\n :param vip: dict neutron virtual IP","commit_id":"a7227b9d29df36f2475b554c707e4675f82ec1c4"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"2688e721f78709f778cb4e32f126ff04fc5d409e","unresolved":false,"context_lines":[{"line_number":366,"context_line":"    def _delete_v1_vip(self, vip_id):"},{"line_number":367,"context_line":"        \"\"\"Delete neutron vip."},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        :param vip: str, neutron Virtual IP ID"},{"line_number":370,"context_line":"        \"\"\""},{"line_number":371,"context_line":"        self.admin_clients(\"neutron\").delete_vip(vip_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_f80f3986","line":369,"updated":"2015-06-30 09:03:42.000000000","message":"neutron lb Virtual IP ID","commit_id":"37d6c120b9779506d63a231e40848f1e2a2793c1"},{"author":{"_account_id":16958,"name":"Jean-Philippe Braun","email":"jean-philippe.braun@cloudwatt.com","username":"eon"},"change_message_id":"37cfc52dea285b24dbdba252d88f9dec4d047aa3","unresolved":false,"context_lines":[{"line_number":371,"context_line":"        return self.clients(\"neutron\").list_vips(**kwargs)"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    @atomic.action_timer(\"neutron.delete_vip\")"},{"line_number":374,"context_line":"    def _delete_v1_vip(self, vip_id):"},{"line_number":375,"context_line":"        \"\"\"Delete neutron vip."},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        :param vip: str, neutron Virtual IP ID"}],"source_content_type":"text/x-python","patch_set":13,"id":"da20952f_8179f995","line":374,"updated":"2015-08-27 09:22:06.000000000","message":"Other neutron delete methods receive the complete object, not just the id.","commit_id":"68a44fd11e1b9490092526824d68589bad898f21"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"5f7c987aa5e0b1d4ac59350b7a82397d02d4f778","unresolved":false,"context_lines":[{"line_number":371,"context_line":"        return self.clients(\"neutron\").list_vips(**kwargs)"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    @atomic.action_timer(\"neutron.delete_vip\")"},{"line_number":374,"context_line":"    def _delete_v1_vip(self, vip_id):"},{"line_number":375,"context_line":"        \"\"\"Delete neutron vip."},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        :param vip: str, neutron Virtual IP ID"}],"source_content_type":"text/x-python","patch_set":13,"id":"da20952f_224eb996","line":374,"in_reply_to":"da20952f_8179f995","updated":"2015-08-28 05:10:32.000000000","message":"Done","commit_id":"68a44fd11e1b9490092526824d68589bad898f21"}],"samples/tasks/scenarios/neutron/create_and_delete_vips.json":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"2e2720ca226b9038dc565bee72061bbbd3d4f42a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"            },"},{"line_number":12,"context_line":"            \"context\": {"},{"line_number":13,"context_line":"                \"users\": {"},{"line_number":14,"context_line":"                    \"tenants\": 1,"},{"line_number":15,"context_line":"                    \"users_per_tenant\": 1"},{"line_number":16,"context_line":"                },"},{"line_number":17,"context_line":"                \"network\":{\"add_lb_pool\": true},"}],"source_content_type":"application/json","patch_set":2,"id":"fa32b979_804472b7","line":14,"updated":"2015-06-22 10:54:35.000000000","message":"You have 100 iterations, maybe use more than 1 tenant? I recommend 5","commit_id":"a7227b9d29df36f2475b554c707e4675f82ec1c4"}],"samples/tasks/scenarios/neutron/create_and_delete_vips.yaml":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"2e2720ca226b9038dc565bee72061bbbd3d4f42a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"        users:"},{"line_number":12,"context_line":"          tenants: 1"},{"line_number":13,"context_line":"          users_per_tenant: 1"},{"line_number":14,"context_line":"        network: {\"add_lb_pool\": True}"},{"line_number":15,"context_line":"        quotas:"},{"line_number":16,"context_line":"          neutron:"},{"line_number":17,"context_line":"            network: -1"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"fa32b979_a0265614","line":14,"updated":"2015-06-22 10:54:35.000000000","message":"Use YAML style","commit_id":"a7227b9d29df36f2475b554c707e4675f82ec1c4"}]}
