From 9773c6ca1a04c6beff87024c5e7cd8e71e295898 Mon Sep 17 00:00:00 2001 From: Joe <joe@autistici.org> Date: Sat, 11 May 2013 15:40:08 +0200 Subject: [PATCH] Fixed the de-serialization of relations coming from Leveldb interface --- configdb/db/interface/inmemory_interface.py | 6 ++++-- configdb/db/schema.py | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/configdb/db/interface/inmemory_interface.py b/configdb/db/interface/inmemory_interface.py index 90e20bc..65fa077 100644 --- a/configdb/db/interface/inmemory_interface.py +++ b/configdb/db/interface/inmemory_interface.py @@ -42,6 +42,10 @@ class InMemoryRelationProxy(object): def __repr__(self): return '<InMemoryRelationProxy: [%s]>' % ', '.join(self._objs) + def to_net(self): + return list(self._objs) + + class InMemoryObject(object): @@ -110,5 +114,3 @@ class InMemoryDbInterface(base.DbInterface): entity = self.schema.get_entity(entity_name) return self._run_query(entity, query, self._entities[entity_name].itervalues()) - - diff --git a/configdb/db/schema.py b/configdb/db/schema.py index 59677b6..c0d1364 100644 --- a/configdb/db/schema.py +++ b/configdb/db/schema.py @@ -83,6 +83,8 @@ class Relation(Field): if (isinstance(value, list) and (not len(value) or not isinstance(value[0], basestring))): return [x.name for x in value] + elif hasattr(value, 'to_net'): + return value.to_net() else: return value @@ -161,7 +163,7 @@ class Schema(object): Fields. The definition is loaded from JSON-encoded data. """ - sys_schema_tables = [ '__timestamp'] + sys_schema_tables = [ '__timestamp'] def __init__(self, json_data): self.entities = {} @@ -245,5 +247,3 @@ class Schema(object): if valid: sequence.append(entity.name) return sequence - - -- GitLab