)]}'
{"rally/plugins/openstack/scenarios/neutron/network.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ebe15330eb7ca0e2894a66b9da51b1c97f073c46","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        and then list all routers."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        :param network_create_args: dict, POST /v2.0/networks request"},{"line_number":170,"context_line":"                                    options. Deprecated."},{"line_number":171,"context_line":"        :param network_create_args: dict, POST /v2.0/networks request options"},{"line_number":172,"context_line":"        :param subnet_create_args: dict, POST /v2.0/subnets request options"},{"line_number":173,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_2985b258","line":170,"updated":"2015-08-21 10:12:18.000000000","message":"This is redundant. It was already documented.","commit_id":"8ff4820ef638f695a84a657162a9aa1f70a1ee93"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"b8a916f5973fa4c357f994e84918a4930dbd5ba7","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        and then list all routers."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        :param network_create_args: dict, POST /v2.0/networks request"},{"line_number":170,"context_line":"                                    options. Deprecated."},{"line_number":171,"context_line":"        :param network_create_args: dict, POST /v2.0/networks request options"},{"line_number":172,"context_line":"        :param subnet_create_args: dict, POST /v2.0/subnets request options"},{"line_number":173,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_110b2cd7","line":170,"in_reply_to":"fa1b9901_2985b258","updated":"2015-08-21 13:25:14.000000000","message":"Done","commit_id":"8ff4820ef638f695a84a657162a9aa1f70a1ee93"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ebe15330eb7ca0e2894a66b9da51b1c97f073c46","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        :param router_update_args: dict, PUT /v2.0/routers update options"},{"line_number":202,"context_line":"        :param network_create_args: dict, POST /v2.0/networks request"},{"line_number":203,"context_line":"                                    options. Deprecated."},{"line_number":204,"context_line":"        :param subnet_create_args: dict, POST /v2.0/subnets request options"},{"line_number":205,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"},{"line_number":206,"context_line":"        :param subnets_per_network: int, number of subnets for one network"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_a94222ac","line":203,"updated":"2015-08-21 10:12:18.000000000","message":"Lets add decorator that argument is depricated https://github.com/openstack/rally/blob/master/rally/common/utils.py#L203","commit_id":"8ff4820ef638f695a84a657162a9aa1f70a1ee93"},{"author":{"_account_id":9601,"name":"Oleh Anufriiev","email":"oanufriev@mirantis.com","username":"oanufriev"},"change_message_id":"b091bcc7e665f665bbd99d4968af742543ec960f","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        :param router_update_args: dict, PUT /v2.0/routers update options"},{"line_number":202,"context_line":"        :param network_create_args: dict, POST /v2.0/networks request"},{"line_number":203,"context_line":"                                    options. Deprecated."},{"line_number":204,"context_line":"        :param subnet_create_args: dict, POST /v2.0/subnets request options"},{"line_number":205,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"},{"line_number":206,"context_line":"        :param subnets_per_network: int, number of subnets for one network"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_9624120d","line":203,"in_reply_to":"fa1b9901_a94222ac","updated":"2015-08-21 13:48:01.000000000","message":"Roman, nothing has to be logged from scenario.","commit_id":"8ff4820ef638f695a84a657162a9aa1f70a1ee93"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"b8a916f5973fa4c357f994e84918a4930dbd5ba7","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        :param router_update_args: dict, PUT /v2.0/routers update options"},{"line_number":202,"context_line":"        :param network_create_args: dict, POST /v2.0/networks request"},{"line_number":203,"context_line":"                                    options. Deprecated."},{"line_number":204,"context_line":"        :param subnet_create_args: dict, POST /v2.0/subnets request options"},{"line_number":205,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"},{"line_number":206,"context_line":"        :param subnets_per_network: int, number of subnets for one network"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_11956c31","line":203,"in_reply_to":"fa1b9901_a94222ac","updated":"2015-08-21 13:25:14.000000000","message":"The deprecation warning is handled in utils.NeutronScenario._get_or_create_network(), but I\u0027ve changed that to use the decorator.","commit_id":"8ff4820ef638f695a84a657162a9aa1f70a1ee93"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ebe15330eb7ca0e2894a66b9da51b1c97f073c46","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        :param ports_per_network: int, number of ports for one network"},{"line_number":268,"context_line":"        \"\"\""},{"line_number":269,"context_line":"        network \u003d self._get_or_create_network(network_create_args)"},{"line_number":270,"context_line":"        for i in range(ports_per_network):"},{"line_number":271,"context_line":"            self._create_port(network, port_create_args)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        self._list_ports()"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_e9333a60","line":270,"updated":"2015-08-21 10:12:18.000000000","message":"We need to add here default value here. IN cause of ports_per_network\u003dNone we will get Error","commit_id":"8ff4820ef638f695a84a657162a9aa1f70a1ee93"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"b8a916f5973fa4c357f994e84918a4930dbd5ba7","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        :param ports_per_network: int, number of ports for one network"},{"line_number":268,"context_line":"        \"\"\""},{"line_number":269,"context_line":"        network \u003d self._get_or_create_network(network_create_args)"},{"line_number":270,"context_line":"        for i in range(ports_per_network):"},{"line_number":271,"context_line":"            self._create_port(network, port_create_args)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        self._list_ports()"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_11d6cc4e","line":270,"in_reply_to":"fa1b9901_e9333a60","updated":"2015-08-21 13:25:14.000000000","message":"I\u0027ll submit a separate patch for that.","commit_id":"8ff4820ef638f695a84a657162a9aa1f70a1ee93"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ebe15330eb7ca0e2894a66b9da51b1c97f073c46","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        :param ports_per_network: int, number of ports for one network"},{"line_number":294,"context_line":"        \"\"\""},{"line_number":295,"context_line":"        network \u003d self._get_or_create_network(network_create_args)"},{"line_number":296,"context_line":"        for i in range(ports_per_network):"},{"line_number":297,"context_line":"            port \u003d self._create_port(network, port_create_args)"},{"line_number":298,"context_line":"            self._update_port(port, port_update_args)"},{"line_number":299,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_e9b49a82","line":296,"updated":"2015-08-21 10:12:18.000000000","message":"See comment to 270 line","commit_id":"8ff4820ef638f695a84a657162a9aa1f70a1ee93"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ebe15330eb7ca0e2894a66b9da51b1c97f073c46","unresolved":false,"context_lines":[{"line_number":315,"context_line":"        :param ports_per_network: int, number of ports for one network"},{"line_number":316,"context_line":"        \"\"\""},{"line_number":317,"context_line":"        network \u003d self._get_or_create_network(network_create_args)"},{"line_number":318,"context_line":"        for i in range(ports_per_network):"},{"line_number":319,"context_line":"            port \u003d self._create_port(network, port_create_args)"},{"line_number":320,"context_line":"            self._delete_port(port)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_89715e0e","line":318,"updated":"2015-08-21 10:12:18.000000000","message":"See comment to 270 line","commit_id":"8ff4820ef638f695a84a657162a9aa1f70a1ee93"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"01f7c9dba1d497d45af9b853e3a70585b55895fa","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        and then list all routers."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        :param network_create_args: dict, POST /v2.0/networks request"},{"line_number":169,"context_line":"                                    options. Deprecated."},{"line_number":170,"context_line":"        :param subnet_create_args: dict, POST /v2.0/subnets request options"},{"line_number":171,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"},{"line_number":172,"context_line":"        :param subnets_per_network: int, number of subnets for one network"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_04e03728","line":169,"updated":"2015-09-29 06:29:27.000000000","message":"For deprecated options there is a special funtion https://github.com/openstack/rally/blob/master/rally/common/utils.py#L200 and everywhere here in the code.","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"4ea0343417d46bfc6e73d97b8e672173ef56abba","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        and then list all routers."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        :param network_create_args: dict, POST /v2.0/networks request"},{"line_number":169,"context_line":"                                    options. Deprecated."},{"line_number":170,"context_line":"        :param subnet_create_args: dict, POST /v2.0/subnets request options"},{"line_number":171,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"},{"line_number":172,"context_line":"        :param subnets_per_network: int, number of subnets for one network"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_a57ffb64","line":169,"in_reply_to":"9a1a9d01_04e03728","updated":"2015-09-29 12:01:51.000000000","message":"The deprecation of the network_create_args option is handled once in _get_or_create_network(), which is called by _create_routers(), instead of in each function that calls it.","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"01f7c9dba1d497d45af9b853e3a70585b55895fa","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        :param subnets_per_network: int, number of subnets for one network"},{"line_number":202,"context_line":"        :param router_create_args: dict, POST /v2.0/routers request options"},{"line_number":203,"context_line":"        \"\"\""},{"line_number":204,"context_line":"        network, subnets, routers \u003d self._create_routers("},{"line_number":205,"context_line":"            network_create_args, subnet_create_args, subnet_cidr_start,"},{"line_number":206,"context_line":"            subnets_per_network, router_create_args)"},{"line_number":207,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_e4f74357","line":204,"updated":"2015-09-29 06:29:27.000000000","message":"http://logs.openstack.org/12/210612/15/check/gate-rally-dsvm-neutron-rally/bbee23c/rally-plot/results.html.gz#/NeutronNetworks.create_and_update_routers I think that such functions should be wrapped by AtomiAction as in murano plugin https://github.com/openstack/rally/blob/master/rally/plugins/openstack/scenarios/murano/environments.py#L64 other they look non informatively and ugly - a lot of atomic(XXX) without an aggregated information like avg,min,max etc.","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"4ea0343417d46bfc6e73d97b8e672173ef56abba","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        :param subnets_per_network: int, number of subnets for one network"},{"line_number":202,"context_line":"        :param router_create_args: dict, POST /v2.0/routers request options"},{"line_number":203,"context_line":"        \"\"\""},{"line_number":204,"context_line":"        network, subnets, routers \u003d self._create_routers("},{"line_number":205,"context_line":"            network_create_args, subnet_create_args, subnet_cidr_start,"},{"line_number":206,"context_line":"            subnets_per_network, router_create_args)"},{"line_number":207,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_c5eb0f12","line":204,"in_reply_to":"9a1a9d01_e4f74357","updated":"2015-09-29 12:01:51.000000000","message":"You\u0027re right, and that needs to be handled, but this isn\u0027t the patch in which to do that. Boris and I have discussed a few ways to handle this, and there may be big structural changes so it needs to be approached separately.","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"c3287b8ecac79aa4e6bb845b8c38a84fa9a15851","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        The scenario creates a network, a given number of subnets and then"},{"line_number":84,"context_line":"        lists subnets."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        :param network_create_args: dict, POST /v2.0/networks request"},{"line_number":87,"context_line":"                                    options. Deprecated"},{"line_number":88,"context_line":"        :param subnet_create_args: dict, POST /v2.0/subnets request options"},{"line_number":89,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"}],"source_content_type":"text/x-python","patch_set":18,"id":"5a2ca52d_7e9881c0","line":86,"updated":"2015-10-16 09:34:04.000000000","message":"I can understand why we need already existing networks, but I can\u0027t understand why we don\u0027t need new networks and why we are deprecating network create arguments","commit_id":"c907ed6c3c5229c4dabe61931e9671a1312d9cd1"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"e83ce0529c2e8cbe55134cebb850cb7437b4fdaf","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        The scenario creates a network, a given number of subnets and then"},{"line_number":84,"context_line":"        lists subnets."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        :param network_create_args: dict, POST /v2.0/networks request"},{"line_number":87,"context_line":"                                    options. Deprecated"},{"line_number":88,"context_line":"        :param subnet_create_args: dict, POST /v2.0/subnets request options"},{"line_number":89,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"}],"source_content_type":"text/x-python","patch_set":18,"id":"5a2ca52d_6bdc3c73","line":86,"in_reply_to":"5a2ca52d_7e9881c0","updated":"2015-10-16 11:07:36.000000000","message":"Because network creation can be done with the networks context now.\n\n    \u003e\u003e\u003e import this\n    ....\n    There should be one-- and preferably only one --obvious way to do it.\n    ...","commit_id":"c907ed6c3c5229c4dabe61931e9671a1312d9cd1"}],"rally/plugins/openstack/scenarios/neutron/utils.py":[{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"825f7fca0748c6c2b15abaf48aba1bb58e6226f3","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        :param network_create_args: Deprecated way to provide network"},{"line_number":284,"context_line":"                                    creation args; use the network"},{"line_number":285,"context_line":"                                    context instead."},{"line_number":286,"context_line":"        \"\"\""},{"line_number":287,"context_line":"        if \"networks\" not in self.context[\"tenant\"]:"},{"line_number":288,"context_line":"            LOG.warning(_(\"Running this scenario without either the \u0027network\u0027 \""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_b01bc972","line":285,"updated":"2015-09-29 01:46:34.000000000","message":":returns:","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"4ea0343417d46bfc6e73d97b8e672173ef56abba","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        :param network_create_args: Deprecated way to provide network"},{"line_number":284,"context_line":"                                    creation args; use the network"},{"line_number":285,"context_line":"                                    context instead."},{"line_number":286,"context_line":"        \"\"\""},{"line_number":287,"context_line":"        if \"networks\" not in self.context[\"tenant\"]:"},{"line_number":288,"context_line":"            LOG.warning(_(\"Running this scenario without either the \u0027network\u0027 \""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_e533b3a9","line":285,"in_reply_to":"9a1a9d01_b01bc972","updated":"2015-09-29 12:01:51.000000000","message":"Done","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"825f7fca0748c6c2b15abaf48aba1bb58e6226f3","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        \"\"\""},{"line_number":287,"context_line":"        if \"networks\" not in self.context[\"tenant\"]:"},{"line_number":288,"context_line":"            LOG.warning(_(\"Running this scenario without either the \u0027network\u0027 \""},{"line_number":289,"context_line":"                          \"or \u0027existing_network\u0027 context is deprecated\"))"},{"line_number":290,"context_line":"        elif network_create_args is None:"},{"line_number":291,"context_line":"            return random.choice(self.context[\"tenant\"][\"networks\"])"},{"line_number":292,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_f0df0167","line":289,"updated":"2015-09-29 01:46:34.000000000","message":"Running this scenario with either \u0027network\u0027 or \u0027existing_networking\u0027 context.","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"4ea0343417d46bfc6e73d97b8e672173ef56abba","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        \"\"\""},{"line_number":287,"context_line":"        if \"networks\" not in self.context[\"tenant\"]:"},{"line_number":288,"context_line":"            LOG.warning(_(\"Running this scenario without either the \u0027network\u0027 \""},{"line_number":289,"context_line":"                          \"or \u0027existing_network\u0027 context is deprecated\"))"},{"line_number":290,"context_line":"        elif network_create_args is None:"},{"line_number":291,"context_line":"            return random.choice(self.context[\"tenant\"][\"networks\"])"},{"line_number":292,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_25ff6bab","line":289,"in_reply_to":"9a1a9d01_f0df0167","updated":"2015-09-29 12:01:51.000000000","message":"I don\u0027t understand this comment. The warning is correct as written. There is no \"existing_networking\" context; it\u0027s \"existing_network\" as in the warning. And running it *without* a context is deprecated.\n\nAre you suggesting that I rewrite this in an affirmative manner? E.g., \"This scenario should be run with either the \u0027network\u0027 or \u0027existing_network\u0027 context.\"? If so, I\u0027m open to that, but I\u0027m not sure how to work in the fact that failure to do so is deprecated behavior (i.e., will be removed in the future). Suggestions are welcome.","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"825f7fca0748c6c2b15abaf48aba1bb58e6226f3","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        :param network: network to create subnets in"},{"line_number":304,"context_line":"        :param subnet_create_args: dict, POST /v2.0/subnets request options"},{"line_number":305,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"},{"line_number":306,"context_line":"        :param subnets_per_network: int, number of subnets for one network"},{"line_number":307,"context_line":"        \"\"\""},{"line_number":308,"context_line":"        if len(network.get(\"subnets\") or []):"},{"line_number":309,"context_line":"            return network[\"subnets\"]"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_1013955c","line":306,"updated":"2015-09-29 01:46:34.000000000","message":":returns:","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"4ea0343417d46bfc6e73d97b8e672173ef56abba","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        :param network: network to create subnets in"},{"line_number":304,"context_line":"        :param subnet_create_args: dict, POST /v2.0/subnets request options"},{"line_number":305,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"},{"line_number":306,"context_line":"        :param subnets_per_network: int, number of subnets for one network"},{"line_number":307,"context_line":"        \"\"\""},{"line_number":308,"context_line":"        if len(network.get(\"subnets\") or []):"},{"line_number":309,"context_line":"            return network[\"subnets\"]"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_e5dad34b","line":306,"in_reply_to":"9a1a9d01_1013955c","updated":"2015-09-29 12:01:51.000000000","message":"Done","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"01f7c9dba1d497d45af9b853e3a70585b55895fa","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"},{"line_number":306,"context_line":"        :param subnets_per_network: int, number of subnets for one network"},{"line_number":307,"context_line":"        \"\"\""},{"line_number":308,"context_line":"        if len(network.get(\"subnets\") or []):"},{"line_number":309,"context_line":"            return network[\"subnets\"]"},{"line_number":310,"context_line":"        else:"},{"line_number":311,"context_line":"            return self._create_subnets(network, subnet_create_args,"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_1fcabe4e","line":308,"updated":"2015-09-29 06:29:27.000000000","message":"why or [] is here? Its False and doesn\u0027t influent on the finally logic. Correct me if I\u0027m wrong","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"9ea83147d3f118370c3c941210eee64ed16fa3d6","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"},{"line_number":306,"context_line":"        :param subnets_per_network: int, number of subnets for one network"},{"line_number":307,"context_line":"        \"\"\""},{"line_number":308,"context_line":"        if len(network.get(\"subnets\") or []):"},{"line_number":309,"context_line":"            return network[\"subnets\"]"},{"line_number":310,"context_line":"        else:"},{"line_number":311,"context_line":"            return self._create_subnets(network, subnet_create_args,"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_3a80f0f6","line":308,"in_reply_to":"9a1a9d01_1fcabe4e","updated":"2015-09-29 06:56:38.000000000","message":"network.get(\"subnets\") may return None, len(None) will raise TypeError. May use network.get(\"subnets\", []).","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"4ea0343417d46bfc6e73d97b8e672173ef56abba","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"},{"line_number":306,"context_line":"        :param subnets_per_network: int, number of subnets for one network"},{"line_number":307,"context_line":"        \"\"\""},{"line_number":308,"context_line":"        if len(network.get(\"subnets\") or []):"},{"line_number":309,"context_line":"            return network[\"subnets\"]"},{"line_number":310,"context_line":"        else:"},{"line_number":311,"context_line":"            return self._create_subnets(network, subnet_create_args,"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_05f027c8","line":308,"in_reply_to":"9a1a9d01_3a80f0f6","updated":"2015-09-29 12:01:51.000000000","message":"Done","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"825f7fca0748c6c2b15abaf48aba1bb58e6226f3","unresolved":false,"context_lines":[{"line_number":320,"context_line":"        :param network: network to create subnets in"},{"line_number":321,"context_line":"        :param subnet_create_args: dict, POST /v2.0/subnets request options"},{"line_number":322,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"},{"line_number":323,"context_line":"        :param subnets_per_network: int, number of subnets for one network"},{"line_number":324,"context_line":"        \"\"\""},{"line_number":325,"context_line":"        return [self._create_subnet(network, subnet_create_args or {},"},{"line_number":326,"context_line":"                                    subnet_cidr_start)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_1c109158","line":323,"updated":"2015-09-29 01:46:34.000000000","message":":returns: subnets list","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"4ea0343417d46bfc6e73d97b8e672173ef56abba","unresolved":false,"context_lines":[{"line_number":320,"context_line":"        :param network: network to create subnets in"},{"line_number":321,"context_line":"        :param subnet_create_args: dict, POST /v2.0/subnets request options"},{"line_number":322,"context_line":"        :param subnet_cidr_start: str, start value for subnets CIDR"},{"line_number":323,"context_line":"        :param subnets_per_network: int, number of subnets for one network"},{"line_number":324,"context_line":"        \"\"\""},{"line_number":325,"context_line":"        return [self._create_subnet(network, subnet_create_args or {},"},{"line_number":326,"context_line":"                                    subnet_cidr_start)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_25ed2bef","line":323,"in_reply_to":"9a1a9d01_1c109158","updated":"2015-09-29 12:01:51.000000000","message":"Done","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":9601,"name":"Oleh Anufriiev","email":"oanufriev@mirantis.com","username":"oanufriev"},"change_message_id":"a14453ad1fccdba7d46fcbe269ccd6ca8612b9b7","unresolved":false,"context_lines":[{"line_number":344,"context_line":"                                       subnet_cidr_start, subnets_per_network)"},{"line_number":345,"context_line":"        return network, subnets"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def _create_routers(self, network_create_args\u003dNone,"},{"line_number":348,"context_line":"                        subnet_create_args\u003dNone, subnet_cidr_start\u003dNone,"},{"line_number":349,"context_line":"                        subnets_per_network\u003dNone, router_create_args\u003dNone):"},{"line_number":350,"context_line":"        \"\"\"Create a network and a given number of subnets and routers."}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_aa727f0f","line":347,"updated":"2015-09-28 21:46:35.000000000","message":"Confusing name for method, that: \"\"\"Create a network and a given number of subnets and routers...\"\"\"\n\nSuggesting \u0027create_net_infra\u0027 (net infrastructure) or \u0027create_network_structure\u0027","commit_id":"228f122957baac804a045d71d6703a003e2e947b"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"4ea0343417d46bfc6e73d97b8e672173ef56abba","unresolved":false,"context_lines":[{"line_number":344,"context_line":"                                       subnet_cidr_start, subnets_per_network)"},{"line_number":345,"context_line":"        return network, subnets"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def _create_routers(self, network_create_args\u003dNone,"},{"line_number":348,"context_line":"                        subnet_create_args\u003dNone, subnet_cidr_start\u003dNone,"},{"line_number":349,"context_line":"                        subnets_per_network\u003dNone, router_create_args\u003dNone):"},{"line_number":350,"context_line":"        \"\"\"Create a network and a given number of subnets and routers."}],"source_content_type":"text/x-python","patch_set":15,"id":"9a1a9d01_850af777","line":347,"in_reply_to":"9a1a9d01_aa727f0f","updated":"2015-09-29 12:01:51.000000000","message":"Done","commit_id":"228f122957baac804a045d71d6703a003e2e947b"}]}
