示例#1
0
    def test_daemon_ctor_dmonurl(self):

        conf = {
            'ctors': [
                ('thing0', 'synapse.tests.test_daemon.Blah', {
                    'lulz': 'hehe'
                }),
                ('thing1', 'test:check:blah', {}),
            ],
        }

        self.raises(NoSuchName, s_telepath.openurl, 'dmon://thing0')

        with s_daemon.Daemon() as dmon:

            def checkblah(conf):
                self.eq(dmon.locs.get('thing0'),
                        s_telepath.openurl('dmon://thing0'))
                self.raises(NoSuchName, s_telepath.openurl, 'dmon://newp0/')
                return 1

            s_dyndeps.addDynAlias('test:check:blah', checkblah)

            dmon.loadDmonConf(conf)

            s_dyndeps.delDynAlias('test:check:blah')
示例#2
0
    def test_webapp_dmon(self):

        class FooServer(s_webapp.WebApp):
            def __init__(self, core):
                s_webapp.WebApp.__init__(self, **{})
                self.core = core

        s_dyndeps.addDynAlias('FooServer', FooServer)

        with s_daemon.Daemon() as core_dmon:
            with self.getRamCore() as core:
                core_dmon.share('core', core)
                link = core_dmon.listen('tcp://127.0.0.1:0/')
                linkurl = 'tcp://127.0.0.1:%d/core' % link[1]['port']

                with s_daemon.Daemon() as dmon:
                    config = {
                        'vars': {
                            'linkurl': linkurl,
                        },
                        'ctors': [
                            ('core', 'ctor://synapse.cortex.openurl(linkurl)'),
                            ('webapp', 'ctor://FooServer(core)')
                        ]
                    }
                    dmon.loadDmonConf(config)
示例#3
0
    def test_dyndeps_alias(self):

        s_dyndeps.addDynAlias('unit_test_woot', woot)

        self.eq(s_dyndeps.getDynLocal('unit_test_woot'), woot)
        self.eq(s_dyndeps.tryDynFunc('unit_test_woot', 20, y=40), 60)

        self.eq(s_dyndeps.delDynAlias('unit_test_woot'), woot)
        self.none(s_dyndeps.getDynLocal('unit_test_woot'))

        self.raises(NoSuchDyn, s_dyndeps.tryDynFunc, 'unit_test_woot', 20, y=40)
示例#4
0
    def test_daemon_ctor_nonurl(self):

        s_dyndeps.addDynAlias('test:blah', Blah)

        conf = {
            'ctors': (('foo', 'test:blah', {
                'lulz': 'rofl'
            }), ),
        }

        with s_daemon.Daemon() as dmon:
            dmon.loadDmonConf(conf)
            item = dmon.locs.get('foo')
            self.eq(item.woot.get('lulz'), 'rofl')

        s_dyndeps.delDynAlias('test:blah')
示例#5
0
文件: axon.py 项目: e2-ibm/synapse
    def _fs_isfile(mode):

        try:
            return stat.S_ISREG(mode)
        except:
            return False

    @staticmethod
    def _fs_new_file_attrs(parent, mode):

        now = int(time.time())
        return {'st_ctime': now, 'st_mtime': now, 'st_atime': now, 'st_nlink': 1, 'st_size': 0, 'st_mode': (stat.S_IFREG | mode), 'dir': parent}

    @staticmethod
    def _fs_new_dir_attrs(parent, mode):

        now = int(time.time())
        return {'st_ctime': now, 'st_mtime': now, 'st_atime': now, 'st_nlink': 2, 'st_mode': (stat.S_IFDIR | mode), 'dir': parent}

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)

s_dyndeps.addDynAlias('syn:axon', _ctor_axon)
示例#6
0
def choptag(tag):
    '''
    Chop a tag into hierarchal levels.
    '''
    parts = tag.split('.')
    return ['.'.join(parts[:x + 1]) for x in range(len(parts))]

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

s_dyndeps.addDynAlias('syn:cortex', _ctor_cortex)

if __name__ == '__main__':  # pragma: no cover
    import sys

    import synapse.lib.cmdr as s_cmdr

    core = openurl(sys.argv[1])

    cmdr = s_cmdr.getItemCmdr(core)

    cmdr.runCmdLoop()