)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"7046cfdfe94cf6f9961cfbb653712eedd500a42b","unresolved":false,"context_lines":[{"line_number":20,"context_line":"I also moved the TLDs to a separate list at"},{"line_number":21,"context_line":"etc/designate/tlds-alpha-by-domain.txt.  This is so that it is easier"},{"line_number":22,"context_line":"to update the list.  Also it makes handling the TLDs and SLDs that"},{"line_number":23,"context_line":"act as TLDs similar."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: I9718489335e24cb24733d4c4fc2a966e490014d3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAATn%2F%2B18Q%3D","line":23,"updated":"2013-11-19 13:16:39.000000000","message":"I know its small,but can you stick the bug number here?\neg:\nCloses-Bug: #1249396","commit_id":"0370efe482576f9768077218fc7d1c1fec7cc8b5"}],"designate/central/__init__.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"24eb243968bd2125125d743b5c116f3089e12837","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    cfg.StrOpt(\u0027accepted-tlds\u0027, default\u003d\u0027tlds-alpha-by-domain.txt\u0027,"},{"line_number":36,"context_line":"               help\u003d\u0027Accepted TLDs\u0027),"},{"line_number":37,"context_line":"    cfg.StrOpt(\u0027effective_tlds\u0027, default\u003d\u0027effective_tld_names.dat\u0027,"},{"line_number":38,"context_line":"               help\u003d\u0027Effective TLDs\u0027),"},{"line_number":39,"context_line":"    cfg.IntOpt(\u0027max_domain_name_len\u0027, default\u003d255,"},{"line_number":40,"context_line":"               help\u003d\"Maximum domain name length\"),"},{"line_number":41,"context_line":"    cfg.IntOpt(\u0027max_record_name_len\u0027, default\u003d255,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FLJw%3D","line":38,"updated":"2013-11-13 11:25:36.000000000","message":"Both options should use hyphens rather than underscores, and should end with \"-file\" for consistency with other similar options (e.g. the `policy-file` config option)\n\n(Yea - I know, we currently have a mix of underscore and hyphens for options .. They should also be hyphens, but... they were missed! My bad.)","commit_id":"42bb6f8a44cccf1412644e7ad39935c9c58c595d"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"6e87667ec8a3cbe02e3fd85237fbd7f9153978c2","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    cfg.StrOpt(\u0027accepted-tlds\u0027, default\u003d\u0027tlds-alpha-by-domain.txt\u0027,"},{"line_number":36,"context_line":"               help\u003d\u0027Accepted TLDs\u0027),"},{"line_number":37,"context_line":"    cfg.StrOpt(\u0027effective_tlds\u0027, default\u003d\u0027effective_tld_names.dat\u0027,"},{"line_number":38,"context_line":"               help\u003d\u0027Effective TLDs\u0027),"},{"line_number":39,"context_line":"    cfg.IntOpt(\u0027max_domain_name_len\u0027, default\u003d255,"},{"line_number":40,"context_line":"               help\u003d\"Maximum domain name length\"),"},{"line_number":41,"context_line":"    cfg.IntOpt(\u0027max_record_name_len\u0027, default\u003d255,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FKR4%3D","line":38,"in_reply_to":"AAAATn%2F%2FLJw%3D","updated":"2013-11-13 21:49:58.000000000","message":"Done","commit_id":"42bb6f8a44cccf1412644e7ad39935c9c58c595d"}],"designate/central/effectivetld.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"24eb243968bd2125125d743b5c116f3089e12837","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                line \u003d line.strip()"},{"line_number":45,"context_line":"                self._accepted_tld_list.append(line.lower())"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        LOG.debug(\"Entries in Accepted TLD List: %d\""},{"line_number":48,"context_line":"                  % len(self._accepted_tld_list))"},{"line_number":49,"context_line":"        # LOG.debug(\"Accepted TLD List:\\n%s\" % self._accepted_tld_list)"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FLK8%3D","line":47,"updated":"2013-11-13 11:25:36.000000000","message":"Considering this is a \"at startup\" log entry, I reckon we can use LOG.info() for this and similar log lines..","commit_id":"42bb6f8a44cccf1412644e7ad39935c9c58c595d"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"6e87667ec8a3cbe02e3fd85237fbd7f9153978c2","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                line \u003d line.strip()"},{"line_number":45,"context_line":"                self._accepted_tld_list.append(line.lower())"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        LOG.debug(\"Entries in Accepted TLD List: %d\""},{"line_number":48,"context_line":"                  % len(self._accepted_tld_list))"},{"line_number":49,"context_line":"        # LOG.debug(\"Accepted TLD List:\\n%s\" % self._accepted_tld_list)"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FKS0%3D","line":47,"in_reply_to":"AAAATn%2F%2FLK8%3D","updated":"2013-11-13 21:49:58.000000000","message":"Done","commit_id":"42bb6f8a44cccf1412644e7ad39935c9c58c595d"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"24eb243968bd2125125d743b5c116f3089e12837","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if len(effective_tld_files) \u003d\u003d 0:"},{"line_number":56,"context_line":"            msg \u003d \u0027Unable to determine appropriate effective tlds file\u0027"},{"line_number":57,"context_line":"            raise exceptions.ConfigurationError(msg)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        LOG.info(\u0027Using effective_tld_file found at: %s\u0027"},{"line_number":60,"context_line":"                 % effective_tld_files[0])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FLKo%3D","line":57,"updated":"2013-11-13 11:25:36.000000000","message":"In order to merge this to the stable branch, we\u0027ll need to maintain backwards compatibility.. i.e. not having an effective TLDs file should be acceptable.\n\nAt that point, we should probably do the same for the IANA list too, keeping things consistent.","commit_id":"42bb6f8a44cccf1412644e7ad39935c9c58c595d"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"6e87667ec8a3cbe02e3fd85237fbd7f9153978c2","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if len(effective_tld_files) \u003d\u003d 0:"},{"line_number":56,"context_line":"            msg \u003d \u0027Unable to determine appropriate effective tlds file\u0027"},{"line_number":57,"context_line":"            raise exceptions.ConfigurationError(msg)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        LOG.info(\u0027Using effective_tld_file found at: %s\u0027"},{"line_number":60,"context_line":"                 % effective_tld_files[0])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FJdg%3D","line":57,"in_reply_to":"AAAATn%2F%2FLKo%3D","updated":"2013-11-13 21:49:58.000000000","message":"Done","commit_id":"42bb6f8a44cccf1412644e7ad39935c9c58c595d"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"24eb243968bd2125125d743b5c116f3089e12837","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                line \u003d line.strip()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"                # TODO(vinod): For now we are not handling lines beginning"},{"line_number":82,"context_line":"                # with a !"},{"line_number":83,"context_line":"                if line.startswith(\u0027//\u0027) or line.startswith(\u0027!\u0027) or not line:"},{"line_number":84,"context_line":"                    continue"},{"line_number":85,"context_line":"                labels_len \u003d len(line.split(\u0027.\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FLFE%3D","line":82,"updated":"2013-11-13 11:25:36.000000000","message":"Are the ! lines something we\u0027re going to need to implement in order to merge, or are they really really unlikely to ever bother us?","commit_id":"42bb6f8a44cccf1412644e7ad39935c9c58c595d"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"6e87667ec8a3cbe02e3fd85237fbd7f9153978c2","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                line \u003d line.strip()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"                # TODO(vinod): For now we are not handling lines beginning"},{"line_number":82,"context_line":"                # with a !"},{"line_number":83,"context_line":"                if line.startswith(\u0027//\u0027) or line.startswith(\u0027!\u0027) or not line:"},{"line_number":84,"context_line":"                    continue"},{"line_number":85,"context_line":"                labels_len \u003d len(line.split(\u0027.\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FKR8%3D","line":82,"in_reply_to":"AAAATn%2F%2FLFE%3D","updated":"2013-11-13 21:49:58.000000000","message":"I think we do not need to bother with the ! lines.  I updated the comment","commit_id":"42bb6f8a44cccf1412644e7ad39935c9c58c595d"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"24eb243968bd2125125d743b5c116f3089e12837","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        domain_tld \u003d domain_labels[-1]"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        if domain_tld not in self._accepted_tld_list:"},{"line_number":134,"context_line":"            raise exceptions.InvalidTLD(\u0027Unknown or invalid TLD\u0027)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        # check that this is not an effective TLD"},{"line_number":137,"context_line":"        if len(domain_labels) \u003c\u003d self._max_effective_tld_labels:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FLIU%3D","line":134,"updated":"2013-11-13 11:25:36.000000000","message":"This check, and the more than one label check probably don\u0027t belong in here, and should be kept in central/service.py for now.","commit_id":"42bb6f8a44cccf1412644e7ad39935c9c58c595d"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"6e87667ec8a3cbe02e3fd85237fbd7f9153978c2","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        domain_tld \u003d domain_labels[-1]"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        if domain_tld not in self._accepted_tld_list:"},{"line_number":134,"context_line":"            raise exceptions.InvalidTLD(\u0027Unknown or invalid TLD\u0027)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        # check that this is not an effective TLD"},{"line_number":137,"context_line":"        if len(domain_labels) \u003c\u003d self._max_effective_tld_labels:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FJdY%3D","line":134,"in_reply_to":"AAAATn%2F%2FLIU%3D","updated":"2013-11-13 21:49:58.000000000","message":"Done","commit_id":"42bb6f8a44cccf1412644e7ad39935c9c58c595d"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"24eb243968bd2125125d743b5c116f3089e12837","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        if len(domain_labels) \u003c\u003d self._max_effective_tld_labels:"},{"line_number":138,"context_line":"            # First search the dictionary"},{"line_number":139,"context_line":"            if stripped_domain_name in self._effective_tld_dict.keys():"},{"line_number":140,"context_line":"                raise exceptions.InvalidDomainName("},{"line_number":141,"context_line":"                    \u0027Domain name cannot be the same as an effective TLD\u0027)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        # Now search the list of regular expressions for effective TLDs"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FLIE%3D","line":140,"updated":"2013-11-13 11:25:36.000000000","message":"Can we extend this exception with something specific to registering an SLD, I think that would make the resultant error clearer to end users.","commit_id":"42bb6f8a44cccf1412644e7ad39935c9c58c595d"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"6e87667ec8a3cbe02e3fd85237fbd7f9153978c2","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        if len(domain_labels) \u003c\u003d self._max_effective_tld_labels:"},{"line_number":138,"context_line":"            # First search the dictionary"},{"line_number":139,"context_line":"            if stripped_domain_name in self._effective_tld_dict.keys():"},{"line_number":140,"context_line":"                raise exceptions.InvalidDomainName("},{"line_number":141,"context_line":"                    \u0027Domain name cannot be the same as an effective TLD\u0027)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        # Now search the list of regular expressions for effective TLDs"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FKOA%3D","line":140,"in_reply_to":"AAAATn%2F%2FLIE%3D","updated":"2013-11-13 21:49:58.000000000","message":"Done","commit_id":"42bb6f8a44cccf1412644e7ad39935c9c58c595d"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"c2cdc88cc30f4040be1a163d0b0ea7232bbd1bde","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        LOG.info(\u0027Using effective_tld_file found at: %s\u0027"},{"line_number":109,"context_line":"                 % effective_tld_files[0])"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        with codecs.open(effective_tld_files[0], \"r\", \"utf-8\") as fh:"},{"line_number":112,"context_line":"            for line in fh:"},{"line_number":113,"context_line":"                line \u003d line.strip()"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FHPM%3D","line":111,"updated":"2013-11-14 09:34:36.000000000","message":"I\u0027m still a little concerned this won\u0027t work for IDNs correctly..\n\nCan we add a testcase for the class with some examples?","commit_id":"fd5e3fe4c645b30193a112b6412d2d2d48874628"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"2657edb324fc5d2c5bbed87d0f56f0fc3fd3d360","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        LOG.info(\u0027Using effective_tld_file found at: %s\u0027"},{"line_number":109,"context_line":"                 % effective_tld_files[0])"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        with codecs.open(effective_tld_files[0], \"r\", \"utf-8\") as fh:"},{"line_number":112,"context_line":"            for line in fh:"},{"line_number":113,"context_line":"                line \u003d line.strip()"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FFaM%3D","line":111,"in_reply_to":"AAAATn%2F%2FHPM%3D","updated":"2013-11-14 16:01:48.000000000","message":"Done","commit_id":"fd5e3fe4c645b30193a112b6412d2d2d48874628"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"c2cdc88cc30f4040be1a163d0b0ea7232bbd1bde","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                 % len(self._effective_re_tld_list))"},{"line_number":147,"context_line":"        # LOG.info(\"Effective RE TLD List:\\n%s\" % self._effective_re_tld_list)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":150,"context_line":"        self._load_accepted_tld_list()"},{"line_number":151,"context_line":"        self._load_effective_tld_list()"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FHQc%3D","line":149,"updated":"2013-11-14 09:34:36.000000000","message":"Total nit - Can we move this up to the top of the class so it\u0027s visible at a glance?","commit_id":"fd5e3fe4c645b30193a112b6412d2d2d48874628"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"2657edb324fc5d2c5bbed87d0f56f0fc3fd3d360","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                 % len(self._effective_re_tld_list))"},{"line_number":147,"context_line":"        # LOG.info(\"Effective RE TLD List:\\n%s\" % self._effective_re_tld_list)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":150,"context_line":"        self._load_accepted_tld_list()"},{"line_number":151,"context_line":"        self._load_effective_tld_list()"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FF1o%3D","line":149,"in_reply_to":"AAAATn%2F%2FHQc%3D","updated":"2013-11-14 16:01:48.000000000","message":"Done","commit_id":"fd5e3fe4c645b30193a112b6412d2d2d48874628"},{"author":{"_account_id":8101,"name":"Emmanuel Ankutse","email":"emmanuel.ankutse@rackspace.com","username":"emmanuel.ankutse"},"change_message_id":"d9c5539d37d893fb36709735484e9475716a6c27","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    if labels_len \u003e self._max_effective_re_tld_labels:"},{"line_number":133,"context_line":"                        self._max_effective_re_tld_labels \u003d labels_len"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"                    self._effective_re_tld_list.append("},{"line_number":136,"context_line":"                        \u0027^[^.]*\u0027 + \u0027\\.\u0027.join(line.split(\u0027.\u0027))[1:] + \u0027$\u0027)"},{"line_number":137,"context_line":"                    continue"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FBV4%3D","line":135,"updated":"2013-11-15 15:40:34.000000000","message":"Would be helpful to have comment here on what regular expression is being created; just to jog the memory when we read through this code the next time. I always have to pick a book each time I see regex\u0027s.","commit_id":"b591e15fc3a29e45ccfc9710aaab4c8727847b96"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"76dbfcf9b888a77e387efd0bddc04e843de0a63f","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    if labels_len \u003e self._max_effective_re_tld_labels:"},{"line_number":133,"context_line":"                        self._max_effective_re_tld_labels \u003d labels_len"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"                    self._effective_re_tld_list.append("},{"line_number":136,"context_line":"                        \u0027^[^.]*\u0027 + \u0027\\.\u0027.join(line.split(\u0027.\u0027))[1:] + \u0027$\u0027)"},{"line_number":137,"context_line":"                    continue"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FBM4%3D","line":135,"in_reply_to":"AAAATn%2F%2FBV4%3D","updated":"2013-11-15 16:20:26.000000000","message":"I will add the comments on the regular expression.","commit_id":"b591e15fc3a29e45ccfc9710aaab4c8727847b96"},{"author":{"_account_id":8101,"name":"Emmanuel Ankutse","email":"emmanuel.ankutse@rackspace.com","username":"emmanuel.ankutse"},"change_message_id":"f86abf81ad93277a15f7a2a7bf4171bb046eca94","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    if labels_len \u003e self._max_effective_re_tld_labels:"},{"line_number":133,"context_line":"                        self._max_effective_re_tld_labels \u003d labels_len"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"                    # Convert the wildcard entry to a regular expression"},{"line_number":136,"context_line":"                    # The ^ and $ at the beginning and end respectively are to"},{"line_number":137,"context_line":"                    # match the whole term.  The [^.]* is to match anything"},{"line_number":138,"context_line":"                    # other than a \".\"  This is so that only one label is"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2B1q8%3D","line":135,"updated":"2013-11-19 14:27:32.000000000","message":"Great!","commit_id":"0370efe482576f9768077218fc7d1c1fec7cc8b5"}],"designate/central/service.py":[{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"9019425ea5b7f66f0d7365fc110fd08670b92858","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # Validate TLD.  In case of invalid TLD, is_valid_tld raises the"},{"line_number":89,"context_line":"        # appropriate exceptions"},{"line_number":90,"context_line":"        self.effective_tld.is_valid_tld(domain_name)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        # Check domain name blacklist"},{"line_number":93,"context_line":"        if self._is_blacklisted_domain_name(context, domain_name):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FKE4%3D","line":90,"updated":"2013-11-13 16:11:04.000000000","message":"I personally would prefer to rasie all validation exceptions in the same place, so changing the effective_tld call to return a bool, would be preferable to me","commit_id":"42bb6f8a44cccf1412644e7ad39935c9c58c595d"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"6e87667ec8a3cbe02e3fd85237fbd7f9153978c2","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # Validate TLD.  In case of invalid TLD, is_valid_tld raises the"},{"line_number":89,"context_line":"        # appropriate exceptions"},{"line_number":90,"context_line":"        self.effective_tld.is_valid_tld(domain_name)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        # Check domain name blacklist"},{"line_number":93,"context_line":"        if self._is_blacklisted_domain_name(context, domain_name):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FJdw%3D","line":90,"in_reply_to":"AAAATn%2F%2FKE4%3D","updated":"2013-11-13 21:49:58.000000000","message":"Done","commit_id":"42bb6f8a44cccf1412644e7ad39935c9c58c595d"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"c2cdc88cc30f4040be1a163d0b0ea7232bbd1bde","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            raise exceptions.InvalidDomainName(\u0027More than one label is \u0027"},{"line_number":94,"context_line":"                                               \u0027required\u0027)"},{"line_number":95,"context_line":"        # Check the TLD for validity"},{"line_number":96,"context_line":"        if self.effective_tld.accepted_tld_list:"},{"line_number":97,"context_line":"            domain_tld \u003d domain_labels[-1].lower()"},{"line_number":98,"context_line":"            if domain_tld not in self.effective_tld.accepted_tld_list:"},{"line_number":99,"context_line":"                raise exceptions.InvalidTLD(\u0027Unknown or invalid TLD\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FHPE%3D","line":96,"updated":"2013-11-14 09:34:36.000000000","message":"I think this block can be replaced with the inverse of the block below..\n\n    if not self.effective_tld.is_effective_tld(domain_tld):\n        raise exceptions.InvalidTLD(\u0027Unknown or invalid TLD\u0027)","commit_id":"fd5e3fe4c645b30193a112b6412d2d2d48874628"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"2657edb324fc5d2c5bbed87d0f56f0fc3fd3d360","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            raise exceptions.InvalidDomainName(\u0027More than one label is \u0027"},{"line_number":94,"context_line":"                                               \u0027required\u0027)"},{"line_number":95,"context_line":"        # Check the TLD for validity"},{"line_number":96,"context_line":"        if self.effective_tld.accepted_tld_list:"},{"line_number":97,"context_line":"            domain_tld \u003d domain_labels[-1].lower()"},{"line_number":98,"context_line":"            if domain_tld not in self.effective_tld.accepted_tld_list:"},{"line_number":99,"context_line":"                raise exceptions.InvalidTLD(\u0027Unknown or invalid TLD\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FFiY%3D","line":96,"in_reply_to":"AAAATn%2F%2FHPE%3D","updated":"2013-11-14 16:01:48.000000000","message":"Unfortunately this cannot be done.  Added comments explaining it.\nThe following 11 entries are not present in publicsuffix.org\n\tarpa\n\tau\n\tbv\n\tgb\n\tgn\n\tkp\n\tlb\n\tlr\n\tsj\n\ttp\n\ttz\n\nThe following 3 entries (beginning with \"xn--\") are not present in publicsuffix.org.  The rest of the entries beginning with \"xn--\" are present in UTF-8 format.\n\txn--80ao21a\n\txn--l1acc\n\txn--mgbx4cd0ab","commit_id":"fd5e3fe4c645b30193a112b6412d2d2d48874628"},{"author":{"_account_id":8101,"name":"Emmanuel Ankutse","email":"emmanuel.ankutse@rackspace.com","username":"emmanuel.ankutse"},"change_message_id":"d9c5539d37d893fb36709735484e9475716a6c27","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                raise exceptions.DuplicateRecord()"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        return True"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def _is_blacklisted_domain_name(self, context, domain_name):"},{"line_number":166,"context_line":"        \"\"\""},{"line_number":167,"context_line":"        Ensures the provided domain_name is not blacklisted."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FBYA%3D","line":164,"updated":"2013-11-15 15:40:34.000000000","message":"Total nit!   _is_blacklisted_domain_name() when called within the context of _is_valid_domain_name() does what it should do because of all the other checks that happen in _is_valid_domain_name() before _is_blacklisted_domain_name() is called. However, if _is_blacklisted_domain_name() is called without all the other checks, it will prevent the creation of a valid domain like example.com.uk if example.com is blacklisted. We should rightly prevent the creation of www.example.com but not example.com.uk if example.com is blacklisted.","commit_id":"b591e15fc3a29e45ccfc9710aaab4c8727847b96"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"76dbfcf9b888a77e387efd0bddc04e843de0a63f","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                raise exceptions.DuplicateRecord()"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        return True"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def _is_blacklisted_domain_name(self, context, domain_name):"},{"line_number":166,"context_line":"        \"\"\""},{"line_number":167,"context_line":"        Ensures the provided domain_name is not blacklisted."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FBMc%3D","line":164,"in_reply_to":"AAAATn%2F%2FBYA%3D","updated":"2013-11-15 16:20:26.000000000","message":"Clarified with Emmanuel.  Setting the blacklist to a correct regular expression would fix this.","commit_id":"b591e15fc3a29e45ccfc9710aaab4c8727847b96"}]}
