]> git.ipfire.org Git - ipfire.org.git/blob - webapp/backend/base.py
Major update of the webapp.
[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 iuse
10 import memcached
11 import mirrors
12 import netboot
13 import news
14 import planet
15 import releases
16 import settings
17 import stasy
18 import tracker
19 import wishlist
20
21 class Backend(object):
22 def __init__(self, configfile):
23 # Read configuration file.
24 self.config = self.read_config(configfile)
25
26 # Setup database.
27 self.setup_database()
28
29 # Initialize settings first.
30 self.settings = settings.Settings(self)
31 self.memcache = memcached.Memcached(self)
32
33 # Initialize backend modules.
34 self.accounts = accounts.Accounts(self)
35 self.advertisements = ads.Advertisements(self)
36 self.downloads = mirrors.Downloads(self)
37 self.geoip = geoip.GeoIP(self)
38 self.iuse = iuse.IUse(self)
39 self.mirrors = mirrors.Mirrors(self)
40 self.netboot = netboot.NetBoot(self)
41 self.news = news.News(self)
42 self.planet = planet.Planet(self)
43 self.releases = releases.Releases(self)
44 self.stasy = stasy.Stasy(self)
45 self.tracker = tracker.Tracker(self)
46 self.wishlist = wishlist.Wishlist(self)
47
48 def read_config(self, configfile):
49 cp = configparser.ConfigParser()
50 cp.read(configfile)
51
52 return cp
53
54 def setup_database(self):
55 """
56 Sets up the database connection.
57 """
58 credentials = {
59 "host" : self.config.get("database", "server"),
60 "database" : self.config.get("database", "database"),
61 "user" : self.config.get("database", "username"),
62 "password" : self.config.get("database", "password"),
63 }
64
65 self.db = database.Connection(**credentials)