/// <summary>Parse an ACL list.</summary> /// <remarks> /// Parse an ACL list. This includes configuration indirection /// <see cref="Org.Apache.Hadoop.Util.ZKUtil.ResolveConfIndirection(string)"/> /// </remarks> /// <param name="zkAclConf">configuration string</param> /// <returns>an ACL list</returns> /// <exception cref="System.IO.IOException">on a bad ACL parse</exception> public virtual IList <ACL> ParseACLs(string zkAclConf) { try { return(ZKUtil.ParseACLs(ZKUtil.ResolveConfIndirection(zkAclConf))); } catch (ZKUtil.BadAclFormatException e) { throw new IOException("Parsing " + zkAclConf + " :" + e, e); } }
/// <summary>Utility method to fetch the ZK ACLs from the configuration</summary> /// <exception cref="System.Exception"/> public static IList <ACL> GetZKAcls(Configuration conf) { // Parse authentication from configuration. string zkAclConf = conf.Get(YarnConfiguration.RmZkAcl, YarnConfiguration.DefaultRmZkAcl ); try { zkAclConf = ZKUtil.ResolveConfIndirection(zkAclConf); return(ZKUtil.ParseACLs(zkAclConf)); } catch (Exception e) { Log.Error("Couldn't read ACLs based on " + YarnConfiguration.RmZkAcl); throw; } }
/// <exception cref="Org.Apache.Hadoop.HadoopIllegalArgumentException"/> /// <exception cref="System.IO.IOException"/> /// <exception cref="Org.Apache.Zookeeper.KeeperException"/> private void InitZK() { zkQuorum = conf.Get(ZkQuorumKey); int zkTimeout = conf.GetInt(ZkSessionTimeoutKey, ZkSessionTimeoutDefault); // Parse ACLs from configuration. string zkAclConf = conf.Get(ZkAclKey, ZkAclDefault); zkAclConf = ZKUtil.ResolveConfIndirection(zkAclConf); IList <ACL> zkAcls = ZKUtil.ParseACLs(zkAclConf); if (zkAcls.IsEmpty()) { zkAcls = ZooDefs.Ids.CreatorAllAcl; } // Parse authentication from configuration. string zkAuthConf = conf.Get(ZkAuthKey); zkAuthConf = ZKUtil.ResolveConfIndirection(zkAuthConf); IList <ZKUtil.ZKAuthInfo> zkAuths; if (zkAuthConf != null) { zkAuths = ZKUtil.ParseAuth(zkAuthConf); } else { zkAuths = Collections.EmptyList(); } // Sanity check configuration. Preconditions.CheckArgument(zkQuorum != null, "Missing required configuration '%s' for ZooKeeper quorum" , ZkQuorumKey); Preconditions.CheckArgument(zkTimeout > 0, "Invalid ZK session timeout %s", zkTimeout ); int maxRetryNum = conf.GetInt(CommonConfigurationKeys.HaFcElectorZkOpRetriesKey, CommonConfigurationKeys.HaFcElectorZkOpRetriesDefault); elector = new ActiveStandbyElector(zkQuorum, zkTimeout, GetParentZnode(), zkAcls, zkAuths, new ZKFailoverController.ElectorCallbacks(this), maxRetryNum); }