コード例 #1
0
 /**
  * Returns ACLs for the application. An empty map is returned if no ACLs are found.
  *
  * @return a map of the Application ACLs.
  * @throws IOException
  */
 public Map<ApplicationAccessType, String> getApplicationAcls() throws IOException {
   // TODO Seek directly to the key once a comparator is specified.
   TFile.Reader.Scanner aclScanner = reader.createScanner();
   LogKey key = new LogKey();
   Map<ApplicationAccessType, String> acls = new HashMap<ApplicationAccessType, String>();
   while (!aclScanner.atEnd()) {
     TFile.Reader.Scanner.Entry entry = aclScanner.entry();
     key.readFields(entry.getKeyStream());
     if (key.toString().equals(APPLICATION_ACL_KEY.toString())) {
       DataInputStream valueStream = entry.getValueStream();
       while (true) {
         String appAccessOp = null;
         String aclString = null;
         try {
           appAccessOp = valueStream.readUTF();
         } catch (EOFException e) {
           // Valid end of stream.
           break;
         }
         try {
           aclString = valueStream.readUTF();
         } catch (EOFException e) {
           throw new YarnRuntimeException("Error reading ACLs", e);
         }
         acls.put(ApplicationAccessType.valueOf(appAccessOp), aclString);
       }
     }
     aclScanner.advance();
   }
   return acls;
 }
コード例 #2
0
 /**
  * Returns the owner of the application.
  *
  * @return the application owner.
  * @throws IOException
  */
 public String getApplicationOwner() throws IOException {
   TFile.Reader.Scanner ownerScanner = reader.createScanner();
   LogKey key = new LogKey();
   while (!ownerScanner.atEnd()) {
     TFile.Reader.Scanner.Entry entry = ownerScanner.entry();
     key.readFields(entry.getKeyStream());
     if (key.toString().equals(APPLICATION_OWNER_KEY.toString())) {
       DataInputStream valueStream = entry.getValueStream();
       return valueStream.readUTF();
     }
     ownerScanner.advance();
   }
   return null;
 }
コード例 #3
0
 /**
  * Read the next key and return the value-stream.
  *
  * @param key
  * @return the valueStream if there are more keys or null otherwise.
  * @throws IOException
  */
 public DataInputStream next(LogKey key) throws IOException {
   if (!this.atBeginning) {
     this.scanner.advance();
   } else {
     this.atBeginning = false;
   }
   if (this.scanner.atEnd()) {
     return null;
   }
   TFile.Reader.Scanner.Entry entry = this.scanner.entry();
   key.readFields(entry.getKeyStream());
   // Skip META keys
   if (RESERVED_KEYS.containsKey(key.toString())) {
     return next(key);
   }
   DataInputStream valueStream = entry.getValueStream();
   return valueStream;
 }
コード例 #4
0
 static {
   RESERVED_KEYS = new HashMap<String, AggregatedLogFormat.LogKey>();
   RESERVED_KEYS.put(APPLICATION_ACL_KEY.toString(), APPLICATION_ACL_KEY);
   RESERVED_KEYS.put(APPLICATION_OWNER_KEY.toString(), APPLICATION_OWNER_KEY);
   RESERVED_KEYS.put(VERSION_KEY.toString(), VERSION_KEY);
 }