quarchpy.disk_test package

Submodules

quarchpy.disk_test.AbsDiskFinder module

class quarchpy.disk_test.AbsDiskFinder.AbsDiskFinder

Bases: object

abstract findDevices()
abstract formatList(deviceList)
abstract returnDisk()

quarchpy.disk_test.DiskTargetSelection module

This contains useful functions to help with disk target selection

Ensure installation of wmi and pywin32

########### VERSION HISTORY ###########

13/08/2018 - Andy Norrie - First version, based on initial work from Pedro Leao

quarchpy.disk_test.DiskTargetSelection.getDiskTargetSelection(purpose='iometer')

quarchpy.disk_test.UserTestExample module

This example demonstrates the use of Quarch Drive Test Suite functions to create a set of tests

  • Tests can be run directly, or parsed from a CSV file

  • Test callbacks can be overridden by the user and modified to add additional functionality

########### VERSION HISTORY ###########

20/09/2018 - Andy Norrie - First Version

########### INSTRUCTIONS ###########

1- Run the script and follow the instructions on screen


quarchpy.disk_test.UserTestExample.ExampleTests()
quarchpy.disk_test.UserTestExample.main()

Setup the callback functions used by the tests, for logging and checking drive function This currently uses the standard provided functions, can cab be altered by the user

quarchpy.disk_test.driveTestConfig module

This file contains global setup variables and similar, required for use across multiple modules

########### VERSION HISTORY ###########

03/01/2019 - Andy Norrie - First Version

########### INSTRUCTIONS ###########

N/A


quarchpy.disk_test.driveTestConfig.logDebugMessagesOnTerminal = True

Settings for current GUI

quarchpy.disk_test.driveTestConfig.testCallbacks = {}

Holds the test resources that are created during ‘Setup’ operations to allow use of the resource during ‘Tests’. This is a dictionary in the form {nameString:Object} where the nameString is unique and the Object can be a string, quarchDevice or any similar object used as a resource during testing

quarchpy.disk_test.driveTestConfig.testResources = {}

Setting to specify the level of debug logging and display

quarchpy.disk_test.driveTestCore module

This file contains the core functions for the drive test suite. Functions are placed here for the core setup functions called during the init stage of a test (or CSV parsed test set)

########### VERSION HISTORY ###########

03/01/2019 - Andy Norrie - First Version

########### INSTRUCTIONS ###########

N/A


quarchpy.disk_test.driveTestCore.ActivateRemoteServer(portNumber=9742, localHost=False)
quarchpy.disk_test.driveTestCore.DiskStatusCheck(uniqueID, driveId, expectedState, checkLanes=True)
quarchpy.disk_test.driveTestCore.attemptRestart(conn, sock, reason=None)
quarchpy.disk_test.driveTestCore.checkCompatibility(comms)
quarchpy.disk_test.driveTestCore.checkDriveState(driveObject, deviceState, waitTime)
quarchpy.disk_test.driveTestCore.chooseQuarchModule(moduleName, ipAddressLookup=None)
quarchpy.disk_test.driveTestCore.chooseQuarchModuleQPS(moduleName, myQps=None)
quarchpy.disk_test.driveTestCore.commandParser(conn, sock, data)
quarchpy.disk_test.driveTestCore.executeAndCheckCommand(myDevice, command)
quarchpy.disk_test.driveTestCore.executeCsvTestFile(testCallbacks, filePath, delimitor='\t')
quarchpy.disk_test.driveTestCore.getLocalIpAddress(first=True)
quarchpy.disk_test.driveTestCore.getTestResource(resourceName)
quarchpy.disk_test.driveTestCore.isUserAdmin()
quarchpy.disk_test.driveTestCore.main(argstring)
quarchpy.disk_test.driveTestCore.notifyTestLogEvent(timeStamp, logType, logText, logSource, logDetails=None)
quarchpy.disk_test.driveTestCore.notifyTestLogEventXml(uniqueId, timeStamp, logType, logText, logSource, logDetails=None)
quarchpy.disk_test.driveTestCore.powerOnDrive(myQuarchDevice, outputMode=None)
quarchpy.disk_test.driveTestCore.printProgressBar(iteration, total)
quarchpy.disk_test.driveTestCore.printToBackend(text='')
quarchpy.disk_test.driveTestCore.resetTestResources()
quarchpy.disk_test.driveTestCore.sendLogMessage(logTime, messageType, messageText, messageSource, messageData=None, uId='')
quarchpy.disk_test.driveTestCore.setTestResource(resourceName, resourceValue)
quarchpy.disk_test.driveTestCore.setUpLogging(logLevel)
quarchpy.disk_test.driveTestCore.specifyDriveById(driveId, driveName)
quarchpy.disk_test.driveTestCore.specifyQuarchModule(moduleName, interFaceType='PY', powerOnDevice=True)
quarchpy.disk_test.driveTestCore.storeResourceString(resourceName, resourceValue)
quarchpy.disk_test.driveTestCore.visualSleep(delayTime)

quarchpy.disk_test.dtsComms module

class quarchpy.disk_test.dtsComms.DTSCommms

Bases: object

createXMLSelectionDrive(key, values, driveType)
createXMLSelectionModule(dict, dictValue, outputMode=None, itemType='Module')
getReturnPacket(socket)
isVersionCompat(data)
newNotifyChoiceOption(type, dict, dictValue, moduleType=None, outputMode=None)
processTimeoutAndResult(socket, timeToWait)
sendMsgToGUI(toSend, timeToWait=5)

quarchpy.disk_test.dtsGlobals module

class quarchpy.disk_test.dtsGlobals.dtsGlobals

Bases: object

GUI_TCP_IP = '127.0.0.1'
QCSVersionValid = False
choiceResponse = None
continueTest = True
minQCSVersion = '1.04'
validVersion = True

quarchpy.disk_test.hostInformation module

Implements a cross platform system for scanning and querying system resources.

########### VERSION HISTORY ###########

06/05/2019 - Andy Norrie - First version


class quarchpy.disk_test.hostInformation.HostInformation

Bases: object

checkAdmin()
devicePresentInList(deviceList, deviceStr)
getDriveList(mappingMode)
getPcieLinkStatus(deviceStr, mappingMode)
get_device_status(device_id)
get_sas_drive_det_cmd()
internalResults = {}
isDevicePresent(deviceStr, mappingMode, driveType)
list_physical_drives(drive_type, search_params=None)
pickPcieTarget(resourceName, drive_type)
sendChoiceObjects(comms, deviceDict, drive_type)
storeInitialDriveStats(driveId, linkSpeed, linkWidth)
verifyDriveStats(uniqueID, driveId, mappingMode)

quarchpy.disk_test.hotPlugTest module

quarchpy.disk_test.hotPlugTest.clearSourceBounce(myDevice, sourceNumber)
quarchpy.disk_test.hotPlugTest.setupSignalsToSource(myDevice, signalList, sourceNumber)
quarchpy.disk_test.hotPlugTest.setupSimpleHotplug(myDevice, delayTime, stepCount)
quarchpy.disk_test.hotPlugTest.setupSourceBounce(myDevice, sourceNumber, bouncePattern)
quarchpy.disk_test.hotPlugTest.simpleHotPlugBounceTest(uniqueID, quarchName, driveName, insertTime, bouncePattern, bounceSignals, repeats=1, onTime=15, offTime=10, bounceOnPlug=True, bounceOnPull=False)
quarchpy.disk_test.hotPlugTest.simpleHotPlugTest(uniqueID, quarchName, driveName, insertTime, repeats=1, onTime=10, offTime=5)
quarchpy.disk_test.hotPlugTest.stringTimeToInt(timeStr, outputUnit)
quarchpy.disk_test.hotPlugTest.unhIolHotPlugSimpleSweep(quarchName, driveName, startTime, endTime, stepCount, repeats=1, onTime=10, offTime=5)
quarchpy.disk_test.hotPlugTest.visualSleep(delayTime)

quarchpy.disk_test.iometerDiskFinder module

class quarchpy.disk_test.iometerDiskFinder.iometerDiskFinder

Bases: quarchpy.disk_test.AbsDiskFinder.AbsDiskFinder

findDevices()
formatList(deviceList)
getAvailableDisks(hostDrive)
getAvailableDrives()
remove_values_from_list(the_list, val)
returnDisk()

quarchpy.disk_test.lspci module

Implements basic control over lspci utilities, so that we can identify and check the status of PCIe devices on the host system

class quarchpy.disk_test.lspci.LinuxLSPCI

Bases: quarchpy.disk_test.lspci.abstractLSPCI

getPcieDeviceDetailedInfo(deviceInfo=None, devicesToScan='all')
getPcieDeviceInfo()
getPcieDeviceList()
getPcieDevices(mappingMode, filterDrives=False)
getPcieLinkStatus(deviceStr, mappingMode)
is_admin_mode()
sortList(err, out)
class quarchpy.disk_test.lspci.WindowsLSPCI

Bases: quarchpy.disk_test.lspci.abstractLSPCI

getPcieDeviceDetailedInfo(deviceInfo=None, devicesToScan='all')
getPcieDeviceInfo()
getPcieDeviceList()
getPcieDevices(mappingMode, filterDrives=False)
getPcieLinkStatus(deviceStr, mappingMode)
is_admin_mode()
class quarchpy.disk_test.lspci.abstractLSPCI

Bases: abc.ABC

abstract getPcieDeviceDetailedInfo(deviceInfo, devicesToScan)
abstract getPcieDeviceList()
abstract is_admin_mode()
sortList(err, out)

quarchpy.disk_test.powerTest module

quarchpy.disk_test.powerTest.SetupStreamAveraging(quarchDevice, averagingRate)
quarchpy.disk_test.powerTest.simplePowerMarginingTest(uniqueID, quarchName, driveName, maxDecreasePercent, numberOfIncrements, repeats=1, onTime=15, offTime=10, averagingRate='16k')

quarchpy.disk_test.sasFuncs module

Implements basic SAS information parsing, so that we can identify and check the status of SAS/SATA devices on the host

class quarchpy.disk_test.sasFuncs.LinuxSAS

Bases: quarchpy.disk_test.sasFuncs.abstractSASDet

getDictKey(iteratorValue)
getSasDeviceList()
is_admin_mode()
return_device_det_cmd()
sortList(err, out)
class quarchpy.disk_test.sasFuncs.WindowsSAS

Bases: quarchpy.disk_test.sasFuncs.abstractSASDet

getSasDeviceList()
is_admin_mode()
return_device_det_cmd()
sortList(err, out)
class quarchpy.disk_test.sasFuncs.abstractSASDet

Bases: abc.ABC

abstract getSasDeviceList()
abstract is_admin_mode()
sortDeviceInfo(err, out, deviceInfo, devicesToScan)
abstract sortList(err, out)

quarchpy.disk_test.testLine module

class quarchpy.disk_test.testLine.testLine

Bases: object

Init function taking all parameters

initFromXml(xmlTree)

Module contents