import sh import os class NAND_Flasher: __Name = None __varlist = None __xmlObj = None __igepflashPath = None __lastError = '' def __init__(self, varlist): self.__varlist = varlist self.__xmlObj = varlist['xml'] self.__Name = varlist.get('name_flashnand', self.__xmlObj.getKeyVal('NAND_Flasher', 'name', 'NAND_Flasher')) self.__igepflashPath = self.__xmlObj.getKeyVal('NAND_Flasher', 'igep_flash', '/usr/bin/igep-flash') self.__ImagePath = varlist.get('flashimagepath', '') self.__SkipNandtest = varlist.get('skipnandtest', self.__xmlObj.getKeyVal('NAND_Flasher', 'skipnandtest', '1')) def getTaskName(self): return self.__Name def getError(self): return self.__lastError def Execute(self): try: self.__lastError = '' if not os.path.isfile(self.__ImagePath): self.__lastError('Not Image Found: {}'.format(self.__ImagePath)) return False, None if self.__SkipNandtest == '1': p = sh.bash('{}'.format(self.__igepflashPath), "--skip-nandtest", "--image", self.__ImagePath) else: p = sh.bash('{}'.format(self.__igepflashPath), "--image", self.__ImagePath) if p.exit_code != 0: return False, None except OSError as e: self.__lastError('Exception: {}'.format(e.strerror)) return False, None except Exception as Error: self.__lastError('Exception: {}'.format(Error)) return False, None return True, None