def _ctor_axon(opts): ''' A function to allow terse/clean construction of an axon from a dmon ctor. ''' datadir = opts.pop('datadir', None) if datadir is None: raise s_common.BadInfoValu(name='datadir', valu=None, mesg='axon ctor requires "datadir":<path> option') return Axon(datadir, **opts)
def _ctor_cortex(conf): url = conf.pop('url', None) if url is None: raise s_common.BadInfoValu(name='url', valu=None, mesg='cortex ctor requires "url":<url> option') core = openurl(url) core.setConfOpts(conf) return core
def __init__(self, tlib, name, **info): DataType.__init__(self, tlib, name, **info) self._sorc_type = None self._sorc_name = None sorc = info.get('source') if sorc is not None: parts = sorc.split(',') if len(parts) != 2: raise s_common.BadInfoValu(name='source', valu=sorc, mesg='expected source=<name>,<type>') self._sorc_name = parts[0] self._sorc_type = parts[1]
def _get_fields(self): if self.fields is None: self.fields = [] # maintain legacy "fields=" syntax for a bit yet... fields = self.info.get('fields') if fields is not None: if fields: for part in fields.split('|'): fname, ftype = part.split(',') fitem = self.tlib.getTypeInst(ftype) if self.prop: _fitem = self._getPropType(ftype) if _fitem: fitem = _fitem self.fields.append((fname, fitem)) return self.fields # process names= and types= info fields fnames = [] ftypes = [] fnstr = self.info.get('names') if fnstr: fnames.extend(fnstr.split(',')) ftstr = self.info.get('types', '') if ftstr: ftypes.extend(ftstr.split(',')) self.flen = len(ftypes) if len(fnames) != self.flen: raise s_common.BadInfoValu(name='types', valu=ftstr, mesg='len(names) != len(types)') for i in range(self.flen): item = self.tlib.getTypeInst(ftypes[i]) self.fields.append((fnames[i], item)) return self.fields
def _ctor_axon(opts): ''' A function to allow terse/clean construction of an axon from a dmon ctor. Args: opts (dict): Options dictionary used to make the Axon object. Requires a "datadir" value. Returns: Axon: Axon created with the opts. Raises: BadInfoBalu: If the "datadir" value is missing from opts. ''' datadir = opts.pop('datadir', None) if datadir is None: raise s_common.BadInfoValu( name='datadir', valu=None, mesg='axon ctor requires "datadir":<path> option') return Axon(datadir, **opts)