1
2
3
4 __author__ = "H. Herb <hherb@gnumed.net>, I. Haywood <i.haywood@ugrad.unimelb.edu.au>"
5 __license__ = 'GPL v2 or later (details at http://www.gnu.org)'
6
7 import logging
8
9 _log = logging.getLogger('gm.db')
10
12 """a class to encapsulate Postgres login information to default database"""
13
14
15
16
17
18
19
20
21 - def __init__(self, user=None, password=None, host=None, port=5432, database=None):
22 self.user = user
23 self.password = password
24 self.host = host
25 self.port = port
26 self.database = database
27
30
32 self.__port = int(value)
33
34 port = property(_get_port, _set_port)
35
45
47
48 info = "host:port=%s:%s, db=%s, user=%s, pw=??" % (
49 self.GetHost(),
50 str(self.GetPort()),
51 self.GetDatabase(),
52 self.GetUser()
53 )
54 return info
55
57 host = self.GetHost()
58 port = str(self.GetPort())
59
60
61
62
63 if host == '':
64 port = ''
65 dsn = "%s:%s:%s:%s" % (
66 host,
67 self.GetDatabase(),
68 self.GetUser(),
69 self.GetPassword()
70 )
71 host_port = "%s:%s" % (host, port)
72 return dsn, host_port
73
75 dsn_parts = []
76
77 if self.database.strip() != '':
78 dsn_parts.append('dbname=%s' % self.database)
79
80 if self.host.strip() != '':
81 dsn_parts.append('host=%s' % self.host)
82
83 dsn_parts.append('port=%s' % self.port)
84
85 if self.user.strip() != '':
86 dsn_parts.append('user=%s' % self.user)
87
88 if self.password.strip() != '':
89 dsn_parts.append('password=%s' % self.password)
90
91 return ' '.join(dsn_parts)
92
94 host = self.GetHost()
95 port = str(self.GetPort())
96
97
98
99 if host == '':
100 port = ''
101 dsn = "%s:%s:%s:%s:%s" % (
102 host,
103 port,
104 self.GetDatabase(),
105 self.GetUser(),
106 self.GetPassword()
107 )
108 return dsn
109
112
115
117 self.database = dbname
118
121
124
127
129 try:
130 port = int (port)
131 except ValueError:
132 _log.warning("tried to set port to '%s', set to -1" % port)
133 port = -1
134 self.port = port
135
138
140 self.__profile = profile
141
143 return self.__profile
144
146 "clears all connection information regarding user, password etc."
147
148 self.user = "guest"
149 self.password = ""
150 self.host = ''
151 self.port = 5432
152 self.database = "gnumed_v9"
153 self.__profile = 'default'
154
155
156 if __name__ == "__main__" :
157 print "Please somebody write a module test function here!"
158