synapse 2.215.0__py311-none-any.whl → 2.216.0__py311-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of synapse might be problematic. Click here for more details.
- synapse/cortex.py +16 -1
- synapse/lib/cell.py +12 -0
- synapse/lib/cmd.py +6 -2
- synapse/lib/layer.py +10 -5
- synapse/lib/schemas.py +9 -2
- synapse/lib/snap.py +15 -5
- synapse/lib/storm.py +1 -1
- synapse/lib/types.py +3 -0
- synapse/lib/version.py +2 -2
- synapse/lib/view.py +16 -7
- synapse/models/inet.py +7 -1
- synapse/models/risk.py +2 -0
- synapse/tests/test_cortex.py +262 -0
- synapse/tests/test_lib_auth.py +2 -0
- synapse/tests/test_lib_storm.py +52 -1
- synapse/tests/test_lib_stormsvc.py +2 -2
- synapse/tests/test_lib_types.py +6 -0
- synapse/tests/test_model_inet.py +2 -0
- synapse/tests/test_tools_cryo_cat.py +3 -8
- synapse/tests/test_tools_storm.py +3 -2
- synapse/tests/utils.py +2 -0
- synapse/tools/aha/clone.py +3 -13
- synapse/tools/aha/easycert.py +5 -18
- synapse/tools/aha/enroll.py +3 -12
- synapse/tools/aha/list.py +2 -15
- synapse/tools/aha/mirror.py +3 -14
- synapse/tools/aha/provision/service.py +3 -13
- synapse/tools/aha/provision/user.py +3 -12
- synapse/tools/apikey.py +3 -13
- synapse/tools/autodoc.py +7 -19
- synapse/tools/axon2axon.py +1 -9
- synapse/tools/cellauth.py +5 -14
- synapse/tools/changelog.py +12 -16
- synapse/tools/cmdr.py +2 -6
- synapse/tools/cryo/cat.py +5 -15
- synapse/tools/cryo/list.py +3 -10
- synapse/tools/csvtool.py +40 -49
- synapse/tools/demote.py +1 -6
- synapse/tools/docker/validate.py +0 -1
- synapse/tools/easycert.py +3 -8
- synapse/tools/feed.py +7 -18
- synapse/tools/genpkg.py +3 -12
- synapse/tools/guid.py +4 -6
- synapse/tools/healthcheck.py +4 -11
- synapse/tools/json2mpk.py +1 -5
- synapse/tools/livebackup.py +3 -13
- synapse/tools/modrole.py +3 -12
- synapse/tools/moduser.py +3 -12
- synapse/tools/pkgs/gendocs.py +1 -1
- synapse/tools/promote.py +3 -13
- synapse/tools/pullfile.py +6 -18
- synapse/tools/pushfile.py +6 -18
- synapse/tools/reload.py +5 -14
- synapse/tools/rstorm.py +4 -12
- synapse/tools/shutdown.py +1 -2
- synapse/tools/snapshot.py +3 -14
- synapse/tools/storm.py +4 -12
- {synapse-2.215.0.dist-info → synapse-2.216.0.dist-info}/METADATA +1 -1
- {synapse-2.215.0.dist-info → synapse-2.216.0.dist-info}/RECORD +62 -62
- {synapse-2.215.0.dist-info → synapse-2.216.0.dist-info}/WHEEL +0 -0
- {synapse-2.215.0.dist-info → synapse-2.216.0.dist-info}/licenses/LICENSE +0 -0
- {synapse-2.215.0.dist-info → synapse-2.216.0.dist-info}/top_level.txt +0 -0
synapse/tests/test_lib_storm.py
CHANGED
|
@@ -101,7 +101,8 @@ class StormTest(s_t_utils.SynTest):
|
|
|
101
101
|
with self.raises(s_exc.BadTypeValu):
|
|
102
102
|
await core.nodes('[ ou:org=({}) ]')
|
|
103
103
|
|
|
104
|
-
self.
|
|
104
|
+
with self.raises(s_exc.BadTypeValu):
|
|
105
|
+
await core.nodes('[ ou:org=() ]')
|
|
105
106
|
|
|
106
107
|
with self.raises(s_exc.BadTypeValu):
|
|
107
108
|
await core.nodes('[ ou:org=({}) ]')
|
|
@@ -293,6 +294,56 @@ class StormTest(s_t_utils.SynTest):
|
|
|
293
294
|
|
|
294
295
|
self.len(0, await core.nodes('inet:service:platform:name=barplat'))
|
|
295
296
|
|
|
297
|
+
# Gutors work for props
|
|
298
|
+
nodes = await core.nodes('''[
|
|
299
|
+
test:str=guidprop
|
|
300
|
+
:gprop=({'name': 'someprop', '$props': {'size': 5}})
|
|
301
|
+
]''')
|
|
302
|
+
self.len(1, nodes)
|
|
303
|
+
node = nodes[0]
|
|
304
|
+
self.eq(node.ndef, ('test:str', 'guidprop'))
|
|
305
|
+
self.nn(node.get('gprop'))
|
|
306
|
+
|
|
307
|
+
nodes = await core.nodes('test:str=guidprop -> test:guid')
|
|
308
|
+
self.len(1, nodes)
|
|
309
|
+
node = nodes[0]
|
|
310
|
+
self.eq(node.get('name'), 'someprop')
|
|
311
|
+
self.eq(node.get('size'), 5)
|
|
312
|
+
|
|
313
|
+
with self.raises(s_exc.BadTypeValu) as cm:
|
|
314
|
+
nodes = await core.nodes('''[
|
|
315
|
+
test:str=newpprop
|
|
316
|
+
:gprop=({'size': 'newp'})
|
|
317
|
+
]''')
|
|
318
|
+
|
|
319
|
+
self.eq(cm.exception.get('form'), 'test:guid')
|
|
320
|
+
self.eq(cm.exception.get('prop'), 'size')
|
|
321
|
+
self.true(cm.exception.get('mesg').startswith('Bad value for prop test:guid:size: invalid literal'))
|
|
322
|
+
|
|
323
|
+
nodes = await core.nodes('''[
|
|
324
|
+
test:str=newpprop
|
|
325
|
+
:gprop?=({'size': 'newp'})
|
|
326
|
+
]''')
|
|
327
|
+
self.len(1, nodes)
|
|
328
|
+
node = nodes[0]
|
|
329
|
+
self.eq(node.ndef, ('test:str', 'newpprop'))
|
|
330
|
+
self.none(node.get('gprop'))
|
|
331
|
+
|
|
332
|
+
nodes = await core.nodes('''
|
|
333
|
+
[ test:str=methset ]
|
|
334
|
+
$node.props.gprop = ({'name': 'someprop'})
|
|
335
|
+
''')
|
|
336
|
+
self.len(1, nodes)
|
|
337
|
+
node = nodes[0]
|
|
338
|
+
self.eq(node.ndef, ('test:str', 'methset'))
|
|
339
|
+
self.nn(node.get('gprop'))
|
|
340
|
+
|
|
341
|
+
nodes = await core.nodes('test:str=methset -> test:guid')
|
|
342
|
+
self.len(1, nodes)
|
|
343
|
+
node = nodes[0]
|
|
344
|
+
self.eq(node.get('name'), 'someprop')
|
|
345
|
+
self.eq(node.get('size'), 5)
|
|
346
|
+
|
|
296
347
|
async def test_lib_storm_jsonexpr(self):
|
|
297
348
|
async with self.getTestCore() as core:
|
|
298
349
|
|
|
@@ -780,7 +780,7 @@ class StormSvcTest(s_test.SynTest):
|
|
|
780
780
|
}
|
|
781
781
|
with patchcore(core, 'setStormSvcEvents', badSetStormSvcEvents):
|
|
782
782
|
svci = await core.addStormSvc(sdef)
|
|
783
|
-
self.true(await core.waitStormSvc('dead', timeout=
|
|
783
|
+
self.true(await core.waitStormSvc('dead', timeout=12))
|
|
784
784
|
await core.delStormSvc(svci.get('iden'))
|
|
785
785
|
|
|
786
786
|
self.len(1, badiden)
|
|
@@ -792,7 +792,7 @@ class StormSvcTest(s_test.SynTest):
|
|
|
792
792
|
|
|
793
793
|
with patchcore(core, '_runStormSvcAdd', badRunStormSvcAdd):
|
|
794
794
|
svci = await core.addStormSvc(sdef)
|
|
795
|
-
self.true(await core.waitStormSvc('dead', timeout=
|
|
795
|
+
self.true(await core.waitStormSvc('dead', timeout=12))
|
|
796
796
|
await core.delStormSvc(svci.get('iden'))
|
|
797
797
|
self.len(1, badiden)
|
|
798
798
|
self.eq(svci.get('iden'), badiden[0])
|
synapse/tests/test_lib_types.py
CHANGED
|
@@ -316,6 +316,12 @@ class TypesTest(s_t_utils.SynTest):
|
|
|
316
316
|
self.true(s_common.isguid(lnorm))
|
|
317
317
|
self.eq(lnorm, tnorm)
|
|
318
318
|
|
|
319
|
+
with self.raises(s_exc.BadTypeValu) as exc:
|
|
320
|
+
model.type('guid').norm(())
|
|
321
|
+
self.eq(exc.exception.get('name'), 'guid')
|
|
322
|
+
self.eq(exc.exception.get('valu'), ())
|
|
323
|
+
self.eq(exc.exception.get('mesg'), 'Guid list values cannot be empty.')
|
|
324
|
+
|
|
319
325
|
async def test_hex(self):
|
|
320
326
|
|
|
321
327
|
async with self.getTestCore() as core:
|
synapse/tests/test_model_inet.py
CHANGED
|
@@ -3017,6 +3017,8 @@ class InetModelTest(s_t_utils.SynTest):
|
|
|
3017
3017
|
platinst = nodes[0]
|
|
3018
3018
|
app00 = nodes[0].get('app')
|
|
3019
3019
|
|
|
3020
|
+
self.len(1, await core.nodes('inet:service:instance:id=T2XK1223Y -> inet:service:app [ :provider=* :provider:name=vertex ] :provider -> ou:org'))
|
|
3021
|
+
|
|
3020
3022
|
q = '''
|
|
3021
3023
|
[
|
|
3022
3024
|
(inet:service:account=(blackout, account, vertex, slack)
|
|
@@ -93,14 +93,9 @@ class CryoCatTest(s_t_utils.SynTest):
|
|
|
93
93
|
stdout.buffer = io.BytesIO()
|
|
94
94
|
|
|
95
95
|
with mock.patch('sys.stdout', stdout):
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
self.eq(0, retn)
|
|
100
|
-
|
|
101
|
-
stream.seek(0)
|
|
102
|
-
mesgs = stream.read()
|
|
103
|
-
self.isin(f'connecting to: {cryourl}', mesgs)
|
|
96
|
+
argv = ['--msgpack', '--size', '20', cryourl]
|
|
97
|
+
retn, _ = await self.execToolMain(s_cryocat.main, argv)
|
|
98
|
+
self.eq(0, retn)
|
|
104
99
|
|
|
105
100
|
stdout.buffer.seek(0)
|
|
106
101
|
outdata = list(msgpack.Unpacker(stdout.buffer, raw=False, use_list=False))
|
|
@@ -62,7 +62,8 @@ class StormCliTest(s_test.SynTest):
|
|
|
62
62
|
|
|
63
63
|
await core.addTagProp('foo', ('int', {}), {})
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
outp = self.getTestOutp()
|
|
66
|
+
pars = s_t_storm.getArgParser(outp)
|
|
66
67
|
opts = pars.parse_args(('woot',))
|
|
67
68
|
self.eq('woot', opts.cortex)
|
|
68
69
|
self.none(opts.view)
|
|
@@ -263,7 +264,7 @@ class StormCliTest(s_test.SynTest):
|
|
|
263
264
|
|
|
264
265
|
url = core.getLocalUrl()
|
|
265
266
|
|
|
266
|
-
pars = s_t_storm.getArgParser()
|
|
267
|
+
pars = s_t_storm.getArgParser(self.getTestOutp())
|
|
267
268
|
opts = pars.parse_args(('woot', '--view', '246e7d5dab883eb28d345a33abcdb577'))
|
|
268
269
|
self.eq(opts.view, '246e7d5dab883eb28d345a33abcdb577')
|
|
269
270
|
|
synapse/tests/utils.py
CHANGED
|
@@ -439,6 +439,7 @@ testmodel = {
|
|
|
439
439
|
|
|
440
440
|
('test:guid', {}, (
|
|
441
441
|
('size', ('test:int', {}), {}),
|
|
442
|
+
('name', ('test:str', {}), {}),
|
|
442
443
|
('tick', ('test:time', {}), {}),
|
|
443
444
|
('posneg', ('test:sub', {}), {}),
|
|
444
445
|
('posneg:isbig', ('bool', {}), {}),
|
|
@@ -459,6 +460,7 @@ testmodel = {
|
|
|
459
460
|
('hehe', ('str', {}), {}),
|
|
460
461
|
('ndefs', ('array', {'type': 'ndef'}), {}),
|
|
461
462
|
('somestr', ('test:str', {}), {}),
|
|
463
|
+
('gprop', ('test:guid', {}), {}),
|
|
462
464
|
)),
|
|
463
465
|
('test:strregex', {}, ()),
|
|
464
466
|
|
synapse/tools/aha/clone.py
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import asyncio
|
|
3
|
-
import argparse
|
|
4
|
-
|
|
5
1
|
import synapse.exc as s_exc
|
|
6
2
|
import synapse.telepath as s_telepath
|
|
7
3
|
|
|
8
|
-
import synapse.lib.
|
|
4
|
+
import synapse.lib.cmd as s_cmd
|
|
9
5
|
import synapse.lib.output as s_output
|
|
10
6
|
|
|
11
7
|
descr = '''
|
|
@@ -19,8 +15,7 @@ Examples:
|
|
|
19
15
|
|
|
20
16
|
async def main(argv, outp=s_output.stdout):
|
|
21
17
|
|
|
22
|
-
pars =
|
|
23
|
-
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
18
|
+
pars = s_cmd.Parser(prog='synapse.tools.aha.clone', outp=outp, description=descr)
|
|
24
19
|
|
|
25
20
|
pars.add_argument('dnsname', help='The DNS name of the new AHA server.')
|
|
26
21
|
pars.add_argument('--port', type=int, default=27492, help='The port that the new AHA server should listen on.')
|
|
@@ -49,10 +44,5 @@ async def main(argv, outp=s_output.stdout):
|
|
|
49
44
|
outp.printf(f'ERROR: {mesg}')
|
|
50
45
|
return 1
|
|
51
46
|
|
|
52
|
-
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
53
|
-
ret = await main(argv, outp=outp)
|
|
54
|
-
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
55
|
-
return ret
|
|
56
|
-
|
|
57
47
|
if __name__ == '__main__': # pragma: no cover
|
|
58
|
-
|
|
48
|
+
s_cmd.exitmain(main)
|
synapse/tools/aha/easycert.py
CHANGED
|
@@ -1,22 +1,15 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import asyncio
|
|
3
|
-
import logging
|
|
4
|
-
import argparse
|
|
5
|
-
|
|
6
1
|
import cryptography.x509 as c_x509
|
|
7
2
|
|
|
8
3
|
import synapse.common as s_common
|
|
9
4
|
import synapse.telepath as s_telepath
|
|
10
5
|
|
|
11
|
-
import synapse.lib.
|
|
6
|
+
import synapse.lib.cmd as s_cmd
|
|
12
7
|
import synapse.lib.output as s_output
|
|
13
8
|
import synapse.lib.certdir as s_certdir
|
|
14
9
|
|
|
15
10
|
|
|
16
|
-
logger = logging.getLogger(__name__)
|
|
17
|
-
|
|
18
11
|
async def main(argv, outp=s_output.stdout):
|
|
19
|
-
pars = getArgParser()
|
|
12
|
+
pars = getArgParser(outp)
|
|
20
13
|
opts = pars.parse_args(argv)
|
|
21
14
|
|
|
22
15
|
if opts.network:
|
|
@@ -56,9 +49,9 @@ async def main(argv, outp=s_output.stdout):
|
|
|
56
49
|
cdir.delUserCsr(name, outp=outp)
|
|
57
50
|
return 0
|
|
58
51
|
|
|
59
|
-
def getArgParser():
|
|
52
|
+
def getArgParser(outp):
|
|
60
53
|
desc = 'CLI tool to generate simple x509 certificates from an Aha server.'
|
|
61
|
-
pars =
|
|
54
|
+
pars = s_cmd.Parser(prog='synapse.tools.aha.easycert', outp=outp, description=desc)
|
|
62
55
|
|
|
63
56
|
pars.add_argument('-a', '--aha', required=True, # type=str,
|
|
64
57
|
help='Aha server to connect too.')
|
|
@@ -77,11 +70,5 @@ def getArgParser():
|
|
|
77
70
|
|
|
78
71
|
return pars
|
|
79
72
|
|
|
80
|
-
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
81
|
-
s_common.setlogging(logger, 'WARNING')
|
|
82
|
-
ret = await main(argv, outp=outp)
|
|
83
|
-
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
84
|
-
return ret
|
|
85
|
-
|
|
86
73
|
if __name__ == '__main__': # pragma: no cover
|
|
87
|
-
|
|
74
|
+
s_cmd.exitmain(main)
|
synapse/tools/aha/enroll.py
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import os
|
|
2
|
-
import sys
|
|
3
|
-
import asyncio
|
|
4
|
-
import argparse
|
|
5
2
|
|
|
6
3
|
import synapse.common as s_common
|
|
7
4
|
import synapse.telepath as s_telepath
|
|
8
5
|
|
|
9
|
-
import synapse.lib.
|
|
6
|
+
import synapse.lib.cmd as s_cmd
|
|
10
7
|
import synapse.lib.output as s_output
|
|
11
8
|
import synapse.lib.certdir as s_certdir
|
|
12
9
|
import synapse.lib.msgpack as s_msgpack
|
|
@@ -22,9 +19,7 @@ Examples:
|
|
|
22
19
|
|
|
23
20
|
async def main(argv, outp=s_output.stdout):
|
|
24
21
|
|
|
25
|
-
pars =
|
|
26
|
-
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
27
|
-
|
|
22
|
+
pars = s_cmd.Parser(prog='synapse.tools.aha.enroll', outp=outp, description=descr)
|
|
28
23
|
pars.add_argument('onceurl', help='The one-time use AHA user enrollment URL.')
|
|
29
24
|
opts = pars.parse_args(argv)
|
|
30
25
|
|
|
@@ -103,10 +98,6 @@ async def main(argv, outp=s_output.stdout):
|
|
|
103
98
|
|
|
104
99
|
return 0
|
|
105
100
|
|
|
106
|
-
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
107
|
-
ret = await main(argv, outp=outp)
|
|
108
|
-
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
109
|
-
return ret
|
|
110
101
|
|
|
111
102
|
if __name__ == '__main__': # pragma: no cover
|
|
112
|
-
|
|
103
|
+
s_cmd.exitmain(main)
|
synapse/tools/aha/list.py
CHANGED
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import asyncio
|
|
3
|
-
import logging
|
|
4
|
-
|
|
5
1
|
import synapse.exc as s_exc
|
|
6
|
-
import synapse.common as s_common
|
|
7
2
|
import synapse.telepath as s_telepath
|
|
8
3
|
|
|
9
|
-
import synapse.lib.
|
|
4
|
+
import synapse.lib.cmd as s_cmd
|
|
10
5
|
import synapse.lib.output as s_output
|
|
11
6
|
import synapse.lib.version as s_version
|
|
12
7
|
|
|
13
|
-
logger = logging.getLogger(__name__)
|
|
14
|
-
|
|
15
8
|
reqver = '>=2.11.0,<3.0.0'
|
|
16
9
|
|
|
17
10
|
async def main(argv, outp=s_output.stdout):
|
|
@@ -74,11 +67,5 @@ async def main(argv, outp=s_output.stdout):
|
|
|
74
67
|
outp.printf(mesg)
|
|
75
68
|
return 0
|
|
76
69
|
|
|
77
|
-
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
78
|
-
s_common.setlogging(logger, 'WARNING')
|
|
79
|
-
ret = await main(argv, outp=outp)
|
|
80
|
-
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
81
|
-
return ret
|
|
82
|
-
|
|
83
70
|
if __name__ == '__main__': # pragma: no cover
|
|
84
|
-
|
|
71
|
+
s_cmd.exitmain(main)
|
synapse/tools/aha/mirror.py
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import asyncio
|
|
3
|
-
import argparse
|
|
4
|
-
|
|
5
1
|
import synapse.exc as s_exc
|
|
6
2
|
import synapse.common as s_common
|
|
7
3
|
import synapse.telepath as s_telepath
|
|
8
4
|
|
|
9
|
-
import synapse.lib.
|
|
5
|
+
import synapse.lib.cmd as s_cmd
|
|
10
6
|
import synapse.lib.output as s_output
|
|
11
|
-
import synapse.lib.version as s_version
|
|
12
7
|
|
|
13
8
|
descr = '''
|
|
14
9
|
Query the Aha server for the service cluster status of mirrors.
|
|
@@ -87,8 +82,7 @@ def timeout_type(valu):
|
|
|
87
82
|
|
|
88
83
|
async def main(argv, outp=s_output.stdout):
|
|
89
84
|
|
|
90
|
-
pars =
|
|
91
|
-
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
85
|
+
pars = s_cmd.Parser(prog='synapse.tools.aha.mirror', outp=outp, description=descr)
|
|
92
86
|
|
|
93
87
|
pars.add_argument('--url', default='cell:///vertex/storage', help='The telepath URL to connect to the AHA service.')
|
|
94
88
|
pars.add_argument('--timeout', type=timeout_type, default=10, help='The timeout in seconds for individual service API calls')
|
|
@@ -192,10 +186,5 @@ async def main(argv, outp=s_output.stdout):
|
|
|
192
186
|
outp.printf(f'ERROR: {mesg}')
|
|
193
187
|
return 1
|
|
194
188
|
|
|
195
|
-
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
196
|
-
ret = await main(argv, outp=outp)
|
|
197
|
-
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
198
|
-
return ret
|
|
199
|
-
|
|
200
189
|
if __name__ == '__main__': # pragma: no cover
|
|
201
|
-
|
|
190
|
+
s_cmd.exitmain(main)
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import asyncio
|
|
3
|
-
import argparse
|
|
4
|
-
|
|
5
1
|
import synapse.exc as s_exc
|
|
6
2
|
import synapse.common as s_common
|
|
7
3
|
import synapse.telepath as s_telepath
|
|
8
4
|
|
|
9
|
-
import synapse.lib.
|
|
5
|
+
import synapse.lib.cmd as s_cmd
|
|
10
6
|
import synapse.lib.output as s_output
|
|
11
7
|
|
|
12
8
|
descr = '''
|
|
@@ -24,8 +20,7 @@ Examples:
|
|
|
24
20
|
|
|
25
21
|
async def main(argv, outp=s_output.stdout):
|
|
26
22
|
|
|
27
|
-
pars =
|
|
28
|
-
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
23
|
+
pars = s_cmd.Parser(prog='synapse.tools.aha.provision.service', outp=outp, description=descr)
|
|
29
24
|
|
|
30
25
|
pars.add_argument('--url', default='cell:///vertex/storage', help='The telepath URL to connect to the AHA service.')
|
|
31
26
|
pars.add_argument('--user', help='Provision the new service with the username.')
|
|
@@ -79,10 +74,5 @@ async def main(argv, outp=s_output.stdout):
|
|
|
79
74
|
outp.printf(f'ERROR: {mesg}')
|
|
80
75
|
return 1
|
|
81
76
|
|
|
82
|
-
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
83
|
-
ret = await main(argv, outp=outp)
|
|
84
|
-
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
85
|
-
return ret
|
|
86
|
-
|
|
87
77
|
if __name__ == '__main__': # pragma: no cover
|
|
88
|
-
|
|
78
|
+
s_cmd.exitmain(main)
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import asyncio
|
|
3
|
-
import argparse
|
|
4
|
-
|
|
5
1
|
import synapse.exc as s_exc
|
|
6
2
|
import synapse.telepath as s_telepath
|
|
7
3
|
|
|
8
|
-
import synapse.lib.
|
|
4
|
+
import synapse.lib.cmd as s_cmd
|
|
9
5
|
import synapse.lib.output as s_output
|
|
10
6
|
|
|
11
7
|
descr = '''
|
|
@@ -23,8 +19,7 @@ Examples:
|
|
|
23
19
|
|
|
24
20
|
async def main(argv, outp=s_output.stdout):
|
|
25
21
|
|
|
26
|
-
pars =
|
|
27
|
-
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
22
|
+
pars = s_cmd.Parser(prog='synapse.tools.aha.provision.user', outp=outp, description=descr)
|
|
28
23
|
|
|
29
24
|
pars.add_argument('--url', default='cell:///vertex/storage', help='The telepath URL to connect to the AHA service.')
|
|
30
25
|
pars.add_argument('--again', default=False, action='store_true', help='Generate a new enroll URL for an existing user.')
|
|
@@ -50,10 +45,6 @@ async def main(argv, outp=s_output.stdout):
|
|
|
50
45
|
outp.printf(f'ERROR: {mesg}')
|
|
51
46
|
return 1
|
|
52
47
|
|
|
53
|
-
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
54
|
-
ret = await main(argv, outp=outp)
|
|
55
|
-
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
56
|
-
return ret
|
|
57
48
|
|
|
58
49
|
if __name__ == '__main__': # pragma: no cover
|
|
59
|
-
|
|
50
|
+
s_cmd.exitmain(main)
|
synapse/tools/apikey.py
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import asyncio
|
|
3
|
-
import argparse
|
|
4
|
-
|
|
5
1
|
import synapse.exc as s_exc
|
|
6
2
|
import synapse.telepath as s_telepath
|
|
7
3
|
|
|
8
|
-
import synapse.lib.
|
|
4
|
+
import synapse.lib.cmd as s_cmd
|
|
9
5
|
import synapse.lib.time as s_time
|
|
10
6
|
import synapse.lib.output as s_output
|
|
11
7
|
|
|
@@ -33,7 +29,7 @@ def printkey(outp, info, apikey=None):
|
|
|
33
29
|
|
|
34
30
|
async def main(argv, outp=s_output.stdout):
|
|
35
31
|
|
|
36
|
-
pars =
|
|
32
|
+
pars = s_cmd.Parser(prog='synapse.tools.apikey', outp=outp, description=descr)
|
|
37
33
|
pars.add_argument('--svcurl', default='cell:///vertex/storage', help='The telepath URL of the Synapse service.')
|
|
38
34
|
|
|
39
35
|
subpars = pars.add_subparsers(dest='action', required=True)
|
|
@@ -90,11 +86,5 @@ async def main(argv, outp=s_output.stdout):
|
|
|
90
86
|
|
|
91
87
|
return 0
|
|
92
88
|
|
|
93
|
-
|
|
94
|
-
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
95
|
-
ret = await main(argv, outp=outp)
|
|
96
|
-
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
97
|
-
return ret
|
|
98
|
-
|
|
99
89
|
if __name__ == '__main__': # pragma: no cover
|
|
100
|
-
|
|
90
|
+
s_cmd.exitmain(main)
|
synapse/tools/autodoc.py
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import sys
|
|
2
1
|
import copy
|
|
3
|
-
import asyncio
|
|
4
2
|
import logging
|
|
5
|
-
import argparse
|
|
6
3
|
import collections
|
|
7
4
|
|
|
8
5
|
from typing import List, Tuple, Dict, Union
|
|
@@ -12,7 +9,7 @@ import synapse.common as s_common
|
|
|
12
9
|
import synapse.cortex as s_cortex
|
|
13
10
|
import synapse.telepath as s_telepath
|
|
14
11
|
|
|
15
|
-
import synapse.lib.
|
|
12
|
+
import synapse.lib.cmd as s_cmd
|
|
16
13
|
import synapse.lib.json as s_json
|
|
17
14
|
import synapse.lib.storm as s_storm
|
|
18
15
|
import synapse.lib.config as s_config
|
|
@@ -962,12 +959,8 @@ async def docStormTypes():
|
|
|
962
959
|
|
|
963
960
|
return libspage, typespage
|
|
964
961
|
|
|
965
|
-
async def main(argv, outp=
|
|
966
|
-
|
|
967
|
-
outp = s_output.OutPut()
|
|
968
|
-
|
|
969
|
-
pars = makeargparser()
|
|
970
|
-
|
|
962
|
+
async def main(argv, outp=s_output.stdout):
|
|
963
|
+
pars = getArgParser(outp)
|
|
971
964
|
opts = pars.parse_args(argv)
|
|
972
965
|
|
|
973
966
|
if opts.doc_model:
|
|
@@ -1018,9 +1011,9 @@ async def main(argv, outp=None):
|
|
|
1018
1011
|
|
|
1019
1012
|
return 0
|
|
1020
1013
|
|
|
1021
|
-
def
|
|
1014
|
+
def getArgParser(outp):
|
|
1022
1015
|
desc = 'Command line tool to generate various synapse documentation.'
|
|
1023
|
-
pars =
|
|
1016
|
+
pars = s_cmd.Parser(prog='synapse.tools.autodoc', outp=outp, description=desc)
|
|
1024
1017
|
|
|
1025
1018
|
pars.add_argument('--cortex', '-c', default=None,
|
|
1026
1019
|
help='Cortex URL for model inspection')
|
|
@@ -1042,11 +1035,6 @@ def makeargparser():
|
|
|
1042
1035
|
|
|
1043
1036
|
return pars
|
|
1044
1037
|
|
|
1045
|
-
async def _main(argv, outp=None): # pragma: no cover
|
|
1046
|
-
s_common.setlogging(logger, 'DEBUG')
|
|
1047
|
-
ret = await main(argv, outp=outp)
|
|
1048
|
-
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
1049
|
-
return ret
|
|
1050
|
-
|
|
1051
1038
|
if __name__ == '__main__': # pragma: no cover
|
|
1052
|
-
|
|
1039
|
+
s_common.setlogging(logger, 'DEBUG')
|
|
1040
|
+
s_cmd.exitmain(main)
|
synapse/tools/axon2axon.py
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import asyncio
|
|
3
1
|
import logging
|
|
4
2
|
|
|
5
3
|
import synapse.common as s_common
|
|
@@ -8,7 +6,6 @@ import synapse.telepath as s_telepath
|
|
|
8
6
|
import synapse.exc as s_exc
|
|
9
7
|
import synapse.lib.cmd as s_cmd
|
|
10
8
|
import synapse.lib.base as s_base
|
|
11
|
-
import synapse.lib.coro as s_coro
|
|
12
9
|
import synapse.lib.output as s_output
|
|
13
10
|
|
|
14
11
|
logger = logging.getLogger(__name__)
|
|
@@ -43,10 +40,5 @@ async def main(argv, outp=s_output.stdout):
|
|
|
43
40
|
await fd.save()
|
|
44
41
|
return 0
|
|
45
42
|
|
|
46
|
-
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
47
|
-
ret = await main(argv, outp=outp)
|
|
48
|
-
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
49
|
-
return ret
|
|
50
|
-
|
|
51
43
|
if __name__ == '__main__': # pragma: no cover
|
|
52
|
-
|
|
44
|
+
s_cmd.exitmain(main)
|
synapse/tools/cellauth.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import sys
|
|
2
1
|
import asyncio
|
|
3
2
|
import logging
|
|
4
3
|
import functools
|
|
@@ -9,7 +8,6 @@ import synapse.common as s_common
|
|
|
9
8
|
import synapse.telepath as s_telepath
|
|
10
9
|
|
|
11
10
|
import synapse.lib.cmd as s_cmd
|
|
12
|
-
import synapse.lib.coro as s_coro
|
|
13
11
|
import synapse.lib.output as s_output
|
|
14
12
|
import synapse.lib.version as s_version
|
|
15
13
|
|
|
@@ -18,7 +16,7 @@ logger = logging.getLogger(__name__)
|
|
|
18
16
|
desc = '''
|
|
19
17
|
Manage permissions of users, roles, and objects in a remote cell.
|
|
20
18
|
'''
|
|
21
|
-
outp = None
|
|
19
|
+
outp = None # type: s_output.OutPut
|
|
22
20
|
|
|
23
21
|
min_authgate_vers = (0, 1, 33)
|
|
24
22
|
reqver = '>=0.2.0,<3.0.0'
|
|
@@ -266,9 +264,7 @@ async def handleList(opts):
|
|
|
266
264
|
else:
|
|
267
265
|
return 0
|
|
268
266
|
|
|
269
|
-
async def main(argv, outprint=
|
|
270
|
-
if outprint is None: # pragma: no cover
|
|
271
|
-
outprint = s_output.OutPut()
|
|
267
|
+
async def main(argv, outprint=s_output.stdout):
|
|
272
268
|
global outp
|
|
273
269
|
outp = outprint
|
|
274
270
|
|
|
@@ -289,7 +285,7 @@ async def main(argv, outprint=None):
|
|
|
289
285
|
|
|
290
286
|
def makeargparser():
|
|
291
287
|
global outp
|
|
292
|
-
pars = s_cmd.Parser('synapse.tools.cellauth', outp=outp, description=desc)
|
|
288
|
+
pars = s_cmd.Parser(prog='synapse.tools.cellauth', outp=outp, description=desc)
|
|
293
289
|
|
|
294
290
|
pars.add_argument('--debug', action='store_true', help='Show debug traceback on error.')
|
|
295
291
|
pars.add_argument('cellurl', help='The telepath URL to connect to a cell.')
|
|
@@ -337,11 +333,6 @@ def makeargparser():
|
|
|
337
333
|
pars_mod.set_defaults(func=handleModify)
|
|
338
334
|
return pars
|
|
339
335
|
|
|
340
|
-
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
341
|
-
s_common.setlogging(logger, 'DEBUG')
|
|
342
|
-
ret = await main(argv, outprint=outp)
|
|
343
|
-
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
344
|
-
return ret
|
|
345
|
-
|
|
346
336
|
if __name__ == '__main__': # pragma: no cover
|
|
347
|
-
|
|
337
|
+
s_common.setlogging(logger, 'DEBUG')
|
|
338
|
+
s_cmd.exitmain(main)
|