def _parse_entry(self):
        """ Matches ZK node to pattern and sets all IP instance variables. """
        try:
            _, ip_string = self.entry.split(self.uuid_delim)
        except ValueError:
            logger.error(self.entry % "Invalid ZK entry %s")
            raise IPPatternMismatchError(self.entry)
        binary_check = re.compile('[01]')
        try:
            self.is_vpc = ip_string.rsplit(self.ip_delim, 1)[1]
        except ValueError:
            logger.error("Invalid ZK entry %s" % self.entry)
            raise IPPatternMismatchError(self.entry)
        if not binary_check.match(self.is_vpc):
            raise IPPatternMismatchError(self.entry)
        try:
            ips = dict(zip(self.ip_labels, ip_string.split(self.ip_delim)))
        except ValueError:
            logger.error("Invalid ZK entry %s" % self.entry)
            raise IPPatternMismatchError(self.entry)
        if len(ips) != len(self.ip_labels):
            logger.error("Invalid ZK entry %s" % self.entry)
            raise IPPatternMismatchError(self.entry)

        for label, ip in ips.iteritems():
            try:
                IPv4Network(unicode(ip))
            except AddressValueError:
                logger.error("Invalid IP found - %s:%s" % (label, ip))
                raise IPPatternMismatchError(self.entry)
            else:
                setattr(self, label, ip)
dataset/ETHPy150Open facebookarchive/neti/neti/registry.py/InstanceIPBundle._parse_entry/swapped operands of `%`