self.fq_dest_table = skytools.quote_fqident(self.dest_table)
self.args = args
self._check_args (args)
+ self.conf = self.get_config()
def _parse_args_from_doc (self):
doc = self.__doc__ or ""
if invalid:
raise ValueError ("Invalid handler argument: %s" % list(invalid))
+ def get_arg (self, name, value_list, default = None):
+ """ Return arg value or default; also check if value allowed. """
+ default = default or value_list[0]
+ val = type(default)(self.args.get(name, default))
+ if val not in value_list:
+ raise Exception('Bad argument %s value %r' % (name, val))
+ return val
+
+ def get_config (self):
+ """ Process args dict (into handler config). """
+ conf = skytools.dbdict()
+ return conf
+
def add(self, trigger_arg_list):
"""Called when table is added.
self.dst_curs = None
self.pkeys = None
# config
- self.conf = self.get_config()
hdlr_cls = ROW_HANDLERS[self.conf.row_mode]
self.row_handler = hdlr_cls(self.log)
def get_config(self):
"""Processes args dict"""
- conf = skytools.dbdict()
+ conf = ShardHandler.get_config(self)
# set table mode
conf.table_mode = self.get_arg('table_mode', TABLE_MODES)
conf.analyze = self.get_arg('analyze', [0, 1])
conf.field_map[tmp[0]] = tmp[1]
return conf
- def get_arg(self, name, value_list, default = None):
- default = default or value_list[0]
- val = type(default)(self.args.get(name, default))
- if val not in value_list:
- raise Exception('Bad argument %s value %r' % (name, val))
- return val
-
def _validate_hash_key(self):
pass # no need for hash key when not sharding