class History: #self.history = self._load_history() def __init__(self, base_path, reponame): self.javaprops = JavaProperties() self.base_path = base_path self.reponame = reponame self.property_dict = {LAST_TRACKED_TIMESTAMP_HISTORY_FIELD:None} self.filename = "{}/{}".format(base_path, reponame + ".dat") try: with open(self.filename) as f: self.javaprops.load(f) self.property_dict = self.javaprops.get_property_dict() logger.debug("Read succesfully history file %s" % self.filename) except (FileNotFoundError, UnboundLocalError): logger.debug("History file %s does not exist. Creating one..." % self.filename) def save_last_tracked_timestamp(self, timestamp): try: if not os.path.exists(self.base_path): os.makedirs(self.base_path) self.javaprops.set_property(LAST_TRACKED_TIMESTAMP_HISTORY_FIELD, timestamp) with open(self.filename, mode='w') as f: self.javaprops.store(f) self.property_dict = self.javaprops.get_property_dict() except (FileNotFoundError, UnboundLocalError): logger.debug("Could not save to history file %s" % self.filename) raise def get_last_tracked_timestamp(self): return self.property_dict.get(LAST_TRACKED_TIMESTAMP_HISTORY_FIELD, None)
def _read_dspace_properties(self): javaprops = JavaProperties() try: propertiesFilename = "%s/config/dspace.cfg" % ( self.properties["dspace.dir"]) javaprops.load(open(propertiesFilename)) property_dict = javaprops.get_property_dict() logger.debug("Read succesfully property file %s" % propertiesFilename) except (FileNotFoundError, UnboundLocalError): logger.exception("Error while trying to read properties file %s" % propertiesFilename) raise try: propertiesFilename = "%s/config/local.cfg" % ( self.properties["dspace.dir"]) javaprops.load(open(propertiesFilename)) property_dict = javaprops.get_property_dict() logger.debug("Read succesfully property file %s" % propertiesFilename) except (FileNotFoundError, UnboundLocalError): logger.debug("Could not read property file %s" % propertiesFilename) pass return property_dict
def _save_to_history(self, key, value): javaprops = JavaProperties() historyFileName = "{}/.{}".format(self.historyFilePath, self.repoName) try: with open(historyFileName) as f: javaprops.load(f) except (FileNotFoundError, UnboundLocalError): logger.debug("Could not read history file %s" % historyFileName) pass javaprops.set_property(key, value) try: basedir = os.path.dirname(historyFileName) if not os.path.exists(basedir): os.makedirs(basedir) with open(historyFileName, mode='w') as f: javaprops.store(f) self.history = javaprops.get_property_dict() except (FileNotFoundError, UnboundLocalError): logger.debug("Could not save to history file %s" % historyFileName) raise return
def _read_properties(self): javaprops = JavaProperties() try: javaprops.load(open(self.propertiesFilename)) property_dict = javaprops.get_property_dict() except (FileNotFoundError, UnboundLocalError): logger.error("Error while trying to read properties file %s" % self.propertiesFilename) sys.exit() #raise logger.debug("Read succesfully property file %s" % self.propertiesFilename) return property_dict
def _load_history(self): javaprops = JavaProperties() property_dict = dict(lastTrackedEventTimestamp=None) historyFileName = "{}/.{}".format(self.historyFilePath, self.repoName) try: with open(historyFileName) as f: javaprops.load(f) property_dict = javaprops.get_property_dict() logger.debug("Read succesfully history file %s" % historyFileName) except (FileNotFoundError, UnboundLocalError): logger.debug("Could not read history file %s" % historyFileName) pass return property_dict