)]}'
{"etc/murano/murano.conf.sample":[{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"18fc63efd435c7c22c53113e650a42facdf5d67c","unresolved":false,"context_lines":[{"line_number":755,"context_line":""},{"line_number":756,"context_line":"# ID of the external network for routers to connect to (string"},{"line_number":757,"context_line":"# value)"},{"line_number":758,"context_line":"#external_network_id\u003d"},{"line_number":759,"context_line":""},{"line_number":760,"context_line":"# Name of the external network for routers to connect to, not"},{"line_number":761,"context_line":"# necessary if you have the ID above (string value)"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"fa98f980_f5e06bfc","line":758,"updated":"2014-09-17 13:37:41.000000000","message":"I would like to have ability to disable router creation behavior, and disable it by default","commit_id":"69507af0ecfb0712c33bc4dc3cf43aa5d09315c5"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"18fc63efd435c7c22c53113e650a42facdf5d67c","unresolved":false,"context_lines":[{"line_number":759,"context_line":""},{"line_number":760,"context_line":"# Name of the external network for routers to connect to, not"},{"line_number":761,"context_line":"# necessary if you have the ID above (string value)"},{"line_number":762,"context_line":"#external_network_name\u003dext_net"},{"line_number":763,"context_line":""},{"line_number":764,"context_line":"# Name of the router that going to be used in order to join"},{"line_number":765,"context_line":"# all networks created by Murano (string value)"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"fa98f980_f5294b38","line":762,"updated":"2014-09-17 13:37:41.000000000","message":"I think better idea is having only one option and let user to specify either name or id as external network value.\n\nProbably we can employ find_resourceid_by_name_or_id function of neutron client for that","commit_id":"69507af0ecfb0712c33bc4dc3cf43aa5d09315c5"}],"murano/common/config.py":[{"author":{"_account_id":11098,"name":"Brian Tully","email":"brian.tully@hpe.com","username":"btully"},"change_message_id":"14210ffdab663b2fa972fe42e37521446836a2e9","unresolved":false,"context_lines":[{"line_number":170,"context_line":"                    \u0027join all networks created by Murano\u0027),"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    cfg.BoolOpt(\u0027create_router\u0027, default\u003dTrue,"},{"line_number":173,"context_line":"               help\u003d\u0027This option will create a router when one with \u0027"},{"line_number":174,"context_line":"                    \u0027\"router_name\" does not exist\u0027),"},{"line_number":175,"context_line":"]"},{"line_number":176,"context_line":"stats_opt \u003d ["}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_25cb961f","line":173,"updated":"2014-09-17 20:22:25.000000000","message":"This line gives the following pep8 error\n\"E128 continuation line under-indented for visual indent\"","commit_id":"132f0b930c3a455e3e1d092339fe22c14418998f"}],"murano/engine/system/net_explorer.py":[{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"51ffae1548f70332f75ce429979dfba07f3ff1d2","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        if len(routers) \u003d\u003d 0:"},{"line_number":72,"context_line":"            # Attempt to create a router"},{"line_number":73,"context_line":"            # Check external_network_id first"},{"line_number":74,"context_line":"            nid \u003d self._settings.external_network_id"},{"line_number":75,"context_line":"            if nid:"},{"line_number":76,"context_line":"                network_info \u003d self._neutron.\\"},{"line_number":77,"context_line":"                    show_network(tenant_id\u003dself._tenant_id, network\u003dnid).\\"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_38ebff13","line":74,"updated":"2014-09-15 22:50:13.000000000","message":"Instead of the if.. else below, can simplify:\n\n# Or apply them both if they\u0027re both there to simplify\nif self._settings.external_network_id or self._settings.external_network_name:\n  kwargs \u003d {\u0027id\u0027: self._settings.external_network_id} \\\n    if self._settings.external_network_id\n    else {\u0027name\u0027: self._settings.external_network_name}\n  # Get the list\n  network_info \u003d self._neutron.list_networks(**kwargs)\n  # Check we got one and it\u0027s external\n  ...","commit_id":"de654818344e8b4373d2ce8876579a3cfb51d28a"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"51ffae1548f70332f75ce429979dfba07f3ff1d2","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                    raise KeyError(\"Router %s was not found and couldn\u0027t\""},{"line_number":90,"context_line":"                                   \" be created\" % router_name)"},{"line_number":91,"context_line":"                nid \u003d network_info[0][\"id\"]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"            body_data \u003d {"},{"line_number":94,"context_line":"                \"router\": {"},{"line_number":95,"context_line":"                    \"name\": router_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_586363b0","line":92,"updated":"2014-09-15 22:50:13.000000000","message":"Raise an exception if neither\u0027s given","commit_id":"de654818344e8b4373d2ce8876579a3cfb51d28a"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"e93d5d640132a5baac4c45d37f868dee09bfddd9","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        self._available_cidrs \u003d self._generate_possible_cidrs()"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    # noinspection PyPep8Naming"},{"line_number":65,"context_line":"    def getDefaultRouter(self):"},{"line_number":66,"context_line":"        router_name \u003d self._settings.router_name"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        routers \u003d self._neutron.\\"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_9ca20a4a","line":65,"updated":"2014-09-16 15:08:01.000000000","message":"Add some logging (at debug):\n - retrieving routers\n - retrieving external networks\n - creating router","commit_id":"526b325bf26f6fc61f099ddc7f74f61db268a4f8"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"e93d5d640132a5baac4c45d37f868dee09bfddd9","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                else {\u0027name\u0027: self._settings.external_network_name}"},{"line_number":76,"context_line":"            network_info \u003d self._neutron.list_networks(**kwargs).\\"},{"line_number":77,"context_line":"                get(\"networks\")"},{"line_number":78,"context_line":"            if len(network_info) \u003d\u003d 0 or \\"},{"line_number":79,"context_line":"                    not network_info[0][\"router:external\"]:"},{"line_number":80,"context_line":"                raise KeyError(\"Router %s was not found and couldn\u0027t\""},{"line_number":81,"context_line":"                               \" be created\" % router_name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_9c5daa7c","line":78,"updated":"2014-09-16 15:08:01.000000000","message":"Maybe simplify and allow for the possibility of duplicate names with\nexternal_nets \u003d filter(lamba n: n[\"router:external\"], network_info)\nif len(external_nets) \u003d\u003d 0:\n   raise...","commit_id":"526b325bf26f6fc61f099ddc7f74f61db268a4f8"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"18fc63efd435c7c22c53113e650a42facdf5d67c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        routers \u003d self._neutron.\\"},{"line_number":73,"context_line":"            list_routers(tenant_id\u003dself._tenant_id, name\u003drouter_name).\\"},{"line_number":74,"context_line":"            get(\"routers\")"},{"line_number":75,"context_line":"        LOG.debug(\"List routers: {0}\".format(routers))"},{"line_number":76,"context_line":"        if len(routers) \u003d\u003d 0:"},{"line_number":77,"context_line":"            # Attempt to create a router"},{"line_number":78,"context_line":"            kwargs \u003d {\u0027id\u0027: self._settings.external_network_id} \\"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_f5b78bf3","line":75,"updated":"2014-09-17 13:37:41.000000000","message":"Maybe it is better to remove debug output","commit_id":"69507af0ecfb0712c33bc4dc3cf43aa5d09315c5"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"18fc63efd435c7c22c53113e650a42facdf5d67c","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            list_routers(tenant_id\u003dself._tenant_id, name\u003drouter_name).\\"},{"line_number":74,"context_line":"            get(\"routers\")"},{"line_number":75,"context_line":"        LOG.debug(\"List routers: {0}\".format(routers))"},{"line_number":76,"context_line":"        if len(routers) \u003d\u003d 0:"},{"line_number":77,"context_line":"            # Attempt to create a router"},{"line_number":78,"context_line":"            kwargs \u003d {\u0027id\u0027: self._settings.external_network_id} \\"},{"line_number":79,"context_line":"                if self._settings.external_network_id \\"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_759abb6f","line":76,"updated":"2014-09-17 13:37:41.000000000","message":"I think we should log here that router was not found, and in the next log statement write that we are going to attempt to create router with specified external network","commit_id":"69507af0ecfb0712c33bc4dc3cf43aa5d09315c5"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"18fc63efd435c7c22c53113e650a42facdf5d67c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            LOG.debug(\"List networks: {0}\".format(networks))"},{"line_number":84,"context_line":"            external_nets \u003d filter(lambda n: n[\"router:external\"], networks)"},{"line_number":85,"context_line":"            if len(external_nets) \u003d\u003d 0:"},{"line_number":86,"context_line":"                raise KeyError(\"Router %s was not found and couldn\u0027t\""},{"line_number":87,"context_line":"                               \" be created\" % router_name)"},{"line_number":88,"context_line":"            nid \u003d external_nets[0][\"id\"]"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_359e7355","line":86,"updated":"2014-09-17 13:37:41.000000000","message":"Better to have two exceptions here: Router is not found, router could not be created","commit_id":"69507af0ecfb0712c33bc4dc3cf43aa5d09315c5"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"18fc63efd435c7c22c53113e650a42facdf5d67c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            external_nets \u003d filter(lambda n: n[\"router:external\"], networks)"},{"line_number":85,"context_line":"            if len(external_nets) \u003d\u003d 0:"},{"line_number":86,"context_line":"                raise KeyError(\"Router %s was not found and couldn\u0027t\""},{"line_number":87,"context_line":"                               \" be created\" % router_name)"},{"line_number":88,"context_line":"            nid \u003d external_nets[0][\"id\"]"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"            body_data \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_b5926349","line":87,"updated":"2014-09-17 13:37:41.000000000","message":"If we can\u0027t create router we should log it","commit_id":"69507af0ecfb0712c33bc4dc3cf43aa5d09315c5"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"abc525912ff70576a927b37b74970cdaf7cc52b3","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                    else {\u0027name\u0027: external_network}"},{"line_number":85,"context_line":"                networks \u003d self._neutron.list_networks(**kwargs). \\"},{"line_number":86,"context_line":"                    get(\"networks\")"},{"line_number":87,"context_line":"                LOG.debug(\"List networks: {0}\".format(networks))"},{"line_number":88,"context_line":"                ext_nets \u003d filter(lambda n: n[\"router:external\"], networks)"},{"line_number":89,"context_line":"                if len(ext_nets) \u003d\u003d 0:"},{"line_number":90,"context_line":"                    raise KeyError(\"Router %s could not be created, \""}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_3f5c7319","line":87,"updated":"2014-09-18 13:26:25.000000000","message":"I think this debug message is excessive, we can remove it","commit_id":"0078338ba6fe9ef3fe10557444d38c94e7e02537"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"abc525912ff70576a927b37b74970cdaf7cc52b3","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                LOG.debug(\"List networks: {0}\".format(networks))"},{"line_number":88,"context_line":"                ext_nets \u003d filter(lambda n: n[\"router:external\"], networks)"},{"line_number":89,"context_line":"                if len(ext_nets) \u003d\u003d 0:"},{"line_number":90,"context_line":"                    raise KeyError(\"Router %s could not be created, \""},{"line_number":91,"context_line":"                                   \"no external network found\" % router_name)"},{"line_number":92,"context_line":"                nid \u003d ext_nets[0][\"id\"]"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_bf7063a5","line":90,"updated":"2014-09-18 13:26:25.000000000","message":"Please, use single quote for strings","commit_id":"0078338ba6fe9ef3fe10557444d38c94e7e02537"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"20c2f917977c4cb0db95c456743ac36fdaaea968","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                    get(\u0027networks\u0027)"},{"line_number":87,"context_line":"                ext_nets \u003d filter(lambda n: n[\u0027router:external\u0027], networks)"},{"line_number":88,"context_line":"                if len(ext_nets) \u003d\u003d 0:"},{"line_number":89,"context_line":"                    raise KeyError(\u0027Router %s could not be created, \u0027"},{"line_number":90,"context_line":"                                   \u0027no external network found\u0027 % router_name)"},{"line_number":91,"context_line":"                nid \u003d ext_nets[0][\u0027id\u0027]"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"da9df570_7d3fd9d6","line":89,"updated":"2014-09-23 20:24:40.000000000","message":"If you end up doing any changes, KeyError seems inappropriate, but not a huge deal.","commit_id":"0d0fb8b9a738ce9016c34995241c1d84c8f2f996"}]}
