]> git.ipfire.org Git - ipfire.org.git/blame_incremental - webapp/backend/base.py
boot: Support serial console installations.
[ipfire.org.git] / webapp / backend / base.py
... / ...
CommitLineData
1#!/usr/bin/python
2
3import ConfigParser as configparser
4
5import accounts
6import ads
7import database
8import geoip
9import iuse
10import memcached
11import mirrors
12import netboot
13import news
14import planet
15import releases
16import settings
17import stasy
18import tracker
19import wishlist
20
21class 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)