Ejemplo n.º 1
0
 def create_seedfile(self, devs, filename):
     self.output('', "Creating seeds from LDAP data...")
     self.seeds = Seeds(filename, self.config, self.logger)
     count = 0
     error_count = 0
     for dev in sorted(devs):
         if devs[dev]['gentooStatus'][0] not in ['active']:
             continue
         #self.logger.debug("create_seedfile, dev = "
         #   "%s, %s" % (str(dev), str(devs[dev])))
         developer_attrs = self.build_gkey(devs[dev])
         if developer_attrs:
             self.seeds.add(dev, developer_attrs)
             count += 1
         else:
             error_count += 1
     self.output('', "Total number of seeds created........: %s" % count)
     self.output('', "Seeds created... Saving file.........: %s" % filename)
     self.output('',
                 "Total number of Dev's with GPG errors: %s" % error_count)
     self.logger.info("Total number of seeds created........: %d" % count)
     self.logger.info("Seeds created... Saving file.........: %s" %
                      filename)
     self.logger.info("Total number of Dev's with GPG errors: %d" %
                      error_count)
     return self.seeds.save()
Ejemplo n.º 2
0
    def load_category(self, category, nicks=None, refresh=False):
        '''Loads the designated key directories

        @param category: string
        @param nicks: list of string nick ids to load
        @return Seeds class object
        '''
        seeds = Seeds(config=self.config, _logger=self.logger)
        if category == 'sign':
            catdir = self.config.get_key('sign-keydir')
        else:
            keyrings = self.config.get_key('keyring')
            catdir = os.path.join(keyrings, category)
        self.logger.debug("SeedHandler: load_category; catdir = %s" % catdir)
        try:
            if not nicks:
                nicks = os.listdir(catdir)
            for nick in nicks:
                seed_path = os.path.join(catdir, nick)
                if not os.path.isdir(seed_path):
                    continue
                gkey_path = os.path.join(seed_path, 'gkey.seeds')
                seed = None
                try:
                    with open(gkey_path, 'r') as fileseed:
                        seed = load(fileseed)
                except IOError as error:
                    self.logger.debug("SeedHandler: load_category; IOError loading seed file %s." % gkey_path)
                    self.logger.debug("Error was: %s" % str(error))
                if seed:
                    for nick in sorted(seed):
                        key = seed[nick]
                        # GKEY class change auto-update
                        if not 'uid' in list(key):
                            if not refresh:
                                raise UpdateDbError(category)
                            key['uid'] = []
                        if not 'keys' in list(key):
                            if not refresh:
                                raise UpdateDbError(category)
                            key['keys'] = key['fingerprint'][:]
                        seeds.add(nick, GKEY(**key))
        except OSError as error:
            self.logger.debug("SeedHandler: load_category; OSError for %s" % catdir)
            self.logger.exception("Error was: %s" % str(error))
        self.seeds = seeds
        return seeds
Ejemplo n.º 3
0
    def load_seeds(self, seedfile=None, filepath=None, refresh=False):
        '''Load seed file

        @param seeds: string of the short name seed file
        @param seedfile: string filepath of the file to load
        @return Seeds class instance of the file loaded
        '''
        if not seedfile and not filepath:
            self.logger.error("SeedHandler: load_seeds; no filename to load: "
            "setting = %s.  Please use the -S or -F option to indicate: which seed "
            "file to use." % seedfile)
            return False
        if seedfile:
            filepath = self.config.get_key('seeds', seedfile)
        elif not filepath:
            self.logger.error("SeedHandler: load_seeds; No filepath to load")
        self.logger.debug("SeedHandler: load_seeds; seeds filepath to load: "
            "%s" % filepath)
        seeds = Seeds(config=self.config, _logger=self.logger)
        seeds.load(filepath, refresh=refresh)
        self.seeds = seeds
        return seeds
Ejemplo n.º 4
0
 def set_keyseedfile(self, trap_errors=True, refresh=False):
     if not self.keydir:
         self.logger.debug("GkeysGPG.set_keyseedfile(); self.keydir error")
     self.seedfile = Seeds(pjoin(self.keydir, 'gkey.seeds'), self.config, self.logger)
     self.seedfile.load(trap_errors=trap_errors, refresh=refresh)