diff options
author | asteroide <thomas.duval@orange.com> | 2015-09-21 16:50:16 +0200 |
---|---|---|
committer | asteroide <thomas.duval@orange.com> | 2015-09-21 16:50:16 +0200 |
commit | 4894009265c23fe678a8a3f6e7cd68024432a3db (patch) | |
tree | 7f82a50627c49daab5fde94eed727eb829beea8c /keystone-moon/keystone/contrib/moon/backends/sql.py | |
parent | da160f31e8e32f91e1d1b73599122b81167a4c61 (diff) |
Put the ID of aggregation algorithm for a particular IntraExtension in the intraextensions table and generate a static UUID for each aggregation algorithms in the memory backend.
Change-Id: Ic56dc05ca3d7e099e1d529c5bb88b5d93de88ae1
Diffstat (limited to 'keystone-moon/keystone/contrib/moon/backends/sql.py')
-rw-r--r-- | keystone-moon/keystone/contrib/moon/backends/sql.py | 38 |
1 files changed, 15 insertions, 23 deletions
diff --git a/keystone-moon/keystone/contrib/moon/backends/sql.py b/keystone-moon/keystone/contrib/moon/backends/sql.py index 0a2e2407..a3418c15 100644 --- a/keystone-moon/keystone/contrib/moon/backends/sql.py +++ b/keystone-moon/keystone/contrib/moon/backends/sql.py @@ -942,38 +942,30 @@ class IntraExtensionConnector(IntraExtensionDriver): # Getter and Setter for sub_meta_rule - def get_aggregation_algorithm_dict(self, intra_extension_id): + def get_aggregation_algorithm_id(self, intra_extension_id): with sql.transaction() as session: - query = session.query(AggregationAlgorithm) - query = query.filter_by(intra_extension_id=intra_extension_id) + query = session.query(IntraExtension) + query = query.filter_by(id=intra_extension_id) ref = query.first() try: - return {ref.id: ref.aggregation_algorithm} - except AttributeError: - return {} + return ref.intra_extension["aggregation_algorithm"] + except KeyError: + return "" - def set_aggregation_algorithm_dict(self, intra_extension_id, aggregation_algorithm_id, aggregation_algorithm_dict): + def set_aggregation_algorithm_id(self, intra_extension_id, aggregation_algorithm_id): with sql.transaction() as session: - query = session.query(AggregationAlgorithm) - query = query.filter_by(intra_extension_id=intra_extension_id) + query = session.query(IntraExtension) + query = query.filter_by(id=intra_extension_id) ref = query.first() - new_ref = AggregationAlgorithm.from_dict( - { - "id": aggregation_algorithm_id, - 'aggregation_algorithm': aggregation_algorithm_dict, - 'intra_extension_id': intra_extension_id - } - ) - if ref: - session.delete(ref) - session.add(new_ref) - session.flush() - return self.get_aggregation_algorithm_dict(intra_extension_id) + intra_extension_dict = dict(ref.intra_extension) + intra_extension_dict["aggregation_algorithm"] = aggregation_algorithm_id + setattr(ref, "intra_extension", intra_extension_dict) + return self.get_aggregation_algorithm_id(intra_extension_id) - def del_aggregation_algorithm(self, intra_extension_id, aggregation_algorithm_id): + def del_aggregation_algorithm(self, intra_extension_id): with sql.transaction() as session: query = session.query(AggregationAlgorithm) - query = query.filter_by(intra_extension_id=intra_extension_id, id=aggregation_algorithm_id) + query = query.filter_by(intra_extension_id=intra_extension_id) ref = query.first() session.delete(ref) |