def get_package_manager(): if get_package_manager._package_manager is None: package_manager = PackageManager(lock=False) package_manager.set_finished( ) # currently not working. accepting new tasks package_manager.logger.parent = get_base_logger() log_filter = _PackageManagerLogHandler() package_manager.logger.addHandler(log_filter) get_package_manager._package_manager = package_manager return get_package_manager._package_manager
def init(self): os.umask( 0o022 ) # umc umask is too restrictive for app center as it creates a lot of files in docker containers self.ucr = ucr_instance() self.update_applications_done = False install_opener(self.ucr) self._is_working = False try: self.package_manager = PackageManager( info_handler=MODULE.process, step_handler=None, error_handler=MODULE.warn, lock=False, ) except SystemError as exc: MODULE.error(str(exc)) raise umcm.UMC_Error(str(exc), status=500) self.package_manager.set_finished( ) # currently not working. accepting new tasks get_package_manager._package_manager = self.package_manager # build cache _update_modules() get_action('list').get_apps() # not initialize here: error prone due to network errors and also kinda slow self._uu = None self._cm = None # in order to set the correct locale locale.setlocale(locale.LC_ALL, str(self.locale)) try: log_to_logfile() except IOError: pass # connect univention.appcenter.log to the progress-method handler = ProgressInfoHandler(self.package_manager) handler.setLevel(logging.INFO) get_base_logger().addHandler(handler) percentage = ProgressPercentageHandler(self.package_manager) percentage.setLevel(logging.DEBUG) get_base_logger().getChild('actions.install.progress').addHandler( percentage) get_base_logger().getChild('actions.upgrade.progress').addHandler( percentage) get_base_logger().getChild('actions.remove.progress').addHandler( percentage)
def up(self, *args, **kwargs): self.package_manager = PackageManager(always_noninteractive=False) handler = _PackageManagerLoggerHandlerWithoutProcess(self.message, self.step, self.error) self.package_manager.logger.addHandler(handler) self.roles_package_map = { 'domaincontroller_master': 'univention-server-master', 'domaincontroller_backup': 'univention-server-backup', 'domaincontroller_slave': 'univention-server-slave', 'memberserver': 'univention-server-member', } self.current_server_role = self.ucr.get('server/role') self.wanted_server_role = self.profile.get('server/role')
def init(self): self._finishedLock = threading.Lock() self._errors = [] self.progress_state = Progress() self._installation_started = False self.package_manager = PackageManager( info_handler=self.progress_state.info_handler, step_handler=self.progress_state.step_handler, error_handler=self.progress_state.error_handler, lock=False, always_noninteractive=True, ) self.package_manager.set_max_steps(100.0) self.original_certificate_file = None
def up(self, *args, **kwargs): self.package_manager = PackageManager( info_handler=self.message, step_handler=self.step, error_handler=self.error, handle_only_frontend_errors=True, # ignore pmerror status ) self.roles_package_map = { 'domaincontroller_master': 'univention-server-master', 'domaincontroller_backup': 'univention-server-backup', 'domaincontroller_slave': 'univention-server-slave', 'memberserver': 'univention-server-member', 'fatclient': 'univention-managed-client', 'mobileclient': 'univention-mobile-client', } self.current_server_role = self.get_ucr_var('server/role') self.wanted_server_role = self.get_profile_var('server/role')
def init(self): self.ucr = univention.config_registry.ConfigRegistry() self.ucr.load() util.install_opener(self.ucr) self.package_manager = PackageManager( info_handler=MODULE.process, step_handler=None, error_handler=MODULE.warn, lock=False, always_noninteractive=True, ) self.uu = UniventionUpdater(False) self.component_manager = util.ComponentManager(self.ucr, self.uu) # in order to set the correct locale for Application locale.setlocale(locale.LC_ALL, str(self.locale))
def init(self): os.umask(0o022) # umc umask is too restrictive for app center as it creates a lot of files in docker containers self.ucr = ucr_instance() self.update_applications_done = False util.install_opener(self.ucr) self._remote_progress = {} try: self.package_manager = PackageManager( info_handler=MODULE.process, step_handler=None, error_handler=MODULE.warn, lock=False, ) except SystemError as exc: MODULE.error(str(exc)) raise umcm.UMC_Error(str(exc), status=500) self.package_manager.set_finished() # currently not working. accepting new tasks self.uu = UniventionUpdater(False) self.component_manager = util.ComponentManager(self.ucr, self.uu) get_package_manager._package_manager = self.package_manager # in order to set the correct locale for Application locale.setlocale(locale.LC_ALL, str(self.locale)) try: log_to_logfile() except IOError: pass # connect univention.appcenter.log to the progress-method handler = ProgressInfoHandler(self.package_manager) handler.setLevel(logging.INFO) get_base_logger().addHandler(handler) percentage = ProgressPercentageHandler(self.package_manager) percentage.setLevel(logging.DEBUG) get_base_logger().getChild('actions.install.progress').addHandler(percentage) get_base_logger().getChild('actions.upgrade.progress').addHandler(percentage) get_base_logger().getChild('actions.remove.progress').addHandler(percentage)
def simple_handler(f): def _simple_handler(msg): msg = '%s\n\r' % msg.strip() f.write(msg) return _simple_handler parser = optparse.OptionParser() parser.add_option('-a', '--app-id', help='app id to deinstall', metavar='APP_ID') (options, args) = parser.parse_args() if not options.app_id: raise Exception('app id missing') ucr = ConfigRegistry() ucr.load() updater = UniventionUpdater(False) package_manager = PackageManager(info_handler=simple_handler(sys.stdout), error_handler=simple_handler(sys.stderr)) component_manager = ComponentManager(ucr, updater) app = Application.find(options.app_id) if app: if not app.uninstall(package_manager, component_manager): raise Exception('deinstallation of app %s failed' % options.app_id)