From 283161cbd64c287fb80be6e6bd42b968a6481840 Mon Sep 17 00:00:00 2001 From: Neil Williams Date: Wed, 11 Jan 2012 21:03:20 -0800 Subject: [PATCH] tdb_cassandra: Let subclasses specify their own schema args. Subclasses now inherit their parents' _extra_schema_creation_args and can override them if desired. --- r2/r2/lib/db/tdb_cassandra.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/r2/r2/lib/db/tdb_cassandra.py b/r2/r2/lib/db/tdb_cassandra.py index 167881035..1ce77e668 100644 --- a/r2/r2/lib/db/tdb_cassandra.py +++ b/r2/r2/lib/db/tdb_cassandra.py @@ -19,6 +19,7 @@ # All portions of the code written by CondeNet are Copyright (c) 2006-2010 # CondeNet, Inc. All Rights Reserved. ################################################################################ +import inspect from datetime import datetime from socket import gethostbyaddr @@ -140,7 +141,11 @@ class ThingMeta(type): manager = get_manager(cassandra_seeds) - extra_creation_arguments = getattr(cls, "_extra_schema_creation_args", {}) + # allow subclasses to add creation args or override base class ones + extra_creation_arguments = {} + for c in reversed(inspect.getmro(cls)): + creation_args = getattr(c, "_extra_schema_creation_args", {}) + extra_creation_arguments.update(creation_args) log.warning("Creating Cassandra Column Family %s" % (cf_name,)) with make_lock('cassandra_schema'):