def reinstall_package(ws, package): p_name = package if package in lock: log(ws, '<strong>Error</strong>: Someone already work with %s package' % package) return lock.append(p_name) try: log(ws, 'Sync database') api.db.sync() reinstaller = Reinstaller() package = api.db.get(package)[0] print(package) log(ws, 'Resolve dependencies') reinstaller.resolve(package) reinstaller.feed(reinstaller.resolved) reinstalled_packages = "<ul>" for p in reinstaller.packages: reinstalled_packages += "<li>%s</li>" % p.name reinstalled_packages = reinstalled_packages + "</ul>" log(ws, 'Following dependencies will be installed: %s' % reinstalled_packages) log(ws, 'Download package') reinstaller.download() log(ws, 'Reinstall package') reinstaller.reinstall() except Exception as err: log(ws, '<strong>Error</strong>: %s' % err) lock.remove(p_name)
def reinstall_package(ws, package): p_name = package if package in lock: log( ws, '<strong>Error</strong>: Someone already work with %s package' % package) return lock.append(p_name) try: log(ws, 'Sync database') api.db.sync() reinstaller = Reinstaller() package = api.db.get(package)[0] print(package) log(ws, 'Resolve dependencies') reinstaller.resolve(package) reinstaller.feed(reinstaller.resolved) reinstalled_packages = "<ul>" for p in reinstaller.packages: reinstalled_packages += "<li>%s</li>" % p.name reinstalled_packages = reinstalled_packages + "</ul>" log( ws, 'Following dependencies will be installed: %s' % reinstalled_packages) log(ws, 'Download package') reinstaller.download() log(ws, 'Reinstall package') reinstaller.reinstall() except Exception as err: log(ws, '<strong>Error</strong>: %s' % err) lock.remove(p_name)
def test_113_reinstall_package(self): self.db.sync() reinstaller = Reinstaller() reinstaller.resolve(self.package) reinstaller.feed(reinstaller.resolved) self.assertEqual(len(reinstaller.packages), 1) reinstaller.download() reinstaller.reinstall() self.assertTrue(self.db.get('package_05')) self.assertEqual(self.db.count_installed(), 5)
def test_110_reinstall_package(self): self.db.sync() reinstaller = Reinstaller() reinstaller.resolve(self.package) reinstaller.feed(reinstaller.resolved) self.assertEqual(len(reinstaller.packages), 1) reinstaller.download() reinstaller.reinstall() self.assertTrue(self.db.get('package_05')) self.assertEqual(self.db.count_installed(), 5) self.package.version = '0.1' self.package.remote_version = '' self.package.release = '0' self.package.remote_release = ''
def start(self): ################### # conf # ################### if self.args.get('conf', False): get_conf() ################### # stats # ################### if self.args.get('stats', False): get_stats() ################### # list # ################### elif self.args.get('list', False): get_view() ################### # update # ################### elif self.args.get('update', False): stream_logger.info('=> Update') try: db.sync() except Exception as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) self.error_link() ################### # clean # ################### elif self.args.get('clean', False): stream_logger.info('=> Cleaning') clean() ################### # reinstall # ################### elif self.args.get('reinstall', False): # Sync Database stream_logger.info('=> Updating') try: db.sync() except Exception as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) self.error_link() # Create installer stream_logger.info('=> Resolving') reinstaller = Reinstaller() if not isinstance(self.args['<package>'], list): packages = [self.args['<package>']] else: packages = self.args['<package>'] try: if self.args.get('--with-deps', False): for package in db.get(packages): try: reinstaller.resolve(package) reinstaller.feed(reinstaller.resolved) except RuntimeError as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) stream_logger.info('!! Dependencies resolve failed (%s)' % err) sys.exit(1) else: reinstaller.feed(db.get(packages)) except DatabaseException as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) self.error_link() if not reinstaller.packages: stream_logger.info('=> No package(s) to reinstall') sys.exit(0) stream_logger.info('=> Following packages will be reinstalled:') for package in reinstaller.packages: stream_logger.info(' - %s' % package.name) if not self.args.get('--force-yes', False): if confirm(): reinstaller.download() try: reinstaller.reinstall(ignore_errors=self.args.get('--ignore-errors', False)) except Exception as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) raise else: stream_logger.info('Abort.') sys.exit(1) else: reinstaller.download() try: reinstaller.reinstall(ignore_errors=self.args.get('--ignore-errors', False)) except Exception as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) raise ################### # install # ################### elif self.args.get('install', False): # Sync Database stream_logger.info('=> Updating') try: db.sync() except Exception as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) self.error_link() # Create installer installer = Installer() # Resolve deps stream_logger.info('=> Resolving dependencies') if not isinstance(self.args['<package>'], list): packages = [self.args['<package>']] else: packages = self.args['<package>'] try: for package in db.get(packages): try: installer.resolve(package) installer.feed(installer.resolved) except RuntimeError as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) stream_logger.info('!! Dependencies resolve failed (%s)' % err) sys.exit(1) except DatabaseException as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) self.error_link() if not installer.packages: stream_logger.info(' - No package(s) found') sys.exit(1) stream_logger.info('=> Following dependencies will be installed:') for dep in installer.packages: stream_logger.info(' - %s' % dep.name) if not self.args.get('--force-yes', False): if confirm(): installer.download() try: installer.install(ignore_errors=self.args.get('--ignore-errors', False)) except Exception as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) raise else: stream_logger.info('Abort.') sys.exit(1) else: installer.download() try: installer.install(ignore_errors=self.args.get('--ignore-errors', False)) except Exception as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) raise ################### # upgrade # ################### elif self.args.get('upgrade', False): # Sync Database stream_logger.info('=> Updating') try: db.sync() except Exception as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) self.error_link() # Create Upgrader upgrader = Upgrader() stream_logger.info('=> Resolving') if not isinstance(self.args['<package>'], list): packages = [self.args['<package>']] else: packages = self.args['<package>'] if not packages: upgrader.feed(db.get_upgrades()) else: upgrader.feed(packages) if not upgrader.packages: stream_logger.info('!! No package(s) to upgrade') sys.exit(0) stream_logger.info('=> Following packages will be upgraded:') for package in upgrader.packages: stream_logger.info(' - %s' % package.name) if not self.args.get('--force-yes', False): if confirm(): upgrader.download() try: upgrader.upgrade(ignore_errors=self.args.get('--ignore-errors', False)) except Exception as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) raise else: stream_logger.info('Abort.') sys.exit(1) else: upgrader.download() try: upgrader.upgrade(ignore_errors=self.args.get('--ignore-errors', False)) except Exception as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) raise ################### # remove # ################### elif self.args.get('remove', False): # Create remover remover = Remover() packages = db.get(self.args.get('<package>')) try: remover.feed(packages) except DatabaseException as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) self.error_link() if not remover.packages: sys.exit(0) stream_logger.info('=> Following packages will be removed:') for package in remover.packages: stream_logger.info(' - %s' % package.name) if not self.args.get('--force-yes', False): if confirm(): remover.remove(ignore_errors=self.args.get('--ignore-errors', False)) else: stream_logger.info('Abort.') sys.exit(1) else: try: remover.remove(ignore_errors=self.args.get('--ignore-errors', False)) except Exception as err: if int(conf.get('logger','level')) >= 2: traceback.print_exc(file=sys.stdout) raise ########## # search # ########## elif self.args.get('search', False): packages = db.get(self.args.get('<package>')) if not packages: stream_logger.info('!! No package found') sys.exit(1) for package in packages: stream_logger.info('Name: %s' % package.name) if package in db.get_installed(): stream_logger.info('Version: %s-%s' % (package.version, package.release)) stream_logger.info('Status: %s' % status[package.status]) else: stream_logger.info('Version: %s-%s' % (package.repo_version, package.repo_release)) stream_logger.info('Status: %s' % status[package.status]) stream_logger.info('Requires: %s' % ','.join(package.requires)) stream_logger.info('Description: %s' % package.description) stream_logger.info('Architecture: %s' % package.arch) stream_logger.info('Distribution: %s' % package.dist) stream_logger.info('Distribution version: %s' % package.vers) if package is not packages[-1]: stream_logger.info('') sys.exit(0)
def start(self): ################### # conf # ################### if self.args.get('conf', False): get_conf() ################### # stats # ################### if self.args.get('stats', False): get_stats() ################### # list # ################### elif self.args.get('list', False): get_view() ################### # update # ################### elif self.args.get('update', False): stream_logger.info('=> Update') try: db.sync() except Exception as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) self.error_link() ################### # clean # ################### elif self.args.get('clean', False): stream_logger.info('=> Cleaning') clean() ################### # reinstall # ################### elif self.args.get('reinstall', False): # Sync Database stream_logger.info('=> Updating') try: db.sync() except Exception as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) self.error_link() # Create installer stream_logger.info('=> Resolving') reinstaller = Reinstaller() if not isinstance(self.args['<package>'], list): packages = [self.args['<package>']] else: packages = self.args['<package>'] try: if self.args.get('--with-deps', False): for package in db.get(packages): try: reinstaller.resolve(package) reinstaller.feed(reinstaller.resolved) except RuntimeError as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) stream_logger.info( '!! Dependencies resolve failed (%s)' % err) sys.exit(1) else: reinstaller.feed(db.get(packages)) except DatabaseException as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) self.error_link() if not reinstaller.packages: stream_logger.info('=> No package(s) to reinstall') sys.exit(0) stream_logger.info('=> Following packages will be reinstalled:') for package in reinstaller.packages: stream_logger.info(' - %s' % package.name) if not self.args.get('--force-yes', False): if confirm(): reinstaller.download() try: reinstaller.reinstall(ignore_errors=self.args.get( '--ignore-errors', False)) except Exception as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) raise else: stream_logger.info('Abort.') sys.exit(1) else: reinstaller.download() try: reinstaller.reinstall( ignore_errors=self.args.get('--ignore-errors', False)) except Exception as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) raise ################### # install # ################### elif self.args.get('install', False): # Sync Database stream_logger.info('=> Updating') try: db.sync() except Exception as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) self.error_link() # Create installer installer = Installer() # Resolve deps stream_logger.info('=> Resolving dependencies') if not isinstance(self.args['<package>'], list): packages = [self.args['<package>']] else: packages = self.args['<package>'] try: for package in db.get(packages): try: installer.resolve(package) installer.feed(installer.resolved) except RuntimeError as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) stream_logger.info( '!! Dependencies resolve failed (%s)' % err) sys.exit(1) except DatabaseException as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) self.error_link() if not installer.packages: stream_logger.info(' - No package(s) found') sys.exit(1) stream_logger.info('=> Following dependencies will be installed:') for dep in installer.packages: stream_logger.info(' - %s' % dep.name) if not self.args.get('--force-yes', False): if confirm(): installer.download() try: installer.install(ignore_errors=self.args.get( '--ignore-errors', False)) except Exception as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) raise else: stream_logger.info('Abort.') sys.exit(1) else: installer.download() try: installer.install( ignore_errors=self.args.get('--ignore-errors', False)) except Exception as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) raise ################### # upgrade # ################### elif self.args.get('upgrade', False): # Sync Database stream_logger.info('=> Updating') try: db.sync() except Exception as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) self.error_link() # Create Upgrader upgrader = Upgrader() stream_logger.info('=> Resolving') if not isinstance(self.args['<package>'], list): packages = [self.args['<package>']] else: packages = self.args['<package>'] if not packages: upgrader.feed(db.get_upgrades()) else: upgrader.feed(packages) if not upgrader.packages: stream_logger.info('!! No package(s) to upgrade') sys.exit(0) stream_logger.info('=> Following packages will be upgraded:') for package in upgrader.packages: stream_logger.info(' - %s' % package.name) if not self.args.get('--force-yes', False): if confirm(): upgrader.download() try: upgrader.upgrade(ignore_errors=self.args.get( '--ignore-errors', False)) except Exception as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) raise else: stream_logger.info('Abort.') sys.exit(1) else: upgrader.download() try: upgrader.upgrade( ignore_errors=self.args.get('--ignore-errors', False)) except Exception as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) raise ################### # remove # ################### elif self.args.get('remove', False): # Create remover remover = Remover() packages = db.get(self.args.get('<package>')) try: remover.feed(packages) except DatabaseException as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) self.error_link() if not remover.packages: sys.exit(0) stream_logger.info('=> Following packages will be removed:') for package in remover.packages: stream_logger.info(' - %s' % package.name) if not self.args.get('--force-yes', False): if confirm(): remover.remove( ignore_errors=self.args.get('--ignore-errors', False)) else: stream_logger.info('Abort.') sys.exit(1) else: try: remover.remove( ignore_errors=self.args.get('--ignore-errors', False)) except Exception as err: if int(conf.get('logger', 'level')) >= 2: traceback.print_exc(file=sys.stdout) raise ########## # search # ########## elif self.args.get('search', False): packages = db.get(self.args.get('<package>')) if not packages: stream_logger.info('!! No package found') sys.exit(1) for package in packages: stream_logger.info('Name: %s' % package.name) if package in db.get_installed(): stream_logger.info('Version: %s-%s' % (package.version, package.release)) stream_logger.info('Status: %s' % status[package.status]) else: stream_logger.info( 'Version: %s-%s' % (package.repo_version, package.repo_release)) stream_logger.info('Status: %s' % status[package.status]) stream_logger.info('Requires: %s' % ','.join(package.requires)) stream_logger.info('Description: %s' % package.description) stream_logger.info('Architecture: %s' % package.arch) stream_logger.info('Distribution: %s' % package.dist) stream_logger.info('Distribution version: %s' % package.vers) if package is not packages[-1]: stream_logger.info('') sys.exit(0)