synapse 2.177.0__py311-none-any.whl → 2.179.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.

Files changed (73) hide show
  1. synapse/cortex.py +170 -31
  2. synapse/datamodel.py +47 -1
  3. synapse/exc.py +1 -0
  4. synapse/lib/aha.py +362 -88
  5. synapse/lib/ast.py +26 -22
  6. synapse/lib/base.py +39 -12
  7. synapse/lib/cell.py +315 -119
  8. synapse/lib/config.py +15 -11
  9. synapse/lib/coro.py +27 -0
  10. synapse/lib/drive.py +551 -0
  11. synapse/lib/layer.py +0 -5
  12. synapse/lib/link.py +1 -1
  13. synapse/lib/lmdbslab.py +3 -3
  14. synapse/lib/nexus.py +24 -12
  15. synapse/lib/schemas.py +39 -0
  16. synapse/lib/snap.py +17 -7
  17. synapse/lib/storm.py +3 -1
  18. synapse/lib/stormhttp.py +1 -0
  19. synapse/lib/stormlib/imap.py +6 -2
  20. synapse/lib/stormlib/modelext.py +29 -3
  21. synapse/lib/stormlib/smtp.py +12 -2
  22. synapse/lib/stormlib/stix.py +40 -17
  23. synapse/lib/stormlib/vault.py +2 -2
  24. synapse/lib/stormtypes.py +1 -1
  25. synapse/lib/types.py +9 -0
  26. synapse/lib/version.py +2 -2
  27. synapse/lookup/pe.py +303 -38
  28. synapse/models/dns.py +24 -1
  29. synapse/models/geospace.py +4 -1
  30. synapse/models/infotech.py +26 -1
  31. synapse/telepath.py +32 -17
  32. synapse/tests/files/aha/certs/cas/synapse.crt +28 -0
  33. synapse/tests/files/aha/certs/cas/synapse.key +51 -0
  34. synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +30 -0
  35. synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +51 -0
  36. synapse/tests/files/aha/certs/users/root@synapse.crt +29 -0
  37. synapse/tests/files/aha/certs/users/root@synapse.key +51 -0
  38. synapse/tests/files/rstorm/testsvc.py +1 -1
  39. synapse/tests/test_axon.py +1 -1
  40. synapse/tests/test_cortex.py +67 -60
  41. synapse/tests/test_lib_agenda.py +3 -3
  42. synapse/tests/test_lib_aha.py +353 -490
  43. synapse/tests/test_lib_base.py +20 -0
  44. synapse/tests/test_lib_cell.py +273 -22
  45. synapse/tests/test_lib_config.py +4 -3
  46. synapse/tests/test_lib_coro.py +12 -0
  47. synapse/tests/test_lib_nexus.py +8 -0
  48. synapse/tests/test_lib_stormhttp.py +40 -0
  49. synapse/tests/test_lib_stormlib_aha.py +35 -35
  50. synapse/tests/test_lib_stormlib_cell.py +4 -15
  51. synapse/tests/test_lib_stormlib_imap.py +14 -3
  52. synapse/tests/test_lib_stormlib_modelext.py +55 -3
  53. synapse/tests/test_lib_stormlib_smtp.py +51 -0
  54. synapse/tests/test_lib_stormlib_stix.py +15 -0
  55. synapse/tests/test_lib_stormlib_vault.py +11 -1
  56. synapse/tests/test_lib_stormtypes.py +5 -0
  57. synapse/tests/test_lib_types.py +9 -0
  58. synapse/tests/test_model_dns.py +8 -0
  59. synapse/tests/test_model_geospace.py +3 -1
  60. synapse/tests/test_model_infotech.py +47 -0
  61. synapse/tests/test_model_syn.py +11 -0
  62. synapse/tests/test_tools_aha.py +78 -101
  63. synapse/tests/test_utils_stormcov.py +1 -1
  64. synapse/tests/utils.py +86 -120
  65. synapse/tools/aha/clone.py +50 -0
  66. synapse/tools/aha/enroll.py +2 -1
  67. synapse/tools/backup.py +2 -2
  68. synapse/tools/changelog.py +31 -1
  69. {synapse-2.177.0.dist-info → synapse-2.179.0.dist-info}/METADATA +48 -48
  70. {synapse-2.177.0.dist-info → synapse-2.179.0.dist-info}/RECORD +73 -65
  71. {synapse-2.177.0.dist-info → synapse-2.179.0.dist-info}/WHEEL +1 -1
  72. {synapse-2.177.0.dist-info → synapse-2.179.0.dist-info}/LICENSE +0 -0
  73. {synapse-2.177.0.dist-info → synapse-2.179.0.dist-info}/top_level.txt +0 -0
synapse/telepath.py CHANGED
@@ -997,12 +997,6 @@ class ClientV2(s_base.Base):
997
997
 
998
998
  await s_base.Base.__anit__(self)
999
999
 
1000
- # some ugly stuff in order to be backward compatible...
1001
- if not isinstance(urlinfo, (list, tuple)):
1002
- urlinfo = (urlinfo,)
1003
-
1004
- urlinfo = [chopurl(u) for u in urlinfo]
1005
-
1006
1000
  self.aha = None
1007
1001
 
1008
1002
  self.clients = {}
@@ -1012,9 +1006,9 @@ class ClientV2(s_base.Base):
1012
1006
 
1013
1007
  self.onlink = onlink
1014
1008
 
1015
- self.booturls = urlinfo
1016
1009
  self.bootdeque = collections.deque()
1017
- self.bootdeque.extend(self.booturls)
1010
+
1011
+ self.setBootUrls(urlinfo)
1018
1012
 
1019
1013
  self.ready = asyncio.Event()
1020
1014
  self.deque = collections.deque()
@@ -1033,6 +1027,16 @@ class ClientV2(s_base.Base):
1033
1027
 
1034
1028
  self.schedCoro(self._initBootProxy())
1035
1029
 
1030
+ def setBootUrls(self, urlinfo):
1031
+
1032
+ if not isinstance(urlinfo, (list, tuple)):
1033
+ urlinfo = (urlinfo,)
1034
+
1035
+ self.booturls = [chopurl(u) for u in urlinfo]
1036
+
1037
+ self.bootdeque.clear()
1038
+ self.bootdeque.extend(self.booturls)
1039
+
1036
1040
  def getNextBootUrl(self):
1037
1041
  if not self.bootdeque:
1038
1042
  self.bootdeque.extend(self.booturls)
@@ -1063,13 +1067,14 @@ class ClientV2(s_base.Base):
1063
1067
 
1064
1068
  # regular telepath client behavior
1065
1069
  proxy = await openinfo(urlinfo)
1066
- await self._onPoolLink(proxy, urlinfo)
1067
1070
 
1068
1071
  async def reconnect():
1069
1072
  if not self.isfini:
1070
1073
  self.schedCoro(self._initBootProxy())
1071
1074
 
1072
1075
  proxy.onfini(reconnect)
1076
+
1077
+ await self._onPoolLink(proxy, urlinfo)
1073
1078
  return
1074
1079
 
1075
1080
  except Exception as e:
@@ -1210,20 +1215,16 @@ class Client(s_base.Base):
1210
1215
 
1211
1216
  await s_base.Base.__anit__(self)
1212
1217
 
1213
- if isinstance(urlinfo, (str, dict)):
1214
- urlinfo = (urlinfo,)
1215
-
1216
- urlinfo = [chopurl(u) for u in urlinfo]
1217
-
1218
1218
  if conf is None:
1219
1219
  conf = {}
1220
1220
 
1221
1221
  if opts is None:
1222
1222
  opts = {}
1223
1223
 
1224
- self._t_urlinfo = urlinfo
1225
1224
  self._t_urldeque = collections.deque()
1226
1225
 
1226
+ self.setBootUrls(urlinfo)
1227
+
1227
1228
  self._t_opts = opts
1228
1229
  self._t_conf = conf
1229
1230
 
@@ -1247,6 +1248,16 @@ class Client(s_base.Base):
1247
1248
 
1248
1249
  await self._fireLinkLoop()
1249
1250
 
1251
+ def setBootUrls(self, urlinfo):
1252
+
1253
+ if not isinstance(urlinfo, (list, tuple)):
1254
+ urlinfo = (urlinfo,)
1255
+
1256
+ self._t_urlinfo = [chopurl(u) for u in urlinfo]
1257
+
1258
+ self._t_urldeque.clear()
1259
+ self._t_urldeque.extend(self._t_urlinfo)
1260
+
1250
1261
  def _getNextUrl(self):
1251
1262
  if not self._t_urldeque:
1252
1263
  self._t_urldeque.extend(self._t_urlinfo)
@@ -1263,6 +1274,7 @@ class Client(s_base.Base):
1263
1274
  async def _fireLinkLoop(self):
1264
1275
  self._t_proxy = None
1265
1276
  self._t_ready.clear()
1277
+ await self.fire('tele:client:linkloop')
1266
1278
  self.schedCoro(self._teleLinkLoop())
1267
1279
 
1268
1280
  async def _teleLinkLoop(self):
@@ -1281,7 +1293,7 @@ class Client(s_base.Base):
1281
1293
  now = time.monotonic()
1282
1294
  if now > lastlog + 60.0: # don't logspam the disconnect message more than 1/min
1283
1295
  url = s_urlhelp.sanitizeUrl(zipurl(urlinfo))
1284
- logger.exception(f'telepath client ({url}) encountered an error: {e}')
1296
+ logger.warning(f'telepath client ({url}) encountered an error: {e}', exc_info=e)
1285
1297
  lastlog = now
1286
1298
  await self.waitfini(timeout=self._t_conf.get('retrysleep', 0.2))
1287
1299
 
@@ -1543,7 +1555,7 @@ async def openinfo(info):
1543
1555
  path, name = path.split(':')
1544
1556
  link = await s_link.unixconnect(path)
1545
1557
 
1546
- else:
1558
+ elif scheme in ('tcp', 'ssl'):
1547
1559
 
1548
1560
  path = info.get('path')
1549
1561
  name = info.get('name', path[1:])
@@ -1592,6 +1604,9 @@ async def openinfo(info):
1592
1604
 
1593
1605
  link = await s_link.connect(host, port, linkinfo=linkinfo)
1594
1606
 
1607
+ else:
1608
+ raise s_exc.BadUrl(mesg=f'Invalid URL scheme: {scheme}')
1609
+
1595
1610
  prox = await Proxy.anit(link, name)
1596
1611
  prox.onfini(link)
1597
1612
 
@@ -0,0 +1,28 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIEvzCCAqegAwIBAgIRAIdu+9lQ3Z2nydXmG1/p2BAwDQYJKoZIhvcNAQELBQAw
3
+ EjEQMA4GA1UEAwwHc3luYXBzZTAeFw0yNDA3MDgxMzAxNDBaFw0zNDA3MDYxMzAx
4
+ NDBaMBIxEDAOBgNVBAMMB3N5bmFwc2UwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
5
+ ggIKAoICAQDQ8AFyEbiRUsKdRFlm6WS5X2cp9339H3A0qsXLSRYsCZGc6oJtLX0/
6
+ 52xPGCrKlXde2jxHU8DMDiEzQ3iVJjzDbJWXgAoNVfwrNVS1zjlSZyExVfRrCbzo
7
+ XpGeuNAIY/WCpsbSxM7mCVPuEZtbX2rY4XmdyBWUpd4dqoDDIK2wU329daJEVNpd
8
+ y9wdbZ2lLNPmKGS6Kb7Th3mio+sHpHEi6gcfYzH+mOFdWFVAh602OFMUp+fLq3nG
9
+ MyFHHLDC2vvPqVWf+T7Z1E8k85Zqw43TSUTwdlG6u8egC6soKQsEze6oi4fMAt0l
10
+ a4bgMMWDMIKJuQ4f6THEq5vKwPj0E78aT6C4C7qSKeHZSf8IOj7l3ukdgl7Sbrga
11
+ JCjpL1V5+EB8LTpxjjK+TDbXUwU/eKIJp/I2i7dd//nMRs9Wr2k6aIvAt9PbopA2
12
+ kG4tCS93TmzCza3TCtc4BruFHz92ToLfxvgcNq6N/BboDVjDIeAKtrWpe9VHPEIy
13
+ Eh23tAPcgPXmlOBZj4DKJ5YoGNbwYQaFDrLIHh1JzRGQbAh00JuaqDPH3kb1Q6sm
14
+ VjUx4QpX34qj231Bpfgu2eZX2kiLvtW+qPPfxWY2RCms1Yb+GMeKAE+9E8rak8Nq
15
+ oPvdqgdUUbneW1PRgBaalu7xDALH/DQm5R+baly5PEYi8gk/vsyaQwIDAQABoxAw
16
+ DjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQB4Asv4TuAgF2vcOdxl
17
+ mjPBwYueBDJrbbP2I6qjE9laO0xMyIN4Dp8ExbJyBKl/RlkSA/1cvJ7EyhlJnY1S
18
+ Dps8EgKS5lQw0D/bFg8JQNgNec6jCxjfytRgYkhoikabz8HR2gmUIb0On6X+dvht
19
+ L3Hv1/41Q4+Tig1JPRxP6C/hHcfLnCvmIsrMgKRbTGzb1AKfP8N93eZqDcA0nZo5
20
+ Q0p+AdLQ6ilnh8895wQexoKs7mWImEzxUdTMZlf/YSQ9Nct3OKxtYg0IOk1KW9Fe
21
+ sMstTDHg+/NJr2297vCmeNydYRGOTidLefebaNq0YnTm9cI3kPi/9etfUGeWHbrW
22
+ aXXJCQ02uiWjrL9ykiifB6f0nve0m4ENWI11FypZ3nReMNDFIYSQfwlat6E/KTQ/
23
+ 5ih/NEgbY5KnMcUJqEKCBftfvfZyueE0frHClLZNi+YQNXD3ui6lmXzn8vmvaHeR
24
+ dDfCifQ5TGHOlNmk9LMOv1Szx9CNswUwKDpSLklFp2lzI0JHTXm+NYCqeE+3cnrN
25
+ vbsq55txmImj/Ekos5/kuv3Z2myJsDd2xT2eZ/QEkb7FOeO5RPrya3yXoSGNlkgs
26
+ XG8vvCDNTeD6BJPWHjbu0ksZ6nxBFRsEmA2Ni8Y9ROUXUuJtwX+sYqHfAAVMLbiR
27
+ wSujqDSopMoJSGr0hUT9kjbUSg==
28
+ -----END CERTIFICATE-----
@@ -0,0 +1,51 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ 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
51
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,30 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIFJTCCAw2gAwIBAgIRANebBnGvTlRt7CIGrH6WJagwDQYJKoZIhvcNAQELBQAw
3
+ EjEQMA4GA1UEAwwHc3luYXBzZTAeFw0yNDA3MDgxMzAxNDFaFw0zNDA3MDYxMzAx
4
+ NDFaMCIxIDAeBgNVBAMMFzAwLmFoYS5sb29wLnZlcnRleC5saW5rMIICIjANBgkq
5
+ hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvXp4PAfmdzu5t6ADh/l3iVTRYbpPVnQz
6
+ 7bySmQlhTtNQFRDOHgEyfttpd0zTWoQZBiQr9H4ZjXE5W3XHdptHcPE718rzBcP3
7
+ G+DDIbp5nbkccUb7lvMVt39/4n9lK64K5YdnRop4SGsnps2WJvrLv/7qhgXPedjF
8
+ Yh/E7iR54C+wns4aKvD2gZV9vYudu6PcB3S/b/r0Vqykpsy6dFL1bKTvJCPyD4b3
9
+ ZAXpHr8Cws9Chae8DPt3PkUFCMnRl4opG7i8w/aJABRiXS9whccP1H0uGMvRF69P
10
+ E1eSjXytwFcBUOI3rTwnAWBOfQ1zwRAQ6nCQsjH/CKZffrKro6M7kT+rfE0EiDPG
11
+ kqf0owa+av4Rv2D0qRXhOBsq/jWgCtznk4286JweaRW8Omk+ViG5JO0Pxczp0bpg
12
+ qiExqpJ/O8HTAEKbI9MB2+qRcUVnJanJ2KXmPUWdTtJQuEtCoLfDExudzOJgMwb8
13
+ i2cmXTeVwas2QKA5pD+OOlGKciQc0T2xPIE/Gm/3CWRBs1wj9fqJ85NG9zbtCPpT
14
+ 7yuruYyiuRJTAo9s8D4AGaoeQLhQ8JE4Xkfol9Pva/UTIaHoKux6aHYsXBUbEeZb
15
+ RqO3BGViV86Po+1+t2lBHHfD/s/YTnT7cjm+dYQdS9GqrwzZr7lp538lFkmFeX7t
16
+ wTZakkXWIGMCAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgZAMAsGA1UdDwQEAwIF
17
+ oDATBgNVHSUEDDAKBggrBgEFBQcDATAJBgNVHRMEAjAAMCIGA1UdEQQbMBmCFzAw
18
+ LmFoYS5sb29wLnZlcnRleC5saW5rMA0GCSqGSIb3DQEBCwUAA4ICAQDFSKMqM/A9
19
+ maLx5zMO917Ysw1odf1DsemYeDjoZPRMSC/PVIjJnaZqB7UH3/mUxX0uqk9NMjLD
20
+ aq0u8vJqNnjxBzFWfcb5vcH05WC1lBIJj9Bd/tR+0jXL31COqZ5usljv/uL74hII
21
+ MH9qiRqDE7eQq7Mcxz6qbXwGGqY5570iOBfvLConR8zCy0WEuDf3yB8/8XKaDsxA
22
+ 6TiaY35OZgR6yNA7q+1rpBUGCsX14mJMOVWtIaY5V2F4RHc+7HzdkW0o8XDHk4lS
23
+ Tq/SAfjFsGt1bDLgmJ3HtI+lUBZtW+uKLZVHNnV4v7rAebu4TLUtbZXl7eeUBWpF
24
+ mSP2rIs0RbR7Y3jAXg4WMu4fIeZkP/jUvPpgUfkiF5jevwc0GvG7h8u+6ybg9nrS
25
+ 09vlTXc08CRgtp2eYTnsSR7aJCr0kYo7ZTWbeo96gf/vJIVJcNnRZnvvfl1vyrZT
26
+ QK13S6TzUbF1oAVHMH5nSun200D2CSzyjOYDnGpTGIdfbamI2KsphyUS/sVCETDP
27
+ f8fC01rRBpjFc7w+ubYuRyiXEJpzbRJe2CWQZPxq0CZ7Yifgz7hIot5/F1EuNE5z
28
+ elh6vtjcudEoQjOgUI4HABQe9nI6TUDfAKPlo/ffB4iHMBmC49WaCdu/6gQs0s7j
29
+ KjhaMLwW7zaGUYFkdR1vcn3qeFnAM9cmBQ==
30
+ -----END CERTIFICATE-----
@@ -0,0 +1,51 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ 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
51
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,29 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIE9jCCAt6gAwIBAgIRAJGsran8ISfoaXuIMN7vAIAwDQYJKoZIhvcNAQELBQAw
3
+ EjEQMA4GA1UEAwwHc3luYXBzZTAeFw0yNDA3MDgxMzAxNDFaFw0zNDA3MDYxMzAx
4
+ NDFaMBcxFTATBgNVBAMMDHJvb3RAc3luYXBzZTCCAiIwDQYJKoZIhvcNAQEBBQAD
5
+ ggIPADCCAgoCggIBAL42zY6E1q0RJIr9j+T6bPb7/f0RbwLJ2hza0/4qjAisNGQs
6
+ t1WkWvpNR/l0+JHmXw78KQ1k8/WP+niIXZmakZdrMNQOf+BBY+MoNqFHtA1KoP0p
7
+ b7f0hyQyRprYihSllA3uFZEagaylx9z5TliwclnCvB77whRZFU8f5PXH+wibWFvJ
8
+ n4ycdFVLg93Rb6IiliMytc3CA4TEemDiL5410nZNipWGcYRmTUruWZCADYLSh6D+
9
+ VJvY/sfoteBX1cvhCdL6DORKaxZnXsPthzkDPJYgLn+1E9hJ4vhuqgXIJ7VjqrPZ
10
+ 0wJtciZYb9YcJM6OqiWavW8AeLOEySEKO4NEGU0JduFpu4/9xnfhv/Atdv9YwK6j
11
+ mJmxl/bV9dPhjszNG/D+RbCeBdhWebL1zcnt8indigLxSI9UgulBnjCJg4xHrJPO
12
+ 9tiXPi4ipFL4tIpiW4NYCWnJXAkCNgPBFGeFaEmzAxoiSh/iBIMfUgfMV26HzOUS
13
+ 2MAzq04/2nH4MjsZYtIKNx8sNZvC3QnDVH1ncGC8JcbSVZPH2jBmMRJJjhxDT7wM
14
+ JbgJJomJ1mIP3a03FJpLTCxP8IbBTmq3TuOpqmhmiVHjBunACbNf6l6fhOJG3pMk
15
+ +VpWtIUiKyNMXvjxgM5bKi6sx1ivInxmPk0f2BPBTrYeLFCTj711A4XuHxSzAgMB
16
+ AAGjQjBAMBEGCWCGSAGG+EIBAQQEAwIHgDALBgNVHQ8EBAMCB4AwEwYDVR0lBAww
17
+ CgYIKwYBBQUHAwIwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAgEANZtBnHeo
18
+ yatrA/s2BzOU0k4WGEUaFMrCi6cDyVAWQ6mhcQHqJ2C8Yi2xCd5Si2BEC0hiyJ4K
19
+ wOpi/bkoyAh67bX/RchzqLTwfUYyM17ZH5yiqbPufjpJQAitAVaywCI0jXDpaYlM
20
+ o2u6b3u8eUKhlfHSIzTJn1sVc0p0Ql0okhrHwwUfwN1lwkVDR/e+jF5GKAwjnkNc
21
+ yu3yYYz0oHAg6ZOcQaaFASX7oBBpYnHfDvou3uoJTGfKevRgI5NwQDRG3gipudSi
22
+ vIwWR2iyBjTZaICChmaBX7zVHLwOFN0LRv73tgEBcJwZ4oCvE64POpAL2pO+U52d
23
+ fIFlIOPSuILtTTtBRvfTuIjEvVCF44g4JkPgPpaN9yPcdAOnBQkP7RkrMlQ1pKZ3
24
+ S6uZh9Ar0jNx59ijYq2Y8o/yyEVveXIKbp3HLogfcLeEWUqjL3syP72WkfBWRWx9
25
+ QELaYrFFxgtT4bKZSmyK4C4qwgSknm89Xp/JZFyKWAjYEmu9BAHDI29IBVbLzQAS
26
+ ezrtG2CmyhejnGhwSMYNmv+dC+ahSeP5FQiixrrxaTJ0s3Ax5mvbQQqv9lBvkn9Z
27
+ WpVNN5MHdHEWnvbK4kfFnVQIBfv3lvPl0C0vk3VSWZexXIOjNtkUK6/ALHV2n5AA
28
+ BEJmC3OPyT3eNrlr7gCxuMoV6uDMeTCRpTY=
29
+ -----END CERTIFICATE-----
@@ -0,0 +1,51 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ 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
51
+ -----END RSA PRIVATE KEY-----
@@ -37,7 +37,7 @@ class Testsvc(s_cell.Cell):
37
37
 
38
38
  async def __anit__(self, dirn, conf):
39
39
  await s_cell.Cell.__anit__(self, dirn, conf=conf)
40
- self.secret = self.conf.reqConfValu('secret')
40
+ self.secret = self.conf.req('secret')
41
41
 
42
42
  async def test(self):
43
43
  return self.secret
@@ -1136,7 +1136,7 @@ bar baz",vv
1136
1136
 
1137
1137
  async def test_axon_mirror(self):
1138
1138
 
1139
- async with self.getTestAhaProv() as aha:
1139
+ async with self.getTestAha() as aha:
1140
1140
 
1141
1141
  axon00dirn = s_common.gendir(aha.dirn, 'tmp', 'axon00')
1142
1142
  axon01dirn = s_common.gendir(aha.dirn, 'tmp', 'axon01')
@@ -41,6 +41,50 @@ class CortexTest(s_t_utils.SynTest):
41
41
  '''
42
42
  The tests that should be run with different types of layers
43
43
  '''
44
+ async def test_cortex_basics(self):
45
+
46
+ with self.getTestDir() as dirn:
47
+
48
+ async with self.getTestCore(dirn=dirn) as core:
49
+
50
+ with self.raises(s_exc.NoSuchProp):
51
+ await core.setPropLocked('newp', True)
52
+
53
+ with self.raises(s_exc.NoSuchUniv):
54
+ await core.setUnivLocked('newp', True)
55
+
56
+ with self.raises(s_exc.NoSuchTagProp):
57
+ await core.setTagPropLocked('newp', True)
58
+
59
+ await core.addTagProp('score', ('int', {}), {})
60
+
61
+ await core.setPropLocked('inet:ipv4:asn', True)
62
+ await core.setUnivLocked('.seen', True)
63
+ await core.setTagPropLocked('score', True)
64
+
65
+ with self.raises(s_exc.IsDeprLocked):
66
+ await core.nodes('[ inet:ipv4=1.2.3.4 :asn=99 ]')
67
+ with self.raises(s_exc.IsDeprLocked):
68
+ await core.nodes('[ inet:ipv4=1.2.3.4 .seen=now ]')
69
+ with self.raises(s_exc.IsDeprLocked):
70
+ await core.nodes('[ inet:ipv4=1.2.3.4 +#foo:score=10 ]')
71
+
72
+ # test persistence...
73
+ async with self.getTestCore(dirn=dirn) as core:
74
+
75
+ with self.raises(s_exc.IsDeprLocked):
76
+ await core.nodes('[ inet:ipv4=1.2.3.4 :asn=99 ]')
77
+ with self.raises(s_exc.IsDeprLocked):
78
+ await core.nodes('[ inet:ipv4=1.2.3.4 .seen=now ]')
79
+ with self.raises(s_exc.IsDeprLocked):
80
+ await core.nodes('[ inet:ipv4=1.2.3.4 +#foo:score=10 ]')
81
+
82
+ await core.setPropLocked('inet:ipv4:asn', False)
83
+ await core.setUnivLocked('.seen', False)
84
+ await core.setTagPropLocked('score', False)
85
+
86
+ await core.nodes('[ inet:ipv4=1.2.3.4 :asn=99 .seen=now +#foo:score=10 ]')
87
+
44
88
  async def test_cortex_cellguid(self):
45
89
  iden = s_common.guid()
46
90
  conf = {'cell:guid': iden}
@@ -54,40 +98,21 @@ class CortexTest(s_t_utils.SynTest):
54
98
  async def test_cortex_handoff(self):
55
99
 
56
100
  with self.getTestDir() as dirn:
57
- ahadir = s_common.genpath(dirn, 'aha00')
58
- coredir0 = s_common.genpath(dirn, 'core00')
59
- coredir1 = s_common.genpath(dirn, 'core01')
60
- coredir2 = s_common.genpath(dirn, 'core02',)
61
-
62
- conf = {
63
- 'aha:name': 'aha',
64
- 'aha:network': 'newp',
65
- 'provision:listen': 'tcp://127.0.0.1:0',
66
- }
67
- async with self.getTestAha(dirn=ahadir, conf=conf) as aha:
68
-
69
- provaddr, provport = aha.provdmon.addr
70
- aha.conf['provision:listen'] = f'tcp://127.0.0.1:{provport}'
71
-
72
- ahahost, ahaport = await aha.dmon.listen('ssl://127.0.0.1:0?hostname=aha.newp&ca=newp')
73
- aha.conf['aha:urls'] = (f'ssl://127.0.0.1:{ahaport}?hostname=aha.newp',)
101
+ async with self.getTestAha() as aha:
74
102
 
75
- provurl = await aha.addAhaSvcProv('00.cortex')
76
- coreconf = {'aha:provision': provurl, 'nexslog:en': False}
103
+ conf = {'aha:provision': await aha.addAhaSvcProv('00.cortex')}
77
104
 
78
- async with self.getTestCore(dirn=coredir0, conf=coreconf) as core00:
105
+ async with self.getTestCore(conf=conf) as core00:
79
106
 
80
107
  with self.raises(s_exc.BadArg):
81
108
  await core00.handoff(core00.getLocalUrl())
82
109
 
83
110
  self.false((await core00.getCellInfo())['cell']['uplink'])
84
111
 
85
- provinfo = {'mirror': '00.cortex'}
86
- provurl = await aha.addAhaSvcProv('01.cortex', provinfo=provinfo)
87
-
88
112
  # provision with the new hostname and mirror config
89
- coreconf = {'aha:provision': provurl}
90
- async with self.getTestCore(dirn=coredir1, conf=coreconf) as core01:
113
+ provinfo = {'mirror': '00.cortex'}
114
+ conf = {'aha:provision': await aha.addAhaSvcProv('01.cortex', provinfo=provinfo)}
115
+ async with self.getTestCore(conf=conf) as core01:
91
116
 
92
117
  # test out connecting to the leader but having aha chose a mirror
93
118
  async with s_telepath.loadTeleCell(core01.dirn):
@@ -117,9 +142,9 @@ class CortexTest(s_t_utils.SynTest):
117
142
  self.true((await core00.getCellInfo())['cell']['uplink'])
118
143
  self.false((await core01.getCellInfo())['cell']['uplink'])
119
144
 
120
- mods00 = s_common.yamlload(coredir0, 'cell.mods.yaml')
121
- mods01 = s_common.yamlload(coredir1, 'cell.mods.yaml')
122
- self.eq(mods00, {'mirror': 'aha://01.cortex.newp'})
145
+ mods00 = s_common.yamlload(core00.dirn, 'cell.mods.yaml')
146
+ mods01 = s_common.yamlload(core01.dirn, 'cell.mods.yaml')
147
+ self.eq(mods00, {'mirror': 'aha://01.cortex.synapse'})
123
148
  self.eq(mods01, {'mirror': None})
124
149
 
125
150
  await core00.nodes('[inet:ipv4=5.5.5.5]')
@@ -129,12 +154,11 @@ class CortexTest(s_t_utils.SynTest):
129
154
  # This pops the mirror config out of the mods file we copied
130
155
  # from the backup.
131
156
  provinfo = {'mirror': '01.cortex'}
132
- provurl = await aha.addAhaSvcProv('02.cortex', provinfo=provinfo)
133
- coreconf = {'aha:provision': provurl}
134
- async with self.getTestCore(dirn=coredir2, conf=coreconf) as core02:
157
+ conf = {'aha:provision': await aha.addAhaSvcProv('02.cortex', provinfo=provinfo)}
158
+ async with self.getTestCore(conf=conf) as core02:
135
159
  self.false(core02.isactive)
136
- self.eq(core02.conf.get('mirror'), 'aha://root@01.cortex.newp')
137
- mods02 = s_common.yamlload(coredir2, 'cell.mods.yaml')
160
+ self.eq(core02.conf.get('mirror'), 'aha://root@01.cortex...')
161
+ mods02 = s_common.yamlload(core02.dirn, 'cell.mods.yaml')
138
162
  self.eq(mods02, {})
139
163
  # The mirror writeback and change distribution works
140
164
  self.len(0, await core01.nodes('inet:ipv4=6.6.6.6'))
@@ -144,7 +168,7 @@ class CortexTest(s_t_utils.SynTest):
144
168
  self.len(1, await core01.nodes('inet:ipv4=6.6.6.6'))
145
169
  self.len(1, await core00.nodes('inet:ipv4=6.6.6.6'))
146
170
  # list mirrors
147
- exp = ['aha://00.cortex.newp', 'aha://02.cortex.newp']
171
+ exp = ['aha://00.cortex.synapse', 'aha://02.cortex.synapse']
148
172
  self.sorteq(exp, await core00.getMirrorUrls())
149
173
  self.sorteq(exp, await core01.getMirrorUrls())
150
174
  self.sorteq(exp, await core02.getMirrorUrls())
@@ -1322,7 +1346,7 @@ class CortexTest(s_t_utils.SynTest):
1322
1346
 
1323
1347
  await core.delTagProp('score')
1324
1348
 
1325
- with self.raises(s_exc.NoSuchProp):
1349
+ with self.raises(s_exc.NoSuchTagProp):
1326
1350
  await core.delTagProp('score')
1327
1351
 
1328
1352
  modl = await core.getModelDict()
@@ -4433,10 +4457,7 @@ class CortexBasicTest(s_t_utils.SynTest):
4433
4457
  '''
4434
4458
  Everything still works when no nexus log is kept
4435
4459
  '''
4436
- conf = {'layer:lmdb:map_async': True,
4437
- 'nexslog:en': False,
4438
- 'layers:logedits': True,
4439
- }
4460
+ conf = {'nexslog:en': False, 'layers:logedits': True}
4440
4461
  async with self.getTestCore(conf=conf) as core:
4441
4462
  self.len(2, await core.nodes('[test:str=foo test:str=bar]'))
4442
4463
  self.len(2, await core.nodes('test:str'))
@@ -4445,10 +4466,7 @@ class CortexBasicTest(s_t_utils.SynTest):
4445
4466
  '''
4446
4467
  Everything still works when no layer log is kept
4447
4468
  '''
4448
- conf = {'layer:lmdb:map_async': True,
4449
- 'nexslog:en': True,
4450
- 'layers:logedits': False,
4451
- }
4469
+ conf = {'nexslog:en': True, 'layers:logedits': False}
4452
4470
  async with self.getTestCore(conf=conf) as core:
4453
4471
  self.len(2, await core.nodes('[test:str=foo test:str=bar]'))
4454
4472
  self.len(2, await core.nodes('test:str'))
@@ -4466,18 +4484,12 @@ class CortexBasicTest(s_t_utils.SynTest):
4466
4484
  '''
4467
4485
  Make sure settings make it down to the slab
4468
4486
  '''
4469
- conf = {
4470
- 'layer:lmdb:map_async': False,
4471
- 'layer:lmdb:max_replay_log': 500,
4472
- 'layers:lockmemory': True,
4473
- }
4487
+ conf = {'layers:lockmemory': True}
4474
4488
  async with self.getTestCore(conf=conf) as core:
4475
4489
  layr = core.getLayer()
4476
4490
  slab = layr.layrslab
4477
4491
 
4478
4492
  self.true(slab.lockmemory)
4479
- self.eq(500, slab.max_xactops_len)
4480
- self.true(500, slab.mapasync)
4481
4493
 
4482
4494
  async def test_feed_syn_nodes(self):
4483
4495
 
@@ -5376,11 +5388,6 @@ class CortexBasicTest(s_t_utils.SynTest):
5376
5388
 
5377
5389
  url = core00.getLocalUrl()
5378
5390
 
5379
- core01conf = {'nexslog:en': False, 'mirror': url}
5380
- with self.raises(s_exc.BadConfValu):
5381
- async with self.getTestCore(dirn=path01, conf=core01conf) as core01:
5382
- self.fail('Should never get here.')
5383
-
5384
5391
  core01conf = {'mirror': url}
5385
5392
 
5386
5393
  async with self.getTestCore(dirn=path01, conf=core01conf) as core01:
@@ -7945,7 +7952,8 @@ class CortexBasicTest(s_t_utils.SynTest):
7945
7952
  await core.delHttpExtApi('notAGuid')
7946
7953
 
7947
7954
  async def test_cortex_query_offload(self):
7948
- async with self.getTestAhaProv() as aha:
7955
+
7956
+ async with self.getTestAha() as aha:
7949
7957
 
7950
7958
  async with await s_base.Base.anit() as base:
7951
7959
 
@@ -7968,11 +7976,11 @@ class CortexBasicTest(s_t_utils.SynTest):
7968
7976
 
7969
7977
  msgs = await core00.stormlist('aha.pool.add pool00...')
7970
7978
  self.stormHasNoWarnErr(msgs)
7971
- self.stormIsInPrint('Created AHA service pool: pool00.loop.vertex.link', msgs)
7979
+ self.stormIsInPrint('Created AHA service pool: pool00.synapse', msgs)
7972
7980
 
7973
7981
  msgs = await core00.stormlist('aha.pool.svc.add pool00... 01.core...')
7974
7982
  self.stormHasNoWarnErr(msgs)
7975
- self.stormIsInPrint('AHA service (01.core...) added to service pool (pool00.loop.vertex.link)', msgs)
7983
+ self.stormIsInPrint('AHA service (01.core...) added to service pool (pool00.synapse)', msgs)
7976
7984
 
7977
7985
  msgs = await core00.stormlist('cortex.storm.pool.set newp')
7978
7986
  self.stormIsInErr(':// not found in [newp]', msgs)
@@ -8120,7 +8128,7 @@ class CortexBasicTest(s_t_utils.SynTest):
8120
8128
  waiter = core01.stormpool.waiter(1, 'svc:del')
8121
8129
  msgs = await core01.stormlist('aha.pool.svc.del pool00... 01.core...', opts={'mirror': False})
8122
8130
  self.stormHasNoWarnErr(msgs)
8123
- self.stormIsInPrint('AHA service (01.core.loop.vertex.link) removed from service pool (pool00.loop.vertex.link)', msgs)
8131
+ self.stormIsInPrint('AHA service (01.core.synapse) removed from service pool (pool00.synapse)', msgs)
8124
8132
 
8125
8133
  # TODO: this wait should not return None
8126
8134
  await waiter.wait(timeout=3)
@@ -8210,7 +8218,6 @@ class CortexBasicTest(s_t_utils.SynTest):
8210
8218
  return ret
8211
8219
 
8212
8220
  conf = {
8213
- 'layer:lmdb:map_async': True,
8214
8221
  'nexslog:en': True,
8215
8222
  'layers:logedits': True,
8216
8223
  }