@Override
  protected Iterable<String> getHeaderRecord() {
    return Arrays.asList(HOSTNAME,
        SERVICE,
        COMPONENT,
        PRINCIPAL,
        PRINCIPAL_TYPE,
        KEYTAB_FILE_PATH,
        KEYTAB_FILE_OWNER_NAME,
        KEYTAB_FILE_OWNER_ACCESS,
        KEYTAB_FILE_GROUP_NAME,
        KEYTAB_FILE_GROUP_ACCESS,
        KEYTAB_FILE_IS_CACHABLE);
  }
Appends a new record to the data file

@param hostName              a String containing the hostname column data
@param serviceName           a String containing the service name column data
@param serviceComponentName  a String containing the component name column data
@param principal             a String containing the (raw, non-evaluated) principal "pattern"
                             column data
@param principalType         a String declaring the principal type - expecting "service" or "user"
@param keytabFilePath        a String containing the destination keytab file path column data
@param keytabFileOwnerName   a String containing the keytab file owner name column data
@param keytabFileOwnerAccess a String containing the keytab file owner access column data
                             (expected to be "r" or "rw")
@param keytabFileGroupName   a String containing the keytab file group name column data
@param keytabFileGroupAccess a String containing the keytab file group access column data
                             (expected to be "r", "rw", or "")
@param keytabFileCanCache    a String containing a boolean value (true, false) indicating
                             whether the generated keytab can be cached or not
@throws IOException
ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/KerberosIdentityDataFileWriter.java