def query(self, quick=False):
     query_cache_file = '/var/cache/univention-appcenter/umc-query.json'
     if quick:
         try:
             with open(query_cache_file) as fd:
                 return json.load(fd)
         except (EnvironmentError, ValueError) as exc:
             MODULE.error('Error returning cached query: %s' % exc)
             return []
     self.update_applications()
     self.ucr.load()
     reload_package_manager()
     list_apps = get_action('list')
     domain = get_action('domain')
     apps = list_apps.get_apps()
     if self.ucr.is_true('appcenter/docker', True):
         if not self._test_for_docker_service():
             raise umcm.UMC_Error(
                 _('The docker service is not running! The App Center will not work properly.'
                   ) + ' ' +
                 _('Make sure docker.io is installed, try starting the service with "service docker start".'
                   ))
     info = domain.to_dict(apps)
     with open(query_cache_file, 'w') as fd:
         json.dump(info, fd)
     return info
Exemplo n.º 2
0
	def query(self, quick=False):
		if not quick:
			self.update_applications()
		self.ucr.load()
		reload_package_manager()
		list_apps = get_action('list')
		domain = get_action('domain')
		apps = list_apps.get_apps()
		if self.ucr.is_true('appcenter/docker', True):
			if not self._test_for_docker_service():
				raise umcm.UMC_Error(_('The docker service is not running! The App Center will not work properly.') + ' ' + _('Make sure docker.io is installed, try starting the service with "service docker start".'))
		info = domain.to_dict(apps)
		if quick:
			ret = []
			for app in info:
				if app is None:
					ret.append(None)
				else:
					short_info = {}
					for attr in ['id', 'name', 'vendor', 'maintainer', 'description', 'long_description', 'app_categories', 'end_of_life', 'update_available', 'logo_name', 'is_installed_anywhere', 'is_installed', 'installations', 'rating', 'vote_for_app', 'license', 'license_description', 'candidate_needs_install_permissions']:
						short_info[attr] = app[attr]
					ret.append(short_info)
			return ret
		else:
			return info
 def main(self, args):
     reload_package_manager()
     apps = args.apps
     if not apps:
         self.debug('No apps given. Using all')
         apps = Apps().get_all_apps()
     self._register_component_for_apps(apps, args)
     self._register_files_for_apps(apps, args)
     self._register_host_for_apps(apps, args)
     self._register_app_for_apps(apps, args)
     self._register_database_for_apps(apps, args)
     self._register_attributes_for_apps(apps, args)
     self._register_installed_apps_in_ucr()
Exemplo n.º 4
0
 def _apt_get(self, command, packages, percentage_end=100, update=True):
     env = os.environ.copy()
     env['DEBIAN_FRONTEND'] = 'noninteractive'
     if update:
         self._apt_get_update()
     apt_logger = _AptLogger(self, percentage_end)
     try:
         return self._subprocess([
             '/usr/bin/apt-get', '-o', 'APT::Status-Fd=1', '-o',
             'DPkg::Options::=--force-confold', '-o',
             'DPkg::Options::=--force-overwrite', '-o',
             'DPkg::Options::=--force-overwrite-dir', '--trivial-only=no',
             '--assume-yes', '--auto-remove', command
         ] + packages,
                                 logger=apt_logger,
                                 env=env)
     finally:
         reload_package_manager()
Exemplo n.º 5
0
 def _apt_get_update(self):
     self._subprocess(['/usr/bin/apt-get', 'update'])
     reload_package_manager()