synapse 2.209.0__py311-none-any.whl → 2.210.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/lib/cell.py +14 -4
- synapse/lib/coro.py +5 -0
- synapse/lib/json.py +48 -22
- synapse/lib/nexus.py +6 -0
- synapse/lib/storm.py +10 -2
- synapse/lib/stormlib/auth.py +6 -0
- synapse/lib/stormlib/notifications.py +12 -2
- synapse/lib/version.py +2 -2
- synapse/models/entity.py +26 -0
- synapse/models/inet.py +11 -0
- synapse/models/person.py +9 -2
- synapse/tests/test_cortex.py +3 -3
- synapse/tests/test_lib_aha.py +1 -1
- synapse/tests/test_lib_cell.py +28 -8
- synapse/tests/test_lib_coro.py +23 -0
- synapse/tests/test_lib_json.py +41 -16
- synapse/tests/test_model_entity.py +21 -0
- synapse/tests/test_model_gov_intl.py +2 -2
- synapse/tests/test_model_inet.py +15 -0
- synapse/tests/test_model_media.py +1 -0
- synapse/tests/test_model_person.py +12 -0
- synapse/tests/test_telepath.py +52 -41
- synapse/tests/test_tools_aha.py +7 -8
- synapse/tests/utils.py +1 -1
- synapse/tools/aha/clone.py +7 -1
- synapse/tools/aha/easycert.py +37 -42
- synapse/tools/aha/enroll.py +7 -1
- synapse/tools/aha/list.py +60 -65
- synapse/tools/aha/mirror.py +7 -1
- synapse/tools/aha/provision/service.py +7 -1
- synapse/tools/aha/provision/user.py +7 -1
- synapse/tools/apikey.py +8 -1
- synapse/tools/axon2axon.py +7 -1
- synapse/tools/cellauth.py +6 -5
- synapse/tools/cmdr.py +2 -1
- synapse/tools/csvtool.py +7 -2
- synapse/tools/feed.py +8 -2
- synapse/tools/genpkg.py +7 -1
- synapse/tools/healthcheck.py +7 -1
- synapse/tools/livebackup.py +7 -3
- synapse/tools/modrole.py +7 -1
- synapse/tools/moduser.py +7 -2
- synapse/tools/promote.py +7 -3
- synapse/tools/pullfile.py +6 -1
- synapse/tools/pushfile.py +7 -1
- synapse/tools/reload.py +7 -4
- synapse/tools/snapshot.py +7 -1
- synapse/tools/storm.py +7 -1
- {synapse-2.209.0.dist-info → synapse-2.210.0.dist-info}/METADATA +2 -2
- {synapse-2.209.0.dist-info → synapse-2.210.0.dist-info}/RECORD +53 -52
- {synapse-2.209.0.dist-info → synapse-2.210.0.dist-info}/WHEEL +1 -1
- {synapse-2.209.0.dist-info → synapse-2.210.0.dist-info}/licenses/LICENSE +0 -0
- {synapse-2.209.0.dist-info → synapse-2.210.0.dist-info}/top_level.txt +0 -0
synapse/tools/aha/list.py
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import sys
|
|
2
2
|
import asyncio
|
|
3
3
|
import logging
|
|
4
|
-
import contextlib
|
|
5
4
|
|
|
6
5
|
import synapse.exc as s_exc
|
|
7
6
|
import synapse.common as s_common
|
|
8
7
|
import synapse.telepath as s_telepath
|
|
9
8
|
|
|
9
|
+
import synapse.lib.coro as s_coro
|
|
10
10
|
import synapse.lib.output as s_output
|
|
11
11
|
import synapse.lib.version as s_version
|
|
12
12
|
|
|
@@ -14,76 +14,71 @@ logger = logging.getLogger(__name__)
|
|
|
14
14
|
|
|
15
15
|
reqver = '>=2.11.0,<3.0.0'
|
|
16
16
|
|
|
17
|
-
async def
|
|
18
|
-
|
|
19
|
-
async with await s_telepath.openurl(argv[0]) as prox:
|
|
20
|
-
try:
|
|
21
|
-
s_version.reqVersion(prox._getSynVers(), reqver)
|
|
22
|
-
except s_exc.BadVersion as e: # pragma: no cover
|
|
23
|
-
valu = s_version.fmtVersion(*e.get('valu'))
|
|
24
|
-
outp.printf(f'Proxy version {valu} is outside of the aha supported range ({reqver}).')
|
|
25
|
-
return 1
|
|
26
|
-
classes = prox._getClasses()
|
|
27
|
-
if 'synapse.lib.aha.AhaApi' not in classes:
|
|
28
|
-
outp.printf(f'Service at {argv[0]} is not an Aha server')
|
|
29
|
-
return 1
|
|
30
|
-
|
|
31
|
-
try:
|
|
32
|
-
network = argv[1]
|
|
33
|
-
except IndexError:
|
|
34
|
-
network = None
|
|
35
|
-
|
|
36
|
-
mesg = f"{'Service':<20s} {'network':<30s} {'leader':<6} {'online':<6} {'scheme':<6} {'host':<20} {'port':<5} connection opts"
|
|
37
|
-
outp.printf(mesg)
|
|
38
|
-
|
|
39
|
-
svcs = []
|
|
40
|
-
ldrs = set()
|
|
41
|
-
async for svc in prox.getAhaSvcs(network):
|
|
42
|
-
svcinfo = svc.get('svcinfo')
|
|
43
|
-
if svcinfo and svc.get('svcname') == svcinfo.get('leader'):
|
|
44
|
-
ldrs.add(svcinfo.get('run'))
|
|
45
|
-
svcs.append(svc)
|
|
46
|
-
|
|
47
|
-
for svc in svcs:
|
|
48
|
-
svcname = svc.pop('svcname')
|
|
49
|
-
svcnetw = svc.pop('svcnetw')
|
|
50
|
-
|
|
51
|
-
svcinfo = svc.pop('svcinfo')
|
|
52
|
-
urlinfo = svcinfo.pop('urlinfo')
|
|
53
|
-
online = str(bool(svcinfo.pop('online', False)))
|
|
54
|
-
host = urlinfo.pop('host')
|
|
55
|
-
port = str(urlinfo.pop('port'))
|
|
56
|
-
scheme = urlinfo.pop('scheme')
|
|
57
|
-
|
|
58
|
-
leader = 'None'
|
|
59
|
-
if svcinfo.get('leader') is not None:
|
|
60
|
-
if svcinfo.get('run') in ldrs:
|
|
61
|
-
leader = 'True'
|
|
62
|
-
else:
|
|
63
|
-
leader = 'False'
|
|
64
|
-
|
|
65
|
-
mesg = f'{svcname:<20s} {svcnetw:<30s} {leader:<6} {online:<6} {scheme:<6} {host:<20} {port:<5}'
|
|
66
|
-
if svc:
|
|
67
|
-
mesg = f'{mesg} {svc}'
|
|
68
|
-
|
|
69
|
-
outp.printf(mesg)
|
|
70
|
-
return 0
|
|
71
|
-
|
|
72
|
-
async def main(argv, outp=None): # pragma: no cover
|
|
73
|
-
|
|
74
|
-
if outp is None:
|
|
75
|
-
outp = s_output.stdout
|
|
17
|
+
async def main(argv, outp=s_output.stdout):
|
|
76
18
|
|
|
77
19
|
if len(argv) not in (1, 2):
|
|
78
20
|
outp.printf('usage: python -m synapse.tools.aha.list <url> [network name]')
|
|
79
21
|
return 1
|
|
80
22
|
|
|
81
|
-
s_common.setlogging(logger, 'WARNING')
|
|
82
|
-
|
|
83
23
|
async with s_telepath.withTeleEnv():
|
|
84
|
-
await
|
|
24
|
+
async with await s_telepath.openurl(argv[0]) as prox:
|
|
25
|
+
try:
|
|
26
|
+
s_version.reqVersion(prox._getSynVers(), reqver)
|
|
27
|
+
except s_exc.BadVersion as e: # pragma: no cover
|
|
28
|
+
valu = s_version.fmtVersion(*e.get('valu'))
|
|
29
|
+
outp.printf(f'Proxy version {valu} is outside of the aha supported range ({reqver}).')
|
|
30
|
+
return 1
|
|
31
|
+
classes = prox._getClasses()
|
|
32
|
+
if 'synapse.lib.aha.AhaApi' not in classes:
|
|
33
|
+
outp.printf(f'Service at {argv[0]} is not an Aha server')
|
|
34
|
+
return 1
|
|
35
|
+
|
|
36
|
+
try:
|
|
37
|
+
network = argv[1]
|
|
38
|
+
except IndexError:
|
|
39
|
+
network = None
|
|
40
|
+
|
|
41
|
+
mesg = f"{'Service':<20s} {'network':<30s} {'leader':<6} {'online':<6} {'scheme':<6} {'host':<20} {'port':<5} connection opts"
|
|
42
|
+
outp.printf(mesg)
|
|
85
43
|
|
|
86
|
-
|
|
44
|
+
svcs = []
|
|
45
|
+
ldrs = set()
|
|
46
|
+
async for svc in prox.getAhaSvcs(network):
|
|
47
|
+
svcinfo = svc.get('svcinfo')
|
|
48
|
+
if svcinfo and svc.get('svcname') == svcinfo.get('leader'):
|
|
49
|
+
ldrs.add(svcinfo.get('run'))
|
|
50
|
+
svcs.append(svc)
|
|
51
|
+
|
|
52
|
+
for svc in svcs:
|
|
53
|
+
svcname = svc.pop('svcname')
|
|
54
|
+
svcnetw = svc.pop('svcnetw')
|
|
55
|
+
|
|
56
|
+
svcinfo = svc.pop('svcinfo')
|
|
57
|
+
urlinfo = svcinfo.pop('urlinfo')
|
|
58
|
+
online = str(bool(svcinfo.pop('online', False)))
|
|
59
|
+
host = urlinfo.pop('host')
|
|
60
|
+
port = str(urlinfo.pop('port'))
|
|
61
|
+
scheme = urlinfo.pop('scheme')
|
|
62
|
+
|
|
63
|
+
leader = 'None'
|
|
64
|
+
if svcinfo.get('leader') is not None:
|
|
65
|
+
if svcinfo.get('run') in ldrs:
|
|
66
|
+
leader = 'True'
|
|
67
|
+
else:
|
|
68
|
+
leader = 'False'
|
|
69
|
+
|
|
70
|
+
mesg = f'{svcname:<20s} {svcnetw:<30s} {leader:<6} {online:<6} {scheme:<6} {host:<20} {port:<5}'
|
|
71
|
+
if svc:
|
|
72
|
+
mesg = f'{mesg} {svc}'
|
|
73
|
+
|
|
74
|
+
outp.printf(mesg)
|
|
75
|
+
return 0
|
|
76
|
+
|
|
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
|
|
87
82
|
|
|
88
83
|
if __name__ == '__main__': # pragma: no cover
|
|
89
|
-
sys.exit(asyncio.run(
|
|
84
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/aha/mirror.py
CHANGED
|
@@ -6,6 +6,7 @@ import synapse.exc as s_exc
|
|
|
6
6
|
import synapse.common as s_common
|
|
7
7
|
import synapse.telepath as s_telepath
|
|
8
8
|
|
|
9
|
+
import synapse.lib.coro as s_coro
|
|
9
10
|
import synapse.lib.output as s_output
|
|
10
11
|
import synapse.lib.version as s_version
|
|
11
12
|
|
|
@@ -191,5 +192,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
191
192
|
outp.printf(f'ERROR: {mesg}')
|
|
192
193
|
return 1
|
|
193
194
|
|
|
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
|
+
|
|
194
200
|
if __name__ == '__main__': # pragma: no cover
|
|
195
|
-
sys.exit(asyncio.run(
|
|
201
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
|
@@ -6,6 +6,7 @@ import synapse.exc as s_exc
|
|
|
6
6
|
import synapse.common as s_common
|
|
7
7
|
import synapse.telepath as s_telepath
|
|
8
8
|
|
|
9
|
+
import synapse.lib.coro as s_coro
|
|
9
10
|
import synapse.lib.output as s_output
|
|
10
11
|
|
|
11
12
|
descr = '''
|
|
@@ -78,5 +79,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
78
79
|
outp.printf(f'ERROR: {mesg}')
|
|
79
80
|
return 1
|
|
80
81
|
|
|
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
|
+
|
|
81
87
|
if __name__ == '__main__': # pragma: no cover
|
|
82
|
-
sys.exit(asyncio.run(
|
|
88
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
|
@@ -5,6 +5,7 @@ import argparse
|
|
|
5
5
|
import synapse.exc as s_exc
|
|
6
6
|
import synapse.telepath as s_telepath
|
|
7
7
|
|
|
8
|
+
import synapse.lib.coro as s_coro
|
|
8
9
|
import synapse.lib.output as s_output
|
|
9
10
|
|
|
10
11
|
descr = '''
|
|
@@ -49,5 +50,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
49
50
|
outp.printf(f'ERROR: {mesg}')
|
|
50
51
|
return 1
|
|
51
52
|
|
|
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
|
+
|
|
52
58
|
if __name__ == '__main__': # pragma: no cover
|
|
53
|
-
sys.exit(asyncio.run(
|
|
59
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/apikey.py
CHANGED
|
@@ -5,6 +5,7 @@ import argparse
|
|
|
5
5
|
import synapse.exc as s_exc
|
|
6
6
|
import synapse.telepath as s_telepath
|
|
7
7
|
|
|
8
|
+
import synapse.lib.coro as s_coro
|
|
8
9
|
import synapse.lib.time as s_time
|
|
9
10
|
import synapse.lib.output as s_output
|
|
10
11
|
|
|
@@ -89,5 +90,11 @@ async def main(argv, outp=s_output.stdout):
|
|
|
89
90
|
|
|
90
91
|
return 0
|
|
91
92
|
|
|
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
|
+
|
|
92
99
|
if __name__ == '__main__': # pragma: no cover
|
|
93
|
-
sys.exit(asyncio.run(
|
|
100
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/axon2axon.py
CHANGED
|
@@ -8,6 +8,7 @@ import synapse.telepath as s_telepath
|
|
|
8
8
|
import synapse.exc as s_exc
|
|
9
9
|
import synapse.lib.cmd as s_cmd
|
|
10
10
|
import synapse.lib.base as s_base
|
|
11
|
+
import synapse.lib.coro as s_coro
|
|
11
12
|
import synapse.lib.output as s_output
|
|
12
13
|
|
|
13
14
|
logger = logging.getLogger(__name__)
|
|
@@ -42,5 +43,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
42
43
|
await fd.save()
|
|
43
44
|
return 0
|
|
44
45
|
|
|
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
|
+
|
|
45
51
|
if __name__ == '__main__': # pragma: no cover
|
|
46
|
-
sys.exit(asyncio.run(
|
|
52
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/cellauth.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import os
|
|
2
1
|
import sys
|
|
3
2
|
import asyncio
|
|
4
3
|
import logging
|
|
@@ -7,10 +6,10 @@ import traceback
|
|
|
7
6
|
import synapse.exc as s_exc
|
|
8
7
|
import synapse.common as s_common
|
|
9
8
|
|
|
10
|
-
import synapse.glob as s_glob
|
|
11
9
|
import synapse.telepath as s_telepath
|
|
12
10
|
|
|
13
11
|
import synapse.lib.cmd as s_cmd
|
|
12
|
+
import synapse.lib.coro as s_coro
|
|
14
13
|
import synapse.lib.output as s_output
|
|
15
14
|
import synapse.lib.version as s_version
|
|
16
15
|
|
|
@@ -338,9 +337,11 @@ def makeargparser():
|
|
|
338
337
|
pars_mod.set_defaults(func=handleModify)
|
|
339
338
|
return pars
|
|
340
339
|
|
|
341
|
-
async def _main(): # pragma: no cover
|
|
340
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
342
341
|
s_common.setlogging(logger, 'DEBUG')
|
|
343
|
-
|
|
342
|
+
ret = await main(argv, outprint=outp)
|
|
343
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
344
|
+
return ret
|
|
344
345
|
|
|
345
346
|
if __name__ == '__main__': # pragma: no cover
|
|
346
|
-
sys.exit(
|
|
347
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/cmdr.py
CHANGED
|
@@ -9,6 +9,7 @@ import synapse.common as s_common
|
|
|
9
9
|
import synapse.telepath as s_telepath
|
|
10
10
|
|
|
11
11
|
import synapse.lib.cmdr as s_cmdr
|
|
12
|
+
import synapse.lib.coro as s_coro
|
|
12
13
|
import synapse.lib.version as s_version
|
|
13
14
|
|
|
14
15
|
logger = logging.getLogger(__name__)
|
|
@@ -51,7 +52,7 @@ async def main(argv): # pragma: no cover
|
|
|
51
52
|
|
|
52
53
|
async with s_telepath.withTeleEnv():
|
|
53
54
|
await _main(argv)
|
|
54
|
-
|
|
55
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
55
56
|
return 0
|
|
56
57
|
|
|
57
58
|
if __name__ == '__main__': # pragma: no cover
|
synapse/tools/csvtool.py
CHANGED
|
@@ -9,8 +9,8 @@ import synapse.common as s_common
|
|
|
9
9
|
import synapse.telepath as s_telepath
|
|
10
10
|
|
|
11
11
|
import synapse.lib.cmd as s_cmd
|
|
12
|
-
import synapse.lib.base as s_base
|
|
13
12
|
import synapse.lib.cmdr as s_cmdr
|
|
13
|
+
import synapse.lib.coro as s_coro
|
|
14
14
|
import synapse.lib.json as s_json
|
|
15
15
|
import synapse.lib.output as s_output
|
|
16
16
|
import synapse.lib.version as s_version
|
|
@@ -235,5 +235,10 @@ def makeargparser(outp):
|
|
|
235
235
|
pars.add_argument('csvfiles', nargs='+', help='CSV files to load.')
|
|
236
236
|
return pars
|
|
237
237
|
|
|
238
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
239
|
+
ret = await main(argv, outp=outp)
|
|
240
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
241
|
+
return ret
|
|
242
|
+
|
|
238
243
|
if __name__ == '__main__': # pragma: no cover
|
|
239
|
-
sys.exit(asyncio.run(
|
|
244
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/feed.py
CHANGED
|
@@ -11,6 +11,7 @@ import synapse.cortex as s_cortex
|
|
|
11
11
|
import synapse.telepath as s_telepath
|
|
12
12
|
|
|
13
13
|
import synapse.lib.cmdr as s_cmdr
|
|
14
|
+
import synapse.lib.coro as s_coro
|
|
14
15
|
import synapse.lib.json as s_json
|
|
15
16
|
import synapse.lib.output as s_output
|
|
16
17
|
import synapse.lib.msgpack as s_msgpack
|
|
@@ -149,6 +150,11 @@ def makeargparser():
|
|
|
149
150
|
|
|
150
151
|
return pars
|
|
151
152
|
|
|
152
|
-
|
|
153
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
153
154
|
s_common.setlogging(logger, 'DEBUG')
|
|
154
|
-
|
|
155
|
+
ret = await main(argv, outp=outp)
|
|
156
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
157
|
+
return ret
|
|
158
|
+
|
|
159
|
+
if __name__ == '__main__': # pragma: no cover
|
|
160
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/genpkg.py
CHANGED
|
@@ -12,6 +12,7 @@ import synapse.exc as s_exc
|
|
|
12
12
|
import synapse.common as s_common
|
|
13
13
|
import synapse.telepath as s_telepath
|
|
14
14
|
|
|
15
|
+
import synapse.lib.coro as s_coro
|
|
15
16
|
import synapse.lib.json as s_json
|
|
16
17
|
import synapse.lib.output as s_output
|
|
17
18
|
import synapse.lib.certdir as s_certdir
|
|
@@ -298,5 +299,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
298
299
|
|
|
299
300
|
return 0
|
|
300
301
|
|
|
302
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
303
|
+
ret = await main(argv, outp=outp)
|
|
304
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
305
|
+
return ret
|
|
306
|
+
|
|
301
307
|
if __name__ == '__main__': # pragma: no cover
|
|
302
|
-
sys.exit(asyncio.run(
|
|
308
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/healthcheck.py
CHANGED
|
@@ -7,6 +7,7 @@ import synapse.common as s_common
|
|
|
7
7
|
import synapse.telepath as s_telepath
|
|
8
8
|
|
|
9
9
|
import synapse.lib.cmd as s_cmd
|
|
10
|
+
import synapse.lib.coro as s_coro
|
|
10
11
|
import synapse.lib.json as s_json
|
|
11
12
|
import synapse.lib.output as s_output
|
|
12
13
|
import synapse.lib.health as s_health
|
|
@@ -106,5 +107,10 @@ def makeargparser():
|
|
|
106
107
|
help='Connection and call timeout')
|
|
107
108
|
return pars
|
|
108
109
|
|
|
110
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
111
|
+
ret = await main(argv, outp=outp)
|
|
112
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
113
|
+
return ret
|
|
114
|
+
|
|
109
115
|
if __name__ == '__main__': # pragma: no cover
|
|
110
|
-
sys.exit(asyncio.run(
|
|
116
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/livebackup.py
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import sys
|
|
2
|
-
import yaml
|
|
3
2
|
import asyncio
|
|
4
3
|
import argparse
|
|
5
4
|
|
|
6
|
-
import synapse.exc as s_exc
|
|
7
5
|
import synapse.telepath as s_telepath
|
|
8
6
|
|
|
7
|
+
import synapse.lib.coro as s_coro
|
|
9
8
|
import synapse.lib.output as s_output
|
|
10
9
|
|
|
11
10
|
descr = '''
|
|
@@ -36,5 +35,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
36
35
|
outp.printf(f'...backup created: {name}')
|
|
37
36
|
return 0
|
|
38
37
|
|
|
38
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
39
|
+
ret = await main(argv, outp=outp)
|
|
40
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
41
|
+
return ret
|
|
42
|
+
|
|
39
43
|
if __name__ == '__main__': # pragma: no cover
|
|
40
|
-
sys.exit(asyncio.run(
|
|
44
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/modrole.py
CHANGED
|
@@ -5,6 +5,7 @@ import argparse
|
|
|
5
5
|
import synapse.common as s_common
|
|
6
6
|
import synapse.telepath as s_telepath
|
|
7
7
|
|
|
8
|
+
import synapse.lib.coro as s_coro
|
|
8
9
|
import synapse.lib.output as s_output
|
|
9
10
|
|
|
10
11
|
descr = '''
|
|
@@ -115,5 +116,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
115
116
|
await cell.addRoleRule(roleiden, (False, perm), indx=0, gateiden=opts.gate)
|
|
116
117
|
return 0
|
|
117
118
|
|
|
119
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
120
|
+
ret = await main(argv, outp=outp)
|
|
121
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
122
|
+
return ret
|
|
123
|
+
|
|
118
124
|
if __name__ == '__main__': # pragma: no cover
|
|
119
|
-
sys.exit(asyncio.run(
|
|
125
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/moduser.py
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import sys
|
|
2
|
-
import yaml
|
|
3
2
|
import asyncio
|
|
4
3
|
import argparse
|
|
5
4
|
|
|
6
5
|
import synapse.common as s_common
|
|
7
6
|
import synapse.telepath as s_telepath
|
|
8
7
|
|
|
8
|
+
import synapse.lib.coro as s_coro
|
|
9
9
|
import synapse.lib.output as s_output
|
|
10
10
|
|
|
11
11
|
descr = '''
|
|
@@ -187,5 +187,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
187
187
|
await cell.addUserRule(useriden, (False, perm), indx=0, gateiden=opts.gate)
|
|
188
188
|
return 0
|
|
189
189
|
|
|
190
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
191
|
+
ret = await main(argv, outp=outp)
|
|
192
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
193
|
+
return ret
|
|
194
|
+
|
|
190
195
|
if __name__ == '__main__': # pragma: no cover
|
|
191
|
-
sys.exit(asyncio.run(
|
|
196
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/promote.py
CHANGED
|
@@ -6,6 +6,7 @@ import synapse.exc as s_exc
|
|
|
6
6
|
|
|
7
7
|
import synapse.telepath as s_telepath
|
|
8
8
|
|
|
9
|
+
import synapse.lib.coro as s_coro
|
|
9
10
|
import synapse.lib.output as s_output
|
|
10
11
|
import synapse.lib.urlhelp as s_urlhelp
|
|
11
12
|
|
|
@@ -27,8 +28,6 @@ async def main(argv, outp=s_output.stdout):
|
|
|
27
28
|
pars.add_argument('--failure', default=False, action='store_true',
|
|
28
29
|
help='Promotion is due to leader being offline. Graceful handoff is not possible.')
|
|
29
30
|
|
|
30
|
-
# TODO pars.add_argument('--timeout', type=float, default=30.0, help='The maximum timeout to wait for the mirror to catch up.')
|
|
31
|
-
|
|
32
31
|
opts = pars.parse_args(argv)
|
|
33
32
|
|
|
34
33
|
async with s_telepath.withTeleEnv():
|
|
@@ -50,5 +49,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
50
49
|
|
|
51
50
|
return 0
|
|
52
51
|
|
|
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
|
+
|
|
53
57
|
if __name__ == '__main__': # pragma: no cover
|
|
54
|
-
sys.exit(asyncio.run(
|
|
58
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/pullfile.py
CHANGED
|
@@ -6,6 +6,7 @@ import argparse
|
|
|
6
6
|
import synapse.common as s_common
|
|
7
7
|
import synapse.telepath as s_telepath
|
|
8
8
|
|
|
9
|
+
import synapse.lib.coro as s_coro
|
|
9
10
|
import synapse.lib.output as s_output
|
|
10
11
|
|
|
11
12
|
|
|
@@ -66,6 +67,10 @@ def setup():
|
|
|
66
67
|
|
|
67
68
|
return pars
|
|
68
69
|
|
|
70
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
71
|
+
ret = await main(argv, outp=outp)
|
|
72
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
73
|
+
return ret
|
|
69
74
|
|
|
70
75
|
if __name__ == '__main__': # pragma: no cover
|
|
71
|
-
sys.exit(asyncio.run(
|
|
76
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/pushfile.py
CHANGED
|
@@ -9,6 +9,7 @@ import synapse.exc as s_exc
|
|
|
9
9
|
import synapse.common as s_common
|
|
10
10
|
import synapse.telepath as s_telepath
|
|
11
11
|
|
|
12
|
+
import synapse.lib.coro as s_coro
|
|
12
13
|
import synapse.lib.output as s_output
|
|
13
14
|
import synapse.lib.hashset as s_hashset
|
|
14
15
|
|
|
@@ -124,5 +125,10 @@ def makeargparser():
|
|
|
124
125
|
pars.add_argument('-t', '--tags', help='comma separated list of tags to add to the nodes')
|
|
125
126
|
return pars
|
|
126
127
|
|
|
128
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
129
|
+
ret = await main(argv, outp=outp)
|
|
130
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
131
|
+
return ret
|
|
132
|
+
|
|
127
133
|
if __name__ == '__main__': # pragma: no cover
|
|
128
|
-
sys.exit(asyncio.run(
|
|
134
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/reload.py
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import sys
|
|
2
|
-
import yaml
|
|
3
2
|
import asyncio
|
|
4
3
|
import argparse
|
|
5
4
|
|
|
6
|
-
import synapse.common as s_common
|
|
7
5
|
import synapse.telepath as s_telepath
|
|
8
6
|
|
|
9
|
-
|
|
7
|
+
import synapse.lib.coro as s_coro
|
|
10
8
|
import synapse.lib.output as s_output
|
|
11
9
|
import synapse.lib.urlhelp as s_urlhelp
|
|
12
10
|
|
|
@@ -70,5 +68,10 @@ def getArgParser():
|
|
|
70
68
|
|
|
71
69
|
return pars
|
|
72
70
|
|
|
71
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
72
|
+
ret = await main(argv, outp=outp)
|
|
73
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
74
|
+
return ret
|
|
75
|
+
|
|
73
76
|
if __name__ == '__main__': # pragma: no cover
|
|
74
|
-
sys.exit(asyncio.run(
|
|
77
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/snapshot.py
CHANGED
|
@@ -6,6 +6,7 @@ import argparse
|
|
|
6
6
|
import synapse.exc as s_exc
|
|
7
7
|
import synapse.telepath as s_telepath
|
|
8
8
|
|
|
9
|
+
import synapse.lib.coro as s_coro
|
|
9
10
|
import synapse.lib.output as s_output
|
|
10
11
|
|
|
11
12
|
logger = logging.getLogger(__name__)
|
|
@@ -65,5 +66,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
65
66
|
outp.printf(f'ERROR {e.__class__.__name__}: {mesg}')
|
|
66
67
|
return 1
|
|
67
68
|
|
|
69
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
70
|
+
ret = await main(argv, outp=outp)
|
|
71
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
72
|
+
return ret
|
|
73
|
+
|
|
68
74
|
if __name__ == '__main__': # pragma: no cover
|
|
69
|
-
sys.exit(asyncio.run(
|
|
75
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/storm.py
CHANGED
|
@@ -14,6 +14,7 @@ import synapse.telepath as s_telepath
|
|
|
14
14
|
|
|
15
15
|
import synapse.lib.cli as s_cli
|
|
16
16
|
import synapse.lib.cmd as s_cmd
|
|
17
|
+
import synapse.lib.coro as s_coro
|
|
17
18
|
import synapse.lib.node as s_node
|
|
18
19
|
import synapse.lib.output as s_output
|
|
19
20
|
import synapse.lib.parser as s_parser
|
|
@@ -648,5 +649,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
648
649
|
await cli.addSignalHandlers()
|
|
649
650
|
await cli.runCmdLoop()
|
|
650
651
|
|
|
652
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
653
|
+
ret = await main(argv, outp=outp)
|
|
654
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
655
|
+
return ret
|
|
656
|
+
|
|
651
657
|
if __name__ == '__main__': # pragma: no cover
|
|
652
|
-
sys.exit(asyncio.run(
|
|
658
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: synapse
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.210.0
|
|
4
4
|
Summary: Synapse Intelligence Analysis Framework
|
|
5
5
|
Author-email: The Vertex Project LLC <root@vertex.link>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -49,7 +49,7 @@ Requires-Dist: idna<3.11,>=3.6
|
|
|
49
49
|
Requires-Dist: python-dateutil<3.0,>=2.8
|
|
50
50
|
Requires-Dist: pytz<2025.3,>=2023.3
|
|
51
51
|
Requires-Dist: beautifulsoup4[html5lib]<5.0,>=4.11.1
|
|
52
|
-
Requires-Dist:
|
|
52
|
+
Requires-Dist: vtx-yyjson<5.0.0,>=4.3.0
|
|
53
53
|
Provides-Extra: dev
|
|
54
54
|
Requires-Dist: pytest<8.0.0,>=7.2.0; extra == "dev"
|
|
55
55
|
Requires-Dist: autopep8<3.0.0,>=2.0.4; extra == "dev"
|