Coder Social home page Coder Social logo

fedora-infra / fedora-packages Goto Github PK

View Code? Open in Web Editor NEW
58.0 24.0 59.0 9.13 MB

A webapp that allows searching packages in Fedora. Written in Python using TurboGears2 and Moksha.

Home Page: https://apps.fedoraproject.org/packages

License: GNU Affero General Public License v3.0

Shell 0.02% Python 32.81% JavaScript 39.41% CSS 11.35% HTML 6.95% Makefile 9.45%

fedora-packages's Introduction

fedora-packages allows to search for packages in Fedora.

Documentation

Would be nice to have a bit more documentation.

Hacking with docker-compose

We have a docker-compose setup for hacking on the fedora-packages app. This setup matches the production deployment of fedora-packages (i.e. Apache HTTP server with mod_wsgi) that is split over several Ansible files in Fedora infrastructure repository.

To bring the environment up you should first install the following.

$ sudo dnf install docker-compose

And then make sure that the docker daemon is running.

$ sudo systemctl start docker
$ sudo systemctl enable docker

If you do not wish to run docker-compose using sudo you will need to add your user to the docker group as follow.

$ sudo groupadd docker && sudo gpasswd -a $USER docker
$ MYGRP=$(id -g) ; newgrp docker ; newgrp $MYGRP

This is has for effect to give root permission to users added to the docker group.

Now from the devel directory you can run docker-compose.

$ cd devel
$ docker-compose up

The first time you execute this command, it will build a docker container and it will take few minutes. Once the build is finish and the application is started you can access the fedora-packages using this url http://127.0.0.1/packages

Reloading the application after code changes

Since we are using apache HTTP server to serve the application we need to run the following command to reload the application to test some code changes.

$ cd devel
$ docker-compose exec web touch /usr/share/fedoracommunity/fedora-packages.wsgi

This will change the timestamp of the .wsgi file and ask apache to reload the application.

Running the unit tests

To execute the test suite simply run the following command

$ docker-compose exec web py.test /usr/share/fedoracommunity/tests

Hacking with Vagrant

We have a simple vagrant setup for hacking on the fedora-packages app.

First, install Ansible, Vagrant, the vagrant-sshfs plugin, and the vagrant-libvirt plugin from the official Fedora repos:

$ sudo dnf install ansible vagrant vagrant-libvirt vagrant-sshfs

Now, from within main directory (the one with the Vagrantfile in it) of your git checkout of fedora-pacakges, run the vagrant up command to provision your dev environment:

$ vagrant up

When this command is completed (it may take a while) you will be able to ssh into your dev VM with vagrant ssh and then run the command to start the fedora-packages server:

$ vagrant ssh
[vagrant@localhost ~]$ pushd /vagrant/; gearbox serve;

Once that is running, simply go to http://localhost:8080/ in your browser on your host to see your running fedora-packages test instance.

Create a new release.

To create a new release, you need to update setup.py and fedora-packages.spec with the new version number and any dependencies added or removed.

The CHANGELOG.rst needs also to be updated with the commits and pull-requests included in the release.

Once these 3 files have been updated and commited to the develop branch, you create a new Git tag.

$ git tag -a 4.1.0 -s -m 'Release 4.1.0'
$ git push && git push --tag

Once the tag has been successfully pushed, a new release will be available in github.

License

fedora-packages is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License v3.0. See COPYING included with the distribution for details.

fedora-packages's People

Contributors

abadger avatar abitrolly avatar berroteran avatar charulagrl avatar cicku avatar cverna avatar echevemaster avatar fale avatar ferdnyc avatar genodeftest avatar jasontibbitts avatar lmacken avatar lubomir avatar mairin avatar manaswinidas avatar marijar avatar mattiaverga avatar mkutlak avatar puiterwijk avatar pypingou avatar ralphbean avatar relrod avatar ryanlerch avatar steaksauce- avatar techtonik avatar thunderoy avatar tjanez avatar xsuchy avatar yashvardhannanavati avatar yograterol avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fedora-packages's Issues

cache-worker: IOError: [Errno 107] Transport endpoint is not connected: '/var/cache/fedoracommunity/bugzillacookies'

I'm seeing this exception in production. I'm guessing it's gluster-related.

ERROR:fcomm-cache-worker:Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/worker.py", line 105, in run
    self.iteration()
  File "/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/worker.py", line 87, in iteration
    value = fn(**data['kw'])
  File "/usr/lib/python2.6/site-packages/fedoracommunity/connectors/bugzillaconnector.py", line 255, in query_bugs
    **params
  File "/usr/lib/python2.6/site-packages/fedoracommunity/connectors/bugzillaconnector.py", line 282, in _query_bugs
    _results = self._bugzilla.query(query)
  File "/usr/lib/python2.6/site-packages/fedoracommunity/connectors/bugzillaconnector.py", line 64, in _bugzilla
    return Bugzilla(url=self._base_url, cookiefile=self._cookiefile)
  File "/usr/lib/python2.6/site-packages/bugzilla/rhbugzilla.py", line 52, in __init__
    _parent.__init__(self, **kwargs)
  File "/usr/lib/python2.6/site-packages/bugzilla/bugzilla4.py", line 24, in __init__
    Bugzilla36.__init__(self, **kwargs)
  File "/usr/lib/python2.6/site-packages/bugzilla/bugzilla3.py", line 24, in __init__
    BugzillaBase.__init__(self, **kwargs)
  File "/usr/lib/python2.6/site-packages/bugzilla/base.py", line 277, in __init__
    self.cookiefile = cookiefile
  File "/usr/lib/python2.6/site-packages/bugzilla/base.py", line 356, in _setcookiefile
    self._cookiejar = _build_cookiejar(cookiefile)
  File "/usr/lib/python2.6/site-packages/bugzilla/base.py", line 75, in _build_cookiejar
    open(cookiefile, 'a').close()
IOError: [Errno 107] Transport endpoint is not connected: '/var/cache/fedoracommunity/bugzillacookies'

relationships - Could not be JSON object decoded

  • With https://apps.fedoraproject.org/packages:
    when trying to use /fcomm_connector/yum/query/query_requires with a package that does not exist, the response is HTTP/1.1" 500 None
    No JSON object could be decoded: line 1 column 0 (char 0)

  • Using localhost:
    the same error but with TurboGears online assitance

    AttributeError: 'dict' object has no attribute 'requires' in fedoracommunity/connectors/yumconnector.py:317

look yumconnector.py

317 rows = self._pkgtuples_to_rows(pkg.requires, find_provided_by=True)

Modify this file with

316 if type(pkg) is dict and 'error' in pkg:
317 pkg = []
318 return (0,pkg)
319 rows = self._pkgtuples_to_rows(pkg.requires, find_provided_by=True)

and no error message

]$ pkgwat dependencies sssd
Starting new HTTP connection (1): localhost
No such package found.

WebApp Error: <type 'exceptions.TypeError'>: 'NoneType' object is unsubscriptable

URL: http://localhost:10016/packages/jdo2-api/changelog
File '/usr/lib/python2.6/site-packages/weberror/errormiddleware.py', line 162 in __call__
  app_iter = self.application(environ, sr_checker)
File '/usr/lib/python2.6/site-packages/tg/configuration.py', line 655 in wrapper
  return app(environ, start_response)
File '/usr/lib/python2.6/site-packages/repoze/tm/__init__.py', line 19 in __call__
  result = self.application(environ, save_status_and_headers)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File '/usr/lib/python2.6/site-packages/routes/middleware.py', line 130 in __call__
  response = self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/paste/registry.py', line 375 in __call__
  app_iter = self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/middleware.py', line 76 in __call__
  return self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/extensionpoint.py', line 232 in __call__
  response = request.get_response(self.application)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/mw.py', line 130 in __call__
  response = request.get_response(self.application)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/tw2/core/middleware.py', line 199 in __call__
  resp = req.get_response(self.app, catch_exc_info=True)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1049 in get_response
  application, catch_exc_info=True)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/wsgiapp.py', line 125 in __call__
  response = self.dispatch(controller, environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/wsgiapp.py', line 324 in dispatch
  return controller(environ, start_response)
File '/usr/lib/python2.6/site-packages/fedoracommunity/controllers/root.py', line 37 in __call__
  return super(BaseController, self).__call__(environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 221 in __call__
  response = self._dispatch_call()
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call
  response = self._inspect_call(func)
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 107 in _inspect_call
  result = self._perform_call(func, args)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 858 in _perform_call
  self, controller, params, remainder=remainder)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 182 in _perform_call
  response = self._render_response(controller, output)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 358 in _render_response
  template_name=template_name)
File '/usr/lib/python2.6/site-packages/tg/render.py', line 141 in render
  return render_function(template_name, template_vars, **kwargs)
File '/usr/lib/python2.6/site-packages/tg/render.py', line 179 in render_mako
  **kwargs)
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 274 in render_mako
  cache_type=cache_type, cache_expire=cache_expire)
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 249 in cached_template
  return render_func()
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 271 in render_template
  return literal(template.render_unicode(**globs))
File '/usr/lib/python2.6/site-packages/mako/template.py', line 311 in render_unicode
  as_unicode=True)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 660 in _render
  **_kwargs_for_callable(callable_, data))
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 692 in _render_context
  _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 718 in _exec_template
  callable_(context, *args, **kwargs)
File '_usr_lib_python2_6_site_packages_fedoracommunity_templates_chrome_mak', line 75 in render_body
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 437 in display
  return self.generate_output(displays_on)
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 474 in generate_output
  mw,
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 204 in render
  return callback(kwargs)
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 144 in <lambda>
  return lambda kwargs: Markup(tmpl.render(**kwargs))
File '/usr/lib/python2.6/site-packages/mako/template.py', line 302 in render
  return runtime._render(self, self.callable_, args, data)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 660 in _render
  **_kwargs_for_callable(callable_, data))
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 692 in _render_context
  _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 718 in _exec_template
  callable_(context, *args, **kwargs)
File 'package_chrome_mak', line 128 in render_body
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 437 in display
  return self.generate_output(displays_on)
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 474 in generate_output
  mw,
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 204 in render
  return callback(kwargs)
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 144 in <lambda>
  return lambda kwargs: Markup(tmpl.render(**kwargs))
File '/usr/lib/python2.6/site-packages/mako/template.py', line 302 in render
  return runtime._render(self, self.callable_, args, data)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 660 in _render
  **_kwargs_for_callable(callable_, data))
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 692 in _render_context
  _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 718 in _exec_template
  callable_(context, *args, **kwargs)
File 'tabs_mak', line 80 in render_body
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 417 in display
  self.prepare()
File '/usr/lib/python2.6/site-packages/fedoracommunity/widgets/package/changelog.py', line 32 in prepare
  self.default_build_id = latest_builds['Rawhide']['build_id']
TypeError: 'NoneType' object is unsubscriptable

WebApp Error: <type 'exceptions.KeyError'>: u'undefined'

URL: http://localhost:10016/packages/fedup/undefined/packages/undefined/packages/undefined/packages/undefined/packages/undefined/packages/undefined/packages/
File '/usr/lib/python2.6/site-packages/weberror/errormiddleware.py', line 162 in __call__
  app_iter = self.application(environ, sr_checker)
File '/usr/lib/python2.6/site-packages/tg/configuration.py', line 655 in wrapper
  return app(environ, start_response)
File '/usr/lib/python2.6/site-packages/repoze/tm/__init__.py', line 19 in __call__
  result = self.application(environ, save_status_and_headers)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File '/usr/lib/python2.6/site-packages/routes/middleware.py', line 130 in __call__
  response = self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/paste/registry.py', line 375 in __call__
  app_iter = self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/middleware.py', line 76 in __call__
  return self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/extensionpoint.py', line 232 in __call__
  response = request.get_response(self.application)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/mw.py', line 130 in __call__
  response = request.get_response(self.application)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/tw2/core/middleware.py', line 199 in __call__
  resp = req.get_response(self.app, catch_exc_info=True)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1049 in get_response
  application, catch_exc_info=True)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/wsgiapp.py', line 125 in __call__
  response = self.dispatch(controller, environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/wsgiapp.py', line 324 in dispatch
  return controller(environ, start_response)
File '/usr/lib/python2.6/site-packages/fedoracommunity/controllers/root.py', line 37 in __call__
  return super(BaseController, self).__call__(environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 221 in __call__
  response = self._dispatch_call()
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call
  response = self._inspect_call(func)
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 107 in _inspect_call
  result = self._perform_call(func, args)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 858 in _perform_call
  self, controller, params, remainder=remainder)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 182 in _perform_call
  response = self._render_response(controller, output)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 358 in _render_response
  template_name=template_name)
File '/usr/lib/python2.6/site-packages/tg/render.py', line 141 in render
  return render_function(template_name, template_vars, **kwargs)
File '/usr/lib/python2.6/site-packages/tg/render.py', line 179 in render_mako
  **kwargs)
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 274 in render_mako
  cache_type=cache_type, cache_expire=cache_expire)
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 249 in cached_template
  return render_func()
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 271 in render_template
  return literal(template.render_unicode(**globs))
File '/usr/lib/python2.6/site-packages/mako/template.py', line 311 in render_unicode
  as_unicode=True)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 660 in _render
  **_kwargs_for_callable(callable_, data))
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 692 in _render_context
  _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 718 in _exec_template
  callable_(context, *args, **kwargs)
File '_usr_lib_python2_6_site_packages_fedoracommunity_templates_chrome_mak', line 76 in render_body
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 437 in display
  return self.generate_output(displays_on)
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 474 in generate_output
  mw,
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 204 in render
  return callback(kwargs)
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 144 in <lambda>
  return lambda kwargs: Markup(tmpl.render(**kwargs))
File '/usr/lib/python2.6/site-packages/mako/template.py', line 302 in render
  return runtime._render(self, self.callable_, args, data)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 660 in _render
  **_kwargs_for_callable(callable_, data))
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 692 in _render_context
  _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 718 in _exec_template
  callable_(context, *args, **kwargs)
File 'package_chrome_mak', line 128 in render_body
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 417 in display
  self.prepare()
File '/usr/lib/python2.6/site-packages/fedoracommunity/widgets/package/package.py', line 55 in prepare
  self.widget = moksha.common.utils.get_widget(self._expanded_tabs[active_tab]['widget_key'])
KeyError: u'undefined'

WebApp Error: <type 'exceptions.AttributeError'>: 'ContentsWidget' object has no attribute 'repo_to_archtask_map'

URL: http://localhost:10016/packages/mingw-SDL/contents
File '/usr/lib/python2.6/site-packages/weberror/errormiddleware.py', line 162 in __call__
  app_iter = self.application(environ, sr_checker)
File '/usr/lib/python2.6/site-packages/tg/configuration.py', line 655 in wrapper
  return app(environ, start_response)
File '/usr/lib/python2.6/site-packages/repoze/tm/__init__.py', line 19 in __call__
  result = self.application(environ, save_status_and_headers)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File '/usr/lib/python2.6/site-packages/routes/middleware.py', line 130 in __call__
  response = self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/paste/registry.py', line 375 in __call__
  app_iter = self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/middleware.py', line 76 in __call__
  return self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/extensionpoint.py', line 232 in __call__
  response = request.get_response(self.application)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/mw.py', line 130 in __call__
  response = request.get_response(self.application)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/tw2/core/middleware.py', line 199 in __call__
  resp = req.get_response(self.app, catch_exc_info=True)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1049 in get_response
  application, catch_exc_info=True)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/wsgiapp.py', line 125 in __call__
  response = self.dispatch(controller, environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/wsgiapp.py', line 324 in dispatch
  return controller(environ, start_response)
File '/usr/lib/python2.6/site-packages/fedoracommunity/controllers/root.py', line 37 in __call__
  return super(BaseController, self).__call__(environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 221 in __call__
  response = self._dispatch_call()
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call
  response = self._inspect_call(func)
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 107 in _inspect_call
  result = self._perform_call(func, args)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 858 in _perform_call
  self, controller, params, remainder=remainder)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 182 in _perform_call
  response = self._render_response(controller, output)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 358 in _render_response
  template_name=template_name)
File '/usr/lib/python2.6/site-packages/tg/render.py', line 141 in render
  return render_function(template_name, template_vars, **kwargs)
File '/usr/lib/python2.6/site-packages/tg/render.py', line 179 in render_mako
  **kwargs)
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 274 in render_mako
  cache_type=cache_type, cache_expire=cache_expire)
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 249 in cached_template
  return render_func()
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 271 in render_template
  return literal(template.render_unicode(**globs))
File '/usr/lib/python2.6/site-packages/mako/template.py', line 311 in render_unicode
  as_unicode=True)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 660 in _render
  **_kwargs_for_callable(callable_, data))
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 692 in _render_context
  _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 718 in _exec_template
  callable_(context, *args, **kwargs)
File '_usr_lib_python2_6_site_packages_fedoracommunity_templates_chrome_mak', line 76 in render_body
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 437 in display
  return self.generate_output(displays_on)
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 474 in generate_output
  mw,
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 204 in render
  return callback(kwargs)
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 144 in <lambda>
  return lambda kwargs: Markup(tmpl.render(**kwargs))
File '/usr/lib/python2.6/site-packages/mako/template.py', line 302 in render
  return runtime._render(self, self.callable_, args, data)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 660 in _render
  **_kwargs_for_callable(callable_, data))
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 692 in _render_context
  _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 718 in _exec_template
  callable_(context, *args, **kwargs)
File 'package_chrome_mak', line 128 in render_body
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 437 in display
  return self.generate_output(displays_on)
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 474 in generate_output
  mw,
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 204 in render
  return callback(kwargs)
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 144 in <lambda>
  return lambda kwargs: Markup(tmpl.render(**kwargs))
File '/usr/lib/python2.6/site-packages/mako/template.py', line 302 in render
  return runtime._render(self, self.callable_, args, data)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 660 in _render
  **_kwargs_for_callable(callable_, data))
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 692 in _render_context
  _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 718 in _exec_template
  callable_(context, *args, **kwargs)
File 'tabs_mak', line 80 in render_body
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 437 in display
  return self.generate_output(displays_on)
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 474 in generate_output
  mw,
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 204 in render
  return callback(kwargs)
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 144 in <lambda>
  return lambda kwargs: Markup(tmpl.render(**kwargs))
File '/usr/lib/python2.6/site-packages/mako/template.py', line 302 in render
  return runtime._render(self, self.callable_, args, data)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 660 in _render
  **_kwargs_for_callable(callable_, data))
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 692 in _render_context
  _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 718 in _exec_template
  callable_(context, *args, **kwargs)
File 'contents_mak', line 29 in render_body
AttributeError: 'ContentsWidget' object has no attribute 'repo_to_archtask_map'

https://apps.fedoraproject.org/packages/* is broken with Error loading the data for this page element

There's a consistent traceback here:

Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/mw.py", line 242, in _run_connector
    op, path, remote_params, **dispatch_params)
  File "/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/connector.py", line 194, in _dispatch
    return getattr(self, op)(resource_path, params, _cookies, **kwds)
  File "/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/connector.py", line 383, in query
    **params)
  File "/usr/lib/python2.6/site-packages/dogpile/cache/region.py", line 936, in decorate
    should_cache_fn)
  File "/usr/lib/python2.6/site-packages/dogpile/cache/region.py", line 588, in get_or_create
    async_creator) as value:
  File "/usr/lib/python2.6/site-packages/dogpile/core/dogpile.py", line 158, in __enter__
    return self._enter()
  File "/usr/lib/python2.6/site-packages/dogpile/core/dogpile.py", line 98, in _enter
    generated = self._enter_create(createdtime)
  File "/usr/lib/python2.6/site-packages/dogpile/core/dogpile.py", line 149, in _enter_create
    created = self.creator()
  File "/usr/lib/python2.6/site-packages/dogpile/cache/region.py", line 565, in gen_value
    created_value = creator()
  File "/usr/lib/python2.6/site-packages/dogpile/cache/region.py", line 932, in creator
    return fn(*arg, **kw)
  File "/usr/lib/python2.6/site-packages/fedoracommunity/connectors/bodhiconnector.py", line 604, in query_active_releases
    if tag.endswith('epel'):
AttributeError: 'NoneType' object has no attribute 'endswith'

Reported by @juhp

Recursion in link

Description
Clicking the package hyperlink under Builds tab leads to unwanted recursion link

Reproduction

  1. Go to https://apps.fedoraproject.org/packages/lttv
  2. Click Builds tab
  3. Click package name repeatedly
  4. Resulting link is as follows -

https://apps.fedoraproject.org/packages/lttv/undefined/packages//undefined/packages//undefined/packages//undefined/packages//undefined/packages//undefined/packages//undefined/packages//undefined/packages//undefined/packages//

Frequency of occurrence
100%

Use cases affected
All (I have checked 7-8 packages)

Related issues
#45

Page only partly encrypted

Seamonkey warns me that https://apps.fedoraproject.org/packages/mysql-connector-python contains some unencrypted information. It isn't always clear what that warning refers to, but in this case there are at least these three images being fetched over insecure HTTP:
http://fedoraproject.org/w/uploads/2/20/Artwork_DesignService_koji-icon-48.png
http://www.gravatar.com/avatar/8a44a1890dfcc7478bc71a7f111c89c1?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png
http://www.gravatar.com/avatar/f81fdda1398afa5f48810372fac821a9?s=64&d=http%3A%2F%2Ffedoraproject.org%2Fstatic%2Fimages%2Ffedora_infinity_64x64.png

Fedora Packages is obviously meant to use HTTPS because http://apps.fedoraproject.org/packages/ is redirected to https://apps.fedoraproject.org/packages/. Then it should be consistent and use HTTPS for all components.

In another browser which has HTTPS Everywhere installed there is no warning, and the three images are fetched over HTTPS. The need to notify Automattic every time someone loads a Fedora page is questionable, but obviously it's at least possible to do it without everyone else listening in.

Tag soup

The error page I get because of issue 96 is malformed. It contains a head element inside the body element and a title element directly in the html element.

Then again, there is no document type declaration and no XML declaration, so maybe the server doesn't promise anything more than tag soup.

Having seen this I looked at a non-error page for comparison. What immediately caught my eye were stray html, head and body tags under "Active Releases Overview" and unescaped ampersands in some links, but Validator found 34 errors:
http://validator.w3.org/check?uri=https%3A%2F%2Fapps.fedoraproject.org%2Fpackages%2Fmysql-connector-python3

It's a wonder that browsers manage to make any sense at all of this mess.

WebApp Error: <class 'xapian.DatabaseOpeningError'>: Error opening table `/var/cache/fedoracommunity/packages/xapian/versionmap/record.': Couldn't open /var/cache/fedoracommunity/packages/xapian/versionmap/record.baseA: No such file or directory Couldn't

URL: http://localhost:10016/packages/fprintd-devel/sources/spec
File '/usr/lib/python2.6/site-packages/weberror/errormiddleware.py', line 162 in __call__
  app_iter = self.application(environ, sr_checker)
File '/usr/lib/python2.6/site-packages/tg/configuration.py', line 655 in wrapper
  return app(environ, start_response)
File '/usr/lib/python2.6/site-packages/repoze/tm/__init__.py', line 19 in __call__
  result = self.application(environ, save_status_and_headers)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File '/usr/lib/python2.6/site-packages/routes/middleware.py', line 130 in __call__
  response = self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/paste/registry.py', line 375 in __call__
  app_iter = self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/middleware.py', line 76 in __call__
  return self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/extensionpoint.py', line 232 in __call__
  response = request.get_response(self.application)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/mw.py', line 130 in __call__
  response = request.get_response(self.application)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/tw2/core/middleware.py', line 199 in __call__
  resp = req.get_response(self.app, catch_exc_info=True)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1049 in get_response
  application, catch_exc_info=True)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/wsgiapp.py', line 125 in __call__
  response = self.dispatch(controller, environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/wsgiapp.py', line 324 in dispatch
  return controller(environ, start_response)
File '/usr/lib/python2.6/site-packages/fedoracommunity/controllers/root.py', line 37 in __call__
  return super(BaseController, self).__call__(environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 221 in __call__
  response = self._dispatch_call()
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call
  response = self._inspect_call(func)
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 107 in _inspect_call
  result = self._perform_call(func, args)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 858 in _perform_call
  self, controller, params, remainder=remainder)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 182 in _perform_call
  response = self._render_response(controller, output)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 358 in _render_response
  template_name=template_name)
File '/usr/lib/python2.6/site-packages/tg/render.py', line 141 in render
  return render_function(template_name, template_vars, **kwargs)
File '/usr/lib/python2.6/site-packages/tg/render.py', line 179 in render_mako
  **kwargs)
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 274 in render_mako
  cache_type=cache_type, cache_expire=cache_expire)
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 249 in cached_template
  return render_func()
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 271 in render_template
  return literal(template.render_unicode(**globs))
File '/usr/lib/python2.6/site-packages/mako/template.py', line 311 in render_unicode
  as_unicode=True)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 660 in _render
  **_kwargs_for_callable(callable_, data))
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 692 in _render_context
  _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 718 in _exec_template
  callable_(context, *args, **kwargs)
File '_usr_lib_python2_6_site_packages_fedoracommunity_templates_chrome_mak', line 75 in render_body
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 417 in display
  self.prepare()
File '/usr/lib/python2.6/site-packages/fedoracommunity/widgets/package/package.py', line 95 in prepare
  xapian_conn = get_connector('xapian')
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/mw.py', line 274 in _get_connector
  return cls(request.environ, request)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/xapianconnector.py', line 40 in __init__
  self._versionmap_db = xapian.Database(config.get('fedoracommunity.connector.xapian.versionmap.db', 'xapian/versionmap'))
File '/usr/lib64/python2.6/site-packages/xapian/__init__.py', line 3419 in __init__
  _xapian.Database_swiginit(self,_xapian.new_Database(*args))
DatabaseOpeningError: Error opening table `/var/cache/fedoracommunity/packages/xapian/versionmap/record.':
Couldn't open /var/cache/fedoracommunity/packages/xapian/versionmap/record.baseA: No such file or directory
Couldn't open /var/cache/fedoracommunity/packages/xapian/versionmap/record.baseB: No such file or directory

Port fcomm-cache-worker from a tight loop to a blocking call

Currently the cache warming daemon spins in a tight loop (sleeping for 2 seconds at each iteration). This is wasteful when its idle, but also makes it so it doesn't work as fast as it could when load is high.

Current versions of retask support a .wait() call that can fix this for us.

http://retask.readthedocs.org/en/latest/retask.queue.html#retask.queue.Queue.wait

The code for the cache worker daemon is in fedoracommunity/connectors/api/worker.py

WebApp Error: <class 'yum.Errors.YumBaseError'>: Error: rpmdb open failed

URL: http://localhost:10016/packages/fcomm_connector/yum/query/query_requires/%7B%22filters%22%3A%7B%22package%22%3A%22kde-l10n-Icelandic%22%2C%22version%22%3A%224.11.1-1.fc21%22%2C%22repo%22%3A%22Rawhide%22%2C%22arch%22%3A%22noarch%22%7D%2C%22rows_per_page%22%3A10%2C%22start_row%22%3A0%7D
File '/usr/lib/python2.6/site-packages/weberror/errormiddleware.py', line 162 in __call__
  app_iter = self.application(environ, sr_checker)
File '/usr/lib/python2.6/site-packages/tg/configuration.py', line 655 in wrapper
  return app(environ, start_response)
File '/usr/lib/python2.6/site-packages/repoze/tm/__init__.py', line 19 in __call__
  result = self.application(environ, save_status_and_headers)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File '/usr/lib/python2.6/site-packages/routes/middleware.py', line 130 in __call__
  response = self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/paste/registry.py', line 375 in __call__
  app_iter = self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/middleware.py', line 76 in __call__
  return self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/extensionpoint.py', line 232 in __call__
  response = request.get_response(self.application)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/mw.py', line 125 in __call__
  **params)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/mw.py', line 173 in _run_connector
  conn_obj = conn['connector_class'](environ, request)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/yumconnector.py', line 35 in __init__
  self._yum_client.doConfigSetup(fn = self._conf_file, root=os.getcwd())
File '/usr/lib/python2.6/site-packages/yum/__init__.py', line 248 in doConfigSetup
  return self.conf
File '/usr/lib/python2.6/site-packages/yum/__init__.py', line 891 in <lambda>
  conf = property(fget=lambda self: self._getConfig(),
File '/usr/lib/python2.6/site-packages/yum/__init__.py', line 299 in _getConfig
  startupconf = config.readStartupConfig(fn, root)
File '/usr/lib/python2.6/site-packages/yum/config.py', line 882 in readStartupConfig
  startupconf.releasever = _getsysver(startupconf.installroot, startupconf.distroverpkg)
File '/usr/lib/python2.6/site-packages/yum/config.py', line 1027 in _getsysver
  raise Errors.YumBaseError("Error: " + str(e))
YumBaseError: Error: rpmdb open failed

new packages not appearing in webapp

As far as I can tell packages added to Fedora in the last month or two have not been added to the Packages webapp or do not appear anyway.

For example ghc-system-filepath was added in July but does not appear in the webapp.
Is the cronjob to add new packages working properly?

Obsoletes - key "ops" and Less than.

The key "ops" arrive in blank with obsoletes and Less than , but shown on page.

]$ pkgwat -v obsoletes git
initialize_app
prepare_to_run_command Obsoletes
Starting new HTTP connection (1): localhost
"GET /fcomm_connector/yum/query/query_obsoletes/%7B%22rows_per_page%22:%2010,%20%22start_row%22:%200,%20%22filters%22:%20%7B%22repo%22:%20%22Rawhide%22,%20%22version%22:%20%221.8.3.1-1.fc20%22,%20%22arch%22:%20%22x86_64%22,%20%22package%22:%20%22git%22%7D%7D HTTP/1.1" 200 251
+----------------------------+
| Obsoletes |
+----------------------------+
| git-core < = 0-1.5.4.3 |
| git-arch 0-1.8.3.1-1.fc20 | *******not have the <
+----------------------------+

obsoletes

Received:

[{u'provided_by': None, u'version': u'0-1.5.4.3', u'flags': u'LE', u'name': u'git-core', u'ops': u'< ='}, {u'provided_by': None, u'version': u'0-1.8.3.1-1.fc20', u'flags': u'LT', u'name': u'git-arch', u'ops': ''}]

also spaces
u'ops': u'< ='

WebApp Error: <type 'exceptions.KeyError'>: search_packages/%7B%22filters%22:%7B%22search%22:%22flash/%22%7D,%22rows_per_page%22:10,%22start_row%22:0%7D'

URL: http://localhost:10016/packages/fcomm_connector/xapian/query/search_packages/%7B%22filters%22%3A%7B%22search%22%3A%22flash/%22%7D%2C%22rows_per_page%22%3A10%2C%22start_row%22%3A0%7D
File '/usr/lib/python2.6/site-packages/weberror/errormiddleware.py', line 162 in __call__
  app_iter = self.application(environ, sr_checker)
File '/usr/lib/python2.6/site-packages/tg/configuration.py', line 655 in wrapper
  return app(environ, start_response)
File '/usr/lib/python2.6/site-packages/repoze/tm/__init__.py', line 19 in __call__
  result = self.application(environ, save_status_and_headers)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File '/usr/lib/python2.6/site-packages/routes/middleware.py', line 130 in __call__
  response = self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/paste/registry.py', line 375 in __call__
  app_iter = self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/middleware.py', line 76 in __call__
  return self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/extensionpoint.py', line 232 in __call__
  response = request.get_response(self.application)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/mw.py', line 125 in __call__
  **params)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/mw.py', line 225 in _run_connector
  r = conn_obj._dispatch(op, path, remote_params, **dispatch_params)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/connector.py', line 194 in _dispatch
  return getattr(self, op)(resource_path, params, _cookies, **kwds)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/connector.py', line 378 in query
  query_func = self.query_model(resource_path).get_query()
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/connector.py', line 411 in query_model
  return self._query_paths[resource_path];
KeyError: 'search_packages/%7B%22filters%22:%7B%22search%22:%22flash/%22%7D,%22rows_per_page%22:10,%22start_row%22:0%7D'

mixed content: favicon loaded over http on https sites

On https://apps.fedoraproject.org/packages/ there is a bug with loading the favicon from http even when the site is load via https. I think this affects:

<link href="http://fedoraproject.org/favicon.ico"

<link href="http://fedoraproject.org/favicon.ico"

<link href="http://fedoraproject.org/favicon.ico"

https://github.com/fedora-infra/fedora-packages/blob/develop/fedoracommunity/templates/index.mak#L20
<link href="http://fedoraproject.org/favicon.ico"

<link href="http://fedoraproject.org/favicon.ico"

<link href="http://fedoraproject.org/favicon.ico"

In all those cases this bug could be resolved by replacing

http://fedoraproject.org/favicon.ico

with

//fedoraproject.org/favicon.ico

in all those files so the browser chooses the protocol itself.

EDIT:

The search https://github.com/fedora-infra/fedora-packages/search?q=http%3A%2F%2Ffedoraproject.org%2Ffavicon.ico&ref=cmdform will list all those files.

Exception thrown when search query contains a slash

URL: http://localhost:8080/fcomm_connector/xapian/query/search_packages/%7B%22filters%22%3A%7B%22search%22%3A%22720/36%22%7D%2C%22rows_per_page%22%3A10%2C%22start_row%22%3A0%7D
File '/usr/lib/python2.7/site-packages/weberror/evalexception.py', line 431 in respond
  app_iter = self.application(environ, detect_start_response)
File '/usr/lib/python2.7/site-packages/repoze/tm/__init__.py', line 23 in __call__
  result = self.application(environ, save_status_and_headers)
File '/usr/lib/python2.7/site-packages/tw2/core/middleware.py', line 205 in __call__
  resp = req.get_response(self.app, catch_exc_info=True)
File '/usr/lib/python2.7/site-packages/webob/request.py', line 1082 in get_response
  application, catch_exc_info=True)
File '/usr/lib/python2.7/site-packages/webob/request.py', line 1055 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.7/site-packages/beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File '/usr/lib/python2.7/site-packages/beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File '/usr/lib/python2.7/site-packages/routes/middleware.py', line 131 in __call__
  response = self.app(environ, start_response)
File '/usr/lib/python2.7/site-packages/paste/registry.py', line 379 in __call__
  app_iter = self.application(environ, start_response)
File '/usr/lib/python2.7/site-packages/moksha/wsgi/middleware/middleware.py', line 75 in __call__
  return self.application(environ, start_response)
File '/usr/lib/python2.7/site-packages/moksha/wsgi/middleware/extensionpoint.py', line 232 in __call__
  response = request.get_response(self.application)
File '/usr/lib/python2.7/site-packages/webob/request.py', line 1086 in get_response
  application, catch_exc_info=False)
File '/usr/lib/python2.7/site-packages/webob/request.py', line 1055 in call_application
  app_iter = application(self.environ, start_response)
File '/home/lmacken/code/github.com/fedora-packages/fedoracommunity/connectors/api/mw.py', line 125 in __call__
  **params)
File '/home/lmacken/code/github.com/fedora-packages/fedoracommunity/connectors/api/mw.py', line 225 in _run_connector
  r = conn_obj._dispatch(op, path, remote_params, **dispatch_params)
File '/home/lmacken/code/github.com/fedora-packages/fedoracommunity/connectors/api/connector.py', line 185 in _dispatch
  return getattr(self, op)(resource_path, params, _cookies, **kwds)
File '/home/lmacken/code/github.com/fedora-packages/fedoracommunity/connectors/api/connector.py', line 369 in query
  query_func = self.query_model(resource_path).get_query()
File '/home/lmacken/code/github.com/fedora-packages/fedoracommunity/connectors/api/connector.py', line 402 in query_model
  return self._query_paths[resource_path];
KeyError: 'search_packages/%7B%22filters%22:%7B%22search%22:%22720/36%22%7D,%22rows_per_page%22:10,%22start_row%22:0%7D'

Badly formatted JSON due to rubygem-fast_xs's description

When I search for rubygem-fast_xs via API or pkgwat in Ruby, it raises JSON parse error.

The response is as follows:

{
  "rows":[
    {
      "name":"rubygem-fast_xs",
      "link":"rubygem-fast_xs",
      "devel_owner":"msuchy",
      "icon":"package_128x128",
      "sub_pkgs":[
        {
          "summary":"Documentation for rubygem-fast_xs",
          "icon":"package_128x128",
          "description":"Documentation for rubygem-fast_xs.\n\n%rubygems_default_filter",
          "name":"rubygem-fast_xs-doc",
          "link":"rubygem-fast_xs-doc"
        }
      ],
      "upstream_url":"http://fast-xs.rubyforge.org/",
      "description":"fast_xs provides C extensions for escaping text.\nThe original String#fast_xs method is based on the xchar code by Sam Ruby:\n* http://intertwingly.net/stories/2005/09/28/xchar.rb\n* http://intertwingly.net/blog/2005/09/28/XML-Cleansing\n_why also packages an older version with Hpricot (patches submitted).\nThe version here should be compatible with the latest version of Hpricot\ncode.\nRuby on Rails will automatically use String#fast_xs from either Hpricot\nor this gem version with the bundled Builder package.\nString#fast_xs is an almost exact translation of Sam Ruby's original\nimplementation (String#to_xs), but it does escape \""      \" (which is an\noptional,
      but all parsers are able ot handle it. XML::Builder as\npackaged in Rails 2.0 will be automatically use String#fast_xs instead\nof String#to_xs available.",
      "summary":"Provides C extensions for escaping text"
    }
  ],
  "rows_per_page":10,
  "start_row":0,
  "visible_rows":1,
  "total_rows":1
}

The problem is with the description text but it does escape \"" \" (which is an\noptional. The extra double-quote marks the end of the string after escape \", and thus this JSON becomes badly formatted.

Is it possible to change this description? I'm working on http://isItFedoraRuby.com, and the import fails because of this.

Relationships do not load.

Going to relationships on pretty much any package, e.g., the kernel, always states "Error loading the data for this page element", no matter what Repo or Arch I choose.

WebApp Error: <class 'xml.parsers.expat.ExpatError'>: syntax error: line 1, column 49

URL: http://localhost:10016/packages/fcomm_connector/bugzilla/query/query_bugs/%7B%22filters%22%3A%7B%22package%22%3A%22aide%22%2C%22version%22%3A%22%22%7D%2C%22rows_per_page%22%3A10%2C%22start_row%22%3A0%7D
File '/usr/lib/python2.6/site-packages/weberror/errormiddleware.py', line 162 in __call__
  app_iter = self.application(environ, sr_checker)
File '/usr/lib/python2.6/site-packages/tg/configuration.py', line 655 in wrapper
  return app(environ, start_response)
File '/usr/lib/python2.6/site-packages/repoze/tm/__init__.py', line 19 in __call__
  result = self.application(environ, save_status_and_headers)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File '/usr/lib/python2.6/site-packages/routes/middleware.py', line 130 in __call__
  response = self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/paste/registry.py', line 375 in __call__
  app_iter = self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/middleware.py', line 76 in __call__
  return self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/extensionpoint.py', line 232 in __call__
  response = request.get_response(self.application)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/mw.py', line 125 in __call__
  **params)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/mw.py', line 225 in _run_connector
  r = conn_obj._dispatch(op, path, remote_params, **dispatch_params)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/connector.py', line 194 in _dispatch
  return getattr(self, op)(resource_path, params, _cookies, **kwds)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/connector.py', line 386 in query
  **params)
File '/usr/lib/python2.6/site-packages/dogpile/cache/region.py', line 577 in decorate
  return self.get_or_create(key, creator, expiration_time)
File '/usr/lib/python2.6/site-packages/dogpile/cache/region.py', line 425 in get_or_create
  async_creator) as value:
File '/usr/lib/python2.6/site-packages/dogpile/core/dogpile.py', line 158 in __enter__
  return self._enter()
File '/usr/lib/python2.6/site-packages/dogpile/core/dogpile.py', line 98 in _enter
  generated = self._enter_create(createdtime)
File '/usr/lib/python2.6/site-packages/dogpile/core/dogpile.py', line 149 in _enter_create
  created = self.creator()
File '/usr/lib/python2.6/site-packages/dogpile/cache/region.py', line 407 in gen_value
  value = self._value(creator())
File '/usr/lib/python2.6/site-packages/dogpile/cache/region.py', line 576 in creator
  return fn(*arg, **kw)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/bugzillaconnector.py', line 269 in query_bugs
  bugs = self.get_bugs(bugs, collection=collection)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/bugzillaconnector.py', line 332 in get_bugs
  bugs_list.extend(_bugids_to_dicts(chunk_of_bugids))
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/bugzillaconnector.py', line 300 in _bugids_to_dicts
  bz_bugs = self._bugzilla.getbugs(chunk_of_bugids)
File '/usr/lib/python2.6/site-packages/bugzilla/base.py', line 788 in getbugs
  for b in self._getbugs(idlist)]
File '/usr/lib/python2.6/site-packages/bugzilla/base.py', line 764 in _getbugs
  r = self._proxy.Bug.get_bugs(getbugdata)
File '/usr/lib64/python2.6/xmlrpclib.py', line 1199 in __call__
  return self.__send(self.__name, args)
File '/usr/lib64/python2.6/xmlrpclib.py', line 1489 in __request
  verbose=self.__verbose
File '/usr/lib/python2.6/site-packages/bugzilla/base.py', line 166 in request
  return self.parse_response(stringio)
File '/usr/lib64/python2.6/xmlrpclib.py', line 1361 in parse_response
  return self._parse_response(file, None)
File '/usr/lib64/python2.6/xmlrpclib.py', line 1387 in _parse_response
  p.feed(response)
File '/usr/lib64/python2.6/xmlrpclib.py', line 601 in feed
  self._parser.Parse(data, 0)
ExpatError: syntax error: line 1, column 49

WebApp Error: <type 'exceptions.KeyError'>: 'Rawhide'

URL: http://localhost:10016/packages/zipios%2B%2B/changelog
File '/usr/lib/python2.6/site-packages/weberror/errormiddleware.py', line 162 in __call__
  app_iter = self.application(environ, sr_checker)
File '/usr/lib/python2.6/site-packages/tg/configuration.py', line 655 in wrapper
  return app(environ, start_response)
File '/usr/lib/python2.6/site-packages/repoze/tm/__init__.py', line 19 in __call__
  result = self.application(environ, save_status_and_headers)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File '/usr/lib/python2.6/site-packages/routes/middleware.py', line 130 in __call__
  response = self.app(environ, start_response)
File '/usr/lib/python2.6/site-packages/paste/registry.py', line 375 in __call__
  app_iter = self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/middleware.py', line 76 in __call__
  return self.application(environ, start_response)
File '/usr/lib/python2.6/site-packages/moksha/wsgi/middleware/extensionpoint.py', line 232 in __call__
  response = request.get_response(self.application)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/mw.py', line 130 in __call__
  response = request.get_response(self.application)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1053 in get_response
  application, catch_exc_info=False)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/tw2/core/middleware.py', line 199 in __call__
  resp = req.get_response(self.app, catch_exc_info=True)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1049 in get_response
  application, catch_exc_info=True)
File '/usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/request.py', line 1022 in call_application
  app_iter = application(self.environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/wsgiapp.py', line 125 in __call__
  response = self.dispatch(controller, environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/wsgiapp.py', line 324 in dispatch
  return controller(environ, start_response)
File '/usr/lib/python2.6/site-packages/fedoracommunity/controllers/root.py', line 37 in __call__
  return super(BaseController, self).__call__(environ, start_response)
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 221 in __call__
  response = self._dispatch_call()
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 172 in _dispatch_call
  response = self._inspect_call(func)
File '/usr/lib/python2.6/site-packages/pylons/controllers/core.py', line 107 in _inspect_call
  result = self._perform_call(func, args)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 858 in _perform_call
  self, controller, params, remainder=remainder)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 182 in _perform_call
  response = self._render_response(controller, output)
File '/usr/lib/python2.6/site-packages/tg/controllers.py', line 358 in _render_response
  template_name=template_name)
File '/usr/lib/python2.6/site-packages/tg/render.py', line 141 in render
  return render_function(template_name, template_vars, **kwargs)
File '/usr/lib/python2.6/site-packages/tg/render.py', line 179 in render_mako
  **kwargs)
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 274 in render_mako
  cache_type=cache_type, cache_expire=cache_expire)
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 249 in cached_template
  return render_func()
File '/usr/lib/python2.6/site-packages/pylons/templating.py', line 271 in render_template
  return literal(template.render_unicode(**globs))
File '/usr/lib/python2.6/site-packages/mako/template.py', line 311 in render_unicode
  as_unicode=True)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 660 in _render
  **_kwargs_for_callable(callable_, data))
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 692 in _render_context
  _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 718 in _exec_template
  callable_(context, *args, **kwargs)
File '_usr_lib_python2_6_site_packages_fedoracommunity_templates_chrome_mak', line 76 in render_body
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 437 in display
  return self.generate_output(displays_on)
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 474 in generate_output
  mw,
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 204 in render
  return callback(kwargs)
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 144 in <lambda>
  return lambda kwargs: Markup(tmpl.render(**kwargs))
File '/usr/lib/python2.6/site-packages/mako/template.py', line 302 in render
  return runtime._render(self, self.callable_, args, data)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 660 in _render
  **_kwargs_for_callable(callable_, data))
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 692 in _render_context
  _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 718 in _exec_template
  callable_(context, *args, **kwargs)
File 'package_chrome_mak', line 128 in render_body
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 437 in display
  return self.generate_output(displays_on)
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 474 in generate_output
  mw,
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 204 in render
  return callback(kwargs)
File '/usr/lib/python2.6/site-packages/tw2/core/templating.py', line 144 in <lambda>
  return lambda kwargs: Markup(tmpl.render(**kwargs))
File '/usr/lib/python2.6/site-packages/mako/template.py', line 302 in render
  return runtime._render(self, self.callable_, args, data)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 660 in _render
  **_kwargs_for_callable(callable_, data))
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 692 in _render_context
  _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File '/usr/lib/python2.6/site-packages/mako/runtime.py', line 718 in _exec_template
  callable_(context, *args, **kwargs)
File 'tabs_mak', line 80 in render_body
File '/usr/lib/python2.6/site-packages/tw2/core/widgets.py', line 417 in display
  self.prepare()
File '/usr/lib/python2.6/site-packages/fedoracommunity/widgets/package/changelog.py', line 32 in prepare
  self.default_build_id = latest_builds['Rawhide']['build_id']
KeyError: 'Rawhide'

Can't build karma_icon_url in cache worker

Sometimes the cache worker throws this traceback.

ERROR:fcomm-cache-worker:Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/worker.py", line 105, in run
    self.iteration()
  File "/usr/lib/python2.6/site-packages/fedoracommunity/connectors/api/worker.py", line 87, in iteration
    value = fn(**data['kw'])
  File "/usr/lib/python2.6/site-packages/fedoracommunity/connectors/bodhiconnector.py", line 656, in query_active_releases
    karma_icon_url = self._request.environ['SCRIPT_NAME'] + \
KeyError: 'SCRIPT_NAME'

The memcached requirement should be disabled in development

If you don't have memcached running where you say it should be running in development.ini, then all calls to /fcomm_connector/ api endpoint will block silently and forever -- they're trying to acquire the distributed dogpile lock.

That can be super confusing to new people and so it should be turned off by default in development.ini somehow. This will require a little hacking.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.