)]}'
{"oslo_config/types.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"beb689071959ed5cf5a50cc21a21b5e1625a8ec9","unresolved":false,"context_lines":[{"line_number":766,"context_line":"    def __init__(self, type_name\u003d\u0027hostname value\u0027):"},{"line_number":767,"context_line":"        super(Hostname, self).__init__(type_name\u003dtype_name)"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"    def __call__(self, value, regex\u003dHOSTNAME_REGEX):"},{"line_number":770,"context_line":"        \"\"\"Check hostname is valid."},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"        Ensures that each segment"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_9f5b092d","line":769,"range":{"start_line":769,"start_character":28,"end_line":769,"end_character":50},"updated":"2020-10-29 10:48:30.000000000","message":"Do we need this?","commit_id":"f37bcc779347c9e0d1e37258a6d072b718edf7f7"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"b21c7739d89a5a0891dbd7017112dba8979bfbc9","unresolved":false,"context_lines":[{"line_number":766,"context_line":"    def __init__(self, type_name\u003d\u0027hostname value\u0027):"},{"line_number":767,"context_line":"        super(Hostname, self).__init__(type_name\u003dtype_name)"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"    def __call__(self, value, regex\u003dHOSTNAME_REGEX):"},{"line_number":770,"context_line":"        \"\"\"Check hostname is valid."},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"        Ensures that each segment"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_e2dc2148","line":769,"range":{"start_line":769,"start_character":28,"end_line":769,"end_character":50},"in_reply_to":"1f621f24_9f5b092d","updated":"2020-10-29 16:55:09.000000000","message":"Yes we need this, because now we have two different regex.","commit_id":"f37bcc779347c9e0d1e37258a6d072b718edf7f7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"beb689071959ed5cf5a50cc21a21b5e1625a8ec9","unresolved":false,"context_lines":[{"line_number":845,"context_line":"            try:"},{"line_number":846,"context_line":"                value \u003d self.hostname(value)"},{"line_number":847,"context_line":"            except ValueError:"},{"line_number":848,"context_line":"                raise ValueError("},{"line_number":849,"context_line":"                    \"%s is not a valid host address\" % (value,))"},{"line_number":850,"context_line":"        return value"},{"line_number":851,"context_line":""},{"line_number":852,"context_line":"    def __repr__(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_5f7a1188","line":849,"range":{"start_line":848,"start_character":33,"end_line":849,"end_character":20},"updated":"2020-10-29 10:48:30.000000000","message":"unrelated change","commit_id":"f37bcc779347c9e0d1e37258a6d072b718edf7f7"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"b21c7739d89a5a0891dbd7017112dba8979bfbc9","unresolved":false,"context_lines":[{"line_number":845,"context_line":"            try:"},{"line_number":846,"context_line":"                value \u003d self.hostname(value)"},{"line_number":847,"context_line":"            except ValueError:"},{"line_number":848,"context_line":"                raise ValueError("},{"line_number":849,"context_line":"                    \"%s is not a valid host address\" % (value,))"},{"line_number":850,"context_line":"        return value"},{"line_number":851,"context_line":""},{"line_number":852,"context_line":"    def __repr__(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_82d72d24","line":849,"range":{"start_line":848,"start_character":33,"end_line":849,"end_character":20},"in_reply_to":"1f621f24_5f7a1188","updated":"2020-10-29 16:55:09.000000000","message":"Yes sorry you\u0027re right.","commit_id":"f37bcc779347c9e0d1e37258a6d072b718edf7f7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"beb689071959ed5cf5a50cc21a21b5e1625a8ec9","unresolved":false,"context_lines":[{"line_number":871,"context_line":"    # DOMAIN_REGEX is HOSTNAME_REGEX with the _ character added"},{"line_number":872,"context_line":"    DOMAIN_REGEX \u003d \u0027(?!-)[A-Z0-9-_]{1,63}(?\u003c!-)$\u0027"},{"line_number":873,"context_line":""},{"line_number":874,"context_line":"    def __call__(self, value):"},{"line_number":875,"context_line":"        \"\"\"Checks if is a valid IP/hostname."},{"line_number":876,"context_line":""},{"line_number":877,"context_line":"        If not a valid IP, makes sure it is not a mistyped IP before"},{"line_number":878,"context_line":"        performing checks for it as a hostname."},{"line_number":879,"context_line":""},{"line_number":880,"context_line":"        \"\"\""},{"line_number":881,"context_line":""},{"line_number":882,"context_line":"        try:"},{"line_number":883,"context_line":"            value \u003d super(HostDomain, self).__call__(value)"},{"line_number":884,"context_line":"        except ValueError:"},{"line_number":885,"context_line":"            # Check if domain is valid"},{"line_number":886,"context_line":"            # Add support of underscore"},{"line_number":887,"context_line":"            # https://www.ietf.org/rfc/rfc1912,"},{"line_number":888,"context_line":"            # http://domainkeys.sourceforge.net/underscore.html"},{"line_number":889,"context_line":"            # https://bugs.launchpad.net/oslo.config/+bug/1892044"},{"line_number":890,"context_line":"            try:"},{"line_number":891,"context_line":"                value \u003d self.hostname(value, regex\u003dself.DOMAIN_REGEX)"},{"line_number":892,"context_line":"            except ValueError:"},{"line_number":893,"context_line":"                raise ValueError("},{"line_number":894,"context_line":"                    \"%s is not a valid host address\" % (value,))"},{"line_number":895,"context_line":"        return value"},{"line_number":896,"context_line":""},{"line_number":897,"context_line":"    def __repr__(self):"},{"line_number":898,"context_line":"        return \u0027HostDomain\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_bf6fe5c3","line":895,"range":{"start_line":874,"start_character":0,"end_line":895,"end_character":20},"updated":"2020-10-29 10:48:30.000000000","message":"Is this necessary? Surely if you overrode \u0027Hostname.__call__\u0027 above to use the \u0027DOMAIN_REGEX\u0027 attribute, then we\u0027d get this for free?","commit_id":"f37bcc779347c9e0d1e37258a6d072b718edf7f7"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"b21c7739d89a5a0891dbd7017112dba8979bfbc9","unresolved":false,"context_lines":[{"line_number":871,"context_line":"    # DOMAIN_REGEX is HOSTNAME_REGEX with the _ character added"},{"line_number":872,"context_line":"    DOMAIN_REGEX \u003d \u0027(?!-)[A-Z0-9-_]{1,63}(?\u003c!-)$\u0027"},{"line_number":873,"context_line":""},{"line_number":874,"context_line":"    def __call__(self, value):"},{"line_number":875,"context_line":"        \"\"\"Checks if is a valid IP/hostname."},{"line_number":876,"context_line":""},{"line_number":877,"context_line":"        If not a valid IP, makes sure it is not a mistyped IP before"},{"line_number":878,"context_line":"        performing checks for it as a hostname."},{"line_number":879,"context_line":""},{"line_number":880,"context_line":"        \"\"\""},{"line_number":881,"context_line":""},{"line_number":882,"context_line":"        try:"},{"line_number":883,"context_line":"            value \u003d super(HostDomain, self).__call__(value)"},{"line_number":884,"context_line":"        except ValueError:"},{"line_number":885,"context_line":"            # Check if domain is valid"},{"line_number":886,"context_line":"            # Add support of underscore"},{"line_number":887,"context_line":"            # https://www.ietf.org/rfc/rfc1912,"},{"line_number":888,"context_line":"            # http://domainkeys.sourceforge.net/underscore.html"},{"line_number":889,"context_line":"            # https://bugs.launchpad.net/oslo.config/+bug/1892044"},{"line_number":890,"context_line":"            try:"},{"line_number":891,"context_line":"                value \u003d self.hostname(value, regex\u003dself.DOMAIN_REGEX)"},{"line_number":892,"context_line":"            except ValueError:"},{"line_number":893,"context_line":"                raise ValueError("},{"line_number":894,"context_line":"                    \"%s is not a valid host address\" % (value,))"},{"line_number":895,"context_line":"        return value"},{"line_number":896,"context_line":""},{"line_number":897,"context_line":"    def __repr__(self):"},{"line_number":898,"context_line":"        return \u0027HostDomain\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_42ed15ee","line":895,"range":{"start_line":874,"start_character":0,"end_line":895,"end_character":20},"in_reply_to":"1f621f24_bf6fe5c3","updated":"2020-10-29 16:55:09.000000000","message":"Yes it\u0027s necessary because we have one check more.","commit_id":"f37bcc779347c9e0d1e37258a6d072b718edf7f7"}]}
