def __str__(self): """ return the unicode representation of principal works in reverse of the `from_text` class method """ name_components = escape_seq(u'/', *self.components) name_components = escape_seq(u'@', *name_components) principal_string = u'/'.join(name_components) if self.realm is not None: (realm,) = escape_seq(u'@', self.realm) principal_string = u'@'.join([principal_string, realm]) return principal_string
def format_directive(directive, value, separator, quotes, quote_char): directive_sep = "{directive}{separator}".format(directive=directive, separator=separator) transformed_value = value if quotes: transformed_value = "{quote}{value}{quote}".format( quote=quote_char, value="".join(ipautil.escape_seq(quote_char, value))) return "{directive_sep}{value}\n".format(directive_sep=directive_sep, value=transformed_value)
def format_directive(directive, value, separator, quotes, quote_char): directive_sep = "{directive}{separator}".format(directive=directive, separator=separator) transformed_value = value if quotes: transformed_value = "{quote}{value}{quote}".format( quote=quote_char, value="".join(ipautil.escape_seq(quote_char, value)) ) return "{directive_sep}{value}\n".format( directive_sep=directive_sep, value=transformed_value)
def quote_directive_value(value, quote_char): """Quote a directive value :param value: string to quote :param quote_char: character which is used for quoting. All prior occurences will be escaped before quoting to avoid unparseable value. :returns: processed value """ if value.startswith(quote_char) and value.endswith(quote_char): return value return "{quote}{value}{quote}".format(quote=quote_char, value="".join( escape_seq(quote_char, value)))
def quote_directive_value(value, quote_char): """Quote a directive value :param value: string to quote :param quote_char: character which is used for quoting. All prior occurences will be escaped before quoting to avoid unparseable value. :returns: processed value """ if value.startswith(quote_char) and value.endswith(quote_char): return value return "{quote}{value}{quote}".format( quote=quote_char, value="".join(escape_seq(quote_char, value)) )
def service_name(self): if not self.is_service: raise ValueError( "Only service principals have meaningful service name") return u'/'.join(c for c in escape_seq('/', *self.components[:-1]))