Example #1
0
 /// <summary>
 /// method to perform depth-first search and write the parameters of every
 /// queue in JSON format.
 /// </summary>
 /// <param name="dumpGenerator">
 /// JsonGenerator object which takes the dump and flushes
 /// to a writer object
 /// </param>
 /// <param name="rootQueues">the top-level queues</param>
 /// <exception cref="Org.Codehaus.Jackson.JsonGenerationException"/>
 /// <exception cref="System.IO.IOException"/>
 private static void DumpConfiguration(JsonGenerator dumpGenerator, ICollection <Queue
                                                                                 > rootQueues)
 {
     foreach (Queue queue in rootQueues)
     {
         dumpGenerator.WriteStartObject();
         dumpGenerator.WriteStringField("name", queue.GetName());
         dumpGenerator.WriteStringField("state", queue.GetState().ToString());
         AccessControlList submitJobList      = null;
         AccessControlList administerJobsList = null;
         if (queue.GetAcls() != null)
         {
             submitJobList = queue.GetAcls()[ToFullPropertyName(queue.GetName(), QueueACL.SubmitJob
                                                                .GetAclName())];
             administerJobsList = queue.GetAcls()[ToFullPropertyName(queue.GetName(), QueueACL
                                                                     .AdministerJobs.GetAclName())];
         }
         string aclsSubmitJobValue = " ";
         if (submitJobList != null)
         {
             aclsSubmitJobValue = submitJobList.GetAclString();
         }
         dumpGenerator.WriteStringField("acl_submit_job", aclsSubmitJobValue);
         string aclsAdministerValue = " ";
         if (administerJobsList != null)
         {
             aclsAdministerValue = administerJobsList.GetAclString();
         }
         dumpGenerator.WriteStringField("acl_administer_jobs", aclsAdministerValue);
         dumpGenerator.WriteFieldName("properties");
         dumpGenerator.WriteStartArray();
         if (queue.GetProperties() != null)
         {
             foreach (KeyValuePair <object, object> property in queue.GetProperties())
             {
                 dumpGenerator.WriteStartObject();
                 dumpGenerator.WriteStringField("key", (string)property.Key);
                 dumpGenerator.WriteStringField("value", (string)property.Value);
                 dumpGenerator.WriteEndObject();
             }
         }
         dumpGenerator.WriteEndArray();
         ICollection <Queue> childQueues = queue.GetChildren();
         dumpGenerator.WriteFieldName("children");
         dumpGenerator.WriteStartArray();
         if (childQueues != null && childQueues.Count > 0)
         {
             DumpConfiguration(dumpGenerator, childQueues);
         }
         dumpGenerator.WriteEndArray();
         dumpGenerator.WriteEndObject();
     }
 }
Example #2
0
        /// <summary>
        /// Dumps the configuration of hierarchy of queues with
        /// the xml file path given.
        /// </summary>
        /// <remarks>
        /// Dumps the configuration of hierarchy of queues with
        /// the xml file path given. It is to be used directly ONLY FOR TESTING.
        /// </remarks>
        /// <param name="out">the writer object to which dump is written to.</param>
        /// <param name="configFile">the filename of xml file</param>
        /// <exception cref="System.IO.IOException"/>
        internal static void DumpConfiguration(TextWriter @out, string configFile, Configuration
                                               conf)
        {
            if (conf != null && conf.Get(DeprecatedQueueConfigurationParser.MapredQueueNamesKey
                                         ) != null)
            {
                return;
            }
            JsonFactory              dumpFactory   = new JsonFactory();
            JsonGenerator            dumpGenerator = dumpFactory.CreateJsonGenerator(@out);
            QueueConfigurationParser parser;
            bool aclsEnabled = false;

            if (conf != null)
            {
                aclsEnabled = conf.GetBoolean(MRConfig.MrAclsEnabled, false);
            }
            if (configFile != null && !string.Empty.Equals(configFile))
            {
                parser = new QueueConfigurationParser(configFile, aclsEnabled);
            }
            else
            {
                parser = GetQueueConfigurationParser(null, false, aclsEnabled);
            }
            dumpGenerator.WriteStartObject();
            dumpGenerator.WriteFieldName("queues");
            dumpGenerator.WriteStartArray();
            DumpConfiguration(dumpGenerator, parser.GetRoot().GetChildren());
            dumpGenerator.WriteEndArray();
            dumpGenerator.WriteEndObject();
            dumpGenerator.Flush();
        }
Example #3
0
 /// <exception cref="System.IO.IOException"/>
 private void WriteAttribute(JsonGenerator jg, string attName, object value)
 {
     jg.WriteFieldName(attName);
     WriteObject(jg, value);
 }