Commit fc39f716 authored by Jérome Perrin's avatar Jérome Perrin

Remove try/except that can hide programming errors

parent bcbc200b
...@@ -127,10 +127,7 @@ class CoreObject(Process): ...@@ -127,10 +127,7 @@ class CoreObject(Process):
self.downTimeInTryingToReleaseCurrentEntity=0 self.downTimeInTryingToReleaseCurrentEntity=0
self.timeLastEntityLeft=now() self.timeLastEntityLeft=now()
try: self.outputTrace(activeEntity.name, "released "+self.objName)
self.outputTrace(activeEntity.name, "released "+self.objName)
except TypeError:
pass
return activeEntity return activeEntity
# ======================================================================= # =======================================================================
...@@ -175,10 +172,7 @@ class CoreObject(Process): ...@@ -175,10 +172,7 @@ class CoreObject(Process):
self.nameLastEntityEntered=activeEntity.name # this holds the name of the last entity that got into Machine self.nameLastEntityEntered=activeEntity.name # this holds the name of the last entity that got into Machine
self.downTimeProcessingCurrentEntity=0 self.downTimeProcessingCurrentEntity=0
try: self.outputTrace(activeEntity.name, "got into "+self.objName)
self.outputTrace(activeEntity.name, "got into "+self.objName)
except TypeError:
pass
return activeEntity return activeEntity
# ======================================================================= # =======================================================================
...@@ -359,4 +353,4 @@ class CoreObject(Process): ...@@ -359,4 +353,4 @@ class CoreObject(Process):
# (failure, break, preemption, etc) # (failure, break, preemption, etc)
# ======================================================================= # =======================================================================
def interruptionActions(self): def interruptionActions(self):
pass pass
\ No newline at end of file
...@@ -83,14 +83,11 @@ class Failure(ObjectInterruption): ...@@ -83,14 +83,11 @@ class Failure(ObjectInterruption):
def run(self): def run(self):
while 1: while 1:
yield hold,self,self.rngTTF.generateNumber() # wait until a failure happens yield hold,self,self.rngTTF.generateNumber() # wait until a failure happens
try: if(len(self.getVictimQueue())>0): # when a Machine gets failure
if(len(self.getVictimQueue())>0): # when a Machine gets failure self.interruptVictim() # while in process it is interrupted
self.interruptVictim() # while in process it is interrupted self.victim.Up=False
self.victim.Up=False self.victim.timeLastFailure=now()
self.victim.timeLastFailure=now() self.outputTrace("is down")
self.outputTrace("is down")
except AttributeError:
print "AttributeError1"
# update the failure time # update the failure time
failTime=now() failTime=now()
if(self.repairman!="None"): #if the failure needs a resource to be fixed, the machine waits until the if(self.repairman!="None"): #if the failure needs a resource to be fixed, the machine waits until the
...@@ -103,13 +100,10 @@ class Failure(ObjectInterruption): ...@@ -103,13 +100,10 @@ class Failure(ObjectInterruption):
yield hold,self,self.rngTTR.generateNumber() # wait until the repairing process is over yield hold,self,self.rngTTR.generateNumber() # wait until the repairing process is over
self.victim.totalFailureTime+=now()-failTime self.victim.totalFailureTime+=now()-failTime
try: if(len(self.getVictimQueue())>0):
if(len(self.getVictimQueue())>0): self.reactivateVictim() # since repairing is over, the Machine is reactivated
self.reactivateVictim() # since repairing is over, the Machine is reactivated self.victim.Up=True
self.victim.Up=True self.outputTrace("is up")
self.outputTrace("is up") if(self.repairman!="None"): #if a resource was used, it is now released
if(self.repairman!="None"): #if a resource was used, it is now released yield release,self,self.repairman.getResource()
yield release,self,self.repairman.getResource() self.repairman.totalWorkingTime+=now()-timeOperationStarted
self.repairman.totalWorkingTime+=now()-timeOperationStarted
except AttributeError:
print "AttributeError2"
...@@ -193,10 +193,8 @@ def createObjects(): ...@@ -193,10 +193,8 @@ def createObjects():
name = element.get('name', 'not found') # get the name of the element / default 'not_found' name = element.get('name', 'not found') # get the name of the element / default 'not_found'
capacity = int(element.get('capacity', '1')) # get the capacity of the el. / defautl '1' capacity = int(element.get('capacity', '1')) # get the capacity of the el. / defautl '1'
O = Operator(element_id, name, capacity) # create an operator object O = Operator(element_id, name, capacity) # create an operator object
try: O.coreObjectIds=getSuccessorList(id) # update the list of objects that the operator operates
O.coreObjectIds=getSuccessorList(id) # update the list of objects that the operator operates # calling the getSuccessorList() method on the operator
except: # calling the getSuccessorList() method on the operator
pass
G.OperatorsList.append(O) # add the repairman to the RepairmanList G.OperatorsList.append(O) # add the repairman to the RepairmanList
elif resourceClass=='Dream.OperatorPool': elif resourceClass=='Dream.OperatorPool':
id = element.get('id', 'not found') # get the id of the element / default 'not_found' id = element.get('id', 'not found') # get the id of the element / default 'not_found'
...@@ -212,11 +210,8 @@ def createObjects(): ...@@ -212,11 +210,8 @@ def createObjects():
else: else:
OP = OperatorPool(element_id, name, capacity,operatorsList) # create a operatorPool object OP = OperatorPool(element_id, name, capacity,operatorsList) # create a operatorPool object
OP.coreObjectIds=getSuccessorList(id) # update the list of objects that the operators of the operatorPool operate OP.coreObjectIds=getSuccessorList(id) # update the list of objects that the operators of the operatorPool operate
try: for operator in operatorsList.values():
for operator in operatorsList.values(): operator.coreObjectIds=OP.coreObjectIds # update the list of objects that the operators operate
operator.coreObjectIds=OP.coreObjectIds # update the list of objects that the operators operate
except:
pass
G.OperatorPoolsList.append(OP) # add the repairman to the RepairmanList G.OperatorPoolsList.append(OP) # add the repairman to the RepairmanList
# ----------------------------------------------------------------------- # -----------------------------------------------------------------------
# loop through all the elements # loop through all the elements
...@@ -807,20 +802,11 @@ def initializeObjects(): ...@@ -807,20 +802,11 @@ def initializeObjects():
# =========================================================================== # ===========================================================================
def activateObjects(): def activateObjects():
for element in G.ObjList: for element in G.ObjList:
try: activate(element, element.run())
activate(element, element.run())
except AttributeError:
pass
for ev in G.EventGeneratorList: for ev in G.EventGeneratorList:
try: activate(ev, ev.run())
activate(ev, ev.run())
except AttributeError:
pass
for oi in G.ObjectInterruptionList: for oi in G.ObjectInterruptionList:
try: activate(oi, oi.run())
activate(oi, oi.run())
except AttributeError:
pass
# =========================================================================== # ===========================================================================
# reads the WIP of the stations # reads the WIP of the stations
...@@ -840,11 +826,7 @@ def createWIP(): ...@@ -840,11 +826,7 @@ def createWIP():
element['id'] = element_id element['id'] = element_id
wip=element.get('wip', []) wip=element.get('wip', [])
for entity in wip: for entity in wip:
entityClass=None entityClass=entity.get('_class', None)
try:
entityClass=entity.get('_class', None)
except IndexError:
continue
if entityClass=='Dream.OrderComponent': if entityClass=='Dream.OrderComponent':
id=entity.get('id', 'not found') id=entity.get('id', 'not found')
...@@ -896,7 +878,7 @@ def createWIP(): ...@@ -896,7 +878,7 @@ def createWIP():
G.JobList.append(OC) G.JobList.append(OC)
G.WipList.append(OC) G.WipList.append(OC)
G.EntityList.append(OC) G.EntityList.append(OC)
elif entityClass=='Dream.Job': elif entityClass=='Dream.Job':
id=entity.get('id', 'not found') id=entity.get('id', 'not found')
name=entity.get('name', 'not found') name=entity.get('name', 'not found')
...@@ -1143,17 +1125,11 @@ def main(argv=[], input_data=None): ...@@ -1143,17 +1125,11 @@ def main(argv=[], input_data=None):
#output data to JSON for every object in the topology #output data to JSON for every object in the topology
for element in G.ObjList: for element in G.ObjList:
try: element.outputResultsJSON()
element.outputResultsJSON()
except AttributeError:
pass
#output data to JSON for every resource in the topology #output data to JSON for every resource in the topology
for model_resource in G.RepairmanList: for model_resource in G.RepairmanList:
try: model_resource.outputResultsJSON()
model_resource.outputResultsJSON()
except AttributeError:
pass
for job in G.JobList: for job in G.JobList:
job.outputResultsJSON() job.outputResultsJSON()
......
...@@ -264,10 +264,7 @@ class Machine(CoreObject): ...@@ -264,10 +264,7 @@ class Machine(CoreObject):
# checks if the machine down or it can dispose the object # checks if the machine down or it can dispose the object
# ======================================================================= # =======================================================================
def ifCanDisposeOrHaveFailure(self): def ifCanDisposeOrHaveFailure(self):
try: return self.Up==False or self.getReceiverObject().canAccept(self) or len(self.getActiveObjectQueue())==0
return self.Up==False or self.getReceiverObject().canAccept(self) or len(self.getActiveObjectQueue())==0
except AttributeError:
return False
# ======================================================================= # =======================================================================
# removes an entity from the Machine # removes an entity from the Machine
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment