)]}'
{"rally/plugins/openstack/scenarios/neutron/loadbalancer_v1.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"8e938ed266403507619c614e6555d9faa958977a","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        pool_update_args \u003d pool_update_args or {}"},{"line_number":94,"context_line":"        networks \u003d self.context.get(\"tenant\", {}).get(\"networks\", [])"},{"line_number":95,"context_line":"        [subnets.extend(net.get(\"subnets\", [])) for net in networks]"},{"line_number":96,"context_line":"        with base.AtomicAction(self, \"neutron.create_%s_pools\" % len(subnets)):"},{"line_number":97,"context_line":"            for subnet_id in subnets:"},{"line_number":98,"context_line":"                pools.append(self._create_v1_pool("},{"line_number":99,"context_line":"                    subnet_id, atomic_action\u003dFalse, **pool_create_args))"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_85d99358","line":96,"updated":"2015-08-03 10:51:03.000000000","message":"I see code duplication - you have repeated same changes in 3 scenarios - maybe it is reasonable to move duplicated code into utils.NeutronScenario._create_v1_pools() ?","commit_id":"f670b91a51d48ccf6497d5733066353b96f9dc8d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b712cc142b924fd006a76865d8ff42c9321f6f73","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        pool_update_args \u003d pool_update_args or {}"},{"line_number":94,"context_line":"        networks \u003d self.context.get(\"tenant\", {}).get(\"networks\", [])"},{"line_number":95,"context_line":"        [subnets.extend(net.get(\"subnets\", [])) for net in networks]"},{"line_number":96,"context_line":"        with base.AtomicAction(self, \"neutron.create_%s_pools\" % len(subnets)):"},{"line_number":97,"context_line":"            for subnet_id in subnets:"},{"line_number":98,"context_line":"                pools.append(self._create_v1_pool("},{"line_number":99,"context_line":"                    subnet_id, atomic_action\u003dFalse, **pool_create_args))"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_9e27a062","line":96,"in_reply_to":"3a50d1a3_85d99358","updated":"2015-08-03 11:50:15.000000000","message":"Agree. For example, _create_v1_pools.","commit_id":"f670b91a51d48ccf6497d5733066353b96f9dc8d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6a47cd540d4e5d30a64d0b2de42b31f88e51bc13","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        :param pool_create_args: dict, POST /lb/pools request options"},{"line_number":35,"context_line":"        \"\"\""},{"line_number":36,"context_line":"        pool_create_args \u003d pool_create_args or {}"},{"line_number":37,"context_line":"        networks \u003d self.context.get(\"tenant\", {}).get(\"networks\", [])"},{"line_number":38,"context_line":"        self._create_v1_pools(networks\u003dnetworks, **pool_create_args)"},{"line_number":39,"context_line":"        self._list_v1_pools()"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_972a602b","line":37,"updated":"2015-08-05 00:41:21.000000000","message":"please do not create variables that are used only once.","commit_id":"047a7cf57bedef48b7b1af11d06262cb427bd92e"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"5f19b7575690d42f5ac8d0e29d03a74b3794227e","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        :param pool_create_args: dict, POST /lb/pools request options"},{"line_number":35,"context_line":"        \"\"\""},{"line_number":36,"context_line":"        pool_create_args \u003d pool_create_args or {}"},{"line_number":37,"context_line":"        networks \u003d self.context.get(\"tenant\", {}).get(\"networks\", [])"},{"line_number":38,"context_line":"        self._create_v1_pools(networks\u003dnetworks, **pool_create_args)"},{"line_number":39,"context_line":"        self._list_v1_pools()"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_668604bb","line":37,"in_reply_to":"1a4dcd0f_2bc5255a","updated":"2015-08-05 04:10:48.000000000","message":"True. I declared that variable for readability.","commit_id":"047a7cf57bedef48b7b1af11d06262cb427bd92e"},{"author":{"_account_id":17211,"name":"Brandon Palm","email":"bapalm@us.ibm.com","username":"bapalm"},"change_message_id":"87392e0a23f3f976c98f377d58c87dd210867b3a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        :param pool_create_args: dict, POST /lb/pools request options"},{"line_number":35,"context_line":"        \"\"\""},{"line_number":36,"context_line":"        pool_create_args \u003d pool_create_args or {}"},{"line_number":37,"context_line":"        networks \u003d self.context.get(\"tenant\", {}).get(\"networks\", [])"},{"line_number":38,"context_line":"        self._create_v1_pools(networks\u003dnetworks, **pool_create_args)"},{"line_number":39,"context_line":"        self._list_v1_pools()"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_2bc5255a","line":37,"in_reply_to":"1a4dcd0f_972a602b","updated":"2015-08-05 03:13:52.000000000","message":"I believe he just did this for code readability.  Reading \u0027networks\u003dnetworks\u0027 is much better than seeing self._create_v1_pools(networks\u003dself.context.get(\"tenant\", {}).get(\"networks\", []), **pool_create_args).","commit_id":"047a7cf57bedef48b7b1af11d06262cb427bd92e"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"3d97a34cef4385a88404e86fccac9e64e6d340b8","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        \"\"\""},{"line_number":36,"context_line":"        pool_create_args \u003d pool_create_args or {}"},{"line_number":37,"context_line":"        networks \u003d self.context.get(\"tenant\", {}).get(\"networks\", [])"},{"line_number":38,"context_line":"        self._create_v1_pools(networks\u003dnetworks, **pool_create_args)"},{"line_number":39,"context_line":"        self._list_v1_pools()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @validation.restricted_parameters(\"subnet_id\","}],"source_content_type":"text/x-python","patch_set":11,"id":"1a4dcd0f_e20637cd","line":38,"updated":"2015-08-06 09:44:07.000000000","message":"s/networks\u003dnetworks/networks/","commit_id":"bc9ba4b644ed38fd1c843c42f121f706997a25bf"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"3d97a34cef4385a88404e86fccac9e64e6d340b8","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        \"\"\""},{"line_number":56,"context_line":"        pool_create_args \u003d pool_create_args or {}"},{"line_number":57,"context_line":"        networks \u003d self.context.get(\"tenant\", {}).get(\"networks\", [])"},{"line_number":58,"context_line":"        pools \u003d self._create_v1_pools(networks\u003dnetworks, **pool_create_args)"},{"line_number":59,"context_line":"        for pool in pools:"},{"line_number":60,"context_line":"            self._delete_v1_pool(pool[\"pool\"])"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a4dcd0f_e22dd746","line":58,"updated":"2015-08-06 09:44:07.000000000","message":"s/networks\u003dnetworks/networks/","commit_id":"bc9ba4b644ed38fd1c843c42f121f706997a25bf"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"3d97a34cef4385a88404e86fccac9e64e6d340b8","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        pool_create_args \u003d pool_create_args or {}"},{"line_number":80,"context_line":"        pool_update_args \u003d pool_update_args or {}"},{"line_number":81,"context_line":"        networks \u003d self.context.get(\"tenant\", {}).get(\"networks\", [])"},{"line_number":82,"context_line":"        pools \u003d self._create_v1_pools(networks\u003dnetworks, **pool_create_args)"},{"line_number":83,"context_line":"        for pool in pools:"},{"line_number":84,"context_line":"            self._update_v1_pool(pool, **pool_update_args)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a4dcd0f_c228db35","line":82,"updated":"2015-08-06 09:44:07.000000000","message":"s/networks\u003dnetworks/networks/","commit_id":"bc9ba4b644ed38fd1c843c42f121f706997a25bf"}],"rally/plugins/openstack/scenarios/neutron/utils.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"5b5b7cd3331614cd1afd55d114e77cf0ef7de50d","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        self.clients(\"neutron\").remove_interface_router("},{"line_number":293,"context_line":"            router[\"id\"], {\"subnet_id\": subnet[\"id\"]})"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def _create_v1_pool(self, subnet_id, **pool_create_args):"},{"line_number":296,"context_line":"        \"\"\"Create pool(v1)"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        :parm subnet_id: str, neutron subnet-id"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_1f5a2a2b","line":295,"updated":"2015-07-30 12:56:30.000000000","message":"You need to add here arguments that allow us to measure also _create.. method separate. See https://github.com/openstack/rally/blob/master/rally/plugins/openstack/scenarios/murano/utils.py#L87","commit_id":"cc64cd60401b34030468eb65694b9f2e8635e286"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"5c9ce739d74248adc518b03f6d23a72d1f468e0e","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        self.clients(\"neutron\").remove_interface_router("},{"line_number":293,"context_line":"            router[\"id\"], {\"subnet_id\": subnet[\"id\"]})"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def _create_v1_pool(self, subnet_id, **pool_create_args):"},{"line_number":296,"context_line":"        \"\"\"Create pool(v1)"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        :parm subnet_id: str, neutron subnet-id"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_de04a419","line":295,"in_reply_to":"3a50d1a3_1f5a2a2b","updated":"2015-07-31 05:14:24.000000000","message":"Done. Thanks! :)","commit_id":"cc64cd60401b34030468eb65694b9f2e8635e286"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"8e938ed266403507619c614e6555d9faa958977a","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        if atomic_action:"},{"line_number":309,"context_line":"            with base.AtomicAction(self, \"neutron.create_pool\"):"},{"line_number":310,"context_line":"                return self.clients(\"neutron\").create_pool({\"pool\": args})"},{"line_number":311,"context_line":"        else:"},{"line_number":312,"context_line":"            return self.clients(\"neutron\").create_pool({\"pool\": args})"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"    @base.atomic_action_timer(\"neutron.list_pools\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_739a1064","line":311,"updated":"2015-08-03 10:51:03.000000000","message":"This `else\u0027 is not required since there is a `return\u0027 above","commit_id":"f670b91a51d48ccf6497d5733066353b96f9dc8d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b712cc142b924fd006a76865d8ff42c9321f6f73","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        if atomic_action:"},{"line_number":309,"context_line":"            with base.AtomicAction(self, \"neutron.create_pool\"):"},{"line_number":310,"context_line":"                return self.clients(\"neutron\").create_pool({\"pool\": args})"},{"line_number":311,"context_line":"        else:"},{"line_number":312,"context_line":"            return self.clients(\"neutron\").create_pool({\"pool\": args})"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"    @base.atomic_action_timer(\"neutron.list_pools\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_bb9b8ec8","line":311,"in_reply_to":"3a50d1a3_739a1064","updated":"2015-08-03 11:50:15.000000000","message":"Why not? If we want to see all create_pools operation in atomic one way another if we want to see every create_pool in separate atomic. First way require with block, second not.","commit_id":"f670b91a51d48ccf6497d5733066353b96f9dc8d"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"0d4a02605af2090e770dfa155a265334349d01e4","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        if atomic_action:"},{"line_number":309,"context_line":"            with base.AtomicAction(self, \"neutron.create_pool\"):"},{"line_number":310,"context_line":"                return self.clients(\"neutron\").create_pool({\"pool\": args})"},{"line_number":311,"context_line":"        else:"},{"line_number":312,"context_line":"            return self.clients(\"neutron\").create_pool({\"pool\": args})"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"    @base.atomic_action_timer(\"neutron.list_pools\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_796aeeb6","line":311,"in_reply_to":"3a50d1a3_bb9b8ec8","updated":"2015-08-03 12:04:27.000000000","message":"@Roman,\n\n if foo:\n   with bar:\n     return 1\n else:\n   return 2\n\nis equal to:\n\n if foo:\n   with bar:\n     return 1\n return 2","commit_id":"f670b91a51d48ccf6497d5733066353b96f9dc8d"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"72591c044f40eaadda616cdc7f4e5cd62ebb1aa8","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        self.clients(\"neutron\").remove_interface_router("},{"line_number":293,"context_line":"            router[\"id\"], {\"subnet_id\": subnet[\"id\"]})"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def create_v1_pool(self, subnet_id, **pool_create_args):"},{"line_number":296,"context_line":"        \"\"\"Create pool(v1)"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        :param subnet_id: str, neutron subnet-id"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_c8ee42ec","line":295,"updated":"2015-08-04 08:21:32.000000000","message":"I\u0027d prefer using _create_v1_pool.","commit_id":"4ad309439de4666a2864d8a9842220ad157effe9"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"72591c044f40eaadda616cdc7f4e5cd62ebb1aa8","unresolved":false,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        :param subnet_id: str, neutron subnet-id"},{"line_number":299,"context_line":"        :param pool_create_args: dict, POST /lb/pools request options"},{"line_number":300,"context_line":"        returns: obj, neutron lb pool"},{"line_number":301,"context_line":"        \"\"\""},{"line_number":302,"context_line":"        args \u003d {\"lb_method\": self.LB_METHOD,"},{"line_number":303,"context_line":"                \"protocol\": self.LB_PROTOCOL,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_a8adf689","line":300,"updated":"2015-08-04 08:21:32.000000000","message":":returns:","commit_id":"4ad309439de4666a2864d8a9842220ad157effe9"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"72591c044f40eaadda616cdc7f4e5cd62ebb1aa8","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        return self.clients(\"neutron\").create_pool("},{"line_number":308,"context_line":"            {\"pool\": args})"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    def _create_v1_pool(self, networks\u003d[], subnet_id\u003dNone, atomic_action\u003dTrue,"},{"line_number":311,"context_line":"                        **pool_create_args):"},{"line_number":312,"context_line":"        \"\"\"Create pool(v1)"},{"line_number":313,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_0852ea67","line":310,"updated":"2015-08-04 08:21:32.000000000","message":"Don\u0027t initial networks\u003d[] here.","commit_id":"4ad309439de4666a2864d8a9842220ad157effe9"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"72591c044f40eaadda616cdc7f4e5cd62ebb1aa8","unresolved":false,"context_lines":[{"line_number":308,"context_line":"            {\"pool\": args})"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    def _create_v1_pool(self, networks\u003d[], subnet_id\u003dNone, atomic_action\u003dTrue,"},{"line_number":311,"context_line":"                        **pool_create_args):"},{"line_number":312,"context_line":"        \"\"\"Create pool(v1)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        :param networks: list, neutron networks"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_48b0f2f4","line":311,"updated":"2015-08-04 08:21:32.000000000","message":"and using _create_v1_pools here.","commit_id":"4ad309439de4666a2864d8a9842220ad157effe9"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"72591c044f40eaadda616cdc7f4e5cd62ebb1aa8","unresolved":false,"context_lines":[{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    def _create_v1_pool(self, networks\u003d[], subnet_id\u003dNone, atomic_action\u003dTrue,"},{"line_number":311,"context_line":"                        **pool_create_args):"},{"line_number":312,"context_line":"        \"\"\"Create pool(v1)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        :param networks: list, neutron networks"},{"line_number":315,"context_line":"        :param subnet_id: str, neutron subnet-id"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_2899e66e","line":312,"updated":"2015-08-04 08:21:32.000000000","message":"Create pools(v1)","commit_id":"4ad309439de4666a2864d8a9842220ad157effe9"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"72591c044f40eaadda616cdc7f4e5cd62ebb1aa8","unresolved":false,"context_lines":[{"line_number":319,"context_line":"        \"\"\""},{"line_number":320,"context_line":"        subnets \u003d []"},{"line_number":321,"context_line":"        pools \u003d []"},{"line_number":322,"context_line":"        if subnet_id:"},{"line_number":323,"context_line":"            if atomic_action:"},{"line_number":324,"context_line":"                with base.AtomicAction(self, \"neutron.create_pool\"):"},{"line_number":325,"context_line":"                    return self.create_v1_pool(subnet_id, **pool_create_args)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_887efae2","line":322,"updated":"2015-08-04 08:21:32.000000000","message":"IMO this if condition could be  removed, one could use _create_v1_pool directly if needed and i don\u0027t find this is used anywhere.","commit_id":"4ad309439de4666a2864d8a9842220ad157effe9"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"72591c044f40eaadda616cdc7f4e5cd62ebb1aa8","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                with base.AtomicAction(self, \"neutron.create_pool\"):"},{"line_number":325,"context_line":"                    return self.create_v1_pool(subnet_id, **pool_create_args)"},{"line_number":326,"context_line":"            return self.create_v1_pool(subnet_id, **pool_create_args)"},{"line_number":327,"context_line":"        if len(networks):"},{"line_number":328,"context_line":"            [subnets.extend(net.get(\"subnets\", [])) for net in networks]"},{"line_number":329,"context_line":"            if atomic_action:"},{"line_number":330,"context_line":"                with base.AtomicAction(self, \"neutron.create_%s_pools\" %"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_2bab208b","line":327,"updated":"2015-08-04 08:21:32.000000000","message":"this could be changed to:\n\nfor net in networks:\n\n    subnets.extend(net.get(\"subnets\", []))\n    if ...:\n\n    else:","commit_id":"4ad309439de4666a2864d8a9842220ad157effe9"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"80d6cd091ba7337f09c10a8b29ea431adb313370","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        \"\"\""},{"line_number":318,"context_line":"        subnets \u003d []"},{"line_number":319,"context_line":"        pools \u003d []"},{"line_number":320,"context_line":"        if networks or []:"},{"line_number":321,"context_line":"            [subnets.extend(net.get(\"subnets\", [])) for net in networks]"},{"line_number":322,"context_line":"            if atomic_action:"},{"line_number":323,"context_line":"                with base.AtomicAction(self, \"neutron.create_%s_pools\" %"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_b09b0bc9","line":320,"updated":"2015-08-04 12:43:46.000000000","message":"s/if networks or []:/if networks:/","commit_id":"3755e016954a4777aa5bfef9e852fd6a0c7184d4"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"7d8ca3ef2e4c0a445c3172e8636f8aba79d61a71","unresolved":false,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        :param subnet_id: str, neutron subnet-id"},{"line_number":299,"context_line":"        :param pool_create_args: dict, POST /lb/pools request options"},{"line_number":300,"context_line":"        :returns: obj, neutron lb pool"},{"line_number":301,"context_line":"        \"\"\""},{"line_number":302,"context_line":"        args \u003d {\"lb_method\": self.LB_METHOD,"},{"line_number":303,"context_line":"                \"protocol\": self.LB_PROTOCOL,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a4dcd0f_5cbad4c1","line":300,"updated":"2015-08-04 15:39:14.000000000","message":"AFAIK return value is actually `dict\u0027 - this is more accurate type","commit_id":"cf885e799479b9d3fe7fcf9e052425de53ca5274"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"7d8ca3ef2e4c0a445c3172e8636f8aba79d61a71","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        args.update(pool_create_args)"},{"line_number":307,"context_line":"        return self.clients(\"neutron\").create_pool({\"pool\": args})"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    def _create_v1_pools(self, networks\u003dNone, atomic_action\u003dTrue,"},{"line_number":310,"context_line":"                         **pool_create_args):"},{"line_number":311,"context_line":"        \"\"\"Create LB pools(v1)"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a4dcd0f_9cedbcf1","line":309,"updated":"2015-08-04 15:39:14.000000000","message":"I recommend using `networks\u0027 argument as positional and mandatory:\n\n def _create_v1_pools(self, networks, atomic_action\u003dTrue...)\n\n\nSo you can remove `if networks:\u0027 below at all","commit_id":"cf885e799479b9d3fe7fcf9e052425de53ca5274"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6a47cd540d4e5d30a64d0b2de42b31f88e51bc13","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        args.update(pool_create_args)"},{"line_number":307,"context_line":"        return self.clients(\"neutron\").create_pool({\"pool\": args})"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    def _create_v1_pools(self, networks, atomic_action\u003dTrue,"},{"line_number":310,"context_line":"                         **pool_create_args):"},{"line_number":311,"context_line":"        \"\"\"Create LB pools(v1)"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_775b1488","line":309,"updated":"2015-08-05 00:41:21.000000000","message":"Something is wrong here. \n\nFirst of all atomic_action is useless here. This should be an atomic action in 100% cases. \n\nAnd you didn\u0027t add to _create_lb_pool atomic_action\u003dTrue which is curcial (because you want to call it sometimes N times in case of 1 single atomic action)","commit_id":"047a7cf57bedef48b7b1af11d06262cb427bd92e"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"5f19b7575690d42f5ac8d0e29d03a74b3794227e","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        args.update(pool_create_args)"},{"line_number":307,"context_line":"        return self.clients(\"neutron\").create_pool({\"pool\": args})"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    def _create_v1_pools(self, networks, atomic_action\u003dTrue,"},{"line_number":310,"context_line":"                         **pool_create_args):"},{"line_number":311,"context_line":"        \"\"\"Create LB pools(v1)"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_2646bcbf","line":309,"in_reply_to":"1a4dcd0f_775b1488","updated":"2015-08-05 04:10:48.000000000","message":"Not necessarily. I have lb scenarios which requires pools to be created without atomic action For example, in https://review.openstack.org/#/c/193527/ it is necessary to create pools during every iteration so it is not viable to use contexts without having an atomic action for it.","commit_id":"047a7cf57bedef48b7b1af11d06262cb427bd92e"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6a47cd540d4e5d30a64d0b2de42b31f88e51bc13","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        subnets \u003d []"},{"line_number":319,"context_line":"        pools \u003d []"},{"line_number":320,"context_line":"        [subnets.extend(net.get(\"subnets\", [])) for net in networks]"},{"line_number":321,"context_line":"        if atomic_action:"},{"line_number":322,"context_line":"            with base.AtomicAction(self, \"neutron.create_%s_pools\" %"},{"line_number":323,"context_line":"                                   len(subnets)):"},{"line_number":324,"context_line":"                for subnet_id in subnets:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_975ee074","line":321,"updated":"2015-08-05 00:41:21.000000000","message":"remove this from here.","commit_id":"047a7cf57bedef48b7b1af11d06262cb427bd92e"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"5f19b7575690d42f5ac8d0e29d03a74b3794227e","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        subnets \u003d []"},{"line_number":319,"context_line":"        pools \u003d []"},{"line_number":320,"context_line":"        [subnets.extend(net.get(\"subnets\", [])) for net in networks]"},{"line_number":321,"context_line":"        if atomic_action:"},{"line_number":322,"context_line":"            with base.AtomicAction(self, \"neutron.create_%s_pools\" %"},{"line_number":323,"context_line":"                                   len(subnets)):"},{"line_number":324,"context_line":"                for subnet_id in subnets:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_4628a8e2","line":321,"in_reply_to":"1a4dcd0f_975ee074","updated":"2015-08-05 04:10:48.000000000","message":"Please elaborate. I do not realize any mistake here.\n\nI prefer to retain it as it is.","commit_id":"047a7cf57bedef48b7b1af11d06262cb427bd92e"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6a47cd540d4e5d30a64d0b2de42b31f88e51bc13","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                                   len(subnets)):"},{"line_number":324,"context_line":"                for subnet_id in subnets:"},{"line_number":325,"context_line":"                    pools.append(self._create_lb_pool("},{"line_number":326,"context_line":"                        subnet_id, **pool_create_args))"},{"line_number":327,"context_line":"        else:"},{"line_number":328,"context_line":"            for subnet_id in subnets:"},{"line_number":329,"context_line":"                pools.append(self._create_lb_pool("}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_57513861","line":326,"updated":"2015-08-05 00:41:21.000000000","message":"put here atomic_action\u003dFalse","commit_id":"047a7cf57bedef48b7b1af11d06262cb427bd92e"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"5f19b7575690d42f5ac8d0e29d03a74b3794227e","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                                   len(subnets)):"},{"line_number":324,"context_line":"                for subnet_id in subnets:"},{"line_number":325,"context_line":"                    pools.append(self._create_lb_pool("},{"line_number":326,"context_line":"                        subnet_id, **pool_create_args))"},{"line_number":327,"context_line":"        else:"},{"line_number":328,"context_line":"            for subnet_id in subnets:"},{"line_number":329,"context_line":"                pools.append(self._create_lb_pool("}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_86d230d1","line":326,"in_reply_to":"1a4dcd0f_57513861","updated":"2015-08-05 04:10:48.000000000","message":"Yes. I will have to pass atomic_action flag to _create_lb_pool. :)","commit_id":"047a7cf57bedef48b7b1af11d06262cb427bd92e"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"3d97a34cef4385a88404e86fccac9e64e6d340b8","unresolved":false,"context_lines":[{"line_number":306,"context_line":"                \"name\": self._generate_random_name(\"rally_pool_\"),"},{"line_number":307,"context_line":"                \"subnet_id\": subnet_id}"},{"line_number":308,"context_line":"        args.update(pool_create_args)"},{"line_number":309,"context_line":"        if atomic_action:"},{"line_number":310,"context_line":"            return self.clients(\"neutron\").create_pool({\"pool\": args})"},{"line_number":311,"context_line":"        return self.clients(\"neutron\").create_pool({\"pool\": args})"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a4dcd0f_c2d3fbd3","line":309,"updated":"2015-08-06 09:44:07.000000000","message":"This `if atomic_action:\u0027 does nothing, there is not atomic action here ;)","commit_id":"bc9ba4b644ed38fd1c843c42f121f706997a25bf"},{"author":{"_account_id":7369,"name":"Sergey Skripnick","email":"sskripnick@mirantis.com","username":"redixin"},"change_message_id":"91c4710a44f9cdf230180e5a6952ee1186b83458","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                    pools.append(self._create_lb_pool("},{"line_number":331,"context_line":"                        subnet_id, atomic_action\u003dFalse, **pool_create_args))"},{"line_number":332,"context_line":"        else:"},{"line_number":333,"context_line":"            for subnet_id in subnets:"},{"line_number":334,"context_line":"                pools.append(self._create_lb_pool("},{"line_number":335,"context_line":"                    subnet_id, atomic_action\u003dFalse, **pool_create_args))"},{"line_number":336,"context_line":"        return pools"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a4dcd0f_b604e849","line":333,"updated":"2015-08-06 12:38:18.000000000","message":"Nested function may be used here instead of duplication","commit_id":"02b1b57b8444807e8a634be4322f1f7e2648b90b"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"2a8a83f85d86bc1b1b88693a45c551ca4ba9c425","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        self.clients(\"neutron\").remove_interface_router("},{"line_number":293,"context_line":"            router[\"id\"], {\"subnet_id\": subnet[\"id\"]})"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def _create_lb_pool(self, subnet_id, atomic_action\u003dTrue,"},{"line_number":296,"context_line":"                        **pool_create_args):"},{"line_number":297,"context_line":"        \"\"\"Create LB pool(v1)"},{"line_number":298,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_a356e759","line":295,"updated":"2015-08-06 13:53:56.000000000","message":"How we wil call this function with atomic_action\u003dTrue if only one place where we call this function pass False. 330 line?","commit_id":"ac96d34b07761c96befcd4e08220d8c5ea85c8a2"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"52c185c4a2c5c6576421fd156f392a5ad43e3924","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        self.clients(\"neutron\").remove_interface_router("},{"line_number":293,"context_line":"            router[\"id\"], {\"subnet_id\": subnet[\"id\"]})"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def _create_lb_pool(self, subnet_id, atomic_action\u003dTrue,"},{"line_number":296,"context_line":"                        **pool_create_args):"},{"line_number":297,"context_line":"        \"\"\"Create LB pool(v1)"},{"line_number":298,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_de0c26ee","line":295,"in_reply_to":"1a4dcd0f_a356e759","updated":"2015-08-06 14:05:48.000000000","message":"Sorry, my fault.  Just it was a bit strange logic for me. Its all right","commit_id":"ac96d34b07761c96befcd4e08220d8c5ea85c8a2"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"52c185c4a2c5c6576421fd156f392a5ad43e3924","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        \"\"\""},{"line_number":323,"context_line":"        subnets \u003d []"},{"line_number":324,"context_line":"        pools \u003d []"},{"line_number":325,"context_line":"        [subnets.extend(net.get(\"subnets\", [])) for net in networks]"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        def create_lb_pools():"},{"line_number":328,"context_line":"            for subnet_id in subnets:"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_1ea36eb3","line":325,"updated":"2015-08-06 14:05:48.000000000","message":"I prefer here \nfor net in networks:\n    subnets.extend(net.get(\"subnets\", []))","commit_id":"ac96d34b07761c96befcd4e08220d8c5ea85c8a2"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"2338bbee71f87428dea1848022397f35f77e07f0","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        \"\"\""},{"line_number":323,"context_line":"        subnets \u003d []"},{"line_number":324,"context_line":"        pools \u003d []"},{"line_number":325,"context_line":"        [subnets.extend(net.get(\"subnets\", [])) for net in networks]"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        def create_lb_pools():"},{"line_number":328,"context_line":"            for subnet_id in subnets:"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_ef14ce4d","line":325,"in_reply_to":"1a4dcd0f_0fd25a5c","updated":"2015-08-06 15:04:07.000000000","message":"I\u0027m with Roman. We shouldn\u0027t use list comprehensions that aren\u0027t assigned to anything.","commit_id":"ac96d34b07761c96befcd4e08220d8c5ea85c8a2"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"94f591d8834c8795db78289e6d223656c6cb7284","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        \"\"\""},{"line_number":323,"context_line":"        subnets \u003d []"},{"line_number":324,"context_line":"        pools \u003d []"},{"line_number":325,"context_line":"        [subnets.extend(net.get(\"subnets\", [])) for net in networks]"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        def create_lb_pools():"},{"line_number":328,"context_line":"            for subnet_id in subnets:"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_0fd25a5c","line":325,"in_reply_to":"1a4dcd0f_1ea36eb3","updated":"2015-08-06 14:48:29.000000000","message":"It decreases LOC and increases readability. :)","commit_id":"ac96d34b07761c96befcd4e08220d8c5ea85c8a2"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"d4ceb10bc13c599808aa2df883c7818a942eba87","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        \"\"\""},{"line_number":323,"context_line":"        subnets \u003d []"},{"line_number":324,"context_line":"        pools \u003d []"},{"line_number":325,"context_line":"        [subnets.extend(net.get(\"subnets\", [])) for net in networks]"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        def create_lb_pools():"},{"line_number":328,"context_line":"            for subnet_id in subnets:"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_e98da9d3","line":325,"in_reply_to":"1a4dcd0f_ef14ce4d","updated":"2015-08-06 15:47:42.000000000","message":"Done","commit_id":"ac96d34b07761c96befcd4e08220d8c5ea85c8a2"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"a058e6d520d0c09abc5ed95a4c20b0f4417457ac","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                return self.clients(\"neutron\").create_pool({\"pool\": args})"},{"line_number":312,"context_line":"        return self.clients(\"neutron\").create_pool({\"pool\": args})"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"    def _create_v1_pools(self, networks, atomic_action\u003dTrue,"},{"line_number":315,"context_line":"                         **pool_create_args):"},{"line_number":316,"context_line":"        \"\"\"Create LB pools(v1)"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"1a4dcd0f_6a95f530","line":314,"updated":"2015-08-07 00:06:30.000000000","message":"we don\u0027t need atomic_action argument here. \nSee my previous comment","commit_id":"1dfb3941499cdfebf74e6110e81cedbdc58f29e0"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"e1f0871809225b59a089cb8c27ff8ac47dc17a7d","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                pools.append(self._create_lb_pool("},{"line_number":331,"context_line":"                    subnet_id, atomic_action\u003dFalse, **pool_create_args))"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"        if atomic_action:"},{"line_number":334,"context_line":"            with base.AtomicAction(self, \"neutron.create_%s_pools\" %"},{"line_number":335,"context_line":"                                   len(subnets)):"},{"line_number":336,"context_line":"                create_lb_pools()"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a4dcd0f_eacfc553","line":333,"updated":"2015-08-07 00:07:52.000000000","message":"So remove atomic action and remove create_lb_pools and simplify this code: \n\n\n   with base.AtomicAction(self, \"neutron.create_%s_pools\" % len(subnets)):\n       for subnet_id in subnets:\n           pools.append(self._create_lb_pool(subnet_id, atomic_action\u003dFalse, **pool_create_args))","commit_id":"1dfb3941499cdfebf74e6110e81cedbdc58f29e0"}],"tests/unit/plugins/openstack/scenarios/neutron/test_loadbalancer_v1.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"3d97a34cef4385a88404e86fccac9e64e6d340b8","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        neutron_scenario.create_and_list_pools("},{"line_number":49,"context_line":"            pool_create_args\u003dpool_create_args)"},{"line_number":50,"context_line":"        neutron_scenario._create_v1_pools.assert_called_once_with("},{"line_number":51,"context_line":"            networks\u003dnetworks, **pool_data)"},{"line_number":52,"context_line":"        neutron_scenario._list_v1_pools.assert_called_once_with()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @ddt.data("}],"source_content_type":"text/x-python","patch_set":11,"id":"1a4dcd0f_22a89f1f","line":51,"updated":"2015-08-06 09:44:07.000000000","message":"s/networks\u003dnetworks/networks/","commit_id":"bc9ba4b644ed38fd1c843c42f121f706997a25bf"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"3d97a34cef4385a88404e86fccac9e64e6d340b8","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        neutron_scenario._delete_v1_pool \u003d mock.Mock()"},{"line_number":73,"context_line":"        neutron_scenario.create_and_delete_pools("},{"line_number":74,"context_line":"            pool_create_args\u003dpool_create_args)"},{"line_number":75,"context_line":"        self.assertEqual([mock.call(networks\u003dnetworks, **pool_data)],"},{"line_number":76,"context_line":"                         neutron_scenario._create_v1_pools.mock_calls)"},{"line_number":77,"context_line":"        for pool in pools:"},{"line_number":78,"context_line":"            self.assertEqual(1, neutron_scenario._delete_v1_pool.call_count)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a4dcd0f_227f3fac","line":75,"updated":"2015-08-06 09:44:07.000000000","message":"s/networks\u003dnetworks/networks/","commit_id":"bc9ba4b644ed38fd1c843c42f121f706997a25bf"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"3d97a34cef4385a88404e86fccac9e64e6d340b8","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        neutron_scenario.create_and_update_pools("},{"line_number":121,"context_line":"            pool_create_args\u003dpool_data,"},{"line_number":122,"context_line":"            pool_update_args\u003dpool_update_args)"},{"line_number":123,"context_line":"        self.assertEqual([mock.call(networks\u003dnetworks, **pool_data)],"},{"line_number":124,"context_line":"                         neutron_scenario._create_v1_pools.mock_calls)"},{"line_number":125,"context_line":"        for pool in pools:"},{"line_number":126,"context_line":"            neutron_scenario._update_v1_pool.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":11,"id":"1a4dcd0f_427ccbb4","line":123,"updated":"2015-08-06 09:44:07.000000000","message":"s/networks\u003dnetworks/networks/","commit_id":"bc9ba4b644ed38fd1c843c42f121f706997a25bf"}],"tests/unit/plugins/openstack/scenarios/neutron/test_utils.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"8e938ed266403507619c614e6555d9faa958977a","unresolved":false,"context_lines":[{"line_number":404,"context_line":"            subnet_id\u003dsubnet, **pool_data)"},{"line_number":405,"context_line":"        self.clients(\"neutron\").create_pool.assert_called_once_with("},{"line_number":406,"context_line":"            expected_pool_data)"},{"line_number":407,"context_line":"        self._test_atomic_action_timer("},{"line_number":408,"context_line":"            neutron_scenario.atomic_actions(), \"neutron.create_pool\")"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"    @mock.patch(NEUTRON_UTILS + \"NeutronScenario._generate_random_name\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_0574a3fb","side":"PARENT","line":407,"updated":"2015-08-03 10:51:03.000000000","message":"Why this is removed? In this case we have to prove that atomic timer is on","commit_id":"b766e3c9ced8d719108ba01c249600a75047baa5"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"8e938ed266403507619c614e6555d9faa958977a","unresolved":false,"context_lines":[{"line_number":425,"context_line":"            subnet_id\u003dsubnet, **pool_data)"},{"line_number":426,"context_line":"        self.clients(\"neutron\").create_pool.assert_called_once_with("},{"line_number":427,"context_line":"            expected_pool_data)"},{"line_number":428,"context_line":"        self._test_atomic_action_timer("},{"line_number":429,"context_line":"            neutron_scenario.atomic_actions(), \"neutron.create_pool\")"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    def test_delete_v1_pool(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_054b43b2","side":"PARENT","line":428,"updated":"2015-08-03 10:51:03.000000000","message":"Same here - I think this should not be removed","commit_id":"b766e3c9ced8d719108ba01c249600a75047baa5"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"8e938ed266403507619c614e6555d9faa958977a","unresolved":false,"context_lines":[{"line_number":443,"context_line":"            subnet_id\u003dsubnet, atomic_action\u003dFalse, **pool_data)"},{"line_number":444,"context_line":"        self.clients(\"neutron\").create_pool.assert_called_once_with("},{"line_number":445,"context_line":"            expected_pool_data)"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"    def test_delete_v1_pool(self):"},{"line_number":448,"context_line":"        scenario \u003d utils.NeutronScenario()"},{"line_number":449,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_c5047b7f","line":446,"updated":"2015-08-03 10:51:03.000000000","message":"Check here that atomic action timer has not been called","commit_id":"f670b91a51d48ccf6497d5733066353b96f9dc8d"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"80d6cd091ba7337f09c10a8b29ea431adb313370","unresolved":false,"context_lines":[{"line_number":489,"context_line":"        pool_create_args \u003d pool_create_args or {}"},{"line_number":490,"context_line":"        pool \u003d mock.Mock()"},{"line_number":491,"context_line":"        neutron_scenario._create_lb_pool \u003d mock.Mock(return_value\u003dpool)"},{"line_number":492,"context_line":"        pool \u003d neutron_scenario._create_v1_pools("},{"line_number":493,"context_line":"            networks\u003dnetworks, atomic_action\u003datomic_action, **pool_create_args)"},{"line_number":494,"context_line":"        if len(networks):"},{"line_number":495,"context_line":"            subnets \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_905dafeb","line":492,"updated":"2015-08-04 12:43:46.000000000","message":"s/pool \u003d/pools \u003d/  # we create pools, not single pool","commit_id":"3755e016954a4777aa5bfef9e852fd6a0c7184d4"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"80d6cd091ba7337f09c10a8b29ea431adb313370","unresolved":false,"context_lines":[{"line_number":491,"context_line":"        neutron_scenario._create_lb_pool \u003d mock.Mock(return_value\u003dpool)"},{"line_number":492,"context_line":"        pool \u003d neutron_scenario._create_v1_pools("},{"line_number":493,"context_line":"            networks\u003dnetworks, atomic_action\u003datomic_action, **pool_create_args)"},{"line_number":494,"context_line":"        if len(networks):"},{"line_number":495,"context_line":"            subnets \u003d []"},{"line_number":496,"context_line":"            [subnets.extend(net[\"subnets\"]) for net in networks]"},{"line_number":497,"context_line":"            neutron_scenario._create_lb_pool.assert_has_calls("}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_30de1b6e","line":494,"updated":"2015-08-04 12:43:46.000000000","message":"s/if len(networks):/if networks:/","commit_id":"3755e016954a4777aa5bfef9e852fd6a0c7184d4"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"80d6cd091ba7337f09c10a8b29ea431adb313370","unresolved":false,"context_lines":[{"line_number":499,"context_line":"            if atomic_action:"},{"line_number":500,"context_line":"                self._test_atomic_action_timer("},{"line_number":501,"context_line":"                    neutron_scenario.atomic_actions(),"},{"line_number":502,"context_line":"                    \"neutron.create_%s_pools\" % len(subnets))"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"    @ddt.data("},{"line_number":505,"context_line":"        {\"subnet_id\": \"subnet-id\"},"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_902b6f30","line":502,"updated":"2015-08-04 12:43:46.000000000","message":"Where is assert for result `pool\u0027 (actually `pools\u0027)?","commit_id":"3755e016954a4777aa5bfef9e852fd6a0c7184d4"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"4fdc67ebdfdeb9191aa0e009544c87ba742c561d","unresolved":false,"context_lines":[{"line_number":506,"context_line":"         \"subnet_id\": \"subnet-id\"},"},{"line_number":507,"context_line":"    )"},{"line_number":508,"context_line":"    @ddt.unpack"},{"line_number":509,"context_line":"    def test__create_lb_pool(self, subnet_id\u003dNone, pool_create_args\u003d{}):"},{"line_number":510,"context_line":"        neutron_scenario \u003d utils.NeutronScenario()"},{"line_number":511,"context_line":"        pool \u003d {\"pool\": {\"id\": \"pool-id\"}}"},{"line_number":512,"context_line":"        pool_create_args \u003d pool_create_args or {}"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_d23b2d37","line":509,"updated":"2015-08-04 16:16:57.000000000","message":"Use `pool_create_args\u003dNone\u0027\n\nNever use mutable types like {} or [] as default values - this is common mistake\n\nhttps://pythonconquerstheuniverse.wordpress.com/2012/02/15/mutable-default-arguments/","commit_id":"b5d67dc69ad0343ab317f588f5ee0e7c603d9cf6"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"ca28b8df3ed9aad0b9dc9917b861e16ccad4d901","unresolved":false,"context_lines":[{"line_number":506,"context_line":"         \"subnet_id\": \"subnet-id\"},"},{"line_number":507,"context_line":"    )"},{"line_number":508,"context_line":"    @ddt.unpack"},{"line_number":509,"context_line":"    def test__create_lb_pool(self, subnet_id\u003dNone, pool_create_args\u003d{}):"},{"line_number":510,"context_line":"        neutron_scenario \u003d utils.NeutronScenario()"},{"line_number":511,"context_line":"        pool \u003d {\"pool\": {\"id\": \"pool-id\"}}"},{"line_number":512,"context_line":"        pool_create_args \u003d pool_create_args or {}"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_f5b413f3","line":509,"in_reply_to":"1a4dcd0f_d23b2d37","updated":"2015-08-04 16:32:13.000000000","message":"Done","commit_id":"b5d67dc69ad0343ab317f588f5ee0e7c603d9cf6"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"3d97a34cef4385a88404e86fccac9e64e6d340b8","unresolved":false,"context_lines":[{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    @ddt.data("},{"line_number":545,"context_line":"        {\"subnet_id\": \"subnet-id\"},"},{"line_number":546,"context_line":"        {\"pool_create_args\": None, \"subnet_id\": \"subnet-id\"},"},{"line_number":547,"context_line":"        {\"pool_create_args\": {}, \"subnet_id\": \"subnet-id\"},"},{"line_number":548,"context_line":"        {\"pool_create_args\": {\"name\": \"given-name\"},"},{"line_number":549,"context_line":"         \"subnet_id\": \"subnet-id\"},"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a4dcd0f_9d6b12b9","line":546,"updated":"2015-08-06 09:44:07.000000000","message":"identifiers that differs by \"_\" and \"-\" are hard to read. I would recommend using same notation for all identifiers, but add \"foo, bar, spam, a, b, c...\".\n\nFor example, instead of:\n\n {\"pool_create_args\": None, \"subnet_id\": \"subnet-id\"}\n\nUse\n\n {\"pool_create_args\": None, \"foo-subnet-id\": \"bar-subnet-id\"}","commit_id":"bc9ba4b644ed38fd1c843c42f121f706997a25bf"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"2338bbee71f87428dea1848022397f35f77e07f0","unresolved":false,"context_lines":[{"line_number":574,"context_line":"            **pool_create_args)"},{"line_number":575,"context_line":"        self.assertEqual(resultant_pool, pool)"},{"line_number":576,"context_line":"        self.clients(\"neutron\").create_pool.assert_called_once_with("},{"line_number":577,"context_line":"            expected_pool_data)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_af76c6d4","line":577,"updated":"2015-08-06 15:04:07.000000000","message":"This needs a _test_atomic_action_timer() call.","commit_id":"ac96d34b07761c96befcd4e08220d8c5ea85c8a2"},{"author":{"_account_id":14884,"name":"Kiran Ranganath","email":"kiran7193@gmail.com","username":"kiran"},"change_message_id":"d4ceb10bc13c599808aa2df883c7818a942eba87","unresolved":false,"context_lines":[{"line_number":574,"context_line":"            **pool_create_args)"},{"line_number":575,"context_line":"        self.assertEqual(resultant_pool, pool)"},{"line_number":576,"context_line":"        self.clients(\"neutron\").create_pool.assert_called_once_with("},{"line_number":577,"context_line":"            expected_pool_data)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_89bf4560","line":577,"in_reply_to":"1a4dcd0f_af76c6d4","updated":"2015-08-06 15:47:42.000000000","message":"Done","commit_id":"ac96d34b07761c96befcd4e08220d8c5ea85c8a2"}]}
