From ccb9e31c253a0f4ae9c096ce571a7c7109a33fd0 Mon Sep 17 00:00:00 2001 From: Brian Dolbec Date: Mon, 5 Jan 2015 00:56:12 -0800 Subject: gkeys, gkeyldap: Update updatefiles() config handling Add category and filename options, ensure 1 of them is passed in. Fix logic error that did not report the failure to find the file to update. --- gkeys-ldap/gkeyldap/actions.py | 2 +- gkeys/gkeys/fileops.py | 55 ++++++++++++++++++++++++------------------ 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/gkeys-ldap/gkeyldap/actions.py b/gkeys-ldap/gkeyldap/actions.py index dde2bc8..4a3db84 100644 --- a/gkeys-ldap/gkeyldap/actions.py +++ b/gkeys-ldap/gkeyldap/actions.py @@ -107,7 +107,7 @@ class Actions(object): self.logger.error("Developer seed file update failure: " "Original seed file is intact & untouched.") self.output('', "Backing up existing file...") - status = updatefiles(self.config, self.logger) + status = updatefiles(self.config, self.logger, args.category) if not status: self.output('', "Develope seed failed to update!") return False diff --git a/gkeys/gkeys/fileops.py b/gkeys/gkeys/fileops.py index 7cb244f..5b89ea8 100644 --- a/gkeys/gkeys/fileops.py +++ b/gkeys/gkeys/fileops.py @@ -30,27 +30,34 @@ def ensure_dirs(path, gid=-1, uid=-1, mode=0o700, minimal=True, failback=None, f return succeeded -def updatefiles(config, logger): - filename = config['dev-seedfile'] - old = filename + '.old' - try: - logger.info("Backing up existing file...") - if os.path.exists(old): - logger.debug( - "MAIN: _action_updatefile; Removing 'old' seed file: %s" - % old) - os.unlink(old) - if os.path.exists(filename): - logger.debug( - "MAIN: _action_updatefile; Renaming current seed file to: " - "%s" % old) - os.rename(filename, old) - if os.path.exists(filename + '.new'): - logger.debug( - "MAIN: _action_updatefile; Renaming '.new' seed file to: %s" - % filename) - os.rename(filename + '.new', filename) - except IOError: - raise - return False - return True +def updatefiles(config, logger, category=None, filename = None): + if category and not filename: + filename = config.get_key('seeds', category) + elif not filename: + logger.error("MAIN: updatefiles(); category or filename not supplied") + return False + old = filename + '.old' + try: + logger.info("Backing up existing file...") + if os.path.exists(old): + logger.debug( + "MAIN: updatefiles(); Removing 'old' seed file: %s" + % old) + os.unlink(old) + if os.path.exists(filename): + logger.debug( + "MAIN: updatefiles(); Renaming current seed file to: " + "%s" % old) + os.rename(filename, old) + if os.path.exists(filename + '.new'): + logger.debug( + "MAIN: updatefiles(); Renaming '.new' seed file to: %s" + % filename) + os.rename(filename + '.new', filename) + else: + logger.error("MAIN: updatefiles(); Renaming " + "'%s.new' seed DOES NOT EXIST!" % filename) + except IOError: + raise + return False + return True -- cgit v1.2.3-65-gdbad