def load(self, pab, devname): logger.info("load devname - %s", devname) try: url = self.parseDev(devname) tmpname = self.http_get(url, pab) if (not ti_files.isTiFile(tmpname) ) and devname.lower().endswith(basicSuffixes): prog_file = BasicFile.load(tmpname) else: prog_file = ProgramImageFile.load(tmpname) filesize = prog_file.getImageSize() bytes = prog_file.getImage() maxsize = recordNumber(pab) if filesize > maxsize: logger.debug( "TI buffer too small, only loading %d of %d bytes", maxsize, filesize) bytes = bytes[:maxsize] self.tipi_io.send([SUCCESS]) logger.info("LOAD image size %d", filesize) self.tipi_io.send(bytes) except Exception: # I don't think this will work. we need to check for as # many errors as possible up front. self.tipi_io.send([EFILERR]) logger.exception("failed to load file - %s", devname)
def handleLoad(self, pab, devname): logger.info("Opcode 5 LOAD - %s", devname) logPab(pab) maxsize = recordNumber(pab) unix_name = tinames.devnameToLocal(devname) if not os.path.exists(unix_name): logger.info("Passing to other controllers") self.sendErrorCode(EDVNAME) return try: if (not ti_files.isTiFile(unix_name) ) and unix_name.lower().endswith(basicSuffixes): prog_file = BasicFile.load(unix_name) else: prog_file = ProgramImageFile.load(unix_name) filesize = prog_file.getImageSize() bytes = prog_file.getImage() if filesize > maxsize: logger.debug( "TI buffer too small, only loading %d of %d bytes", maxsize, filesize) bytes = bytes[:maxsize] self.sendSuccess() logger.info("LOAD image size %d", filesize) self.tipi_io.send(bytes) except Exception as e: # I don't think this will work. we need to check for as # many errors as possible up front. self.sendErrorCode(EFILERR) logger.exception("failed to load file - %s", devname)
def load(self, pab, devname): logger.info("load devname - %s", devname) try: tmpname = '/tmp/CF' url = self.parseDev(devname) cmd = "wget -O {} {}".format(tmpname, url) logger.info("cmd: %s", cmd) code = os.system(cmd) if code != 0: raise Exception("error downloading resource") if (not ti_files.isTiFile(tmpname) ) and devname.lower().endswith(basicSuffixes): prog_file = BasicFile.load(tmpname) else: prog_file = ProgramImageFile.load(tmpname) filesize = prog_file.getImageSize() bytes = prog_file.getImage() maxsize = recordNumber(pab) if filesize > maxsize: logger.debug( "TI buffer too small, only loading %d of %d bytes", maxsize, filesize) bytes = bytes[:maxsize] self.tipi_io.send([SUCCESS]) logger.info("LOAD image size %d", filesize) self.tipi_io.send(bytes) except Exception: # I don't think this will work. we need to check for as # many errors as possible up front. self.tipi_io.send([EFILERR]) logger.exception("failed to load file - %s", devname)
def handleSave(self, pab, devname): logger.info("Opcode 6 Save - %s", devname) logPab(pab) unix_name = tinames.devnameToLocal(devname) logger.debug("unix_name for program is %s", unix_name) if unix_name == "" or unix_name is None: self.sendErrorCode(EDVNAME) return oled.info("SAVE:/%s", devname) logger.debug("saving program to %s", unix_name) if self.parentExists(unix_name): self.sendSuccess() fdata = self.tipi_io.receive() logger.debug("received program image") try: if unix_name.lower().endswith(basicSuffixes): prog_file = BasicFile.create(fdata) else: prog_file = ProgramImageFile.create(devname, unix_name, fdata) logger.debug("created file object") prog_file.save(unix_name) self.sendSuccess() except Exception as e: logger.exception("failed to save PROGRAM") self.sendErrorCode(EDEVERR) return self.sendErrorCode(EDEVERR)
def handleLoad(self, pab, devname): logger.info("Opcode 5 LOAD - %s", devname) logPab(pab) maxsize = recordNumber(pab) unix_name = tinames.devnameToLocal(devname) if unix_name is None or not os.path.exists(unix_name): logger.info("Passing to other controllers") self.sendErrorCode(EDVNAME) return try: if (not ti_files.isTiFile(unix_name) ) and unix_name.lower().endswith(basicSuffixes): prog_file = BasicFile.load(unix_name) elif 'DV' == ti_files.get_file_type( unix_name) and unix_name.lower().endswith(basicSuffixes): # if it has a basic suffix, lets try to coerce it # from DISPLAY VARIABLE maybe prog_file = BasicFile.load(unix_name) else: prog_file = ProgramImageFile.load(unix_name) filesize = prog_file.getImageSize() bytes = prog_file.getImage() if filesize > maxsize: logger.debug( "TI buffer too small, only loading %d of %d bytes", maxsize, filesize, ) bytes = bytes[:maxsize] dirname = os.path.dirname(unix_name) if tipi_config.get("AUTO") == "on": tipidirname = tinames.local2tipi(dirname) logger.debug("tmp mapping DSK1 to %s", tipidirname) tipi_config.settmp("DSK1_DIR", tipidirname) else: logger.debug("AUTO mapping not enabled") tipifile = os.path.join(dirname, "TIPI") if os.path.isfile(tipifile): config_records = load_internal(tipifile) tipi_config.applyrecords(config_records) self.sendSuccess() logger.info("LOAD image size %d", filesize) self.tipi_io.send(bytes) except Exception as e: # I don't think this will work. we need to check for as # many errors as possible up front. self.sendErrorCode(EFILERR) logger.exception("failed to load file - %s", devname)
def handleSave(self, pab, devname): logger.info("Opcode 6 Save - %s", devname) logPab(pab) unix_name = tinames.devnameToLocal(devname) logger.debug("unix_name for program is %s", unix_name) if unix_name == "" or unix_name is None: self.sendErrorCode(EDVNAME) return logger.debug("saving program to %s", unix_name) if self.parentExists(unix_name): # check protect flag if ti_files.isTiFile(unix_name): fh = open(unix_name, "rb") header = bytearray(fh.read())[:128] if ti_files.isProtected(header): self.sendErrorCode(EWPROT) return self.sendSuccess() fdata = self.tipi_io.receive() logger.debug("received program image") try: if unix_name.lower().endswith(basicSuffixes): prog_file = BasicFile.create(fdata) else: prog_file = ProgramImageFile.create( devname, unix_name, fdata) logger.debug("created file object") prog_file.save(unix_name) self.sendSuccess() except Exception as e: logger.exception("failed to save PROGRAM") self.sendErrorCode(EDEVERR) return self.sendErrorCode(EDEVERR)
def save(self, pab, devname): logger.info("save devname - %s", devname) try: url = self.parseDev(devname) tmpname = '/tmp/CF' self.tipi_io.send([SUCCESS]) fdata = self.tipi_io.receive() logger.debug("received program image") if devname.lower().endswith(basicSuffixes): prog_file = BasicFile.create(fdata) else: prog_file = ProgramImageFile.create(devname, tmpname, fdata) logger.debug("created file object") prog_file.save(tmpname) self.http_post(url, pab) self.tipi_io.send([SUCCESS]) except Exception as e: logger.exception("failed to save PROGRAM") self.tipi_io.send([EFILERR]) return