primitive: provide general __isReady function, and let failures due to down hosts be muffled
git-svn-id: https://svn.apache.org/repos/asf/incubator/tashi/trunk@1352274 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/tashi/agents/primitive.py b/src/tashi/agents/primitive.py
index 5014d47..14a23bd 100755
--- a/src/tashi/agents/primitive.py
+++ b/src/tashi/agents/primitive.py
@@ -63,7 +63,7 @@
for h in self.cm.getHosts():
#XXXstroucki get all hosts here?
- #if (h.up == True and h.state == HostState.Normal):
+ #if (__isReady(h)):
hosts[ctr] = h
ctr = ctr + 1
load[h.id] = []
@@ -104,6 +104,11 @@
if name in self.clearHints[hint]:
popit = self.clearHints[hint].index(name)
self.clearHints[hint].pop(popit)
+
+ def __isReady(host):
+ if host.up == False or host.state != HostState.Normal:
+ return False
+ return True
def __scheduleInstance(self, inst):
@@ -135,7 +140,7 @@
# has a host preference been expressed?
if (targetHost != None):
for h in self.hosts.values():
- if (h.state == HostState.Normal):
+ if (__isReady(h)):
self.__clearHints("targetHost", h.name)
# if this is not the host we are looking for, continue
if ((str(h.id) != targetHost and h.name != targetHost)):
@@ -163,13 +168,8 @@
for ctr in range(self.lastScheduledHost, len(self.hosts)) + range(0, self.lastScheduledHost):
h = self.hosts[ctr]
- # XXXstroucki if it's down, find another machine
- if (h.up == False):
- continue
-
- # If the host not in normal operating state,
- # find another machine
- if (h.state != HostState.Normal):
+ # XXXstroucki if it's unavailable, find another machine
+ if (__isReady(h) == False):
continue
else:
# If the host is back to normal, get rid of the entry in clearHints