def _keys(args): # pragma: no cover check = check_repo() if args.create is True and args.import_keys is True: log.error('Only one options is allowed at a time') sys.exit(1) if args.create is True and check is True: log.error('You can not create off-line keys on your dev machine') sys.exit(1) if args.import_keys is True and check is False: _repo_error() if args.create is True and check is False: k = Keys() app_name = get_correct_answer('Please enter app name', required=True) k.make_keypack(app_name) log.info('Keypack placed in cwd') return if args.import_keys is True and check is True: loader = Loader() config = loader.load_config() ki = KeyImporter() imported = ki.start() if imported is True: log.info('Keypack import successfully') loader.save_config(config) else: log.warning('Keypack import failed')
def _cmd_keys(*args): # pragma: no cover check = check_repo_ex() ns = args[0] # We try to prevent developers from creating root keys on the dev # machines. if ns.create is True and ns.import_keys is True: log.error('Only one options is allowed at a time') return # Okay the actual check is pretty weak but we are all grown ups here :) if ns.create is True and check is True: log.error('You can not create off-line keys on your dev machine') return # Can't import if we don't have a config to place it in. if ns.import_keys is True and check is False: return # We are supposed to be on another secure computer. # Security is in the eye of the beholder. # That was deep. if ns.create is True and check is False: if hasattr(ns, 'test'): log.debug('We are testing!') app_name = 'test' # Starting up with some testing in mind. k = Keys(test=True) else: k = Keys() # Get the app name for the soon to be generated keypack.pyu app_name = get_correct_answer('Please enter app name', required=True) # Create the keypack for this particular application. # make_keypack will return True if successful. if k.make_keypack(app_name): log.info('Keypack placed in cwd') else: log.error('Failed to create keypack') return # Save the keypack.pyu that's in the current directory to the # .pyupdater/config.pyu file. if ns.import_keys is True and check is True: cm = ConfigManager() config = cm.load_config() ki = KeyImporter() if ki.start(): log.info('Keypack import successfully') cm.save_config(config) else: log.warning('Keypack import failed')
def _cmd_keys(*args): # pragma: no cover check = check_repo_ex() ns = args[0] # We try to prevent developers from creating root keys on the dev # machines. if ns.create_keys is True and ns.import_keys is True: log.error('Only one options is allowed at a time') return # Okay the actual check is pretty weak but we are all grown ups here :) if ns.create_keys is True and check is True: log.error('You can not create off-line keys on your dev machine') return # Can't import if we don't have a config to place it in. if ns.import_keys is True and check is False: return # We are supposed to be on another secure computer. # Security is in the eye of the beholder. # That was deep. if ns.create_keys is True and check is False: if hasattr(ns, 'test'): log.debug('We are testing!') app_name = 'test' # Starting up with some testing in mind. k = Keys(test=True) else: k = Keys() # Get the app name for the soon to be generated keypack.pyu app_name = get_correct_answer('Please enter app name', required=True) # Create the keypack for this particular application. # make_keypack will return True if successful. if k.make_keypack(app_name): log.info('Keypack placed in cwd') else: log.error('Failed to create keypack') return # Save the keypack.pyu that's in the current directory to the # .pyupdater/config.pyu file. if ns.import_keys is True and check is True: cm = ConfigManager() config = cm.load_config() ki = KeyImporter() if ki.start(): log.info('Keypack import successfully') cm.save_config(config) else: log.error('Keypack import failed')
def _update(self, config): self.kh = KeyHandler(config) self.key_importer = KeyImporter() self.ph = PackageHandler(config) self.up = Uploader(config)
class Core(object): """Processes, signs & uploads updates Kwargs: config (obj): config object """ def __init__(self, config=None): self.config = ConfigDict() self.db = Storage() # Important to keep this before updating config if config is not None: self.update_config(config) def update_config(self, config): """Updates internal config Args: config (obj): config object """ if not hasattr(config, 'DATA_DIR'): config.DATA_DIR = None if config.DATA_DIR is None: config.DATA_DIR = os.getcwd() self.config.from_object(config) self._update(self.config) def _update(self, config): self.kh = KeyHandler(config) self.key_importer = KeyImporter() self.ph = PackageHandler(config) self.up = Uploader(config) def setup(self): "Sets up root dir with required PyUpdater folders" self.ph.setup() def process_packages(self): """Creates hash for updates & adds information about update to version file """ self.ph.process_packages() def set_uploader(self, requested_uploader): """Sets upload destination Args: requested_uploader (str): upload service. i.e. s3, scp """ self.up.set_uploader(requested_uploader) def upload(self): "Uploads files in deploy folder" self.up.upload() def import_keypack(self): "Creates signing keys" self.key_importer.start() def sign_update(self): "Signs version file with signing key" self.kh.sign_update()
def test_key_importer_fail(self): ki = KeyImporter() assert ki.start() is False
def test_key_importer(self): k = Keys(test=True) k.make_keypack('one') ki = KeyImporter() assert ki.start() is True
def _update(self, config): self.kh = KeyHandler() self.key_importer = KeyImporter() self.ph = PackageHandler(config) self.up = Uploader(config)
class PyUpdater(object): """Processes, signs & uploads updates Kwargs: config (obj): config object """ def __init__(self, config=None): self.config = Config() # Important to keep this before updating config if config is not None: self.update_config(config) def update_config(self, config): """Updates internal config Args: config (obj): config object """ if not hasattr(config, 'DATA_DIR'): config.DATA_DIR = None if config.DATA_DIR is None: config.DATA_DIR = os.getcwd() self.config.from_object(config) self._update(self.config) def _update(self, config): self.kh = KeyHandler() self.key_importer = KeyImporter() self.ph = PackageHandler(config) self.up = Uploader(config) def setup(self): "Sets up root dir with required PyUpdater folders" self.ph.setup() def process_packages(self, report_errors=False): """Creates hash for updates & adds information about update to version file """ self.ph.process_packages(report_errors) def set_uploader(self, requested_uploader): """Sets upload destination Args: requested_uploader (str): upload service. i.e. s3, scp """ self.up.set_uploader(requested_uploader) def upload(self): "Uploads files in deploy folder" self.up.upload() def get_plugin_names(self): return self.up.get_plugin_names() def import_keypack(self): "Creates signing keys" self.key_importer.start() def sign_update(self): "Signs version file with signing key" self.kh.sign_update()
class PyUpdater(object): """Processes, signs & uploads updates Kwargs: config (obj): config object """ def __init__(self, config=None): self.config = Config() # Important to keep this before updating config if config is not None: self.update_config(config) def update_config(self, config): """Updates internal config Args: config (obj): config object """ if not hasattr(config, 'DATA_DIR'): config.DATA_DIR = None if config.DATA_DIR is None: config.DATA_DIR = os.getcwd() self.config.from_object(config) self._update(self.config) def _update(self, config): self.kh = KeyHandler() self.key_importer = KeyImporter() self.ph = PackageHandler(config) self.up = Uploader(config) def setup(self): """Sets up root dir with required PyUpdater folders""" self.ph.setup() def process_packages(self, report_errors=False): """Creates hash for updates & adds information about update to version file """ self.ph.process_packages(report_errors) def set_uploader(self, requested_uploader, keep=False): """Sets upload destination Args: requested_uploader (str): upload service. i.e. s3, scp keep (bool): False to delete files after upload. True to keep files. Default False. """ self.up.set_uploader(requested_uploader, keep) def upload(self): """Uploads files in deploy folder""" return self.up.upload() def get_plugin_names(self): return self.up.get_plugin_names() def import_keypack(self): """Creates signing keys""" return self.key_importer.start() def sign_update(self): """Signs version file with signing key""" self.kh.sign_update()