]> git.ipfire.org Git - ipfire.org.git/blob - webapp/backend/base.py
Merge branch 'master' of ssh://git.ipfire.org/pub/git/ipfire.org
[ipfire.org.git] / webapp / backend / base.py
1 #!/usr/bin/python
2
3 import ConfigParser as configparser
4
5 import accounts
6 import ads
7 import database
8 import geoip
9 import fireinfo
10 import iuse
11 import memcached
12 import mirrors
13 import netboot
14 import nopaste
15 import news
16 import planet
17 import releases
18 import settings
19 import talk
20 import wishlist
21
22 class Backend(object):
23 def __init__(self, configfile, debug=False):
24 # Read configuration file.
25 self.config = self.read_config(configfile)
26 self.debug = debug
27
28 # Setup database.
29 self.setup_database()
30
31 # Initialize settings first.
32 self.settings = settings.Settings(self)
33 self.memcache = memcached.Memcached(self)
34
35 # Initialize backend modules.
36 self.accounts = accounts.Accounts(self)
37 self.advertisements = ads.Advertisements(self)
38 self.downloads = mirrors.Downloads(self)
39 self.geoip = geoip.GeoIP(self)
40 self.fireinfo = fireinfo.Fireinfo(self)
41 self.iuse = iuse.IUse(self)
42 self.mirrors = mirrors.Mirrors(self)
43 self.netboot = netboot.NetBoot(self)
44 self.nopaste = nopaste.Nopaste(self)
45 self.news = news.News(self)
46 self.planet = planet.Planet(self)
47 self.releases = releases.Releases(self)
48 self.talk = talk.Talk(self)
49 self.wishlist = wishlist.Wishlist(self)
50
51 def read_config(self, configfile):
52 cp = configparser.ConfigParser()
53 cp.read(configfile)
54
55 return cp
56
57 def setup_database(self):
58 """
59 Sets up the database connection.
60 """
61 credentials = {
62 "host" : self.config.get("database", "server"),
63 "database" : self.config.get("database", "database"),
64 "user" : self.config.get("database", "username"),
65 "password" : self.config.get("database", "password"),
66 }
67
68 self.db = database.Connection(**credentials)