query = query.filter_by(id=intra_extension_id)
             ref = query.first()
             try:
-                return ref.intra_extension["aggregation_algorithm"]
+                return {"aggregation_algorithm": ref.intra_extension["aggregation_algorithm"]}
             except KeyError:
                 return ""
 
             intra_extension_dict["aggregation_algorithm"] = aggregation_algorithm_id
             setattr(ref, "intra_extension", intra_extension_dict)
             session.flush()
-            LOG.debug("set_aggregation_algorithm_id {}-{} {}".format(intra_extension_id, aggregation_algorithm_id, self.get_aggregation_algorithm_id(intra_extension_id)))
-            return self.get_aggregation_algorithm_id(intra_extension_id)
+            return {"aggregation_algorithm": ref.intra_extension["aggregation_algorithm"]}
 
     def del_aggregation_algorithm(self, intra_extension_id):
         with sql.transaction() as session:
 
         try:
             self.root_extension_id = self.root_api.get_root_extension_id()
             self.aggregation_algorithm_dict = self.configuration_api.get_aggregation_algorithms_dict(self.root_extension_id)
-        except AttributeError:
+        except AttributeError as e:
+            LOG.warning("Error on init_aggregation_algorithm ({})".format(e))
             self.root_extension_id = None
             self.aggregation_algorithm_dict = {}
 
 
         if not self.root_extension_id:
             self.__init_aggregation_algorithm()
-        aggregation_algorithm_id = self.driver.get_aggregation_algorithm_id(intra_extension_id)
+        aggregation_algorithm_id = self.driver.get_aggregation_algorithm_id(intra_extension_id)['aggregation_algorithm']
         if self.aggregation_algorithm_dict[aggregation_algorithm_id]['name'] == 'all_true':
             decision = all_true(decision_buffer)
         elif self.aggregation_algorithm_dict[aggregation_algorithm_id]['name'] == 'one_true':
         for _id, _value in self.configuration_api.driver.get_aggregation_algorithms_dict().iteritems():
             if _value["name"] == json_metarule["aggregation"]:
                 self.driver.set_aggregation_algorithm_id(intra_extension_dict["id"], _id)
+                break
+        else:
+            LOG.warning("No aggregation_algorithm found for '{}'".format(json_metarule["aggregation"]))
 
     def __load_rule_file(self, intra_extension_dict, policy_dir):
 
 
             self.admin_api.get_subject_dict_from_keystone_name(tenant['id'], admin_ie_dict['id'], 'demo').iteritems().next()
 
         aggregation_algorithm = self.admin_manager.get_aggregation_algorithm_id(admin_subject_id, authz_ie_dict["id"])
-        self.assertIsInstance(aggregation_algorithm, basestring)
+        self.assertIsInstance(aggregation_algorithm, dict)
 
         # TODO: need more tests on aggregation_algorithms (set and del)
 
             self.admin_api.get_subject_dict_from_keystone_name(tenant['id'], admin_ie_dict['id'], 'demo').iteritems().next()
 
         aggregation_algorithm = self.admin_manager.get_aggregation_algorithm_id(admin_subject_id, authz_ie_dict["id"])
-        self.assertIsInstance(aggregation_algorithm, basestring)
+        self.assertIsInstance(aggregation_algorithm, dict)
 
         # TODO: need more tests on aggregation_algorithms (set and del)
 
 
             self.admin_api.get_subject_dict_from_keystone_name(tenant['id'], admin_ie_dict['id'], 'demo').iteritems().next()
 
         aggregation_algorithm = self.admin_manager.get_aggregation_algorithm_id(admin_subject_id, authz_ie_dict["id"])
-        self.assertIsInstance(aggregation_algorithm, basestring)
+        self.assertIsInstance(aggregation_algorithm, dict)
 
         # TODO: need more tests on aggregation_algorithms (set and del)
 
             self.admin_api.get_subject_dict_from_keystone_name(tenant['id'], admin_ie_dict['id'], 'demo').iteritems().next()
 
         aggregation_algorithm = self.admin_manager.get_aggregation_algorithm_id(admin_subject_id, authz_ie_dict["id"])
-        self.assertIsInstance(aggregation_algorithm, basestring)
+        self.assertIsInstance(aggregation_algorithm, dict)
 
         # TODO: need more tests on aggregation_algorithms (set and del)
 
 
         data = self.app.get_url("/v3/OS-MOON/intra_extensions/{}/aggregation_algorithm".format(
             parsed_args.intraextension),
             authtoken=True)
-        algorithm = self.__get_aggregation_algorithm_from_id(data['content'])
+        algorithm = self.__get_aggregation_algorithm_from_id(data['aggregation_algorithm'])
         return (
             ("id", "name", "description"),
-            ((data['content'], algorithm["name"], algorithm["description"]), )
+            ((data['aggregation_algorithm'], algorithm["name"], algorithm["description"]), )
         )
 
 
                 "aggregation_algorithm_id": parsed_args.aggregation_algorithm_id,
                 "aggregation_algorithm_description": parsed_args.description},
             authtoken=True)
-        algorithm = self.__get_aggregation_algorithm_from_id(data['content'])
+        algorithm = self.__get_aggregation_algorithm_from_id(data['aggregation_algorithm'])
         return (
             ("id",),
             (algorithm,)