Skip to content

Instantly share code, notes, and snippets.

@amitsaha
Created October 4, 2012 22:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amitsaha/3836811 to your computer and use it in GitHub Desktop.
Save amitsaha/3836811 to your computer and use it in GitHub Desktop.
Flask Application + mod_wsgi/Apache: https://bugzilla.redhat.com/show_bug.cgi?id=768846#c13
import rpm
import os
app = Flask(__name__)
app.debug=True
def get_rpm_info(rpm_file):
"""Returns rpm information by querying a rpm"""
ts = rpm.ts()
fdno = os.open(rpm_file, os.O_RDONLY)
try:
hdr = ts.hdrFromFdno(fdno)
except rpm.error:
fdno = os.open(rpm_file, os.O_RDONLY)
ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES)
hdr = ts.hdrFromFdno(fdno)
os.close(fdno)
return { 'name': hdr[rpm.RPMTAG_NAME],
'ver' : "%s-%s" % (hdr[rpm.RPMTAG_VERSION],
hdr[rpm.RPMTAG_RELEASE]),
'epoch': hdr[rpm.RPMTAG_EPOCH],
'arch': hdr[rpm.RPMTAG_ARCH] ,
'rpm': "%s" % rpm_file.split('/')[-1:][0],
'files': hdr['filenames']}
@app.route("/")
def hello():
return str(get_rpm_info('/tmp/task.rpm'))
#return "Hello"
if __name__ == "__main__":
app.run()
import sys
sys.path.insert(0, '/var/www/flaskapp/')
from app import app as application
WSGIDaemonProcess flaskapp threads=2
WSGIScriptAlias /myapp /var/www/flaskapp/app.wsgi
WSGIApplicationGroup %{GLOBAL}
<Directory /var/www/flaskapp>
WSGIProcessGroup flaskapp
Order deny,allow
#Satisfy Any
Allow from all
</Directory>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment