synapse 2.223.0__py311-none-any.whl → 2.225.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/axon.py +10 -5
- synapse/common.py +2 -2
- synapse/cortex.py +52 -3
- synapse/datamodel.py +1 -1
- synapse/lib/cell.py +1 -1
- synapse/lib/const.py +4 -0
- synapse/lib/layer.py +6 -6
- synapse/lib/multislabseqn.py +36 -1
- synapse/lib/nexus.py +67 -8
- synapse/lib/queue.py +4 -1
- synapse/lib/rstorm.py +2 -2
- synapse/lib/schemas.py +13 -1
- synapse/lib/slabseqn.py +28 -0
- synapse/lib/storm.py +40 -2
- synapse/lib/stormhttp.py +7 -1
- synapse/lib/stormlib/imap.py +12 -4
- synapse/lib/stormlib/task.py +0 -1
- synapse/lib/stormtypes.py +19 -1
- synapse/lib/version.py +2 -2
- synapse/models/inet.py +29 -0
- synapse/models/media.py +4 -0
- synapse/models/proj.py +3 -0
- synapse/models/risk.py +9 -0
- synapse/models/syn.py +8 -0
- synapse/tests/test_common.py +4 -0
- synapse/tests/test_cortex.py +53 -2
- synapse/tests/test_lib_agenda.py +1 -1
- synapse/tests/test_lib_cell.py +1 -1
- synapse/tests/test_lib_certdir.py +1 -1
- synapse/tests/test_lib_httpapi.py +1 -1
- synapse/tests/test_lib_layer.py +1 -1
- synapse/tests/test_lib_multislabseqn.py +22 -0
- synapse/tests/test_lib_nexus.py +42 -1
- synapse/tests/test_lib_slabseqn.py +30 -1
- synapse/tests/test_lib_storm.py +156 -1
- synapse/tests/test_lib_stormhttp.py +16 -0
- synapse/tests/test_lib_stormlib_imap.py +14 -0
- synapse/tests/test_lib_stormlib_oauth.py +1 -1
- synapse/tests/test_lib_stormsvc.py +1 -1
- synapse/tests/test_lib_stormtypes.py +12 -0
- synapse/tests/test_lib_trigger.py +1 -1
- synapse/tests/test_model_inet.py +29 -0
- synapse/tests/test_model_media.py +4 -1
- synapse/tests/test_model_proj.py +3 -1
- synapse/tests/test_model_risk.py +12 -0
- synapse/tests/test_model_syn.py +54 -2
- synapse/tests/{test_tools_axon2axon.py → test_tools_axon_copy.py} +4 -4
- synapse/tests/{test_tools_pullfile.py → test_tools_axon_get.py} +4 -4
- synapse/tests/{test_tools_pushfile.py → test_tools_axon_put.py} +7 -7
- synapse/tests/{test_tools_csvtool.py → test_tools_cortex_csv.py} +12 -3
- synapse/tests/{test_tools_feed.py → test_tools_cortex_feed.py} +2 -2
- synapse/tests/{test_tools_apikey.py → test_tools_service_apikey.py} +1 -4
- synapse/tests/{test_tools_backup.py → test_tools_service_backup.py} +5 -5
- synapse/tests/{test_tools_demote.py → test_tools_service_demote.py} +1 -1
- synapse/tests/{test_tools_healthcheck.py → test_tools_service_healthcheck.py} +1 -1
- synapse/tests/{test_tools_livebackup.py → test_tools_service_livebackup.py} +1 -1
- synapse/tests/{test_tools_modrole.py → test_tools_service_modrole.py} +1 -1
- synapse/tests/{test_tools_moduser.py → test_tools_service_moduser.py} +1 -1
- synapse/tests/{test_tools_promote.py → test_tools_service_promote.py} +1 -1
- synapse/tests/{test_tools_reload.py → test_tools_service_reload.py} +1 -1
- synapse/tests/{test_tools_shutdown.py → test_tools_service_shutdown.py} +1 -1
- synapse/tests/{test_tools_snapshot.py → test_tools_service_snapshot.py} +1 -1
- synapse/tests/{test_tools_storm.py → test_tools_storm_cli.py} +1 -1
- synapse/tests/{test_tools_pkgs_gendocs.py → test_tools_storm_pkg_doc.py} +12 -3
- synapse/tests/{test_tools_genpkg.py → test_tools_storm_pkg_gen.py} +1 -1
- synapse/tests/{test_tools_autodoc.py → test_tools_utils_autodoc.py} +1 -1
- synapse/tests/test_tools_utils_changelog.py +454 -0
- synapse/tests/{test_tools_easycert.py → test_tools_utils_easycert.py} +48 -46
- synapse/tests/{test_tools_guid.py → test_tools_utils_guid.py} +3 -3
- synapse/tests/{test_tools_json2mpk.py → test_tools_utils_json2mpk.py} +3 -3
- synapse/tests/{test_tools_rstorm.py → test_tools_utils_rstorm.py} +6 -1
- synapse/tests/utils.py +3 -1
- synapse/tools/apikey.py +4 -83
- synapse/tools/autodoc.py +3 -1031
- synapse/tools/axon/copy.py +44 -0
- synapse/tools/axon/get.py +64 -0
- synapse/tools/axon/put.py +122 -0
- synapse/tools/axon2axon.py +3 -36
- synapse/tools/backup.py +6 -176
- synapse/tools/changelog.py +3 -1098
- synapse/tools/cortex/csv.py +236 -0
- synapse/tools/cortex/feed.py +151 -0
- synapse/tools/csvtool.py +3 -227
- synapse/tools/demote.py +4 -40
- synapse/tools/docker/validate.py +3 -3
- synapse/tools/easycert.py +4 -129
- synapse/tools/feed.py +3 -140
- synapse/tools/genpkg.py +3 -307
- synapse/tools/guid.py +7 -6
- synapse/tools/healthcheck.py +3 -101
- synapse/tools/json2mpk.py +6 -38
- synapse/tools/livebackup.py +4 -27
- synapse/tools/modrole.py +3 -108
- synapse/tools/moduser.py +3 -179
- synapse/tools/pkgs/gendocs.py +3 -164
- synapse/tools/promote.py +4 -41
- synapse/tools/pullfile.py +3 -56
- synapse/tools/pushfile.py +3 -114
- synapse/tools/reload.py +4 -61
- synapse/tools/rstorm.py +3 -26
- synapse/tools/service/__init__.py +0 -0
- synapse/tools/service/apikey.py +90 -0
- synapse/tools/service/backup.py +181 -0
- synapse/tools/service/demote.py +47 -0
- synapse/tools/service/healthcheck.py +109 -0
- synapse/tools/service/livebackup.py +34 -0
- synapse/tools/service/modrole.py +116 -0
- synapse/tools/service/moduser.py +184 -0
- synapse/tools/service/promote.py +48 -0
- synapse/tools/service/reload.py +68 -0
- synapse/tools/service/shutdown.py +51 -0
- synapse/tools/service/snapshot.py +64 -0
- synapse/tools/shutdown.py +5 -45
- synapse/tools/snapshot.py +4 -57
- synapse/tools/storm/__init__.py +0 -0
- synapse/tools/storm/__main__.py +5 -0
- synapse/tools/{storm.py → storm/_cli.py} +0 -3
- synapse/tools/storm/pkg/__init__.py +0 -0
- synapse/tools/{pkgs/pandoc_filter.py → storm/pkg/_pandoc_filter.py} +1 -1
- synapse/tools/storm/pkg/doc.py +176 -0
- synapse/tools/storm/pkg/gen.py +315 -0
- synapse/tools/utils/__init__.py +0 -0
- synapse/tools/utils/autodoc.py +1040 -0
- synapse/tools/utils/changelog.py +1124 -0
- synapse/tools/utils/easycert.py +136 -0
- synapse/tools/utils/guid.py +11 -0
- synapse/tools/utils/json2mpk.py +46 -0
- synapse/tools/utils/rstorm.py +35 -0
- {synapse-2.223.0.dist-info → synapse-2.225.0.dist-info}/METADATA +1 -1
- {synapse-2.223.0.dist-info → synapse-2.225.0.dist-info}/RECORD +134 -105
- synapse/tests/test_tools_changelog.py +0 -196
- /synapse/tests/{test_tools_axon.py → test_tools_axon_dump_load.py} +0 -0
- {synapse-2.223.0.dist-info → synapse-2.225.0.dist-info}/WHEEL +0 -0
- {synapse-2.223.0.dist-info → synapse-2.225.0.dist-info}/licenses/LICENSE +0 -0
- {synapse-2.223.0.dist-info → synapse-2.225.0.dist-info}/top_level.txt +0 -0
|
@@ -3,7 +3,7 @@ import hashlib
|
|
|
3
3
|
|
|
4
4
|
import synapse.common as s_common
|
|
5
5
|
|
|
6
|
-
import synapse.tools.
|
|
6
|
+
import synapse.tools.axon.put as s_put
|
|
7
7
|
|
|
8
8
|
import synapse.tests.utils as s_t_utils
|
|
9
9
|
|
|
@@ -43,7 +43,7 @@ class TestPushFile(s_t_utils.SynTest):
|
|
|
43
43
|
'-t', 'foo.bar,baz.faz',
|
|
44
44
|
visipath]
|
|
45
45
|
|
|
46
|
-
self.eq(0, await
|
|
46
|
+
self.eq(0, await s_put.main(args, outp))
|
|
47
47
|
self.true(outp.expect('Uploaded [visi.txt] to axon'))
|
|
48
48
|
self.true(outp.expect('file: visi.txt (4) added to core'))
|
|
49
49
|
|
|
@@ -51,7 +51,7 @@ class TestPushFile(s_t_utils.SynTest):
|
|
|
51
51
|
self.eq(b'visi', b''.join([buf async for buf in axonprox.get(visihash)]))
|
|
52
52
|
|
|
53
53
|
outp = self.getTestOutp()
|
|
54
|
-
self.eq(0, await
|
|
54
|
+
self.eq(0, await s_put.main(args, outp))
|
|
55
55
|
self.true(outp.expect('Axon already had [visi.txt]'))
|
|
56
56
|
|
|
57
57
|
self.eq(1, await coreprox.count(f'file:bytes={s_common.ehex(visihash)}'))
|
|
@@ -63,7 +63,7 @@ class TestPushFile(s_t_utils.SynTest):
|
|
|
63
63
|
args = ['-a', axonurl, nullpath]
|
|
64
64
|
|
|
65
65
|
outp = self.getTestOutp()
|
|
66
|
-
self.eq(0, await
|
|
66
|
+
self.eq(0, await s_put.main(args, outp))
|
|
67
67
|
self.true(outp.expect(f'filepath does not contain any files: {nullpath}'))
|
|
68
68
|
|
|
69
69
|
self.len(1, await axonprox.wants([nullhash]))
|
|
@@ -77,7 +77,7 @@ class TestPushFile(s_t_utils.SynTest):
|
|
|
77
77
|
'-t', 'empty',
|
|
78
78
|
nullpath]
|
|
79
79
|
|
|
80
|
-
self.eq(0, await
|
|
80
|
+
self.eq(0, await s_put.main(args, outp))
|
|
81
81
|
|
|
82
82
|
self.len(0, await axonprox.wants([nullhash]))
|
|
83
83
|
self.eq(b'', b''.join([buf async for buf in axonprox.get(nullhash)]))
|
|
@@ -100,7 +100,7 @@ class TestPushFile(s_t_utils.SynTest):
|
|
|
100
100
|
'-t', 'beef',
|
|
101
101
|
f'{dirn}/**']
|
|
102
102
|
|
|
103
|
-
self.eq(0, await
|
|
103
|
+
self.eq(0, await s_put.main(args, outp))
|
|
104
104
|
self.true(outp.expect('Uploaded [bar.txt] to axon'))
|
|
105
105
|
self.true(outp.expect('file: bar.txt (3) added to core'))
|
|
106
106
|
|
|
@@ -119,7 +119,7 @@ class TestPushFile(s_t_utils.SynTest):
|
|
|
119
119
|
'-r',
|
|
120
120
|
f'{dirn}/**']
|
|
121
121
|
|
|
122
|
-
self.eq(0, await
|
|
122
|
+
self.eq(0, await s_put.main(args, outp))
|
|
123
123
|
self.true(outp.expect('Uploaded [foo.txt] to axon'))
|
|
124
124
|
self.true(outp.expect('file: foo.txt (3) added to core'))
|
|
125
125
|
|
|
@@ -5,7 +5,7 @@ import synapse.common as s_common
|
|
|
5
5
|
|
|
6
6
|
import synapse.tests.utils as s_t_utils
|
|
7
7
|
|
|
8
|
-
import synapse.tools.
|
|
8
|
+
import synapse.tools.cortex.csv as s_csvtool
|
|
9
9
|
|
|
10
10
|
csvfile = b'''ipv4,fqdn,notes
|
|
11
11
|
1.2.3.4,vertex.link,malware
|
|
@@ -76,7 +76,7 @@ class CsvToolTest(s_t_utils.SynTest):
|
|
|
76
76
|
with mock.patch('synapse.telepath.Proxy._getSynVers', self._getOldSynVers):
|
|
77
77
|
outp = self.getTestOutp()
|
|
78
78
|
await s_csvtool.main(argv, outp=outp)
|
|
79
|
-
outp.expect('Cortex version 0.0.0 is outside of the
|
|
79
|
+
outp.expect('Cortex version 0.0.0 is outside of the synapse.tools.cortex.csv supported range')
|
|
80
80
|
|
|
81
81
|
view = await core.callStorm('$view = $lib.view.get() $fork=$view.fork() return ( $fork.iden )')
|
|
82
82
|
|
|
@@ -107,6 +107,15 @@ class CsvToolTest(s_t_utils.SynTest):
|
|
|
107
107
|
self.eq(0, await s_csvtool.main(argv, outp=outp))
|
|
108
108
|
outp.expect("('err', ('BadSyntax")
|
|
109
109
|
|
|
110
|
+
q = '| |' # raises a err
|
|
111
|
+
with s_common.genfile(stormpath) as fd:
|
|
112
|
+
fd.truncate()
|
|
113
|
+
fd.write(q.encode())
|
|
114
|
+
argv = ['--cortex', url, stormpath, csvpath]
|
|
115
|
+
outp = self.getTestOutp()
|
|
116
|
+
self.eq(0, await s_csvtool.main(argv, outp=outp))
|
|
117
|
+
outp.expect("('err', ('BadSyntax")
|
|
118
|
+
|
|
110
119
|
async def test_csvtool_missingvals(self):
|
|
111
120
|
|
|
112
121
|
async with self.getTestCore() as core:
|
|
@@ -225,7 +234,7 @@ class CsvToolTest(s_t_utils.SynTest):
|
|
|
225
234
|
with mock.patch('synapse.telepath.Proxy._getSynVers', self._getOldSynVers):
|
|
226
235
|
outp = self.getTestOutp()
|
|
227
236
|
await s_csvtool.main(argv, outp=outp)
|
|
228
|
-
outp.expect(f'Cortex version 0.0.0 is outside of the
|
|
237
|
+
outp.expect(f'Cortex version 0.0.0 is outside of the synapse.tools.cortex.csv supported range')
|
|
229
238
|
|
|
230
239
|
view = await core.callStorm('$view = $lib.view.get() $fork=$view.fork() return ( $fork.iden )')
|
|
231
240
|
await core.nodes('[test:int=50]', opts={'view': view})
|
|
@@ -8,7 +8,7 @@ import synapse.common as s_common
|
|
|
8
8
|
import synapse.lib.json as s_json
|
|
9
9
|
import synapse.lib.msgpack as s_msgpack
|
|
10
10
|
|
|
11
|
-
import synapse.tools.feed as s_feed
|
|
11
|
+
import synapse.tools.cortex.feed as s_feed
|
|
12
12
|
|
|
13
13
|
import synapse.tests.utils as s_t_utils
|
|
14
14
|
|
|
@@ -49,7 +49,7 @@ class FeedTest(s_t_utils.SynTest):
|
|
|
49
49
|
|
|
50
50
|
with mock.patch('synapse.telepath.Proxy._getSynVers', self._getOldSynVers):
|
|
51
51
|
await s_feed.main(argv, outp=outp)
|
|
52
|
-
outp.expect(f'Cortex version 0.0.0 is outside of the feed
|
|
52
|
+
outp.expect(f'Cortex version 0.0.0 is outside of the synapse.tools.cortex.feed supported range')
|
|
53
53
|
|
|
54
54
|
async def test_synnodes_offset(self):
|
|
55
55
|
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import datetime
|
|
2
|
-
|
|
3
|
-
import synapse.exc as s_exc
|
|
4
1
|
import synapse.common as s_common
|
|
5
2
|
|
|
6
3
|
import synapse.lib.time as s_time
|
|
7
4
|
import synapse.lib.output as s_output
|
|
8
5
|
|
|
9
6
|
import synapse.tests.utils as s_test
|
|
10
|
-
import synapse.tools.apikey as s_t_apikey
|
|
7
|
+
import synapse.tools.service.apikey as s_t_apikey
|
|
11
8
|
|
|
12
9
|
async def getApiKeyByName(core, name):
|
|
13
10
|
keys = {k.get('name'): k async for k in core.getApiKeys()}
|
|
@@ -5,7 +5,7 @@ import synapse.lib.lmdbslab as s_lmdbslab
|
|
|
5
5
|
|
|
6
6
|
import synapse.tests.utils as s_t_utils
|
|
7
7
|
|
|
8
|
-
import synapse.tools.backup as s_backup
|
|
8
|
+
import synapse.tools.service.backup as s_backup
|
|
9
9
|
|
|
10
10
|
class BackupTest(s_t_utils.SynTest):
|
|
11
11
|
|
|
@@ -61,7 +61,7 @@ class BackupTest(s_t_utils.SynTest):
|
|
|
61
61
|
|
|
62
62
|
argv = (core.dirn, dirn2)
|
|
63
63
|
|
|
64
|
-
self.eq(0, s_backup.main(argv))
|
|
64
|
+
self.eq(0, await s_backup.main(argv))
|
|
65
65
|
|
|
66
66
|
fpset = self.compare_dirs(core.dirn, dirn2, skipfns={'lock.mdb'}, skipdirs={'tmp'})
|
|
67
67
|
self.false(os.path.exists(s_common.genpath(dirn2, 'tmp')))
|
|
@@ -71,7 +71,7 @@ class BackupTest(s_t_utils.SynTest):
|
|
|
71
71
|
|
|
72
72
|
# Test corner case no-lmdbinfo
|
|
73
73
|
with self.getTestDir() as dirn2:
|
|
74
|
-
with self.getLoggerStream('synapse.tools.backup') as stream:
|
|
74
|
+
with self.getLoggerStream('synapse.tools.service.backup') as stream:
|
|
75
75
|
s_backup.txnbackup({}, core.dirn, dirn2)
|
|
76
76
|
stream.seek(0)
|
|
77
77
|
self.isin('not copied', stream.read())
|
|
@@ -90,7 +90,7 @@ class BackupTest(s_t_utils.SynTest):
|
|
|
90
90
|
'--skipdirs', '**/nodeedits.lmdb', './axon',
|
|
91
91
|
)
|
|
92
92
|
|
|
93
|
-
self.eq(0, s_backup.main(argv))
|
|
93
|
+
self.eq(0, await s_backup.main(argv))
|
|
94
94
|
|
|
95
95
|
skipdirs = {'tmp', 'nodeedits.lmdb', 'axon'}
|
|
96
96
|
fpset = self.compare_dirs(core.dirn, dirn2, skipfns={'lock.mdb'}, skipdirs=skipdirs)
|
|
@@ -110,7 +110,7 @@ class BackupTest(s_t_utils.SynTest):
|
|
|
110
110
|
'--skipdirs', 'layers/*',
|
|
111
111
|
)
|
|
112
112
|
|
|
113
|
-
self.eq(0, s_backup.main(argv))
|
|
113
|
+
self.eq(0, await s_backup.main(argv))
|
|
114
114
|
|
|
115
115
|
fpset = self.compare_dirs(core.dirn, dirn2, skipfns={'lock.mdb'}, skipdirs={'tmp', layriden})
|
|
116
116
|
|
|
@@ -4,7 +4,7 @@ import synapse.common as s_common
|
|
|
4
4
|
|
|
5
5
|
import synapse.lib.output as s_output
|
|
6
6
|
import synapse.tests.utils as s_test
|
|
7
|
-
import synapse.tools.livebackup as s_t_livebackup
|
|
7
|
+
import synapse.tools.service.livebackup as s_t_livebackup
|
|
8
8
|
|
|
9
9
|
class LivebackupTest(s_test.SynTest):
|
|
10
10
|
|
|
@@ -16,7 +16,7 @@ import synapse.telepath as s_telepath
|
|
|
16
16
|
import synapse.lib.coro as s_coro
|
|
17
17
|
import synapse.lib.output as s_output
|
|
18
18
|
import synapse.lib.msgpack as s_msgpack
|
|
19
|
-
import synapse.tools.storm as s_t_storm
|
|
19
|
+
import synapse.tools.storm._cli as s_t_storm
|
|
20
20
|
|
|
21
21
|
def run_cli_till_print(url, evt1):
|
|
22
22
|
'''
|
|
@@ -2,14 +2,15 @@ import io
|
|
|
2
2
|
import os
|
|
3
3
|
import sys
|
|
4
4
|
import json
|
|
5
|
+
import unittest.mock as mock
|
|
5
6
|
|
|
6
7
|
import synapse.exc as s_exc
|
|
7
8
|
import synapse.common as s_common
|
|
8
9
|
|
|
9
10
|
import synapse.tests.utils as s_t_utils
|
|
10
11
|
|
|
11
|
-
import synapse.tools.
|
|
12
|
-
import synapse.tools.
|
|
12
|
+
import synapse.tools.storm.pkg.doc as s_t_gendocs
|
|
13
|
+
import synapse.tools.storm.pkg._pandoc_filter as s_t_pandoc_filter
|
|
13
14
|
|
|
14
15
|
class TestPkgBuildDocs(s_t_utils.SynTest):
|
|
15
16
|
|
|
@@ -18,7 +19,7 @@ class TestPkgBuildDocs(s_t_utils.SynTest):
|
|
|
18
19
|
self.skip('pandoc is not available')
|
|
19
20
|
super().setUp()
|
|
20
21
|
|
|
21
|
-
async def
|
|
22
|
+
async def test_storm_pkg_doc_base(self):
|
|
22
23
|
|
|
23
24
|
with self.getTestDir(mirror='testpkg_build_docs') as dirn:
|
|
24
25
|
testpkgfp = os.path.join(dirn, 'testpkg.yaml')
|
|
@@ -98,3 +99,11 @@ class TestPkgBuildDocs(s_t_utils.SynTest):
|
|
|
98
99
|
outp.expect('ERR: Error running filter')
|
|
99
100
|
finally:
|
|
100
101
|
s_t_gendocs.PANDOC_FILTER = oldv
|
|
102
|
+
|
|
103
|
+
# Pandoc is missing
|
|
104
|
+
def nopandoc(*args, **kwargs):
|
|
105
|
+
return 1
|
|
106
|
+
|
|
107
|
+
with mock.patch('os.system', new=nopandoc):
|
|
108
|
+
argv = [testpkgfp, ]
|
|
109
|
+
self.eq(1, await s_t_gendocs.main(argv))
|