def longRunningFunction(multiplier, name, times=1): duration = SIMULATION_SLOWNESS*multiplier import task_progress task_progress.taskStarted(name) for i in range(times): task_progress.taskProgress(name) #print 'stalling on', name, 'for', duration oldSleep(duration) task_progress.taskFinish(name)
def ntpQueryFinish(): global _openSocket task_progress.taskProgress('ntp') try: rawData = _openSocket.recv(1024) except (socket.error, socket.gaierror), ex: log.info('Socket error receiving from NTP server ' + str(ex)) task_progress.taskFinish('ntp') raise NTPError('Socket error ' + str(ex))
def longRunningFunction(multiplier, name, times=1): duration = SIMULATION_SLOWNESS * multiplier import task_progress task_progress.taskStarted(name) for i in range(times): task_progress.taskProgress(name) #print 'stalling on', name, 'for', duration oldSleep(duration) task_progress.taskFinish(name)
def ntpReady(timeout=1.0): """Block until the ntp socket is ready for reading or the timeout fires. Returns true if the socket is ready to be read by ntpQueryFinish. """ task_progress.taskProgress('ntp') iready, _oready, _eready = \ select.select([_openSocket], [], [], timeout) return iready != []
def ntpQueryStart(server): global _openSocket task_progress.taskStarted('ntp') carefullyCloseSocket() _openSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) task_progress.taskProgress('ntp') try: _openSocket.connect((server, NTP_PORT)) _openSocket.send(NTP_ASK_MSG) except (socket.error, socket.gaierror), ex: log.info('Socket error sending to NTP server ' + str(ex)) raise NTPError('Socket error ' + str(ex))
def test_subtasks(): listener = IndentedStringListener() task_progress.addNotificationListener(listener) task_progress.taskStarted('super', 10) task_progress.subtaskStarted('sub1', 'super', 10) task_progress.taskProgress('sub1', 5) task_progress.taskProgress('sub1', 5) task_progress.taskFinish('sub1') task_progress.subtaskStarted('sub2', 'super', 10, 5) task_progress.taskProgress('sub2', 5) task_progress.taskProgress('sub2', 5) task_progress.taskFinish('sub2') task_progress.taskFinish('super') assert listener.getBuffer() == '''\ Started super .................................................. Started sub1 .................................................. Progress super ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Progress sub1 ,,,,,,,,,,,,,,,,,,,,,,,,,OOOOOOOOOOOOOOOOOOOOOOOOO Progress super ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Progress sub1 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO Progress super ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Finish sub1 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Progress super ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Started sub2 .................................................. Progress super ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Progress sub2 ,,,,,,,,,,,,,,,,,,,,,,,,,OOOOOOOOOOOOOOOOOOOOOOOOO Progress super ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Progress sub2 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO Progress super ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Finish sub2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Progress super ,,,,,,,,,,,,,,,,,,,,,,,,,OOOOOOOOOOOOOOOOOOOOOOOOO Finish super XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ''' task_progress.removeNotificationListener(listener)
def createVnic(self, wrappedIPConf, portGroupName): '''Creates a Virtual NIC and associates it with an ipConfig. This should result in a vswifX interface being created on the COS ''' ipConf = wrappedIPConf._getVmkctlIpConfig() name = self._nextVnicName() macGen = vmkctl.MacAddressGenerator.GetSingleton() macAddr = macGen.GenerateVswifMacAddr(name) task_progress.taskProgress('network') self.__vNic = _consoleNicInfo.AddServiceConsoleNic( name, portGroupName, ipConf, macAddr, False) # False => don't enable the interface now
def cosConnect(pNic=None, vSwitch=None, portGroupName=None, vlanID=None, vNic=None, ipConf=None): '''Attempt to bring up (connect) a COS network interface. Should be able to robustly deal with any or all of the arguments left as None. ''' task_progress.taskStarted('network') import host_config # in the function namespace to avoid circular imports if not host_config.config.hostname: host_config.config.hostname = 'localhost' if not pNic: pNic = getPluggedInAvailableNIC() task_progress.taskProgress('network') if not portGroupName: portGroupName = makeDownloadPortgroupName() if not vSwitch: vSwitch = VirtualSwitchFacade(portGroupName=portGroupName, vlanID=vlanID) vSwitch.uplink = pNic if not ipConf: ipConf = DHCPIPConfig() task_progress.taskProgress('network') if not vNic: vNic = VirtualNicFacade(ipConfig=ipConf, portGroupName=portGroupName) try: try: # We can't reliably check vNic.enabled, so just disable the # re-enable. vNic.disable() vNic.enable() except vmkctl.HostCtlException, ex: log.error('HostCtlException during cosConnect(): '+ ex.GetMessage()) log.debug('If you are testing the installer inside a VM, make' 'sure promiscuous mode is available') raise WrappedVmkctlException(ex) finally: task_progress.taskFinish('network') return vNic
def calc_md5(f, zpos, zlen, isosize): from md5 import md5 f.seek(0, SEEK_END) fileSize = f.tell() task_progress.taskStarted('brandiso.calc_md5', fileSize) m = md5() f.seek(0, SEEK_SET) pos = 0 while pos < isosize: # Read up to the start of the zero-d out spot, skip that and then read # through the rest of the file. if pos < zpos: blockSize = min(zpos - pos, READ_BLOCK_SIZE) elif pos == zpos: task_progress.taskProgress('brandiso.calc_md5', zlen) pos = zpos + zlen f.seek(pos, SEEK_SET) m.update('\0' * zlen) # Still need to update the digest with zeroes. continue else: blockSize = min(isosize - pos, READ_BLOCK_SIZE) block = f.read(blockSize) if not block: break task_progress.taskProgress('brandiso.calc_md5', len(block)) m.update(block) pos += len(block) digest = m.digest() assert len(digest) == CHECKSUM_SIZE task_progress.taskFinish('brandiso.calc_md5') return digest
def test_simple_noamounts(): listener = IndentedStringListener() task_progress.addNotificationListener(listener) task_progress.taskStarted('taskA') task_progress.taskProgress('taskA') task_progress.taskProgress('taskA') task_progress.taskProgress('taskA') task_progress.taskFinish('taskA') assert listener.getBuffer() == '''\ Started taskA .................................................. Progress taskA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Progress taskA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Progress taskA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Finish taskA XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ''' task_progress.removeNotificationListener(listener)
def test_overshoot(): listener = IndentedStringListener() task_progress.addNotificationListener(listener) task_progress.taskStarted('taskOvershoot', 8) task_progress.taskProgress('taskOvershoot', 5) task_progress.taskProgress('taskOvershoot', 5) task_progress.taskProgress('taskOvershoot', 5) task_progress.taskFinish('taskOvershoot') assert listener.getBuffer() == '''\ Started taskOvershoot .................................................. Progress taskOvershoot ,,,,,,,,,,,,,,,,,,,OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO Progress taskOvershoot OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO Progress taskOvershoot OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO Finish taskOvershoot XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ''' task_progress.removeNotificationListener(listener)
def test_simple_amounts(): listener = IndentedStringListener() task_progress.addNotificationListener(listener) task_progress.taskStarted('taskC', 15) task_progress.taskProgress('taskC', 5) task_progress.taskProgress('taskC', 5) task_progress.taskProgress('taskC', 5) task_progress.taskFinish('taskC') assert listener.getBuffer() == '''\ Started taskC .................................................. Progress taskC ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,OOOOOOOOOOOOOOOOO Progress taskC ,,,,,,,,,,,,,,,,,OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO Progress taskC OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO Finish taskC XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ''' task_progress.removeNotificationListener(listener)
def test_simple_nototal(): listener = IndentedStringListener() task_progress.addNotificationListener(listener) task_progress.taskStarted('taskB') task_progress.taskProgress('taskB', 5) task_progress.taskProgress('taskB', 25) task_progress.taskProgress('taskB', 5) task_progress.taskFinish('taskB') assert listener.getBuffer() == '''\ Started taskB .................................................. Progress taskB ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Progress taskB ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Progress taskB ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Finish taskB XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ''' task_progress.removeNotificationListener(listener)
def test_interleaved(): listener = IndentedStringListener() task_progress.addNotificationListener(listener) task_progress.taskStarted('taskE', 15) task_progress.taskProgress('taskE', 5) task_progress.taskStarted('taskD', 15) task_progress.taskProgress('taskD', 5) task_progress.taskProgress('taskE', 5) task_progress.taskProgress('taskE', 5) task_progress.taskProgress('taskD', 5) task_progress.taskFinish('taskE') task_progress.taskProgress('taskD', 5) task_progress.taskFinish('taskD') assert listener.getBuffer() == '''\ Started taskE .................................................. Progress taskE ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,OOOOOOOOOOOOOOOOO Started taskD .................................................. Progress taskD ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,OOOOOOOOOOOOOOOOO Progress taskE ,,,,,,,,,,,,,,,,,OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO Progress taskE OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO Progress taskD ,,,,,,,,,,,,,,,,,OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO Finish taskE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Progress taskD OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO Finish taskD XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ''' task_progress.removeNotificationListener(listener)