try:
self.rootContext = obj._narrow(CosNaming.NamingContext)
return
- except CORBA.COMM_FAILURE:
+ except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE):
self.rootContext = None
print "Lancement du Naming Service",
obj = self.orb.resolve_initial_references("NameService")
self.rootContext = obj._narrow(CosNaming.NamingContext)
break
- except (CORBA.COMM_FAILURE,CORBA.OBJECT_NOT_EXIST):
+ except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE):
self.rootContext = None
sys.stdout.write('+')
sys.stdout.flush()
def showNScontext(self,context,dec=''):
bl,bi=context.list(0)
- ok,b=bi.next_one()
- while(ok):
- for s in b.binding_name :
- print "%s%s.%s" %(dec,s.id,s.kind)
- if s.kind == "dir":
- obj=context.resolve([s])
- scontext = obj._narrow(CosNaming.NamingContext)
- self.showNScontext(scontext,dec=dec+' ')
+ if bi is not None:
ok,b=bi.next_one()
+ while(ok):
+ for s in b.binding_name :
+ print "%s%s.%s" %(dec,s.id,s.kind)
+ if s.kind == "dir":
+ obj=context.resolve([s])
+ scontext = obj._narrow(CosNaming.NamingContext)
+ self.showNScontext(scontext,dec=dec+' ')
+ ok,b=bi.next_one()
# --------------------------------------------------------------------------
obj = None
except CosNaming.NamingContext.CannotProceed, ex:
obj = None
- except CORBA.COMM_FAILURE, ex:
+ except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE):
obj = None
return obj
if nobj is None:
print "%s exists but is not a %s" % (name,typobj)
return nobj
+ def waitNSPID(self, theName, thePID, theTypObj = None):
+ aCount = 0
+ aDelta = 0.5
+ anObj = None
+ print "Searching %s in Naming Service " % theName,
+ while(1):
+ try:
+ aPid, aStatus = os.waitpid(thePID,os.WNOHANG)
+ except Exception, exc:
+ raise "Impossible de trouver %s" % theName
+ aCount += 1
+ anObj = self.Resolve(theName)
+ if anObj:
+ print " found in %s seconds " % ((aCount-1)*aDelta)
+ break
+ else:
+ sys.stdout.write('+')
+ sys.stdout.flush()
+ time.sleep(aDelta)
+ pass
+ pass
+
+ if theTypObj is None:
+ return anObj
+
+ anObject = anObj._narrow(theTypObj)
+ if anObject is None:
+ print "%s exists but is not a %s" % (theName,theTypObj)
+ return anObject
+
# --------------------------------------------------------------------------
obj = None
except CosNaming.NamingContext.CannotProceed, ex:
obj = None
- except CORBA.COMM_FAILURE, ex:
+ except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE):
obj = None
return obj