runtime/PLCObject.py
changeset 2702 f0a70f0246da
parent 2698 e50d32c747b3
child 2720 971bb3503957
equal deleted inserted replaced
2701:f4dac054cfa3 2702:f0a70f0246da
   553     def PurgeBlobs(self):
   553     def PurgeBlobs(self):
   554         for fd, _path, _md5sum in self.blobs.values():
   554         for fd, _path, _md5sum in self.blobs.values():
   555             os.close(fd)
   555             os.close(fd)
   556         self._init_blobs()
   556         self._init_blobs()
   557 
   557 
   558     def _BlobAsFile(self, blobID, newpath):
   558     def BlobAsFile(self, blobID, newpath):
   559         blob = self.blobs.pop(blobID, None)
   559         blob = self.blobs.pop(blobID, None)
   560 
   560 
   561         if blob is None:
   561         if blob is None:
   562             raise Exception(_("Missing data to create file: {}").format(newpath))
   562             raise Exception(_("Missing data to create file: {}").format(newpath))
   563 
   563 
       
   564         self._BlobAsFile(blob, newpath)
       
   565 
       
   566     def _BlobAsFile(self, blob, newpath):
   564         fd, path, _md5sum = blob
   567         fd, path, _md5sum = blob
   565         fobj = os.fdopen(fd)
   568         fobj = os.fdopen(fd)
   566         fobj.flush()
   569         fobj.flush()
   567         os.fsync(fd)
   570         os.fsync(fd)
   568         fobj.close()
   571         fobj.close()
   617 
   620 
   618             self.LogMessage("NewPLC (%s)" % md5sum)
   621             self.LogMessage("NewPLC (%s)" % md5sum)
   619 
   622 
   620             try:
   623             try:
   621                 # Create new PLC file
   624                 # Create new PLC file
   622                 self._BlobAsFile(plc_object, new_PLC_filename)
   625                 self.BlobAsFile(plc_object, new_PLC_filename)
   623 
   626 
   624                 # Then write the files
   627                 # Then write the files
   625                 log = open(extra_files_log, "w")
   628                 log = open(extra_files_log, "w")
   626                 for fname, blobID in extrafiles:
   629                 for fname, blobID in extrafiles:
   627                     fpath = os.path.join(self.workingdir, fname)
   630                     fpath = os.path.join(self.workingdir, fname)
   628                     self._BlobAsFile(blobID, fpath)
   631                     self.BlobAsFile(blobID, fpath)
   629                     log.write(fname+'\n')
   632                     log.write(fname+'\n')
   630 
   633 
   631                 # Store new PLC filename based on md5 key
   634                 # Store new PLC filename based on md5 key
   632                 with open(self._GetMD5FileName(), "w") as f:
   635                 with open(self._GetMD5FileName(), "w") as f:
   633                     f.write(md5sum)
   636                     f.write(md5sum)