Package org.apache.uima.ducc.common.utils

Examples of org.apache.uima.ducc.common.utils.DuccSchedulerClasses


    String methodName = "handleServletClassicSystemClasses";
    duccLogger.trace(methodName, jobid, messages.fetch("enter"));
    StringBuffer sb = new StringBuffer();

       
    DuccSchedulerClasses schedulerClasses = new DuccSchedulerClasses();
        Map<String, DuccProperties> clmap = schedulerClasses.getClasses();
    if ( clmap != null ) {
            DuccProperties[] class_set = clmap.values().toArray(new DuccProperties[clmap.size()]);
            Arrays.sort(class_set, new NodeConfiguration.ClassSorter());
            int i = 0;

            for ( DuccProperties cl : class_set) {
        String class_name = cl.getProperty("name");
        sb.append(trGet(i+1));
        sb.append("<td>");
        sb.append(class_name);
        sb.append("</td>")
        sb.append("<td>");

                String policy = cl.getProperty("policy");
        sb.append(policy);
        sb.append("</td>")
        sb.append("<td align=\"right\">");
        sb.append(cl.getStringProperty("weight", "-"));
        sb.append("</td>")
        sb.append("<td align=\"right\">");
        sb.append(cl.getProperty("priority"));
        sb.append("</td>")

                // cap is either absolute or proportional.  if proprotional, it ends with '%'.  It's always
                // either-or so at least one of these columns will have N/A
        String val = cl.getProperty("cap");
        if( (val == null) || val.equals("0") || (Integer.parseInt(val) == Integer.MAX_VALUE) ) {
                    sb.append("<td align=\"right\">");
                    sb.append("-");
                    sb.append("</td>");
                    sb.append("<td align=\"right\">");
                    sb.append("-");
                    sb.append("</td>");
        } else if ( val.endsWith("%") ) {
                    sb.append("<td align=\"right\">");
                    sb.append(val);
                    sb.append("</td>");

                    sb.append("<td align=\"right\">");
                    sb.append("-");
                    sb.append("</td>");
                } else {
                    sb.append("<td align=\"right\">");
                    sb.append("-");
                    sb.append("</td>");

                    sb.append("<td align=\"right\">");
                    sb.append(val);
                    sb.append("</td>");
                }

                if ( policy.equals("FAIR_SHARE") ) {
                    sb.append("<td align=\"right\">");
                    val = cl.getStringProperty("initialization-cap",
                                               System.getProperty("ducc.rm.initialization.cap"));
                    if ( val == null ) {
                        val = "2";
                    }
                   
                    sb.append(val);
                    sb.append("</td>")
                   
                    sb.append("<td align=\"right\">");
                    String bval = cl.getStringProperty("expand-by-doubling", "-");
                    sb.append(bval);
                    sb.append("</td>")

                    sb.append("<td align=\"right\">");
                    val = cl.getStringProperty("use-prediction",
                                               System.getProperty("ducc.rm.prediction"));
                    if ( val == null ) {
                        val = "-";
                    }
                    sb.append(val);
                    sb.append("</td>")
                   
                    sb.append("<td align=\"right\">");
                    val = cl.getStringProperty("prediction-fudge",
                                               System.getProperty("ducc.rm.prediction.fudge"));
                    if ( val == null ) {
                        val = "-";
                    }
                    sb.append(val);
                    sb.append("</td>")
                } else {
                    sb.append("<td align=\"right\">-</td>");          // not applicable for non-fair-share
                    sb.append("<td align=\"right\">-</td>");
                    sb.append("<td align=\"right\">-</td>");
                    sb.append("<td align=\"right\">-</td>");
                }

                // max for reserve in in machines.  For fixed is in processes.  No max on fair-share. So slightly
                // ugly code here.
         sb.append("<td align=\"right\">");
                if ( policy.equals("RESERVE") ) {
                    val = cl.getProperty("max-machines");
                    if( val == null || val.equals("0")) {
                        val = "-";
                    }
                } else if ( policy.equals("FIXED_SHARE") ) {
                    val = cl.getProperty("max-processes");
                    if( val == null || val.equals("0")) {
                        val = "-";
                    }
                } else {
          val = "-";
                }

        val = cl.getProperty("max-shares");
        if( val == null || val.equals("0")) {
          val = "-";
        }
        sb.append(val);
        sb.append("</td>")

        sb.append("<td align=\"right\">");
        val = cl.getProperty("nodepool");
                sb.append(val);
        sb.append("</td>")
       
        // Debug
        sb.append("<td align=\"right\">");
        val = "-";
        if(schedulerClasses.isPreemptable(class_name)) {
          String v1 = cl.getStringProperty("debug", "");
          if(!v1.equals("")) {
            val = v1;
          }
        }
View Full Code Here


   
    JsonObject jsonResponse = new JsonObject();
    JsonArray data = new JsonArray();
    JsonArray row;

    DuccSchedulerClasses schedulerClasses = new DuccSchedulerClasses();
        Map<String, DuccProperties> clmap = schedulerClasses.getClasses();
           
    if( clmap != null ) {
            DuccProperties[] class_set = clmap.values().toArray(new DuccProperties[clmap.size()]);
            Arrays.sort(class_set, new NodeConfiguration.ClassSorter());           

      for( DuccProperties cl : class_set ) {
        row = new JsonArray();
        String class_name = cl.getProperty("name");
        // Name
        row.add(new JsonPrimitive(class_name));
        // Policy
                String policy = cl.getProperty("policy");
                row.add(new JsonPrimitive(policy));
                // Weight
                String weight = cl.getStringProperty("weight", "-");
                row.add(new JsonPrimitive(weight));
                // Priority
                String priority = cl.getProperty("priority");
                row.add(new JsonPrimitive(priority));
               
                // cap is either absolute or proportional.  if proprotional, it ends with '%'.  It's always
                // either-or so at least one of these columns will have N/A
               
                // Relative & Absolute Caps
        String val = cl.getStringProperty("cap", "0");
        if( (val == null) || val.equals("0") ) {
          row.add(new JsonPrimitive("-"));
          row.add(new JsonPrimitive("-"));
        }
        else if ( val.endsWith("%") ) {
          row.add(new JsonPrimitive(val));
          row.add(new JsonPrimitive("-"));
                }
        else {
          row.add(new JsonPrimitive("-"));
          row.add(new JsonPrimitive(val));
                }

                if ( policy.equals("FAIR_SHARE") ) {
                    // Initialization Cap
                    String defaultInitializationCap = "2";
                    val = cl.getStringProperty("initialization-cap",
                                               System.getProperty("ducc.rm.initialization.cap",defaultInitializationCap));
                    row.add(new JsonPrimitive(val));
                   
                    // Expand-by-Doubling
                    boolean bval = cl.getBooleanProperty("expand-by-doubling", true);
                    row.add(new JsonPrimitive(bval));
                   
                    // Use Prediction
                    String defaultUsePrediction = "true";
                    val = cl.getProperty("use-prediction",
                                         System.getProperty("ducc.rm.prediction",defaultUsePrediction));
                    row.add(new JsonPrimitive(val));
                   
                    // Prediction Fudge
                    String defaultPredictionFudge = "10000";
                    val = cl.getStringProperty("prediction-fudge",
                                               System.getProperty("ducc.rm.prediction.fudge",defaultPredictionFudge));
                    row.add(new JsonPrimitive(val));
                } else {
                    row.add(new JsonPrimitive("-"));
                    row.add(new JsonPrimitive("-"));
                    row.add(new JsonPrimitive("-"));
                    row.add(new JsonPrimitive("-"));
                }

                // max for reserve in in machines.  For fixed is in processes.  No max on fair-share. So slightly
                // ugly code here.
       
        // Max Allocation
       
                if ( policy.equals("RESERVE") ) {
                    val = cl.getStringProperty("max-machines");
                    if( val == null || val.equals("0")) {
                        val = "-";
                    }
                } else if ( policy.equals("FIXED_SHARE") ) {
                    val = cl.getStringProperty("max-processes");
                    if( val == null || val.equals("0")) {
                        val = "-";
                    }
                } else {
          val = "-";
                }

        val = cl.getStringProperty("max-shares", "0");
        if( val == null || val.equals("0")) {
          val = "-";
        }
        row.add(new JsonPrimitive(val));

        // Nodepool
        val = cl.getProperty("nodepool");
        row.add(new JsonPrimitive(val));
       
        // Debug
        val = "-";
        if(schedulerClasses.isPreemptable(class_name)) {
          if(schedulerClasses.isPreemptable(class_name)) {
            String v1 = cl.getStringProperty("debug", "");
            if(!v1.equals("")) {
              val = v1;
            }
          }
View Full Code Here

        }

        // Check if falsely using a fair-share class
        String scheduling_class = cli_props.getProperty(UiOption.SchedulingClass.pname());
        if (scheduling_class != null) {
            DuccSchedulerClasses duccSchedulerClasses = DuccSchedulerClasses.getInstance();
            if (duccSchedulerClasses.isPreemptable(scheduling_class)) {
                throw new IllegalArgumentException("Invalid pre-emptable scheduling class: " + scheduling_class);
            }
        }
       
        // work out stuff I'm dependent upon
View Full Code Here

    duccLogger.trace(methodName, null, messages.fetch("enter"));
    StringBuffer sb = new StringBuffer();
    sb.append("{ ");
    sb.append("\"aaData\": [ ");
   
    DuccSchedulerClasses schedulerClasses = new DuccSchedulerClasses();
        Map<String, DuccProperties> clmap = schedulerClasses.getClasses();

    boolean first = true;
    if( clmap != null ) {
            DuccProperties[] class_set = clmap.values().toArray(new DuccProperties[clmap.size()]);
            Arrays.sort(class_set, new NodeConfiguration.ClassSorter());
View Full Code Here

  {
    String methodName = "handleDuccServletReservationSchedulingCLasses";
    duccLogger.trace(methodName, null, messages.fetch("enter"));
    StringBuffer sb = new StringBuffer();
    sb.append("<select id=\"scheduling_class\">");
    DuccSchedulerClasses schedulerClasses = new DuccSchedulerClasses();
    String[] class_array = schedulerClasses.getReserveClasses();
    String defaultName = schedulerClasses.getReserveClassDefaultName();
    for(int i=0; i<class_array.length; i++) {
      String name = class_array[i];
      if(name.equals(defaultName)) {
        sb.append("<option value=\""+name+"\" selected=\"selected\">"+name+"</option>");
      }
View Full Code Here

            throws Exception
    {
       String scheduling_class = null;
         String user_scheduling_class = null;
         String pname = UiOption.SchedulingClass.pname();
         DuccSchedulerClasses duccSchedulerClasses = DuccSchedulerClasses.getInstance();
         if (props.containsKey(pname)) {
             user_scheduling_class = props.getProperty(pname);
             if (duccSchedulerClasses.isPreemptable(user_scheduling_class)) {
                 scheduling_class = duccSchedulerClasses.getDebugClassSpecificName(user_scheduling_class);
             }
         } else {
             scheduling_class = duccSchedulerClasses.getDebugClassDefaultName();
         }
         if (scheduling_class != null) {
              props.setProperty(pname, scheduling_class);
              String text = pname+"="+scheduling_class+" -- was "+user_scheduling_class;
              base.message(text);
View Full Code Here

        mh.frameworkTrace(cid, mid, enter);
        String pname = UiOption.SchedulingClass.pname();
        // If omitted let DUCC choose the default for an AP
        // If a preemptable one change to a fixed one if possible
        if (jobRequestProperties.containsKey(pname)) {
            DuccSchedulerClasses duccSchedulerClasses = DuccSchedulerClasses.getInstance();
            scheduling_class = jobRequestProperties.getProperty(pname);
            String message = pname + "=" + scheduling_class + " [original]";
            if (isLocal()) {
                message = pname + "=" + scheduling_class + " not considered";
                mh.debug(cid, mid, message);
            } else if (duccSchedulerClasses.isPreemptable(scheduling_class)) {
                String specific_scheduling_class = duccSchedulerClasses.getDebugClassSpecificName(scheduling_class);
                if (specific_scheduling_class != null) {
                    scheduling_class = specific_scheduling_class;
                    jobRequestProperties.put(pname, scheduling_class);
                    message = pname + "=" + scheduling_class + " [replacement, specific]";
                    mh.info(cid, mid, message);
View Full Code Here

TOP

Related Classes of org.apache.uima.ducc.common.utils.DuccSchedulerClasses

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.