)]}'
{"heat/engine/resources/openstack/nova/server.py":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"6f3ad51fedf7949587b7c4bd0df5d4fd82af68cb","unresolved":false,"context_lines":[{"line_number":632,"context_line":"            _(\u0027A dict of all network addresses with corresponding port_id and \u0027"},{"line_number":633,"context_line":"              \u0027subnets. Each network will have two keys in dict, they are \u0027"},{"line_number":634,"context_line":"              \u0027network name and network id. The port ID may be obtained \u0027"},{"line_number":635,"context_line":"              \u0027through the following expression: \"{get_attr: [\u003cserver\u003e, \u0027"},{"line_number":636,"context_line":"              \u0027addresses, \u003cnetwork name_or_id\u003e, 0, port]}\". The subnets may \u0027"},{"line_number":637,"context_line":"              \u0027be obtained trough the following expression: \"{get_attr: [ \u0027"},{"line_number":638,"context_line":"              \u0027\u003cserver\u003e, addresses, \u003cnetwork name_or_id\u003e, 0, subnets]}\".\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_945ca67d","line":635,"range":{"start_line":635,"start_character":49,"end_line":635,"end_character":50},"updated":"2018-05-31 23:29:44.000000000","message":"Since we\u0027re changing this (and thus will require new translations), maybe let\u0027s use a pair of backticks (``) instead of a double quote (\"), so that it renders as code in RST when we generate the docs.\n\nHere\u0027s how it looks now:\n\nhttps://docs.openstack.org/heat/latest/template_guide/openstack.html#OS::Nova::Server-attr-addresses","commit_id":"de4da103a0a1d70cc03b369dea65252596503c4a"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"cb19c9a9009efc04e60ea88cb9e61e88e9bb4359","unresolved":false,"context_lines":[{"line_number":632,"context_line":"            _(\u0027A dict of all network addresses with corresponding port_id and \u0027"},{"line_number":633,"context_line":"              \u0027subnets. Each network will have two keys in dict, they are \u0027"},{"line_number":634,"context_line":"              \u0027network name and network id. The port ID may be obtained \u0027"},{"line_number":635,"context_line":"              \u0027through the following expression: \"{get_attr: [\u003cserver\u003e, \u0027"},{"line_number":636,"context_line":"              \u0027addresses, \u003cnetwork name_or_id\u003e, 0, port]}\". The subnets may \u0027"},{"line_number":637,"context_line":"              \u0027be obtained trough the following expression: \"{get_attr: [ \u0027"},{"line_number":638,"context_line":"              \u0027\u003cserver\u003e, addresses, \u003cnetwork name_or_id\u003e, 0, subnets]}\".\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_f08ec230","line":635,"range":{"start_line":635,"start_character":49,"end_line":635,"end_character":50},"in_reply_to":"5f7c97a3_7c6e28ca","updated":"2018-06-07 13:55:58.000000000","message":"Apparently this doesn\u0027t actually work:\n\nhttp://logs.openstack.org/60/568960/5/check/build-openstack-sphinx-docs/028a98a/html/template_guide/openstack.html#OS::Nova::Server-attr-addresses\n\nOh well, at least it\u0027s in good shape now if we ever fix the docs generation.","commit_id":"de4da103a0a1d70cc03b369dea65252596503c4a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"2a94c94a4496a1d56d2a0b3fb5493878125808e1","unresolved":false,"context_lines":[{"line_number":632,"context_line":"            _(\u0027A dict of all network addresses with corresponding port_id and \u0027"},{"line_number":633,"context_line":"              \u0027subnets. Each network will have two keys in dict, they are \u0027"},{"line_number":634,"context_line":"              \u0027network name and network id. The port ID may be obtained \u0027"},{"line_number":635,"context_line":"              \u0027through the following expression: \"{get_attr: [\u003cserver\u003e, \u0027"},{"line_number":636,"context_line":"              \u0027addresses, \u003cnetwork name_or_id\u003e, 0, port]}\". The subnets may \u0027"},{"line_number":637,"context_line":"              \u0027be obtained trough the following expression: \"{get_attr: [ \u0027"},{"line_number":638,"context_line":"              \u0027\u003cserver\u003e, addresses, \u003cnetwork name_or_id\u003e, 0, subnets]}\".\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_7c6e28ca","line":635,"range":{"start_line":635,"start_character":49,"end_line":635,"end_character":50},"in_reply_to":"5f7c97a3_945ca67d","updated":"2018-06-06 16:24:35.000000000","message":"Done","commit_id":"de4da103a0a1d70cc03b369dea65252596503c4a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"c8d76d142b365128f607e4a76fa85c5995396d46","unresolved":false,"context_lines":[{"line_number":632,"context_line":"            _(\u0027A dict of all network addresses with corresponding port_id and \u0027"},{"line_number":633,"context_line":"              \u0027subnets. Each network will have two keys in dict, they are \u0027"},{"line_number":634,"context_line":"              \u0027network name and network id. The port ID may be obtained \u0027"},{"line_number":635,"context_line":"              \u0027through the following expression: \"{get_attr: [\u003cserver\u003e, \u0027"},{"line_number":636,"context_line":"              \u0027addresses, \u003cnetwork name_or_id\u003e, 0, port]}\". The subnets may \u0027"},{"line_number":637,"context_line":"              \u0027be obtained trough the following expression: \"{get_attr: [ \u0027"},{"line_number":638,"context_line":"              \u0027\u003cserver\u003e, addresses, \u003cnetwork name_or_id\u003e, 0, subnets]}\".\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_dbf727d4","line":635,"range":{"start_line":635,"start_character":49,"end_line":635,"end_character":50},"in_reply_to":"5f7c97a3_f08ec230","updated":"2018-06-07 14:17:09.000000000","message":"Too bad. Would have been pleasantly pretty if it did.","commit_id":"de4da103a0a1d70cc03b369dea65252596503c4a"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"6f3ad51fedf7949587b7c4bd0df5d4fd82af68cb","unresolved":false,"context_lines":[{"line_number":634,"context_line":"              \u0027network name and network id. The port ID may be obtained \u0027"},{"line_number":635,"context_line":"              \u0027through the following expression: \"{get_attr: [\u003cserver\u003e, \u0027"},{"line_number":636,"context_line":"              \u0027addresses, \u003cnetwork name_or_id\u003e, 0, port]}\". The subnets may \u0027"},{"line_number":637,"context_line":"              \u0027be obtained trough the following expression: \"{get_attr: [ \u0027"},{"line_number":638,"context_line":"              \u0027\u003cserver\u003e, addresses, \u003cnetwork name_or_id\u003e, 0, subnets]}\".\u0027),"},{"line_number":639,"context_line":"            type\u003dattributes.Schema.MAP"},{"line_number":640,"context_line":"        ),"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_f44cfac8","line":637,"range":{"start_line":637,"start_character":73,"end_line":637,"end_character":74},"updated":"2018-05-31 23:29:44.000000000","message":"ditto and also the space after the [ is inconsistent with the first example. (Yes this is off the charts for nitpicking ;)","commit_id":"de4da103a0a1d70cc03b369dea65252596503c4a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"2a94c94a4496a1d56d2a0b3fb5493878125808e1","unresolved":false,"context_lines":[{"line_number":634,"context_line":"              \u0027network name and network id. The port ID may be obtained \u0027"},{"line_number":635,"context_line":"              \u0027through the following expression: \"{get_attr: [\u003cserver\u003e, \u0027"},{"line_number":636,"context_line":"              \u0027addresses, \u003cnetwork name_or_id\u003e, 0, port]}\". The subnets may \u0027"},{"line_number":637,"context_line":"              \u0027be obtained trough the following expression: \"{get_attr: [ \u0027"},{"line_number":638,"context_line":"              \u0027\u003cserver\u003e, addresses, \u003cnetwork name_or_id\u003e, 0, subnets]}\".\u0027),"},{"line_number":639,"context_line":"            type\u003dattributes.Schema.MAP"},{"line_number":640,"context_line":"        ),"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_fc61d8d4","line":637,"range":{"start_line":637,"start_character":73,"end_line":637,"end_character":74},"in_reply_to":"5f7c97a3_f44cfac8","updated":"2018-06-06 16:24:35.000000000","message":"Done","commit_id":"de4da103a0a1d70cc03b369dea65252596503c4a"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"6f3ad51fedf7949587b7c4bd0df5d4fd82af68cb","unresolved":false,"context_lines":[{"line_number":636,"context_line":"              \u0027addresses, \u003cnetwork name_or_id\u003e, 0, port]}\". The subnets may \u0027"},{"line_number":637,"context_line":"              \u0027be obtained trough the following expression: \"{get_attr: [ \u0027"},{"line_number":638,"context_line":"              \u0027\u003cserver\u003e, addresses, \u003cnetwork name_or_id\u003e, 0, subnets]}\".\u0027),"},{"line_number":639,"context_line":"            type\u003dattributes.Schema.MAP"},{"line_number":640,"context_line":"        ),"},{"line_number":641,"context_line":"        NETWORKS_ATTR: attributes.Schema("},{"line_number":642,"context_line":"            _(\u0027A dict of assigned network addresses of the form: \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_10574c28","line":639,"updated":"2018-05-31 23:29:44.000000000","message":"I don\u0027t know that there\u0027s much precedent for how we handle versioning when we add data to a MAP-type attribute. I\u0027d be inclined to say we should add a SupportStatus with the comment that the subnet is only available since version 11.0.0.","commit_id":"de4da103a0a1d70cc03b369dea65252596503c4a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"2a94c94a4496a1d56d2a0b3fb5493878125808e1","unresolved":false,"context_lines":[{"line_number":636,"context_line":"              \u0027addresses, \u003cnetwork name_or_id\u003e, 0, port]}\". The subnets may \u0027"},{"line_number":637,"context_line":"              \u0027be obtained trough the following expression: \"{get_attr: [ \u0027"},{"line_number":638,"context_line":"              \u0027\u003cserver\u003e, addresses, \u003cnetwork name_or_id\u003e, 0, subnets]}\".\u0027),"},{"line_number":639,"context_line":"            type\u003dattributes.Schema.MAP"},{"line_number":640,"context_line":"        ),"},{"line_number":641,"context_line":"        NETWORKS_ATTR: attributes.Schema("},{"line_number":642,"context_line":"            _(\u0027A dict of assigned network addresses of the form: \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_3c20b049","line":639,"in_reply_to":"5f7c97a3_10574c28","updated":"2018-06-06 16:24:35.000000000","message":"Done. (Let me know if I got it wrong ...)","commit_id":"de4da103a0a1d70cc03b369dea65252596503c4a"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"6f3ad51fedf7949587b7c4bd0df5d4fd82af68cb","unresolved":false,"context_lines":[{"line_number":1087,"context_line":"            for fixed_ip in fixed_ips:"},{"line_number":1088,"context_line":"                if fixed_ip.get(\u0027subnet_id\u0027):"},{"line_number":1089,"context_line":"                    subnets.append(self.client(\u0027neutron\u0027).show_subnet("},{"line_number":1090,"context_line":"                        fixed_ip[\u0027subnet_id\u0027])[\u0027subnet\u0027])"},{"line_number":1091,"context_line":"        except Exception as ex:"},{"line_number":1092,"context_line":"            LOG.warning(\"Failed to fetch resource attributes: %s\", ex)"},{"line_number":1093,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_54692e22","line":1090,"updated":"2018-05-31 23:29:44.000000000","message":"Slightly concerned about the cost of these additional calls, but this data really needs to be mixed in with the port data so it makes sense to do it this way instead of in a new attribute.","commit_id":"de4da103a0a1d70cc03b369dea65252596503c4a"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"6f3ad51fedf7949587b7c4bd0df5d4fd82af68cb","unresolved":false,"context_lines":[{"line_number":1096,"context_line":"    def _add_attrs_for_address(self, server, extend_networks\u003dTrue):"},{"line_number":1097,"context_line":"        \"\"\"Method adds port id and subnets attributes to list of addresses."},{"line_number":1098,"context_line":""},{"line_number":1099,"context_line":"        This method is used only for resolving attributes."},{"line_number":1100,"context_line":"        \"\"\""},{"line_number":1101,"context_line":"        nets \u003d copy.deepcopy(server.addresses) or {}"},{"line_number":1102,"context_line":"        ifaces \u003d server.interface_list()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_948346cb","line":1099,"updated":"2018-05-31 23:29:44.000000000","message":"Comment about the meaning of extend_networks in here would be great.","commit_id":"de4da103a0a1d70cc03b369dea65252596503c4a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"2a94c94a4496a1d56d2a0b3fb5493878125808e1","unresolved":false,"context_lines":[{"line_number":1096,"context_line":"    def _add_attrs_for_address(self, server, extend_networks\u003dTrue):"},{"line_number":1097,"context_line":"        \"\"\"Method adds port id and subnets attributes to list of addresses."},{"line_number":1098,"context_line":""},{"line_number":1099,"context_line":"        This method is used only for resolving attributes."},{"line_number":1100,"context_line":"        \"\"\""},{"line_number":1101,"context_line":"        nets \u003d copy.deepcopy(server.addresses) or {}"},{"line_number":1102,"context_line":"        ifaces \u003d server.interface_list()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_bcc5a00c","line":1099,"in_reply_to":"5f7c97a3_948346cb","updated":"2018-06-06 16:24:35.000000000","message":"Done","commit_id":"de4da103a0a1d70cc03b369dea65252596503c4a"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"cb19c9a9009efc04e60ea88cb9e61e88e9bb4359","unresolved":false,"context_lines":[{"line_number":643,"context_line":"                message\u003d_(\u0027The attribute was extended to include subnets with \u0027"},{"line_number":644,"context_line":"                          \u0027version 11.0.0.\u0027),"},{"line_number":645,"context_line":"                previous_status\u003dsupport.SupportStatus("},{"line_number":646,"context_line":"                    status\u003dsupport.SUPPORTED"},{"line_number":647,"context_line":"                )"},{"line_number":648,"context_line":"            )"},{"line_number":649,"context_line":"        ),"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_505f76e4","line":646,"updated":"2018-06-07 13:55:58.000000000","message":"Cool, yeah this seems like the best way to handle it.","commit_id":"5b5a9a8fb158ec7c6cd0beb77be7ed7ae8fea25a"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"cb19c9a9009efc04e60ea88cb9e61e88e9bb4359","unresolved":false,"context_lines":[{"line_number":1108,"context_line":"        This method is used only for resolving attributes."},{"line_number":1109,"context_line":"        :param server: The server resource"},{"line_number":1110,"context_line":"        :param extend_networks: When False the network is not extended, i.e"},{"line_number":1111,"context_line":"                                the net is returned without replacing name on"},{"line_number":1112,"context_line":"                                id."},{"line_number":1113,"context_line":"        \"\"\""},{"line_number":1114,"context_line":"        nets \u003d copy.deepcopy(server.addresses) or {}"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_305c3aec","line":1111,"range":{"start_line":1111,"start_character":75,"end_line":1111,"end_character":77},"updated":"2018-06-07 13:55:58.000000000","message":"typo: or","commit_id":"5b5a9a8fb158ec7c6cd0beb77be7ed7ae8fea25a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"c8d76d142b365128f607e4a76fa85c5995396d46","unresolved":false,"context_lines":[{"line_number":1108,"context_line":"        This method is used only for resolving attributes."},{"line_number":1109,"context_line":"        :param server: The server resource"},{"line_number":1110,"context_line":"        :param extend_networks: When False the network is not extended, i.e"},{"line_number":1111,"context_line":"                                the net is returned without replacing name on"},{"line_number":1112,"context_line":"                                id."},{"line_number":1113,"context_line":"        \"\"\""},{"line_number":1114,"context_line":"        nets \u003d copy.deepcopy(server.addresses) or {}"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_fbbf83f9","line":1111,"range":{"start_line":1111,"start_character":75,"end_line":1111,"end_character":77},"in_reply_to":"5f7c97a3_305c3aec","updated":"2018-06-07 14:17:09.000000000","message":"actually copied from L1136 which says \"on\".\nI can do a follow up to fix both if that really is a typo, but I belive on is correct? It replaces id with a name.","commit_id":"5b5a9a8fb158ec7c6cd0beb77be7ed7ae8fea25a"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"cdf5d104198e806e002d282d57a8d14b65ac7be3","unresolved":false,"context_lines":[{"line_number":1108,"context_line":"        This method is used only for resolving attributes."},{"line_number":1109,"context_line":"        :param server: The server resource"},{"line_number":1110,"context_line":"        :param extend_networks: When False the network is not extended, i.e"},{"line_number":1111,"context_line":"                                the net is returned without replacing name on"},{"line_number":1112,"context_line":"                                id."},{"line_number":1113,"context_line":"        \"\"\""},{"line_number":1114,"context_line":"        nets \u003d copy.deepcopy(server.addresses) or {}"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_0e03ff11","line":1111,"range":{"start_line":1111,"start_character":75,"end_line":1111,"end_character":77},"in_reply_to":"5f7c97a3_fbbf83f9","updated":"2018-06-08 16:42:06.000000000","message":"Oh, OK. You\u0027re right, \u0027on\u0027 appears to be intentional on L1136. I can\u0027t make head or tail of that docstring though. I had to read the code to figure out that its saying that it duplicates the data so that it\u0027s available under both the name and the uuid. So it adds the same data again except with the name replaced by the network ID. You copied the bit about replacing the name, but not the bit about adding a second copy of the data, so this is even harder to parse.\n\nAnyway, a follow-up patch is a good place to deal with it.","commit_id":"5b5a9a8fb158ec7c6cd0beb77be7ed7ae8fea25a"}]}
