)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"de3014145b5c4b2a05d0708ec4f9185550679c35","unresolved":false,"context_lines":[{"line_number":10,"context_line":"IPv4 address will lead to interface ip is None, this not reasonable."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ia527a5aa48e3daf66d2be190e43935b38b3bd6f9"},{"line_number":13,"context_line":"Partial-Bug: #1744064"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa0c359_3934784a","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":21},"updated":"2018-02-05 08:16:33.000000000","message":"Looks like this patch will close the bug, please ignore if I\u0027m wrong.","commit_id":"5e24e1a0bf3694dce838338198fe9c35b8e4b94b"}],"ironic_python_agent/hardware.py":[{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"8a48dd6f63a191e3dc775b29ad8bd76479a93958","unresolved":false,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"class NetworkInterface(encoding.SerializableComparable):"},{"line_number":249,"context_line":"    serializable_fields \u003d (\u0027name\u0027, \u0027mac_address\u0027, \u0027ipv4_address\u0027,"},{"line_number":250,"context_line":"                           \u0027has_carrier\u0027, \u0027lldp\u0027, \u0027vendor\u0027, \u0027product\u0027,"},{"line_number":251,"context_line":"                           \u0027client_id\u0027, \u0027biosdevname\u0027)"},{"line_number":252,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_a882604e","line":249,"updated":"2018-01-25 09:45:15.000000000","message":"we also need to add ipv6_address here.","commit_id":"f9d5103ee588b039009724b470bb5d47bdfa8df4"},{"author":{"_account_id":18480,"name":"zhengy","email":"zhengy23@163.com","username":"zhengyong"},"change_message_id":"5f2f5dac14d9416197211c80c52ca14c5174544a","unresolved":false,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"class NetworkInterface(encoding.SerializableComparable):"},{"line_number":249,"context_line":"    serializable_fields \u003d (\u0027name\u0027, \u0027mac_address\u0027, \u0027ipv4_address\u0027,"},{"line_number":250,"context_line":"                           \u0027has_carrier\u0027, \u0027lldp\u0027, \u0027vendor\u0027, \u0027product\u0027,"},{"line_number":251,"context_line":"                           \u0027client_id\u0027, \u0027biosdevname\u0027)"},{"line_number":252,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_3c3f91d7","line":249,"in_reply_to":"5f93b717_a882604e","updated":"2018-02-04 10:03:53.000000000","message":"I forgot this, thank you!","commit_id":"f9d5103ee588b039009724b470bb5d47bdfa8df4"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"be5d2b046dfcf465e192df1b39719b8ad05cb93e","unresolved":false,"context_lines":[{"line_number":593,"context_line":"    def get_ipv4_addr(self, interface_id):"},{"line_number":594,"context_line":"        return netutils.get_ipv4_addr(interface_id)"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    def get_ipv6_addr(self, interface_id):"},{"line_number":597,"context_line":"        return netutils.get_ipv6_addr(interface_id)"},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    def get_bios_given_nic_name(self, interface_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_39ea2bd9","line":596,"updated":"2018-07-23 21:38:23.000000000","message":"Greetings, It would be good for us to have a docstring to describe which IP address this is... as in is it a local link address, a global address, privacy address, etc.","commit_id":"d7078f9999c42d77818c2cc202263d5d5f8663d2"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"79a482e8511e3d01ad5d1e549f00a0e1c7f65d71","unresolved":false,"context_lines":[{"line_number":593,"context_line":"    def get_ipv4_addr(self, interface_id):"},{"line_number":594,"context_line":"        return netutils.get_ipv4_addr(interface_id)"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    def get_ipv6_addr(self, interface_id):"},{"line_number":597,"context_line":"        return netutils.get_ipv6_addr(interface_id)"},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"    def get_bios_given_nic_name(self, interface_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_ad8b5120","line":596,"in_reply_to":"5f7c97a3_39ea2bd9","updated":"2018-07-24 01:57:31.000000000","message":"This is the default inet6 address retrieved by netifaces.\n\nI think mainly would be ULA addresses (I guess that\u0027s privacy address you mean). Global addresses are possible, but unlikely with the scenario using IPA. Link local addresses would be a typical case in an IPv4 network, generated by SLAAC.\n\nWhile I don\u0027t think it is the focus of IPA, we are collecting what is needed in the introspection stage. How it is used is determined by the consumer.","commit_id":"d7078f9999c42d77818c2cc202263d5d5f8663d2"}],"ironic_python_agent/netutils.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d12d5e6f20fd05707ad8101c9e3a1995d9c0a9b9","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"def get_ipv6_addr(interface_id):"},{"line_number":216,"context_line":"    try:"},{"line_number":217,"context_line":"        addrs \u003d netifaces.ifaddresses(interface_id)"},{"line_number":218,"context_line":"        return addrs[netifaces.AF_INET6][0][\u0027addr\u0027]"},{"line_number":219,"context_line":"    except (ValueError, IndexError, KeyError):"},{"line_number":220,"context_line":"        # No default IPv6 address found"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa0c359_9247734c","line":217,"updated":"2018-02-06 20:42:25.000000000","message":"Question: would this return only global, or would it return link layer and global addresses? I suspect global would be preferred in any routed network. Is there any way for us to tell?","commit_id":"5e24e1a0bf3694dce838338198fe9c35b8e4b94b"},{"author":{"_account_id":18480,"name":"zhengy","email":"zhengy23@163.com","username":"zhengyong"},"change_message_id":"9e94710aa20ab87e9130e9deec42d520fdc3ecd8","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"def get_ipv6_addr(interface_id):"},{"line_number":216,"context_line":"    try:"},{"line_number":217,"context_line":"        addrs \u003d netifaces.ifaddresses(interface_id)"},{"line_number":218,"context_line":"        return addrs[netifaces.AF_INET6][0][\u0027addr\u0027]"},{"line_number":219,"context_line":"    except (ValueError, IndexError, KeyError):"},{"line_number":220,"context_line":"        # No default IPv6 address found"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa0c359_1602fe0b","line":217,"in_reply_to":"3fa0c359_9247734c","updated":"2018-02-12 03:08:44.000000000","message":"if interface only has one link layer IPv6 address, it will return the link layer ip;  \nif link layer ip and global address both exist, it will return global address","commit_id":"5e24e1a0bf3694dce838338198fe9c35b8e4b94b"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"d7c472dc27dd29488d47bd767ace1b0ef959b8db","unresolved":false,"context_lines":[{"line_number":228,"context_line":"    except (ValueError, IndexError, KeyError):"},{"line_number":229,"context_line":"        # No default IPv6 address found"},{"line_number":230,"context_line":"        return None"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"def interface_has_carrier(interface_name):"},{"line_number":234,"context_line":"    path \u003d \u0027/sys/class/net/{}/carrier\u0027.format(interface_name)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_e6b5abef","line":231,"updated":"2018-03-21 17:00:30.000000000","message":"get_ipv4_addr and get_ipv6_addr share large common bits, a further suggestion is to create a helper method, and refactor the two based upon it.","commit_id":"49af46ca7c602c7b54f6fa4f3bb9a9c03a83bc41"}],"releasenotes/notes/fix-not-get-IPv6-address-when-inspecting-dd819d543f851a63.yaml":[{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"8a48dd6f63a191e3dc775b29ad8bd76479a93958","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixes only get IPv4 network address when ``inspecting host``."},{"line_number":4,"context_line":"    Collect IPv6 address at the same time."},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5f93b717_28ff30ab","line":3,"range":{"start_line":3,"start_character":45,"end_line":3,"end_character":64},"updated":"2018-01-25 09:45:15.000000000","message":"I think we don\u0027t need to code block it.","commit_id":"f9d5103ee588b039009724b470bb5d47bdfa8df4"}],"releasenotes/notes/get-ipv6-address-when-getting-interfacer-info-in-inspect-dd819d543f851a63.yaml":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d12d5e6f20fd05707ad8101c9e3a1995d9c0a9b9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixes only get IPv4 network address when inspecting host."},{"line_number":4,"context_line":"    Collect IPv6 address at the same time."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa0c359_2f1abc7c","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":5},"updated":"2018-02-06 20:42:25.000000000","message":"While a bug fix or defect in the software upon reliance of ipv4, it is still technically a feature and we should detail it as such.\nAs such, maybe a note of: \"Adds collection of IPv6 network address details in addition to the previously collected IPv4 address details.\n\nOtherwise, if we keep it a bug, we should include a link to the bug since this is a partial-bug according to the commit message.","commit_id":"5e24e1a0bf3694dce838338198fe9c35b8e4b94b"},{"author":{"_account_id":18480,"name":"zhengy","email":"zhengy23@163.com","username":"zhengyong"},"change_message_id":"9e94710aa20ab87e9130e9deec42d520fdc3ecd8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixes only get IPv4 network address when inspecting host."},{"line_number":4,"context_line":"    Collect IPv6 address at the same time."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa0c359_51117051","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":5},"in_reply_to":"3fa0c359_2f1abc7c","updated":"2018-02-12 03:08:44.000000000","message":"Thank you, I will fix it.","commit_id":"5e24e1a0bf3694dce838338198fe9c35b8e4b94b"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"95fa9b764ef968df008317ec6c3487074d03d21e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Adds collection of IPv6 network address details in addition to"},{"line_number":4,"context_line":"    the previously collected IPv4 address details only."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"df7087c5_c6f4278a","line":3,"range":{"start_line":3,"start_character":44,"end_line":3,"end_character":51},"updated":"2018-03-21 17:05:54.000000000","message":"we only return ip address, no more, to be accurate this word can be removed.","commit_id":"49af46ca7c602c7b54f6fa4f3bb9a9c03a83bc41"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"95fa9b764ef968df008317ec6c3487074d03d21e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Adds collection of IPv6 network address details in addition to"},{"line_number":4,"context_line":"    the previously collected IPv4 address details only."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"df7087c5_86ee2fb2","line":4,"range":{"start_line":4,"start_character":42,"end_line":4,"end_character":49},"updated":"2018-03-21 17:05:54.000000000","message":"ditto","commit_id":"49af46ca7c602c7b54f6fa4f3bb9a9c03a83bc41"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"d7c472dc27dd29488d47bd767ace1b0ef959b8db","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Adds collection of IPv6 network address details in addition to"},{"line_number":4,"context_line":"    the previously collected IPv4 address details only."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"df7087c5_a669f3be","line":4,"range":{"start_line":3,"start_character":52,"end_line":4,"end_character":54},"updated":"2018-03-21 17:00:30.000000000","message":"this confuses me, I guess you should remove the word ``only``.","commit_id":"49af46ca7c602c7b54f6fa4f3bb9a9c03a83bc41"}],"releasenotes/notes/support-collecting-ipv6-address-dd819d543f851a63.yaml":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"be5d2b046dfcf465e192df1b39719b8ad05cb93e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Adds support to collect IPv6 address for interfaces."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5f7c97a3_f99a7373","line":3,"updated":"2018-07-23 21:38:23.000000000","message":"As previously mentioned, which IPv6 addresses, largely because if privacy extensions are present, the address could be semi-randomized.","commit_id":"d7078f9999c42d77818c2cc202263d5d5f8663d2"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"79a482e8511e3d01ad5d1e549f00a0e1c7f65d71","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Adds support to collect IPv6 address for interfaces."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5f7c97a3_ed5aa980","line":3,"in_reply_to":"5f7c97a3_f99a7373","updated":"2018-07-24 01:57:31.000000000","message":"If you are referring to RFC 4941 (Privacy Extensions for Stateless Address Autoconfiguration in IPv6), it\u0027s a link-local type address, which will be filtered out by ironic-inspector.\n\nPerhaps your concern stands if there are other use cases. But like my comment in the other file, the focus of IPA is collecting, how the data is used is up to consumer.\n\nI wonder if there is some signature with privacy extension enabled (I haven\u0027t seen the protocol yet), so we can check whether or not using it.","commit_id":"d7078f9999c42d77818c2cc202263d5d5f8663d2"}]}
