synapse 2.177.0__py311-none-any.whl → 2.178.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 (44) hide show
  1. synapse/cortex.py +8 -4
  2. synapse/lib/aha.py +361 -88
  3. synapse/lib/base.py +27 -9
  4. synapse/lib/cell.py +167 -110
  5. synapse/lib/config.py +15 -11
  6. synapse/lib/coro.py +13 -0
  7. synapse/lib/layer.py +0 -5
  8. synapse/lib/link.py +1 -1
  9. synapse/lib/lmdbslab.py +3 -3
  10. synapse/lib/nexus.py +24 -12
  11. synapse/lib/stormlib/imap.py +6 -2
  12. synapse/lib/stormlib/smtp.py +12 -2
  13. synapse/lib/version.py +2 -2
  14. synapse/telepath.py +32 -17
  15. synapse/tests/files/aha/certs/cas/synapse.crt +28 -0
  16. synapse/tests/files/aha/certs/cas/synapse.key +51 -0
  17. synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +30 -0
  18. synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +51 -0
  19. synapse/tests/files/aha/certs/users/root@synapse.crt +29 -0
  20. synapse/tests/files/aha/certs/users/root@synapse.key +51 -0
  21. synapse/tests/files/rstorm/testsvc.py +1 -1
  22. synapse/tests/test_axon.py +1 -1
  23. synapse/tests/test_cortex.py +22 -59
  24. synapse/tests/test_lib_agenda.py +3 -3
  25. synapse/tests/test_lib_aha.py +336 -490
  26. synapse/tests/test_lib_base.py +20 -0
  27. synapse/tests/test_lib_cell.py +49 -22
  28. synapse/tests/test_lib_config.py +4 -3
  29. synapse/tests/test_lib_nexus.py +8 -0
  30. synapse/tests/test_lib_stormlib_aha.py +35 -35
  31. synapse/tests/test_lib_stormlib_cell.py +4 -15
  32. synapse/tests/test_lib_stormlib_imap.py +14 -3
  33. synapse/tests/test_lib_stormlib_smtp.py +51 -0
  34. synapse/tests/test_tools_aha.py +78 -101
  35. synapse/tests/utils.py +86 -120
  36. synapse/tools/aha/clone.py +50 -0
  37. synapse/tools/aha/enroll.py +2 -1
  38. synapse/tools/backup.py +2 -2
  39. synapse/tools/changelog.py +3 -1
  40. {synapse-2.177.0.dist-info → synapse-2.178.0.dist-info}/METADATA +48 -48
  41. {synapse-2.177.0.dist-info → synapse-2.178.0.dist-info}/RECORD +44 -37
  42. {synapse-2.177.0.dist-info → synapse-2.178.0.dist-info}/LICENSE +0 -0
  43. {synapse-2.177.0.dist-info → synapse-2.178.0.dist-info}/WHEEL +0 -0
  44. {synapse-2.177.0.dist-info → synapse-2.178.0.dist-info}/top_level.txt +0 -0
@@ -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')
@@ -54,40 +54,21 @@ class CortexTest(s_t_utils.SynTest):
54
54
  async def test_cortex_handoff(self):
55
55
 
56
56
  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}'
57
+ async with self.getTestAha() as aha:
71
58
 
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',)
59
+ conf = {'aha:provision': await aha.addAhaSvcProv('00.cortex')}
74
60
 
75
- provurl = await aha.addAhaSvcProv('00.cortex')
76
- coreconf = {'aha:provision': provurl, 'nexslog:en': False}
77
-
78
- async with self.getTestCore(dirn=coredir0, conf=coreconf) as core00:
61
+ async with self.getTestCore(conf=conf) as core00:
79
62
 
80
63
  with self.raises(s_exc.BadArg):
81
64
  await core00.handoff(core00.getLocalUrl())
82
65
 
83
66
  self.false((await core00.getCellInfo())['cell']['uplink'])
84
67
 
85
- provinfo = {'mirror': '00.cortex'}
86
- provurl = await aha.addAhaSvcProv('01.cortex', provinfo=provinfo)
87
-
88
68
  # provision with the new hostname and mirror config
89
- coreconf = {'aha:provision': provurl}
90
- async with self.getTestCore(dirn=coredir1, conf=coreconf) as core01:
69
+ provinfo = {'mirror': '00.cortex'}
70
+ conf = {'aha:provision': await aha.addAhaSvcProv('01.cortex', provinfo=provinfo)}
71
+ async with self.getTestCore(conf=conf) as core01:
91
72
 
92
73
  # test out connecting to the leader but having aha chose a mirror
93
74
  async with s_telepath.loadTeleCell(core01.dirn):
@@ -117,9 +98,9 @@ class CortexTest(s_t_utils.SynTest):
117
98
  self.true((await core00.getCellInfo())['cell']['uplink'])
118
99
  self.false((await core01.getCellInfo())['cell']['uplink'])
119
100
 
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'})
101
+ mods00 = s_common.yamlload(core00.dirn, 'cell.mods.yaml')
102
+ mods01 = s_common.yamlload(core01.dirn, 'cell.mods.yaml')
103
+ self.eq(mods00, {'mirror': 'aha://01.cortex.synapse'})
123
104
  self.eq(mods01, {'mirror': None})
124
105
 
125
106
  await core00.nodes('[inet:ipv4=5.5.5.5]')
@@ -129,12 +110,11 @@ class CortexTest(s_t_utils.SynTest):
129
110
  # This pops the mirror config out of the mods file we copied
130
111
  # from the backup.
131
112
  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:
113
+ conf = {'aha:provision': await aha.addAhaSvcProv('02.cortex', provinfo=provinfo)}
114
+ async with self.getTestCore(conf=conf) as core02:
135
115
  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')
116
+ self.eq(core02.conf.get('mirror'), 'aha://root@01.cortex...')
117
+ mods02 = s_common.yamlload(core02.dirn, 'cell.mods.yaml')
138
118
  self.eq(mods02, {})
139
119
  # The mirror writeback and change distribution works
140
120
  self.len(0, await core01.nodes('inet:ipv4=6.6.6.6'))
@@ -144,7 +124,7 @@ class CortexTest(s_t_utils.SynTest):
144
124
  self.len(1, await core01.nodes('inet:ipv4=6.6.6.6'))
145
125
  self.len(1, await core00.nodes('inet:ipv4=6.6.6.6'))
146
126
  # list mirrors
147
- exp = ['aha://00.cortex.newp', 'aha://02.cortex.newp']
127
+ exp = ['aha://00.cortex.synapse', 'aha://02.cortex.synapse']
148
128
  self.sorteq(exp, await core00.getMirrorUrls())
149
129
  self.sorteq(exp, await core01.getMirrorUrls())
150
130
  self.sorteq(exp, await core02.getMirrorUrls())
@@ -4433,10 +4413,7 @@ class CortexBasicTest(s_t_utils.SynTest):
4433
4413
  '''
4434
4414
  Everything still works when no nexus log is kept
4435
4415
  '''
4436
- conf = {'layer:lmdb:map_async': True,
4437
- 'nexslog:en': False,
4438
- 'layers:logedits': True,
4439
- }
4416
+ conf = {'nexslog:en': False, 'layers:logedits': True}
4440
4417
  async with self.getTestCore(conf=conf) as core:
4441
4418
  self.len(2, await core.nodes('[test:str=foo test:str=bar]'))
4442
4419
  self.len(2, await core.nodes('test:str'))
@@ -4445,10 +4422,7 @@ class CortexBasicTest(s_t_utils.SynTest):
4445
4422
  '''
4446
4423
  Everything still works when no layer log is kept
4447
4424
  '''
4448
- conf = {'layer:lmdb:map_async': True,
4449
- 'nexslog:en': True,
4450
- 'layers:logedits': False,
4451
- }
4425
+ conf = {'nexslog:en': True, 'layers:logedits': False}
4452
4426
  async with self.getTestCore(conf=conf) as core:
4453
4427
  self.len(2, await core.nodes('[test:str=foo test:str=bar]'))
4454
4428
  self.len(2, await core.nodes('test:str'))
@@ -4466,18 +4440,12 @@ class CortexBasicTest(s_t_utils.SynTest):
4466
4440
  '''
4467
4441
  Make sure settings make it down to the slab
4468
4442
  '''
4469
- conf = {
4470
- 'layer:lmdb:map_async': False,
4471
- 'layer:lmdb:max_replay_log': 500,
4472
- 'layers:lockmemory': True,
4473
- }
4443
+ conf = {'layers:lockmemory': True}
4474
4444
  async with self.getTestCore(conf=conf) as core:
4475
4445
  layr = core.getLayer()
4476
4446
  slab = layr.layrslab
4477
4447
 
4478
4448
  self.true(slab.lockmemory)
4479
- self.eq(500, slab.max_xactops_len)
4480
- self.true(500, slab.mapasync)
4481
4449
 
4482
4450
  async def test_feed_syn_nodes(self):
4483
4451
 
@@ -5376,11 +5344,6 @@ class CortexBasicTest(s_t_utils.SynTest):
5376
5344
 
5377
5345
  url = core00.getLocalUrl()
5378
5346
 
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
5347
  core01conf = {'mirror': url}
5385
5348
 
5386
5349
  async with self.getTestCore(dirn=path01, conf=core01conf) as core01:
@@ -7945,7 +7908,8 @@ class CortexBasicTest(s_t_utils.SynTest):
7945
7908
  await core.delHttpExtApi('notAGuid')
7946
7909
 
7947
7910
  async def test_cortex_query_offload(self):
7948
- async with self.getTestAhaProv() as aha:
7911
+
7912
+ async with self.getTestAha() as aha:
7949
7913
 
7950
7914
  async with await s_base.Base.anit() as base:
7951
7915
 
@@ -7968,11 +7932,11 @@ class CortexBasicTest(s_t_utils.SynTest):
7968
7932
 
7969
7933
  msgs = await core00.stormlist('aha.pool.add pool00...')
7970
7934
  self.stormHasNoWarnErr(msgs)
7971
- self.stormIsInPrint('Created AHA service pool: pool00.loop.vertex.link', msgs)
7935
+ self.stormIsInPrint('Created AHA service pool: pool00.synapse', msgs)
7972
7936
 
7973
7937
  msgs = await core00.stormlist('aha.pool.svc.add pool00... 01.core...')
7974
7938
  self.stormHasNoWarnErr(msgs)
7975
- self.stormIsInPrint('AHA service (01.core...) added to service pool (pool00.loop.vertex.link)', msgs)
7939
+ self.stormIsInPrint('AHA service (01.core...) added to service pool (pool00.synapse)', msgs)
7976
7940
 
7977
7941
  msgs = await core00.stormlist('cortex.storm.pool.set newp')
7978
7942
  self.stormIsInErr(':// not found in [newp]', msgs)
@@ -8120,7 +8084,7 @@ class CortexBasicTest(s_t_utils.SynTest):
8120
8084
  waiter = core01.stormpool.waiter(1, 'svc:del')
8121
8085
  msgs = await core01.stormlist('aha.pool.svc.del pool00... 01.core...', opts={'mirror': False})
8122
8086
  self.stormHasNoWarnErr(msgs)
8123
- self.stormIsInPrint('AHA service (01.core.loop.vertex.link) removed from service pool (pool00.loop.vertex.link)', msgs)
8087
+ self.stormIsInPrint('AHA service (01.core.synapse) removed from service pool (pool00.synapse)', msgs)
8124
8088
 
8125
8089
  # TODO: this wait should not return None
8126
8090
  await waiter.wait(timeout=3)
@@ -8210,7 +8174,6 @@ class CortexBasicTest(s_t_utils.SynTest):
8210
8174
  return ret
8211
8175
 
8212
8176
  conf = {
8213
- 'layer:lmdb:map_async': True,
8214
8177
  'nexslog:en': True,
8215
8178
  'layers:logedits': True,
8216
8179
  }
@@ -857,7 +857,7 @@ class AgendaTest(s_t_utils.SynTest):
857
857
 
858
858
  async def test_cron_kill_pool(self):
859
859
 
860
- async with self.getTestAhaProv() as aha:
860
+ async with self.getTestAha() as aha:
861
861
 
862
862
  import synapse.cortex as s_cortex
863
863
  import synapse.lib.base as s_base
@@ -879,11 +879,11 @@ class AgendaTest(s_t_utils.SynTest):
879
879
 
880
880
  msgs = await core00.stormlist('aha.pool.add pool00...')
881
881
  self.stormHasNoWarnErr(msgs)
882
- self.stormIsInPrint('Created AHA service pool: pool00.loop.vertex.link', msgs)
882
+ self.stormIsInPrint('Created AHA service pool: pool00.synapse', msgs)
883
883
 
884
884
  msgs = await core00.stormlist('aha.pool.svc.add pool00... 01.core...')
885
885
  self.stormHasNoWarnErr(msgs)
886
- self.stormIsInPrint('AHA service (01.core...) added to service pool (pool00.loop.vertex.link)', msgs)
886
+ self.stormIsInPrint('AHA service (01.core...) added to service pool (pool00.synapse)', msgs)
887
887
 
888
888
  msgs = await core00.stormlist('cortex.storm.pool.set --connection-timeout 1 --sync-timeout 1 aha://pool00...')
889
889
  self.stormHasNoWarnErr(msgs)