Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
    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