diff options
Diffstat (limited to 'keystone-moon/keystone/contrib/moon/backends')
-rw-r--r-- | keystone-moon/keystone/contrib/moon/backends/sql.py | 148 |
1 files changed, 76 insertions, 72 deletions
diff --git a/keystone-moon/keystone/contrib/moon/backends/sql.py b/keystone-moon/keystone/contrib/moon/backends/sql.py index 2b7258ea..1ddb474e 100644 --- a/keystone-moon/keystone/contrib/moon/backends/sql.py +++ b/keystone-moon/keystone/contrib/moon/backends/sql.py @@ -324,13 +324,13 @@ class TenantConnector(TenantDriver): base[key] = update[key] def get_tenants_dict(self): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(Tenant) tenants = query.all() return {tenant.id: tenant.tenant for tenant in tenants} def add_tenant_dict(self, tenant_id, tenant_dict): - with sql.transaction() as session: + with sql.session_for_write() as session: new_ref = Tenant.from_dict( { "id": tenant_id, @@ -341,14 +341,14 @@ class TenantConnector(TenantDriver): return {new_ref.id: new_ref.tenant} def del_tenant(self, tenant_id): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(Tenant) query = query.filter_by(id=tenant_id) tenant = query.first() session.delete(tenant) def set_tenant_dict(self, tenant_id, tenant_dict): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(Tenant) query = query.filter_by(id=tenant_id) ref = query.first() @@ -363,13 +363,13 @@ class IntraExtensionConnector(IntraExtensionDriver): # IntraExtension functions def get_intra_extensions_dict(self): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(IntraExtension) ref_list = query.all() return {_ref.id: _ref.intra_extension for _ref in ref_list} def del_intra_extension(self, intra_extension_id): - with sql.transaction() as session: + with sql.session_for_write() as session: ref = session.query(IntraExtension).get(intra_extension_id) # Must delete all references to that IntraExtension for _object in __all_objects__: @@ -378,11 +378,11 @@ class IntraExtensionConnector(IntraExtensionDriver): _refs = query.all() for _ref in _refs: session.delete(_ref) - session.flush() + # session.flush() session.delete(ref) def set_intra_extension_dict(self, intra_extension_id, intra_extension_dict): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(IntraExtension) query = query.filter_by(id=intra_extension_id) ref = query.first() @@ -399,19 +399,20 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in IntraExtension.attributes: if attr != 'id': setattr(ref, attr, getattr(new_intra_extension, attr)) + # session.flush() return IntraExtension.to_dict(ref) # Getter and Setter for subject_category def get_subject_categories_dict(self, intra_extension_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(SubjectCategory) query = query.filter_by(intra_extension_id=intra_extension_id) ref_list = query.all() return {_ref.id: _ref.subject_category for _ref in ref_list} def set_subject_category_dict(self, intra_extension_id, subject_category_id, subject_category_dict): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(SubjectCategory) query = query.filter_by(intra_extension_id=intra_extension_id, id=subject_category_id) ref = query.first() @@ -429,11 +430,11 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in SubjectCategory.attributes: if attr != 'id': setattr(ref, attr, getattr(new_ref, attr)) - session.flush() + # # session.flush() return {subject_category_id: SubjectCategory.to_dict(ref)['subject_category']} def del_subject_category(self, intra_extension_id, subject_category_id): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(SubjectCategory) query = query.filter_by(intra_extension_id=intra_extension_id, id=subject_category_id) ref = query.first() @@ -443,14 +444,14 @@ class IntraExtensionConnector(IntraExtensionDriver): # Getter and Setter for object_category def get_object_categories_dict(self, intra_extension_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(ObjectCategory) query = query.filter_by(intra_extension_id=intra_extension_id) ref_list = query.all() return {_ref.id: _ref.object_category for _ref in ref_list} def set_object_category_dict(self, intra_extension_id, object_category_id, object_category_dict): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(ObjectCategory) query = query.filter_by(intra_extension_id=intra_extension_id, id=object_category_id) ref = query.first() @@ -468,11 +469,11 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in ObjectCategory.attributes: if attr != 'id': setattr(ref, attr, getattr(new_ref, attr)) - session.flush() + # session.flush() return {object_category_id: ObjectCategory.to_dict(ref)['object_category']} def del_object_category(self, intra_extension_id, object_category_id): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(ObjectCategory) query = query.filter_by(intra_extension_id=intra_extension_id, id=object_category_id) ref = query.first() @@ -482,14 +483,14 @@ class IntraExtensionConnector(IntraExtensionDriver): # Getter and Setter for action_category def get_action_categories_dict(self, intra_extension_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(ActionCategory) query = query.filter_by(intra_extension_id=intra_extension_id) ref_list = query.all() return {_ref.id: _ref.action_category for _ref in ref_list} def set_action_category_dict(self, intra_extension_id, action_category_id, action_category_dict): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(ActionCategory) query = query.filter_by(intra_extension_id=intra_extension_id, id=action_category_id) ref = query.first() @@ -507,11 +508,11 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in ActionCategory.attributes: if attr != 'id': setattr(ref, attr, getattr(new_ref, attr)) - session.flush() + # session.flush() return {action_category_id: ActionCategory.to_dict(ref)['action_category']} def del_action_category(self, intra_extension_id, action_category_id): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(ActionCategory) query = query.filter_by(intra_extension_id=intra_extension_id, id=action_category_id) ref = query.first() @@ -521,14 +522,14 @@ class IntraExtensionConnector(IntraExtensionDriver): # Perimeter def get_subjects_dict(self, intra_extension_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(Subject) query = query.filter_by(intra_extension_id=intra_extension_id) ref_list = query.all() return {_ref.id: _ref.subject for _ref in ref_list} def set_subject_dict(self, intra_extension_id, subject_id, subject_dict): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(Subject) query = query.filter_by(intra_extension_id=intra_extension_id, id=subject_id) ref = query.first() @@ -548,25 +549,25 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in Subject.attributes: if attr != 'id': setattr(ref, attr, getattr(new_ref, attr)) - session.flush() + # session.flush() return {subject_id: Subject.to_dict(ref)['subject']} def del_subject(self, intra_extension_id, subject_id): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(Subject) query = query.filter_by(intra_extension_id=intra_extension_id, id=subject_id) ref = query.first() session.delete(ref) def get_objects_dict(self, intra_extension_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(Object) query = query.filter_by(intra_extension_id=intra_extension_id) ref_list = query.all() return {_ref.id: _ref.object for _ref in ref_list} def set_object_dict(self, intra_extension_id, object_id, object_dict): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(Object) query = query.filter_by(intra_extension_id=intra_extension_id, id=object_id) ref = query.first() @@ -584,25 +585,25 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in Object.attributes: if attr != 'id': setattr(ref, attr, getattr(new_ref, attr)) - session.flush() + # session.flush() return {object_id: Object.to_dict(ref)['object']} def del_object(self, intra_extension_id, object_id): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(Object) query = query.filter_by(intra_extension_id=intra_extension_id, id=object_id) ref = query.first() session.delete(ref) def get_actions_dict(self, intra_extension_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(Action) query = query.filter_by(intra_extension_id=intra_extension_id) ref_list = query.all() return {_ref.id: _ref.action for _ref in ref_list} def set_action_dict(self, intra_extension_id, action_id, action_dict): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(Action) query = query.filter_by(intra_extension_id=intra_extension_id, id=action_id) ref = query.first() @@ -620,11 +621,11 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in Action.attributes: if attr != 'id': setattr(ref, attr, getattr(new_ref, attr)) - session.flush() + # session.flush() return {action_id: Action.to_dict(ref)['action']} def del_action(self, intra_extension_id, action_id): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(Action) query = query.filter_by(intra_extension_id=intra_extension_id, id=action_id) ref = query.first() @@ -633,14 +634,14 @@ class IntraExtensionConnector(IntraExtensionDriver): # Getter and Setter for subject_scope def get_subject_scopes_dict(self, intra_extension_id, subject_category_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(SubjectScope) query = query.filter_by(intra_extension_id=intra_extension_id, subject_category_id=subject_category_id) ref_list = query.all() return {_ref.id: _ref.subject_scope for _ref in ref_list} def set_subject_scope_dict(self, intra_extension_id, subject_category_id, subject_scope_id, subject_scope_dict): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(SubjectScope) query = query.filter_by(intra_extension_id=intra_extension_id, subject_category_id=subject_category_id, id=subject_scope_id) ref = query.first() @@ -659,11 +660,11 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in Subject.attributes: if attr != 'id': setattr(ref, attr, getattr(new_ref, attr)) - session.flush() + # session.flush() return {subject_scope_id: SubjectScope.to_dict(ref)['subject_scope']} def del_subject_scope(self, intra_extension_id, subject_category_id, subject_scope_id): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(SubjectScope) if not subject_category_id or not subject_scope_id: query = query.filter_by(intra_extension_id=intra_extension_id) @@ -677,14 +678,14 @@ class IntraExtensionConnector(IntraExtensionDriver): # Getter and Setter for object_category_scope def get_object_scopes_dict(self, intra_extension_id, object_category_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(ObjectScope) query = query.filter_by(intra_extension_id=intra_extension_id, object_category_id=object_category_id) ref_list = query.all() return {_ref.id: _ref.object_scope for _ref in ref_list} def set_object_scope_dict(self, intra_extension_id, object_category_id, object_scope_id, object_scope_dict): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(ObjectScope) query = query.filter_by(intra_extension_id=intra_extension_id, object_category_id=object_category_id, id=object_scope_id) ref = query.first() @@ -703,11 +704,11 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in Object.attributes: if attr != 'id': setattr(ref, attr, getattr(new_ref, attr)) - session.flush() + # session.flush() return {object_scope_id: ObjectScope.to_dict(ref)['object_scope']} def del_object_scope(self, intra_extension_id, object_category_id, object_scope_id): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(ObjectScope) if not object_category_id or not object_scope_id: query = query.filter_by(intra_extension_id=intra_extension_id) @@ -721,14 +722,14 @@ class IntraExtensionConnector(IntraExtensionDriver): # Getter and Setter for action_scope def get_action_scopes_dict(self, intra_extension_id, action_category_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(ActionScope) query = query.filter_by(intra_extension_id=intra_extension_id, action_category_id=action_category_id) ref_list = query.all() return {_ref.id: _ref.action_scope for _ref in ref_list} def set_action_scope_dict(self, intra_extension_id, action_category_id, action_scope_id, action_scope_dict): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(ActionScope) query = query.filter_by(intra_extension_id=intra_extension_id, action_category_id=action_category_id, id=action_scope_id) ref = query.first() @@ -747,11 +748,11 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in Action.attributes: if attr != 'id': setattr(ref, attr, getattr(new_ref, attr)) - session.flush() + # session.flush() return {action_scope_id: ActionScope.to_dict(ref)['action_scope']} def del_action_scope(self, intra_extension_id, action_category_id, action_scope_id): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(ActionScope) if not action_category_id or not action_scope_id: query = query.filter_by(intra_extension_id=intra_extension_id) @@ -765,7 +766,7 @@ class IntraExtensionConnector(IntraExtensionDriver): # Getter and Setter for subject_category_assignment def get_subject_assignment_list(self, intra_extension_id, subject_id, subject_category_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(SubjectAssignment) if not subject_id or not subject_category_id or not subject_category_id: query = query.filter_by(intra_extension_id=intra_extension_id) @@ -779,7 +780,7 @@ class IntraExtensionConnector(IntraExtensionDriver): return list(ref.subject_assignment) def set_subject_assignment_list(self, intra_extension_id, subject_id, subject_category_id, subject_assignment_list=[]): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(SubjectAssignment) query = query.filter_by(intra_extension_id=intra_extension_id, subject_id=subject_id, subject_category_id=subject_category_id) ref = query.first() @@ -799,7 +800,7 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in SubjectAssignment.attributes: if attr != 'id': setattr(ref, attr, getattr(new_ref, attr)) - session.flush() + # session.flush() return subject_assignment_list def add_subject_assignment_list(self, intra_extension_id, subject_id, subject_category_id, subject_scope_id): @@ -810,9 +811,10 @@ class IntraExtensionConnector(IntraExtensionDriver): def del_subject_assignment(self, intra_extension_id, subject_id, subject_category_id, subject_scope_id): if not subject_id or not subject_category_id or not subject_category_id: - with sql.transaction() as session: + with sql.session_for_write() as session: for ref in self.get_subject_assignment_list(intra_extension_id, None, None): session.delete(ref) + session.flush() return new_subject_assignment_list = self.get_subject_assignment_list(intra_extension_id, subject_id, subject_category_id) new_subject_assignment_list.remove(subject_scope_id) @@ -821,7 +823,7 @@ class IntraExtensionConnector(IntraExtensionDriver): # Getter and Setter for object_category_assignment def get_object_assignment_list(self, intra_extension_id, object_id, object_category_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(ObjectAssignment) if not object_id or not object_category_id or not object_category_id: query = query.filter_by(intra_extension_id=intra_extension_id) @@ -835,7 +837,7 @@ class IntraExtensionConnector(IntraExtensionDriver): return list(ref.object_assignment) def set_object_assignment_list(self, intra_extension_id, object_id, object_category_id, object_assignment_list=[]): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(ObjectAssignment) query = query.filter_by(intra_extension_id=intra_extension_id, object_id=object_id, object_category_id=object_category_id) ref = query.first() @@ -854,7 +856,7 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in ObjectAssignment.attributes: if attr != 'id': setattr(ref, attr, getattr(new_ref, attr)) - session.flush() + # session.flush() return self.get_object_assignment_list(intra_extension_id, object_id, object_category_id) def add_object_assignment_list(self, intra_extension_id, object_id, object_category_id, object_scope_id): @@ -865,9 +867,10 @@ class IntraExtensionConnector(IntraExtensionDriver): def del_object_assignment(self, intra_extension_id, object_id, object_category_id, object_scope_id): if not object_id or not object_category_id or not object_category_id: - with sql.transaction() as session: + with sql.session_for_write() as session: for ref in self.get_object_assignment_list(intra_extension_id, None, None): session.delete(ref) + session.flush() return new_object_assignment_list = self.get_object_assignment_list(intra_extension_id, object_id, object_category_id) new_object_assignment_list.remove(object_scope_id) @@ -876,7 +879,7 @@ class IntraExtensionConnector(IntraExtensionDriver): # Getter and Setter for action_category_assignment def get_action_assignment_list(self, intra_extension_id, action_id, action_category_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(ActionAssignment) if not action_id or not action_category_id or not action_category_id: query = query.filter_by(intra_extension_id=intra_extension_id) @@ -890,7 +893,7 @@ class IntraExtensionConnector(IntraExtensionDriver): return list(ref.action_assignment) def set_action_assignment_list(self, intra_extension_id, action_id, action_category_id, action_assignment_list=[]): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(ActionAssignment) query = query.filter_by(intra_extension_id=intra_extension_id, action_id=action_id, action_category_id=action_category_id) ref = query.first() @@ -909,7 +912,7 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in ActionAssignment.attributes: if attr != 'id': setattr(ref, attr, getattr(new_ref, attr)) - session.flush() + # session.flush() return self.get_action_assignment_list(intra_extension_id, action_id, action_category_id) def add_action_assignment_list(self, intra_extension_id, action_id, action_category_id, action_scope_id): @@ -920,9 +923,10 @@ class IntraExtensionConnector(IntraExtensionDriver): def del_action_assignment(self, intra_extension_id, action_id, action_category_id, action_scope_id): if not action_id or not action_category_id or not action_category_id: - with sql.transaction() as session: + with sql.session_for_write() as session: for ref in self.get_action_assignment_list(intra_extension_id, None, None): session.delete(ref) + session.flush() return new_action_assignment_list = self.get_action_assignment_list(intra_extension_id, action_id, action_category_id) new_action_assignment_list.remove(action_scope_id) @@ -931,7 +935,7 @@ class IntraExtensionConnector(IntraExtensionDriver): # Getter and Setter for sub_meta_rule def get_aggregation_algorithm_id(self, intra_extension_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(IntraExtension) query = query.filter_by(id=intra_extension_id) ref = query.first() @@ -941,18 +945,18 @@ class IntraExtensionConnector(IntraExtensionDriver): return "" def set_aggregation_algorithm_id(self, intra_extension_id, aggregation_algorithm_id): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(IntraExtension) query = query.filter_by(id=intra_extension_id) ref = query.first() intra_extension_dict = dict(ref.intra_extension) intra_extension_dict["aggregation_algorithm"] = aggregation_algorithm_id setattr(ref, "intra_extension", intra_extension_dict) - session.flush() + # session.flush() return {"aggregation_algorithm": ref.intra_extension["aggregation_algorithm"]} def del_aggregation_algorithm(self, intra_extension_id): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(IntraExtension) query = query.filter_by(id=intra_extension_id) ref = query.first() @@ -964,14 +968,14 @@ class IntraExtensionConnector(IntraExtensionDriver): # Getter and Setter for sub_meta_rule def get_sub_meta_rules_dict(self, intra_extension_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(SubMetaRule) query = query.filter_by(intra_extension_id=intra_extension_id) ref_list = query.all() return {_ref.id: _ref.sub_meta_rule for _ref in ref_list} def set_sub_meta_rule_dict(self, intra_extension_id, sub_meta_rule_id, sub_meta_rule_dict): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(SubMetaRule) query = query.filter_by(intra_extension_id=intra_extension_id, id=sub_meta_rule_id) ref = query.first() @@ -991,11 +995,11 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in SubMetaRule.attributes: if attr != 'id': setattr(ref, attr, getattr(new_ref, attr)) - session.flush() + # session.flush() return self.get_sub_meta_rules_dict(intra_extension_id) def del_sub_meta_rule(self, intra_extension_id, sub_meta_rule_id): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(SubMetaRule) query = query.filter_by(intra_extension_id=intra_extension_id, id=sub_meta_rule_id) ref = query.first() @@ -1004,14 +1008,14 @@ class IntraExtensionConnector(IntraExtensionDriver): # Getter and Setter for rules def get_rules_dict(self, intra_extension_id, sub_meta_rule_id): - with sql.transaction() as session: + with sql.session_for_read() as session: query = session.query(Rule) query = query.filter_by(intra_extension_id=intra_extension_id, sub_meta_rule_id=sub_meta_rule_id) ref_list = query.all() return {_ref.id: _ref.rule for _ref in ref_list} def set_rule_dict(self, intra_extension_id, sub_meta_rule_id, rule_id, rule_list): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(Rule) query = query.filter_by(intra_extension_id=intra_extension_id, sub_meta_rule_id=sub_meta_rule_id, id=rule_id) ref = query.first() @@ -1030,11 +1034,11 @@ class IntraExtensionConnector(IntraExtensionDriver): for attr in Rule.attributes: if attr != 'id': setattr(ref, attr, getattr(new_ref, attr)) - session.flush() + # session.flush() return {rule_id: ref.rule} def del_rule(self, intra_extension_id, sub_meta_rule_id, rule_id): - with sql.transaction() as session: + with sql.session_for_write() as session: query = session.query(Rule) query = query.filter_by(intra_extension_id=intra_extension_id, sub_meta_rule_id=sub_meta_rule_id, id=rule_id) ref = query.first() @@ -1074,19 +1078,19 @@ class IntraExtensionConnector(IntraExtensionDriver): # class InterExtensionConnector(InterExtensionDriver): # # def get_inter_extensions(self): -# with sql.transaction() as session: +# with sql.session_for_read() as session: # query = session.query(InterExtension.id) # interextensions = query.all() # return [interextension.id for interextension in interextensions] # # def create_inter_extensions(self, inter_id, inter_extension): -# with sql.transaction() as session: +# with sql.session_for_read() as session: # ie_ref = InterExtension.from_dict(inter_extension) # session.add(ie_ref) # return InterExtension.to_dict(ie_ref) # # def get_inter_extension(self, uuid): -# with sql.transaction() as session: +# with sql.session_for_read() as session: # query = session.query(InterExtension) # query = query.filter_by(id=uuid) # ref = query.first() @@ -1095,7 +1099,7 @@ class IntraExtensionConnector(IntraExtensionDriver): # return ref.to_dict() # # def delete_inter_extensions(self, inter_extension_id): -# with sql.transaction() as session: +# with sql.session_for_read() as session: # ref = session.query(InterExtension).get(inter_extension_id) # session.delete(ref) |