)]}'
{"doc/source/authoring-plugins.rst":[{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"8f8326e3a9cca6eeb57e691790b227f11326457a","unresolved":false,"context_lines":[{"line_number":394,"context_line":"          parent resource type."},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"When creating mappings, consider if there is data in a resource that aligns"},{"line_number":397,"context_line":"closely with fields on a pre-existing plugin. In some cases it makes sense to"},{"line_number":398,"context_line":"duplicate data (to maintain compatibility with the service API whilst making"},{"line_number":399,"context_line":"it easier for users to search across resources). The ``ipv4_addresses`` and"},{"line_number":400,"context_line":"``ipv6_addresses`` fields are an example of this."}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_18e7ec11","line":397,"range":{"start_line":397,"start_character":38,"end_line":397,"end_character":44},"updated":"2016-10-13 18:42:42.000000000","message":"This new section refers to \"resources\". We should probably be consistent and say \"pre-existing resource\" instead of plugin (since a plugin is a superset of a resource).","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"ec34c4f0bae63c19fedaae4648de7098b70001e4","unresolved":false,"context_lines":[{"line_number":394,"context_line":"          parent resource type."},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"When creating mappings, consider if there is data in a resource that aligns"},{"line_number":397,"context_line":"closely with fields on a pre-existing plugin. In some cases it makes sense to"},{"line_number":398,"context_line":"duplicate data (to maintain compatibility with the service API whilst making"},{"line_number":399,"context_line":"it easier for users to search across resources). The ``ipv4_addresses`` and"},{"line_number":400,"context_line":"``ipv6_addresses`` fields are an example of this."}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a629dbe_f3b9b9cc","line":397,"range":{"start_line":397,"start_character":38,"end_line":397,"end_character":44},"in_reply_to":"fa6399be_18e7ec11","updated":"2016-11-08 22:11:01.000000000","message":"Done","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"8f8326e3a9cca6eeb57e691790b227f11326457a","unresolved":false,"context_lines":[{"line_number":395,"context_line":""},{"line_number":396,"context_line":"When creating mappings, consider if there is data in a resource that aligns"},{"line_number":397,"context_line":"closely with fields on a pre-existing plugin. In some cases it makes sense to"},{"line_number":398,"context_line":"duplicate data (to maintain compatibility with the service API whilst making"},{"line_number":399,"context_line":"it easier for users to search across resources). The ``ipv4_addresses`` and"},{"line_number":400,"context_line":"``ipv6_addresses`` fields are an example of this."},{"line_number":401,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_d8b734f3","line":398,"range":{"start_line":398,"start_character":63,"end_line":398,"end_character":69},"updated":"2016-10-13 18:42:42.000000000","message":"How formal! Good for folks who learned English by listening to the BBC :).","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"ec34c4f0bae63c19fedaae4648de7098b70001e4","unresolved":false,"context_lines":[{"line_number":395,"context_line":""},{"line_number":396,"context_line":"When creating mappings, consider if there is data in a resource that aligns"},{"line_number":397,"context_line":"closely with fields on a pre-existing plugin. In some cases it makes sense to"},{"line_number":398,"context_line":"duplicate data (to maintain compatibility with the service API whilst making"},{"line_number":399,"context_line":"it easier for users to search across resources). The ``ipv4_addresses`` and"},{"line_number":400,"context_line":"``ipv6_addresses`` fields are an example of this."},{"line_number":401,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a629dbe_b3a9017e","line":398,"range":{"start_line":398,"start_character":63,"end_line":398,"end_character":69},"in_reply_to":"fa6399be_d8b734f3","updated":"2016-11-08 22:11:01.000000000","message":"Not a conscious choice :) In my defence it is much more common in British English than American.","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"8f8326e3a9cca6eeb57e691790b227f11326457a","unresolved":false,"context_lines":[{"line_number":402,"context_line":".. note::"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"  Where field names match those in other mapped plugins, the definitions must"},{"line_number":405,"context_line":"  be the same. Lucene (and Elasticsearch as of version 2.x) cannot cope with"},{"line_number":406,"context_line":"  conflicting field definitions in the same index."},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"Doc values"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_b87a8075","line":405,"range":{"start_line":405,"start_character":15,"end_line":405,"end_character":59},"updated":"2016-10-13 18:42:42.000000000","message":"It seems that mentioning Lucene here is confusing. We haven\u0027t mentioned it at all in this page. Most folks perusing this document probably do not know that Elasticsearch is built in Lucene. Maybe this should be changed to:\n\n    \"Elasticsearch (as of version 2.X) cannot cope...\"","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"ec34c4f0bae63c19fedaae4648de7098b70001e4","unresolved":false,"context_lines":[{"line_number":402,"context_line":".. note::"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"  Where field names match those in other mapped plugins, the definitions must"},{"line_number":405,"context_line":"  be the same. Lucene (and Elasticsearch as of version 2.x) cannot cope with"},{"line_number":406,"context_line":"  conflicting field definitions in the same index."},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"Doc values"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a629dbe_b3c0212c","line":405,"range":{"start_line":405,"start_character":15,"end_line":405,"end_character":59},"in_reply_to":"fa6399be_b87a8075","updated":"2016-11-08 22:11:01.000000000","message":"Done, added link to docs","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"}],"searchlight/elasticsearch/plugins/neutron/__init__.py":[{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"8f8326e3a9cca6eeb57e691790b227f11326457a","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    serialized[\u0027project_id\u0027] \u003d serialized[\u0027tenant_id\u0027]"},{"line_number":70,"context_line":"    gateway_ip \u003d serialized.get(\u0027gateway_ip\u0027)"},{"line_number":71,"context_line":"    if gateway_ip:"},{"line_number":72,"context_line":"        if serialized[\u0027ip_version\u0027] \u003d\u003d 4:"},{"line_number":73,"context_line":"            serialized[\u0027ipv4_addresses\u0027] \u003d [serialized[\u0027gateway_ip\u0027]]"},{"line_number":74,"context_line":"        elif serialized[\u0027ip_version\u0027] \u003d\u003d 6:"},{"line_number":75,"context_line":"            serialized[\u0027ipv6_addresses\u0027] \u003d [serialized[\u0027gateway_ip\u0027]]"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_b35621cc","line":72,"updated":"2016-10-13 18:42:42.000000000","message":"Nit: We\u0027re assuming that ip_version will always be set. Looking at the API this seems to be the case. If not, we could always check against utils.is_ipv4_addresses and utils.is_ipv6_addresses in an else clause after checking for \"ip_version \u003d\u003d 6\".\n\nBut this is a corner case (misformed payload from Neutron) that we do not care much about.","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"ec34c4f0bae63c19fedaae4648de7098b70001e4","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    serialized[\u0027project_id\u0027] \u003d serialized[\u0027tenant_id\u0027]"},{"line_number":70,"context_line":"    gateway_ip \u003d serialized.get(\u0027gateway_ip\u0027)"},{"line_number":71,"context_line":"    if gateway_ip:"},{"line_number":72,"context_line":"        if serialized[\u0027ip_version\u0027] \u003d\u003d 4:"},{"line_number":73,"context_line":"            serialized[\u0027ipv4_addresses\u0027] \u003d [serialized[\u0027gateway_ip\u0027]]"},{"line_number":74,"context_line":"        elif serialized[\u0027ip_version\u0027] \u003d\u003d 6:"},{"line_number":75,"context_line":"            serialized[\u0027ipv6_addresses\u0027] \u003d [serialized[\u0027gateway_ip\u0027]]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_6e914052","line":72,"in_reply_to":"fa6399be_b35621cc","updated":"2016-11-08 22:11:01.000000000","message":"I don\u0027t think it\u0027s possible to set a gateway ip without setting ip_version (and a submnet that doens\u0027t define ip_version wouldn\u0027t be very useful) but checking with utils is arguably more correct","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"8f8326e3a9cca6eeb57e691790b227f11326457a","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    gateway_ip \u003d serialized.get(\u0027gateway_ip\u0027)"},{"line_number":71,"context_line":"    if gateway_ip:"},{"line_number":72,"context_line":"        if serialized[\u0027ip_version\u0027] \u003d\u003d 4:"},{"line_number":73,"context_line":"            serialized[\u0027ipv4_addresses\u0027] \u003d [serialized[\u0027gateway_ip\u0027]]"},{"line_number":74,"context_line":"        elif serialized[\u0027ip_version\u0027] \u003d\u003d 6:"},{"line_number":75,"context_line":"            serialized[\u0027ipv6_addresses\u0027] \u003d [serialized[\u0027gateway_ip\u0027]]"},{"line_number":76,"context_line":"    return serialized"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_f80eb839","line":73,"range":{"start_line":73,"start_character":44,"end_line":73,"end_character":68},"updated":"2016-10-13 18:42:42.000000000","message":"Nit: We already have this value in gateway_ip, we can use it directly.","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"ec34c4f0bae63c19fedaae4648de7098b70001e4","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    gateway_ip \u003d serialized.get(\u0027gateway_ip\u0027)"},{"line_number":71,"context_line":"    if gateway_ip:"},{"line_number":72,"context_line":"        if serialized[\u0027ip_version\u0027] \u003d\u003d 4:"},{"line_number":73,"context_line":"            serialized[\u0027ipv4_addresses\u0027] \u003d [serialized[\u0027gateway_ip\u0027]]"},{"line_number":74,"context_line":"        elif serialized[\u0027ip_version\u0027] \u003d\u003d 6:"},{"line_number":75,"context_line":"            serialized[\u0027ipv6_addresses\u0027] \u003d [serialized[\u0027gateway_ip\u0027]]"},{"line_number":76,"context_line":"    return serialized"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_4ea47ca5","line":73,"range":{"start_line":73,"start_character":44,"end_line":73,"end_character":68},"in_reply_to":"fa6399be_f80eb839","updated":"2016-11-08 22:11:01.000000000","message":"Done","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"8f8326e3a9cca6eeb57e691790b227f11326457a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        if serialized[\u0027ip_version\u0027] \u003d\u003d 4:"},{"line_number":73,"context_line":"            serialized[\u0027ipv4_addresses\u0027] \u003d [serialized[\u0027gateway_ip\u0027]]"},{"line_number":74,"context_line":"        elif serialized[\u0027ip_version\u0027] \u003d\u003d 6:"},{"line_number":75,"context_line":"            serialized[\u0027ipv6_addresses\u0027] \u003d [serialized[\u0027gateway_ip\u0027]]"},{"line_number":76,"context_line":"    return serialized"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_5802440c","line":75,"range":{"start_line":75,"start_character":44,"end_line":75,"end_character":68},"updated":"2016-10-13 18:42:42.000000000","message":"Ditto nit.","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"8f8326e3a9cca6eeb57e691790b227f11326457a","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            serialized[\u0027ipv4_addresses\u0027] \u003d [serialized[\u0027gateway_ip\u0027]]"},{"line_number":74,"context_line":"        elif serialized[\u0027ip_version\u0027] \u003d\u003d 6:"},{"line_number":75,"context_line":"            serialized[\u0027ipv6_addresses\u0027] \u003d [serialized[\u0027gateway_ip\u0027]]"},{"line_number":76,"context_line":"    return serialized"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def serialize_router(router, updated_at\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_13d18dfa","line":76,"updated":"2016-10-13 18:42:42.000000000","message":"All of the other resources set both ipv4_addresses and ipv6_addresses fields. If there are no values, they are set to the empty list. We should probably do that here also.","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"ec34c4f0bae63c19fedaae4648de7098b70001e4","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            serialized[\u0027ipv4_addresses\u0027] \u003d [serialized[\u0027gateway_ip\u0027]]"},{"line_number":74,"context_line":"        elif serialized[\u0027ip_version\u0027] \u003d\u003d 6:"},{"line_number":75,"context_line":"            serialized[\u0027ipv6_addresses\u0027] \u003d [serialized[\u0027gateway_ip\u0027]]"},{"line_number":76,"context_line":"    return serialized"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def serialize_router(router, updated_at\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_aeeef8b1","line":76,"in_reply_to":"fa6399be_13d18dfa","updated":"2016-11-08 22:11:01.000000000","message":"Hmmm.. I\u0027m not 100% onboard with that approach but i guess it doesn\u0027t hurt.","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"}],"searchlight/elasticsearch/plugins/nova/__init__.py":[{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"8f8326e3a9cca6eeb57e691790b227f11326457a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if key in serialized:"},{"line_number":102,"context_line":"            serialized.pop(key)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    host_ip \u003d serialized[\u0027host_ip\u0027]"},{"line_number":105,"context_line":"    serialized[\u0027ipv4_addresses\u0027] \u003d ([host_ip]"},{"line_number":106,"context_line":"                                    if utils.is_ipv4_address(host_ip)"},{"line_number":107,"context_line":"                                    else [])"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_b3e621ae","line":104,"updated":"2016-10-13 18:42:42.000000000","message":"Should we use serialized.get(\u0027host_ip\u0027) so we don\u0027t throw a KeyError for a \"bad\" payload?","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"ec34c4f0bae63c19fedaae4648de7098b70001e4","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if key in serialized:"},{"line_number":102,"context_line":"            serialized.pop(key)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    host_ip \u003d serialized[\u0027host_ip\u0027]"},{"line_number":105,"context_line":"    serialized[\u0027ipv4_addresses\u0027] \u003d ([host_ip]"},{"line_number":106,"context_line":"                                    if utils.is_ipv4_address(host_ip)"},{"line_number":107,"context_line":"                                    else [])"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_4e6e3c30","line":104,"in_reply_to":"fa6399be_b3e621ae","updated":"2016-11-08 22:11:01.000000000","message":"I guess it\u0027s possible to have a host without an IP, yeah","commit_id":"fee4ce233dd63875123f57e6a8d69f040c72473f"}],"searchlight/tests/functional/test_neutron_plugins.py":[{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"d7269420c63c2a36f22b8128dcd6177dd8a8c496","unresolved":false,"context_lines":[{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        query \u003d {"},{"line_number":204,"context_line":"            \"query\": {"},{"line_number":205,"context_line":"                \"term\": {\"external_gateway_info.enable_snat\": True}"},{"line_number":206,"context_line":"            },"},{"line_number":207,"context_line":"            \"type\": \"OS::Neutron::Router\""},{"line_number":208,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_63798c93","line":205,"range":{"start_line":205,"start_character":66,"end_line":205,"end_character":67},"updated":"2016-11-15 11:24:42.000000000","message":"so no need to use nested query on one level nested object right? These elasticsearch DSL always surprise me : )","commit_id":"b747ae9af6cb358353a0814433d826455337fba5"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"28b1e2936c662d4777cd8fa43a69c30c126ac065","unresolved":false,"context_lines":[{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        query \u003d {"},{"line_number":204,"context_line":"            \"query\": {"},{"line_number":205,"context_line":"                \"term\": {\"external_gateway_info.enable_snat\": True}"},{"line_number":206,"context_line":"            },"},{"line_number":207,"context_line":"            \"type\": \"OS::Neutron::Router\""},{"line_number":208,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_054139a9","line":205,"range":{"start_line":205,"start_character":66,"end_line":205,"end_character":67},"in_reply_to":"7a77a97e_63798c93","updated":"2016-12-05 19:59:49.000000000","message":"\u0027nested\u0027 is only necessary where the mapping type is \u0027nested\u0027. The depth isn\u0027t relevant (this could be \"term\": {\"something.something.something\"} as long as none of those \u0027somethings\u0027 were nested). The only time \u0027nested\u0027 should be used is where there can be an array of complex objects.","commit_id":"b747ae9af6cb358353a0814433d826455337fba5"}],"searchlight/tests/unit/test_nova_server_plugin.py":[{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"d7269420c63c2a36f22b8128dcd6177dd8a8c496","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            u\u0027updated_at\u0027: updated_now,"},{"line_number":250,"context_line":"        }"},{"line_number":251,"context_line":"        with mock.patch(nova_server_getter, return_value\u003dself.instance1):"},{"line_number":252,"context_line":"            serialized \u003d self.plugin.serialize(self.instance2.id)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        self.assertEqual(expected, serialized)"},{"line_number":255,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_e0f672d6","line":252,"range":{"start_line":252,"start_character":64,"end_line":252,"end_character":65},"updated":"2016-11-15 11:24:42.000000000","message":"don\u0027t know why use instance2.id here, although result won\u0027t change with mocked return value set to instance1.","commit_id":"b747ae9af6cb358353a0814433d826455337fba5"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"28b1e2936c662d4777cd8fa43a69c30c126ac065","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            u\u0027updated_at\u0027: updated_now,"},{"line_number":250,"context_line":"        }"},{"line_number":251,"context_line":"        with mock.patch(nova_server_getter, return_value\u003dself.instance1):"},{"line_number":252,"context_line":"            serialized \u003d self.plugin.serialize(self.instance2.id)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        self.assertEqual(expected, serialized)"},{"line_number":255,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_a5f4055b","line":252,"range":{"start_line":252,"start_character":64,"end_line":252,"end_character":65},"in_reply_to":"7a77a97e_e0f672d6","updated":"2016-12-05 19:59:49.000000000","message":"I think because instance1 had ipv6 addresses. I can\u0027t recall why i changed it, will take a look","commit_id":"b747ae9af6cb358353a0814433d826455337fba5"}],"searchlight/tests/unit/test_plugin_utils.py":[{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"a0fb71aa02a88a69311b25ee6cf30162ca43b82e","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    def test_ip_ipv6_address(self):"},{"line_number":219,"context_line":"        self.assertTrue(plugin_utils.is_ipv6_address("},{"line_number":220,"context_line":"            \u00272001:0db8:0a0b:12f0:0000:0000:0000:0001\u0027))"},{"line_number":221,"context_line":"        self.assertTrue(plugin_utils.is_ipv6_address(\u00272001:db8:0:1:1:1:1:1\u0027))"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        self.assertFalse(plugin_utils.is_ipv6_address(\u0027127.0.0.1\u0027))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a95cdbc_adcc046b","line":220,"updated":"2016-10-06 22:13:20.000000000","message":"For some reason, the ipaddress package (for Python2.7) does not like these strings., It is expecting a unicode. This will work: \n\n    self.assertTrue(plugin_utils.is_ipv6_address(\n            u\u00272001:0db8:0a0b:12f0:0000:0000:0000:0001\u0027))\n\nThis is why Jenkins is failing.","commit_id":"6824ba096f71ebd3bbb65c0f828c66f174e4adee"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"a0fb71aa02a88a69311b25ee6cf30162ca43b82e","unresolved":false,"context_lines":[{"line_number":218,"context_line":"    def test_ip_ipv6_address(self):"},{"line_number":219,"context_line":"        self.assertTrue(plugin_utils.is_ipv6_address("},{"line_number":220,"context_line":"            \u00272001:0db8:0a0b:12f0:0000:0000:0000:0001\u0027))"},{"line_number":221,"context_line":"        self.assertTrue(plugin_utils.is_ipv6_address(\u00272001:db8:0:1:1:1:1:1\u0027))"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        self.assertFalse(plugin_utils.is_ipv6_address(\u0027127.0.0.1\u0027))"},{"line_number":224,"context_line":"        self.assertFalse(plugin_utils.is_ipv6_address(\u002770000:1:1:1:1:1:1:1\u0027))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a95cdbc_6de59cda","line":221,"updated":"2016-10-06 22:13:20.000000000","message":"Needs a unicode string u\u00272001:db8:0:1:1:1:1:1\u0027","commit_id":"6824ba096f71ebd3bbb65c0f828c66f174e4adee"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"a0fb71aa02a88a69311b25ee6cf30162ca43b82e","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        self.assertTrue(plugin_utils.is_ipv6_address(\u00272001:db8:0:1:1:1:1:1\u0027))"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        self.assertFalse(plugin_utils.is_ipv6_address(\u0027127.0.0.1\u0027))"},{"line_number":224,"context_line":"        self.assertFalse(plugin_utils.is_ipv6_address(\u002770000:1:1:1:1:1:1:1\u0027))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a95cdbc_edd9ac23","line":224,"updated":"2016-10-06 22:13:20.000000000","message":"These two may be failing since we are not passing in a unicode string as opposed to the format being bad.","commit_id":"6824ba096f71ebd3bbb65c0f828c66f174e4adee"}]}
