@@ -30,16 +30,15 @@ def get_backend():
3030class State (api .State ):
3131
3232 def get_state (self , name ):
33- session = db .get_session ()
34- q = utils .model_query (
35- models .StateInfo ,
36- session )
37- q = q .filter (models .StateInfo .name == name )
38- return q .value (models .StateInfo .state )
33+ with db .session_for_read () as session :
34+ q = utils .model_query (
35+ models .StateInfo ,
36+ session )
37+ q = q .filter (models .StateInfo .name == name )
38+ return q .value (models .StateInfo .state )
3939
4040 def set_state (self , name , state ):
41- session = db .get_session ()
42- with session .begin ():
41+ with db .session_for_write () as session :
4342 try :
4443 q = utils .model_query (
4544 models .StateInfo ,
@@ -55,16 +54,15 @@ def set_state(self, name, state):
5554 return db_state .state
5655
5756 def get_metadata (self , name ):
58- session = db .get_session ()
59- q = utils .model_query (
60- models .StateInfo ,
61- session )
62- q .filter (models .StateInfo .name == name )
63- return q .value (models .StateInfo .s_metadata )
57+ with db .session_for_read () as session :
58+ q = utils .model_query (
59+ models .StateInfo ,
60+ session )
61+ q .filter (models .StateInfo .name == name )
62+ return q .value (models .StateInfo .s_metadata )
6463
6564 def set_metadata (self , name , metadata ):
66- session = db .get_session ()
67- with session .begin ():
65+ with db .session_for_write () as session :
6866 try :
6967 q = utils .model_query (
7068 models .StateInfo ,
@@ -83,20 +81,19 @@ class ModuleInfo(api.ModuleInfo):
8381 """Base class for module info management."""
8482
8583 def get_priority (self , name ):
86- session = db .get_session ()
87- q = utils .model_query (
88- models .ModuleStateInfo ,
89- session )
90- q = q .filter (models .ModuleStateInfo .name == name )
91- res = q .value (models .ModuleStateInfo .priority )
92- if res :
93- return int (res )
94- else :
95- return 1
84+ with db .session_for_read () as session :
85+ q = utils .model_query (
86+ models .ModuleStateInfo ,
87+ session )
88+ q = q .filter (models .ModuleStateInfo .name == name )
89+ res = q .value (models .ModuleStateInfo .priority )
90+ if res :
91+ return int (res )
92+ else :
93+ return 1
9694
9795 def set_priority (self , name , priority ):
98- session = db .get_session ()
99- with session .begin ():
96+ with db .session_for_write () as session :
10097 try :
10198 q = utils .model_query (
10299 models .ModuleStateInfo ,
@@ -113,20 +110,19 @@ def set_priority(self, name, priority):
113110 return int (db_state .priority )
114111
115112 def get_state (self , name ):
116- session = db .get_session ()
117- try :
118- q = utils .model_query (
119- models .ModuleStateInfo ,
120- session )
121- q = q .filter (models .ModuleStateInfo .name == name )
122- res = q .value (models .ModuleStateInfo .state )
123- return bool (res )
124- except sqlalchemy .orm .exc .NoResultFound :
125- return None
113+ with db .session_for_read () as session :
114+ try :
115+ q = utils .model_query (
116+ models .ModuleStateInfo ,
117+ session )
118+ q = q .filter (models .ModuleStateInfo .name == name )
119+ res = q .value (models .ModuleStateInfo .state )
120+ return bool (res )
121+ except sqlalchemy .orm .exc .NoResultFound :
122+ return None
126123
127124 def set_state (self , name , state ):
128- session = db .get_session ()
129- with session .begin ():
125+ with db .session_for_write () as session :
130126 try :
131127 q = utils .model_query (
132128 models .ModuleStateInfo ,
@@ -145,20 +141,19 @@ class ServiceToCollectorMapping(object):
145141 """Base class for service to collector mapping."""
146142
147143 def get_mapping (self , service ):
148- session = db .get_session ()
149- try :
150- q = utils .model_query (
151- models .ServiceToCollectorMapping ,
152- session )
153- q = q .filter (
154- models .ServiceToCollectorMapping .service == service )
155- return q .one ()
156- except sqlalchemy .orm .exc .NoResultFound :
157- raise api .NoSuchMapping (service )
144+ with db .session_for_read () as session :
145+ try :
146+ q = utils .model_query (
147+ models .ServiceToCollectorMapping ,
148+ session )
149+ q = q .filter (
150+ models .ServiceToCollectorMapping .service == service )
151+ return q .one ()
152+ except sqlalchemy .orm .exc .NoResultFound :
153+ raise api .NoSuchMapping (service )
158154
159155 def set_mapping (self , service , collector ):
160- session = db .get_session ()
161- with session .begin ():
156+ with db .session_for_write () as session :
162157 try :
163158 q = utils .model_query (
164159 models .ServiceToCollectorMapping ,
@@ -176,37 +171,37 @@ def set_mapping(self, service, collector):
176171 return db_mapping
177172
178173 def list_services (self , collector = None ):
179- session = db .get_session ()
180- q = utils .model_query (
181- models .ServiceToCollectorMapping ,
182- session )
183- if collector :
184- q = q .filter (
185- models .ServiceToCollectorMapping .collector == collector )
186- res = q .distinct ().values (
187- models .ServiceToCollectorMapping .service )
188- return res
174+ with db .session_for_read () as session :
175+ q = utils .model_query (
176+ models .ServiceToCollectorMapping ,
177+ session )
178+ if collector :
179+ q = q .filter (
180+ models .ServiceToCollectorMapping .collector == collector )
181+ res = q .distinct ().values (
182+ models .ServiceToCollectorMapping .service )
183+ return res
189184
190185 def list_mappings (self , collector = None ):
191- session = db .get_session ()
192- q = utils .model_query (
193- models .ServiceToCollectorMapping ,
194- session )
195- if collector :
196- q = q .filter (
197- models .ServiceToCollectorMapping .collector == collector )
198- res = q .all ()
199- return res
186+ with db .session_for_read () as session :
187+ q = utils .model_query (
188+ models .ServiceToCollectorMapping ,
189+ session )
190+ if collector :
191+ q = q .filter (
192+ models .ServiceToCollectorMapping .collector == collector )
193+ res = q .all ()
194+ return res
200195
201196 def delete_mapping (self , service ):
202- session = db .get_session ()
203- q = utils .model_query (
204- models .ServiceToCollectorMapping ,
205- session )
206- q = q .filter (models .ServiceToCollectorMapping .service == service )
207- r = q .delete ()
208- if not r :
209- raise api .NoSuchMapping (service )
197+ with db .session_for_write () as session :
198+ q = utils .model_query (
199+ models .ServiceToCollectorMapping ,
200+ session )
201+ q = q .filter (models .ServiceToCollectorMapping .service == service )
202+ r = q .delete ()
203+ if not r :
204+ raise api .NoSuchMapping (service )
210205
211206
212207class DBAPIManager (object ):
0 commit comments