You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by ch...@apache.org on 2015/04/16 19:59:36 UTC
svn commit: r1674121 - in /uima/sandbox/uima-ducc/trunk: src/main/admin/
uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/
uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/
uima-ducc-rm/src/main/java/org/apache/uima...
Author: challngr
Date: Thu Apr 16 17:59:35 2015
New Revision: 1674121
URL: http://svn.apache.org/r1674121
Log:
UIMA-3824 Update qoccupancy to use same type of return as qload. Eliminate --console vs --compact. Insure
RM is initialized before forming a reply.
Modified:
uima/sandbox/uima-ducc/trunk/src/main/admin/rm_qload
uima/sandbox/uima-ducc/trunk/src/main/admin/rm_qoccupancy
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQLoadReply.java
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQOccupancyReply.java
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedClass.java
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedMachine.java
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedNodepool.java
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedShare.java
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccRmAdmin.java
uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java
Modified: uima/sandbox/uima-ducc/trunk/src/main/admin/rm_qload
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/admin/rm_qload?rev=1674121&r1=1674120&r2=1674121&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/admin/rm_qload (original)
+++ uima/sandbox/uima-ducc/trunk/src/main/admin/rm_qload Thu Apr 16 17:59:35 2015
@@ -21,48 +21,110 @@
import os
import sys
-import getopt
+import subprocess
from ducc_util import DuccUtil
class DuccRmQLoad(DuccUtil):
- def usage(self, msg):
- if ( msg != None ):
- print msg
+ def format_array(self, ar):
+ fmt = ''
+ for i in range(0, len(ar)):
+ fmt = fmt + '%4d '
- print 'rm_qload'
- print ' This returns statistics indicative of the load and scheduling capacity of the system'
+ return (fmt % tuple(ar))
+
+ def format_classes(self, cls):
+
+ # print the list of classes; each class is a dictionary
+ for cl in cls:
+ print 'Class', cl['name'], 'policy', cl['policy']
+ print ' requested', self.format_array(cl['requested'])
+ print ' awarded ', self.format_array(cl['awarded'])
+ print ''
+
+ def format_nodepools(self, nps):
+
+ # print the list of nodepools; each nodepool is a dictionary
+ for np in nps:
+ print 'Nodepool', np['name']
+ print ' online', np['online'], 'dead', np['dead'], 'offline', np['offline'], 'total-shares', np['total-shares'], 'free-shares', np['free-shares']
+ print ' all machines:', self.format_array(np['all-machines'])
+ print ' online machines:', self.format_array(np['online-machines'])
+ print ' free machines:', self.format_array(np['free-machines'])
+ print ' virtual machines:', self.format_array(np['virtual-machines'])
+ print ''
+
+ #
+ # The input is structured like this:
+ # A dictionary with these keys:
+ # quantum
+ # value is a single integer
+ # classes
+ # value is a list of dictionaries describing demand
+ # with these keys
+ # name
+ # value is string, the name of the class
+ # policy
+ # value is the scheduling policy
+ # requested
+ # value is a list of integers
+ # awarded
+ # value is a list of integers
+ # nodepools
+ # value is a list of dictionaries describing a node pool
+ # with these keys
+ # name
+ # value is the namne of the nodepool
+ # online
+ # value is an integer
+ # dead
+ # value is an integer
+ # offline
+ # value is an integer
+ # total-shares
+ # value is an integer
+ # free-shares
+ # value is an integer
+ # all-machines
+ # value is a list of integers
+ # online-machines
+ # value is a list of integers
+ # free-machines
+ # value is a list of integers
+ # virtual-machines
+ # value is a list of integers
+ #
+ def format(self, lines):
+ qload = eval(lines)
+
+ print 'Quantum:', qload['quantum']
print ''
- print 'Example:'
- print ' rm_qload'
- sys.exit(1)
+ self.format_classes(qload['classes'])
+ self.format_nodepools(qload['nodepools'])
def main(self, argv):
+
+ if ( argv == '-h' or argv == '-?' or argv == '--help' ):
+ print 'rm_qload queries and formats the current state of the RM scheduling tables. It takes no parameters.'
+ sys.exit(1);
- format = None
-
- try:
- opts, args = getopt.getopt(argv, 'h?', ['console', 'compact'])
- except:
- self.usage("Invalid arguments " + ' '.join(argv))
-
- for ( o, a ) in opts:
- if o in ('--console'):
- format = o
- if o in ('--compact'):
- format = o
- elif o in ('-h', '?'):
- self.usage(None)
-
- if ( format == None ):
- self.usage("Must specify --console or --compact")
-
DUCC_JVM_OPTS = ' -Dducc.deploy.configuration=' + self.DUCC_HOME + "/resources/ducc.properties "
DUCC_JVM_OPTS = DUCC_JVM_OPTS + ' -DDUCC_HOME=' + self.DUCC_HOME
DUCC_JVM_OPTS = DUCC_JVM_OPTS + ' -Dducc.head=' + self.ducc_properties.get('ducc.head')
- self.spawn(self.java(), DUCC_JVM_OPTS, 'org.apache.uima.ducc.common.main.DuccRmAdmin', '--qload', format)
+ CMD = [self.java(), DUCC_JVM_OPTS, 'org.apache.uima.ducc.common.main.DuccRmAdmin', '--qload', '--compact']
+ CMD = ' '.join(CMD)
+ lines = ''
+ proc = subprocess.Popen(CMD, bufsize=0, stdout=subprocess.PIPE, shell=True)
+ for line in proc.stdout:
+ lines = lines + line
+
+ if 'not yet initialized' in lines:
+ print lines
+ return
+
+ self.format(lines)
return
Modified: uima/sandbox/uima-ducc/trunk/src/main/admin/rm_qoccupancy
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/admin/rm_qoccupancy?rev=1674121&r1=1674120&r2=1674121&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/admin/rm_qoccupancy (original)
+++ uima/sandbox/uima-ducc/trunk/src/main/admin/rm_qoccupancy Thu Apr 16 17:59:35 2015
@@ -21,52 +21,59 @@
import os
import sys
-import getopt
+import subprocess
from ducc_util import DuccUtil
class DuccRmQOccupancy(DuccUtil):
- def usage(self, msg):
- if ( msg != None ):
- print msg
-
- print 'rm_qoccupancy --console | --compact'
- print ' This returns details of each DUCC node.'
- print ' --console formats the output in human-readable form'
- print ' --compact formats the output for scripting'
- print ''
- print 'Example:'
- print ' rm_qoccupancy --console'
- print ''
- print ' rm_qoccupancy --compact'
- sys.exit(1)
+ def format_shares(self, sh):
+ for s in sh:
+ if ( s['blacklisted'] ):
+ pass
+ else:
+ print '%19s J[%8d] S[%8d] O[%d] II[%8d] IR[%8d] E[%5s] P[%5s] F[%5s] I[%5s]' % ('', s['jobid'], s['shareid'], s['order'], s['investment-init'], s['investment-run'],
+ s['evicted'], s['purged'], s['fixed'], s['initialized'])
+
+
+ def format_machines(self, lines):
+
+ print("%20s %11s %6s %6s %15s %10s %5s %6s" % ("Node", "Blacklisted", "Online", "Status", "Nodepool", "Memory", "Order", "Free"))
+
+ for m in lines:
+ print "%20s %11s %6s %6s %15s %10s %5s %6s" % (m['name'], m['blacklisted'], m['online'], m['status'], m['nodepool'], m['memory'], m['order'], m['shares-free'])
+ if ( len(m['shares']) != 0 ) :
+ self.format_shares(m['shares'])
+ print ''
+
+
+ def format(self, lines):
+ qoccupancy = eval(lines)
+ self.format_machines(qoccupancy)
+
def main(self, argv):
- format = None
-
- try:
- opts, args = getopt.getopt(argv, 'h?', ['console', 'compact'])
- except:
- self.usage("Invalid arguments " + ' '.join(argv))
-
- for ( o, a ) in opts:
- if o in ('--console'):
- format = o
- if o in ('--compact'):
- format = o
- elif o in ('-h', '?'):
- self.usage(None)
-
- if ( format == None ):
- self.usage("Must specify --console or --compact")
+ if ( argv == '-h' or argv == '-?' or argv == '--help' ):
+ print 'rm_qload queries and formats the current state of the RM scheduling tables. It takes no parameters.'
+ sys.exit(1);
DUCC_JVM_OPTS = ' -Dducc.deploy.configuration=' + self.DUCC_HOME + "/resources/ducc.properties "
DUCC_JVM_OPTS = DUCC_JVM_OPTS + ' -DDUCC_HOME=' + self.DUCC_HOME
DUCC_JVM_OPTS = DUCC_JVM_OPTS + ' -Dducc.head=' + self.ducc_properties.get('ducc.head')
- self.spawn(self.java(), DUCC_JVM_OPTS, 'org.apache.uima.ducc.common.main.DuccRmAdmin', '--qoccupancy', format)
+ CMD = [self.java(), DUCC_JVM_OPTS, 'org.apache.uima.ducc.common.main.DuccRmAdmin', '--qoccupancy', '--compact']
+ CMD = ' '.join(CMD)
+ lines = ''
+ proc = subprocess.Popen(CMD, bufsize=0, stdout=subprocess.PIPE, shell=True)
+ for line in proc.stdout:
+ lines = lines + line
+
+ if 'not yet initialized' in lines:
+ print lines
+ return
+
+ self.format(lines)
return
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQLoadReply.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQLoadReply.java?rev=1674121&r1=1674120&r2=1674121&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQLoadReply.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQLoadReply.java Thu Apr 16 17:59:35 2015
@@ -26,6 +26,7 @@ public class RmAdminQLoadReply
{
private static final long serialVersionUID = -8101741014979144426L;
+ private boolean ready = true; // if false, RM is not initialized
private long shareQuantum;
private List<RmQueriedNodepool> nodepools = new ArrayList<RmQueriedNodepool>();
private List<RmQueriedClass> classes = new ArrayList<RmQueriedClass>();
@@ -44,6 +45,9 @@ public class RmAdminQLoadReply
public List<RmQueriedNodepool> getNodepools() { return nodepools; }
public List<RmQueriedClass> getClasses() { return classes; }
+ public void notReady() { this.ready = false; }
+ public boolean isReady() { return ready; }
+
public static String fmtArray(int[] array)
{
Object[] vals = new Object[array.length];
@@ -96,20 +100,25 @@ public class RmAdminQLoadReply
virtual-machines
value is a list of integers
*/
- public String toCompact()
+ public String toString()
{
+
+ if ( !ready ) {
+ return "RM is not yet initialized.";
+ }
+
StringBuffer sb = new StringBuffer();
sb.append("{\n'quantum':");
sb.append(Long.toString(shareQuantum));
sb.append(",\n'classes': [\n");
for ( RmQueriedClass cl : classes ) {
- sb.append(cl.toCompact());
+ sb.append(cl.toString());
sb.append("\n,");
}
sb.append("],\n'nodepools': [\n");
for ( RmQueriedNodepool np : nodepools ) {
- sb.append(np.toCompact());
+ sb.append(np.toString());
sb.append("\n,");
}
@@ -117,26 +126,4 @@ public class RmAdminQLoadReply
return sb.toString();
}
-
- public String toConsole()
- {
- StringBuffer sb = new StringBuffer();
-
- sb.append("Query Load - scheduling quantum ");
- sb.append(Long.toString(shareQuantum));
- sb.append(":\n");
-
- for ( RmQueriedClass cl : classes ) {
- sb.append(cl.toConsole());
- sb.append("\n");
- }
-
- for ( RmQueriedNodepool np : nodepools ) {
- sb.append(np.toConsole());
- sb.append("\n");
- }
-
- return sb.toString();
- }
-
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQOccupancyReply.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQOccupancyReply.java?rev=1674121&r1=1674120&r2=1674121&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQOccupancyReply.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQOccupancyReply.java Thu Apr 16 17:59:35 2015
@@ -28,7 +28,7 @@ public class RmAdminQOccupancyReply
{
private static final long serialVersionUID = -8101741014979144426L;
-
+ boolean ready = true; // If not ready, RM is not initialized
List<RmQueriedMachine> machines = new ArrayList<RmQueriedMachine>();
public RmAdminQOccupancyReply()
@@ -41,49 +41,44 @@ public class RmAdminQOccupancyReply
machines.add(m);
}
+ public void notReady() { this.ready = false; }
+ public boolean isReady() { return ready; }
+
public List<RmQueriedMachine> getMachines()
{
return machines;
}
-
- public String toConsole()
+ public String toString()
{
- Collections.sort(machines, new MachineByOrderSorter());
- StringBuffer sb = new StringBuffer();
- sb.append(RmQueriedMachine.header());
- sb.append("\n");
- sb.append(RmQueriedMachine.separator());
- sb.append("\n");
- for ( RmQueriedMachine m : machines ) {
- sb.append(m.toConsole());
- sb.append("\n");
+
+ if ( !ready ) {
+ return "RM is not yet initialized.";
}
- return sb.toString();
- }
- public String toCompact()
- {
- // ( no need to sort, this is intended for script scraping so we let the script order things as it wants )
+ Collections.sort(machines, new MachineByMemorySorter());
StringBuffer sb = new StringBuffer();
+
+ sb.append("[\n");
for ( RmQueriedMachine m : machines ) {
- sb.append(m.toCompact());
- sb.append("\n");
+ sb.append(m.toString());
+ sb.append(",\n");
}
+ sb.append("]");
return sb.toString();
}
- class MachineByOrderSorter
+ class MachineByMemorySorter
implements Comparator<RmQueriedMachine>
{
public int compare(RmQueriedMachine m1, RmQueriedMachine m2)
{
- int o1 = m1.getShareOrder();
- int o2 = m2.getShareOrder();
- if ( o1 == o2 ) {
+ long mm1 = m1.getMemory();
+ long mm2 = m2.getMemory();
+ if ( mm1 == mm2 ) {
return m1.getId().compareTo(m2.getId());
}
- return o2 - o1;
+ return (int) (mm2 - mm1);
}
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedClass.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedClass.java?rev=1674121&r1=1674120&r2=1674121&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedClass.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedClass.java Thu Apr 16 17:59:35 2015
@@ -71,7 +71,7 @@ public class RmQueriedClass
this.awarded = awarded;
}
- public String toCompact()
+ public String toString()
{
StringBuffer sb = new StringBuffer();
@@ -87,21 +87,5 @@ public class RmQueriedClass
return sb.toString();
}
-
- public String toConsole()
- {
- StringBuffer sb = new StringBuffer();
- sb.append("Class ");
- sb.append(name);
- sb.append(" ");
- sb.append(policy);
- sb.append("\n");
- sb.append(" Requested: ");
- sb.append(RmAdminQLoadReply.fmtArray(demanded));
- sb.append("\n Awarded : ");
- sb.append(RmAdminQLoadReply.fmtArray(awarded));
- sb.append("\n");
- return sb.toString();
- }
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedMachine.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedMachine.java?rev=1674121&r1=1674120&r2=1674121&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedMachine.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedMachine.java Thu Apr 16 17:59:35 2015
@@ -65,83 +65,49 @@ public class RmQueriedMachine
public boolean isOnline() { return online; } // UIMA-4142
public boolean isResponsive() { return responsive; } // UIMA-4142
- static String fmt_s = "%20s %11s %6s %6s %15s %10s %5s %4s %s";
- String fmt_d = "%20s %11s %6s %6s %15s %10d %5d %4d" ;
-
- public static String header()
- {
- return String.format(fmt_s, "Node", "Blacklisted", "Online", "Status", "Nodepool", "Memory", "Order", "Free", "Shares");
- }
-
- public static String separator()
- {
- return String.format(fmt_s, "--------------------", "-----------", "------", "------", "---------------", "----------", "-----", "----", "----------");
- }
-
- public String toConsole()
- {
- StringBuffer sb = new StringBuffer();
-
- if ( shares == null ) {
- sb.append(String.format(fmt_d, name, blacklisted, online, (responsive ? "up" : "down"), nodepoolId, memory, order, 0));
- sb.append(" [none]");
- } else {
- int used = 0;
- for ( RmQueriedShare s : shares ) {
- used += s.getShareOrder();
- }
- sb.append(String.format(fmt_d, name, blacklisted, online, (responsive ? "up" : "down"), nodepoolId, memory, order, order - used));
-
- String spacer = " ";
- String altSpacer = "\n" + String.format(fmt_s, "", "", "", "", "", "", "", "", ""); // yes, blank, of exactly the right size
- for ( RmQueriedShare s : shares ) {
- sb.append(spacer);
- sb.append(s.toConsole());
- spacer = altSpacer;
- }
- }
- return sb.toString();
-
- }
-
- public String toCompact()
+ public String toString()
{
// name memory order(nqshares) unused-shares share-details...
StringBuffer sb = new StringBuffer();
+ sb.append("{'name':'");
sb.append(name);
- sb.append(" ");
+ sb.append("','nodepool':'");
sb.append(nodepoolId);
- sb.append(" ");
- sb.append(Boolean.toString(blacklisted));
- sb.append(" ");
- sb.append(Boolean.toString(online));
- sb.append(" ");
- sb.append(responsive ? "up" : "down");
- sb.append(" ");
+ sb.append("','blacklisted':");
+ sb.append(blacklisted ? "True" : "False");
+ sb.append(",'online':");
+ sb.append(online ? "True" : "False");
+ sb.append(",'status': ");
+ sb.append(responsive ? "'up'" : "'down'");
+ sb.append(",'nodepool': '");
+ sb.append(nodepoolId);
+ sb.append("','memory':");
sb.append(Long.toString(memory));
- sb.append(" ");
+ sb.append(",'order':");
sb.append(Integer.toString(order));
if ( shares == null ) {
- sb.append(" 0, None");
+ sb.append(",'shares-free':'");
+ sb.append(Integer.toString(order));
+ sb.append("'");
+ sb.append(",'shares':[],\n");
} else {
int used = 0;
for ( RmQueriedShare s : shares ) {
used += s.getShareOrder();
}
- sb.append(" ");
+ sb.append(",'shares-free':");
sb.append(Integer.toString(order - used));
+ sb.append(",'shares':[");
for ( RmQueriedShare s : shares ) {
+ sb.append(s.toString());
sb.append(",");
- sb.append(s.toCompact());
}
+ sb.append("],\n");
}
+ sb.append("}\n");
return sb.toString();
}
- public String toString()
- {
- return String.format("%14s %5s %12d %3d %3d", name, blacklisted, memory, order, shares == null ? 0 : shares.size());
- }
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedNodepool.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedNodepool.java?rev=1674121&r1=1674120&r2=1674121&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedNodepool.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedNodepool.java Thu Apr 16 17:59:35 2015
@@ -122,7 +122,7 @@ public class RmQueriedNodepool
this.virtualMachines = virtualMachines;
}
- public String toCompact()
+ public String toString()
{
StringBuffer sb = new StringBuffer();
@@ -151,32 +151,4 @@ public class RmQueriedNodepool
return sb.toString();
}
- public String toConsole()
- {
- StringBuffer sb = new StringBuffer();
- sb.append("Nodepool ");
- sb.append(name);
- sb.append("\n ");
- sb.append("Nodes online: ");
- sb.append(Integer.toString(online));
- sb.append(" Nodes dead: ");
- sb.append(Integer.toString(dead));
- sb.append(" Nodes offline: ");
- sb.append(Integer.toString(offline));
- sb.append(" Total Shares: ");
- sb.append(Integer.toString(sharesAvailable));
- sb.append(" Shares Free: ");
- sb.append(Integer.toString(sharesFree));
- sb.append("\n");
- sb.append(" All Machines: ");
- sb.append(RmAdminQLoadReply.fmtArray(allMachines));
- sb.append("\n Online Machines: ");
- sb.append(RmAdminQLoadReply.fmtArray(onlineMachines));
- sb.append("\n Free Machines: ");
- sb.append(RmAdminQLoadReply.fmtArray(freeMachines));
- sb.append("\n Virtual Machines: ");
- sb.append(RmAdminQLoadReply.fmtArray(virtualMachines));
-
- return sb.toString();
- }
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedShare.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedShare.java?rev=1674121&r1=1674120&r2=1674121&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedShare.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedShare.java Thu Apr 16 17:59:35 2015
@@ -65,21 +65,37 @@ public class RmQueriedShare
public boolean isInitialized() { return initialized; }
- public String toCompact()
+ public String toString()
{
- if ( blacklisted ) {
- return String.format("BLACKLISTED %8d %8d %d", jobId, shareId, order);
- } else {
- return String.format("%d %d %d %d %d %s %s %s %s", jobId, shareId, order, investmentInit, investmentRt, evicted, purged, fixed, initialized);
- }
- }
+ StringBuffer sb = new StringBuffer();
- public String toConsole()
- {
- if ( blacklisted ) {
- return String.format("J[%8d] S[%8d] O[%d] BLACKLISTED", jobId, shareId, order);
- } else {
- return String.format("J[%8d] S[%8d] O[%d] II[%8d] IR[%8d] E[%5s] P[%5s] F[%5s] I[%5s]", jobId, shareId, order, investmentInit, investmentRt, evicted, purged, fixed, initialized);
+ sb.append("{");
+
+ sb.append("'blacklisted':");
+ sb.append(blacklisted ? "True" : "False");
+ sb.append(", 'jobid':");
+ sb.append(Long.toString(jobId));
+ sb.append(",'shareid':");
+ sb.append(Long.toString(shareId));
+ sb.append(",'order':");
+ sb.append(Integer.toString(order));
+
+ if ( !blacklisted ) {
+ sb.append(",'investment-init':");
+ sb.append(Long.toString(investmentInit));
+ sb.append(",'investment-run':");
+ sb.append(Long.toString(investmentRt));
+ sb.append(",'evicted':");
+ sb.append(evicted ? "True" : "False");
+ sb.append(",'purged':");
+ sb.append(purged ? "True" : "False");
+ sb.append(",'fixed':");
+ sb.append(fixed ? "True" : "False");
+ sb.append(",'initialized':");
+ sb.append(initialized ? "True" : "False");
}
+ sb.append("}");
+
+ return sb.toString();
}
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccRmAdmin.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccRmAdmin.java?rev=1674121&r1=1674120&r2=1674121&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccRmAdmin.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccRmAdmin.java Thu Apr 16 17:59:35 2015
@@ -279,32 +279,15 @@ public class DuccRmAdmin
}
if ( args[0].equals("--qload")) {
- if ( args.length != 2 ) usage("Query load: specify --console or --compact");
- if ( !args[1].equals("--console") && !args[1].equals("--compact") ) {
- usage("Invalid argument: " + args[1] + " - specify --console or --compact");
- }
RmAdminQLoadReply ret = qload();
- if ( args[1].equals("--console") ) {
- System.out.println(ret.toConsole());
- } else {
- System.out.println(ret.toCompact());
- }
+ System.out.println(ret.toString());
return;
}
if ( args[0].equals("--qoccupancy")) {
- if ( args.length != 2 ) usage("Query occupancy: specify --console or --compact");
- if ( !args[1].equals("--console") && !args[1].equals("--compact") ) {
- usage("Invalid argument: " + args[1] + " - specify --console or --compact");
- }
RmAdminQOccupancyReply ret = qoccupancy();
- if ( args[1].equals("--console") ) {
- System.out.println(ret.toConsole());
- } else {
- System.out.println(ret.toCompact());
- }
-
+ System.out.println(ret.toString());
return;
}
@@ -326,8 +309,8 @@ public class DuccRmAdmin
System.out.println("Where verbs are:");
System.out.println(" --varyoff string-delimeted-nodes");
System.out.println(" --varyon string-delimeted-nodes");
- System.out.println(" --qload --console|--compact");
- System.out.println(" --qoccupancy --console|--compact");
+ System.out.println(" --qload");
+ System.out.println(" --qoccupancy");
System.out.println(" --reconfigure"); // dynamic reconfig UIMA-4142
System.exit(1);
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java?rev=1674121&r1=1674120&r2=1674121&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/Scheduler.java Thu Apr 16 17:59:35 2015
@@ -1269,11 +1269,14 @@ public class Scheduler
}
public synchronized RmAdminQLoadReply queryLoad()
- {
-
- while ( !ready() ) {}
+ {
RmAdminQLoadReply ret = new RmAdminQLoadReply();
+ if ( ! ready() ) {
+ ret.notReady();
+ return ret;
+ }
+
ret.setShareQuantum(share_quantum);
calculateLoad(ret);
@@ -1294,6 +1297,10 @@ public class Scheduler
public synchronized RmAdminQOccupancyReply queryOccupancy()
{
RmAdminQOccupancyReply ret = new RmAdminQOccupancyReply();
+ if ( ! ready() ) {
+ ret.notReady();
+ return ret;
+ }
//
// iterate top-level nodepools to get all their subpools