def waitDeviceManager(self, devBooter, dcdFile, domainManager=None): try: dcdPath = self._getDCDPath(dcdFile) except IOError: print "ERROR: Invalid DCD path provided to waitDeviceManager", dcdFile return None # Parse the DCD file to get the identifier and number of devices, which can be # determined from the number of componentplacement elements. dcd = DCDParser.parse(dcdPath) if dcd.get_partitioning(): numDevices = len(dcd.get_partitioning().get_componentplacement()) else: numDevices = 0 # Allow the caller to override the DomainManager (assuming they have a good reason). if not domainManager: domainManager = self._domainManager # As long as the nodebooter process is still alive, keep checking for the # DeviceManager. devMgr = None while devBooter.poll() == None: devMgr = self._getDeviceManager(domainManager, dcd.get_id()) if devMgr: break time.sleep(0.1) if devMgr: # Wait for all of the devices to register. self._waitRegisteredDevices(devMgr, numDevices) self._addDeviceManager(devMgr) return devMgr
def waitForDeviceManager(self, node_dir): dcdPath = getSdrPath( ) + "/dev/nodes/" + node_dir + "/DeviceManager.dcd.xml" dcd = DCDParser.parse(dcdPath) if dcd.get_partitioning(): numDevices = len(dcd.get_partitioning().get_componentplacement()) else: numDevices = 0 # wait for DomainManager to register in naming context dm = None begin_time = time.time() while dm == None and time.time() - begin_time < 10: dm = self._getDomainManager() if dm: break time.sleep(0.5) devMgr = None while devMgr == None: devMgr = self._getDeviceManager(dm, dcd.get_id()) if devMgr: break time.sleep(0.1) if devMgr: self._waitRegisteredDevices(devMgr, numDevices) self._addDeviceManager(devMgr) return devMgr
def waitForDeviceManager(self, node_dir): dcdPath = getSdrPath()+"/dev/nodes/"+node_dir+"/DeviceManager.dcd.xml" dcd = DCDParser.parse(dcdPath) if dcd.get_partitioning(): numDevices = len(dcd.get_partitioning().get_componentplacement()) else: numDevices = 0 dm = self._getDomainManager() devMgr = None while devMgr == None: devMgr = self._getDeviceManager(dm, dcd.get_id()) if devMgr: break time.sleep(0.1) if devMgr: self._waitRegisteredDevices(devMgr, numDevices) self._addDeviceManager(devMgr) return devMgr