blob: 9ccca75c1cbfbe56fd3d46d945a65e843aea77db (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
#!/usr/bin/python
# Virt-factory backend code.
#
# Copyright 2006, Red Hat, Inc
# Michael DeHaan <mdehaan@redhat.com>
# Scott Seago <sseago@redhat.com>
# Adrian Likins <alikins@redhat.com>
#
# This software may be freely redistributed under the terms of the GNU
# general public license.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
from codes import *
import os
import yaml
CONFIG_FILE = "/etc/virt-factory/settings"
# from the comments in http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66531
#class Singleton(object):
# def __new__(type):
# if not '_the_instance' in type.__dict__:
# type._the_instance = object.__new__(type)
# return type._the_instance
class Config:
# this class is a Borg
__shared_state = {}
has_read = False
def __init__(self):
self.__dict__ = self.__shared_state
if not self.has_read:
self.read()
print "***** CONFIG RELOAD *****"
Config.has_read = True
def read(self):
if not os.path.exists(CONFIG_FILE):
raise MisconfiguredException(comment="Missing %s" % CONFIG_FILE)
config_file = open(CONFIG_FILE)
data = config_file.read()
self.ds = yaml.load(data).next()
def get(self):
return self.ds
|