synapse 2.186.0__py311-none-any.whl → 2.187.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 +2 -2
- synapse/lib/hive.py +1 -1
- synapse/lib/modelrev.py +771 -11
- synapse/lib/spooled.py +26 -3
- synapse/lib/storm.py +7 -0
- synapse/lib/stormlib/model.py +320 -250
- synapse/lib/stormtypes.py +36 -10
- synapse/lib/version.py +2 -2
- synapse/models/infotech.py +49 -22
- synapse/tests/test_lib_cell.py +1 -0
- synapse/tests/test_lib_modelrev.py +918 -379
- synapse/tests/test_lib_spooled.py +34 -0
- synapse/tests/test_lib_stormlib_model.py +0 -270
- synapse/tests/test_lib_stormtypes.py +11 -0
- synapse/tests/test_model_infotech.py +14 -11
- synapse/tools/changelog.py +11 -3
- {synapse-2.186.0.dist-info → synapse-2.187.0.dist-info}/METADATA +1 -1
- {synapse-2.186.0.dist-info → synapse-2.187.0.dist-info}/RECORD +21 -24
- synapse/assets/__init__.py +0 -35
- synapse/assets/storm/migrations/model-0.2.28.storm +0 -355
- synapse/tests/test_assets.py +0 -25
- {synapse-2.186.0.dist-info → synapse-2.187.0.dist-info}/LICENSE +0 -0
- {synapse-2.186.0.dist-info → synapse-2.187.0.dist-info}/WHEEL +0 -0
- {synapse-2.186.0.dist-info → synapse-2.187.0.dist-info}/top_level.txt +0 -0
|
@@ -28,11 +28,34 @@ class SpooledTest(s_test.SynTest):
|
|
|
28
28
|
|
|
29
29
|
await sset.add(10)
|
|
30
30
|
|
|
31
|
+
newset = await sset.copy()
|
|
32
|
+
self.len(1, newset)
|
|
33
|
+
self.true(10 in newset)
|
|
34
|
+
self.false(newset.fallback)
|
|
35
|
+
|
|
31
36
|
# Trigger fallback
|
|
32
37
|
await sset.add(20)
|
|
33
38
|
await sset.add(30)
|
|
34
39
|
await sset.add(None)
|
|
35
40
|
|
|
41
|
+
newset = await sset.copy()
|
|
42
|
+
self.true(10 in newset)
|
|
43
|
+
self.true(20 in newset)
|
|
44
|
+
self.true(30 in newset)
|
|
45
|
+
self.true(None in newset)
|
|
46
|
+
self.len(4, newset)
|
|
47
|
+
|
|
48
|
+
await newset.clear()
|
|
49
|
+
self.false(10 in newset)
|
|
50
|
+
self.false(20 in newset)
|
|
51
|
+
self.false(30 in newset)
|
|
52
|
+
self.false(None in newset)
|
|
53
|
+
self.len(0, newset)
|
|
54
|
+
|
|
55
|
+
self.true(os.path.isdir(newset.slab.path))
|
|
56
|
+
await newset.fini()
|
|
57
|
+
self.false(os.path.isdir(newset.slab.path))
|
|
58
|
+
|
|
36
59
|
self.len(4, sset)
|
|
37
60
|
|
|
38
61
|
await sset.add(20)
|
|
@@ -68,6 +91,17 @@ class SpooledTest(s_test.SynTest):
|
|
|
68
91
|
self.true(os.path.isdir(sset.slab.path))
|
|
69
92
|
self.true(os.path.abspath(sset.slab.path).startswith(dirn))
|
|
70
93
|
|
|
94
|
+
newset = await sset.copy()
|
|
95
|
+
self.true(os.path.isdir(newset.slab.path))
|
|
96
|
+
self.true(os.path.abspath(newset.slab.path).startswith(dirn))
|
|
97
|
+
|
|
98
|
+
# Slabs should get removed on fini
|
|
99
|
+
self.false(os.path.isdir(sset.slab.path))
|
|
100
|
+
|
|
101
|
+
self.true(os.path.isdir(newset.slab.path))
|
|
102
|
+
await newset.fini()
|
|
103
|
+
self.false(os.path.isdir(newset.slab.path))
|
|
104
|
+
|
|
71
105
|
async def test_spooled_dict(self):
|
|
72
106
|
|
|
73
107
|
async def runtest(x):
|
|
@@ -403,24 +403,7 @@ class StormlibModelTest(s_test.SynTest):
|
|
|
403
403
|
q = 'test:str=src $n=$node -> { test:str=deny $lib.model.migration.copyTags($n, $node) }'
|
|
404
404
|
await self.asyncraises(s_exc.AuthDeny, core.nodes(q, opts=aslow))
|
|
405
405
|
|
|
406
|
-
with self.raises(s_exc.NoSuchProp) as exc:
|
|
407
|
-
await core.callStorm('$lib.model.migration.liftByPropValuNoNorm(formname, propname, valu)')
|
|
408
|
-
self.eq(exc.exception.get('mesg'), 'Could not find prop: formname:propname')
|
|
409
|
-
|
|
410
|
-
with self.raises(s_exc.AuthDeny) as exc:
|
|
411
|
-
await core.callStorm('$lib.model.migration.liftByPropValuNoNorm(it:prod:soft, cpe, valu)')
|
|
412
|
-
self.eq(exc.exception.get('mesg'), '$lib.model.migration.liftByPropValuNoNorm() is restricted to model migrations only.')
|
|
413
|
-
|
|
414
|
-
with self.raises(s_exc.BadArg) as exc:
|
|
415
|
-
await core.callStorm('$lib.model.migration.setNodePropValuNoNorm(notanode, propname, valu)')
|
|
416
|
-
self.eq(exc.exception.get('mesg'), '$lib.model.migration.setNodePropValuNoNorm() argument must be a node.')
|
|
417
|
-
|
|
418
|
-
with self.raises(s_exc.AuthDeny) as exc:
|
|
419
|
-
await core.callStorm('test:str $lib.model.migration.setNodePropValuNoNorm($node, propname, valu)')
|
|
420
|
-
self.eq(exc.exception.get('mesg'), '$lib.model.migration.setNodePropValuNoNorm() is restricted to model migrations only.')
|
|
421
|
-
|
|
422
406
|
# copy extended properties
|
|
423
|
-
|
|
424
407
|
await self.asyncraises(s_exc.BadArg, core.nodes('test:str=src $lib.model.migration.copyExtProps($node, newp)'))
|
|
425
408
|
await self.asyncraises(s_exc.BadArg, core.nodes('test:str=dst $lib.model.migration.copyExtProps(newp, $node)'))
|
|
426
409
|
|
|
@@ -442,259 +425,6 @@ class StormlibModelTest(s_test.SynTest):
|
|
|
442
425
|
self.len(1, nodes)
|
|
443
426
|
self.eq(nodes[0].get('_foo'), 'foobarbaz')
|
|
444
427
|
|
|
445
|
-
async def test_model_migration_s_itSecCpe_2_170_0(self):
|
|
446
|
-
|
|
447
|
-
async with self.getRegrCore('itSecCpe_2_170_0', maxvers=(0, 2, 27)) as core:
|
|
448
|
-
# Migrate it:sec:cpe nodes with a valid CPE2.3, valid CPE2.2
|
|
449
|
-
q = 'it:sec:cpe +#test.cpe.23valid +#test.cpe.22valid'
|
|
450
|
-
nodes = await core.nodes(q)
|
|
451
|
-
self.len(2, nodes)
|
|
452
|
-
self.eq(
|
|
453
|
-
[
|
|
454
|
-
('it:sec:cpe', 'cpe:2.3:a:abine:donottrackme_-_mobile_privacy:1.1.8:*:*:*:*:android:*:*'),
|
|
455
|
-
('it:sec:cpe', 'cpe:2.3:a:01generator:pireospay:-:*:*:*:*:prestashop:*:*')
|
|
456
|
-
],
|
|
457
|
-
[node.ndef for node in nodes]
|
|
458
|
-
)
|
|
459
|
-
|
|
460
|
-
q = '''
|
|
461
|
-
it:sec:cpe +#test.cpe.23valid +#test.cpe.22valid
|
|
462
|
-
$lib.debug=$lib.true
|
|
463
|
-
$lib.model.migration.s.itSecCpe_2_170_0($node)
|
|
464
|
-
$node.data.load(migration.s.itSecCpe_2_170_0)
|
|
465
|
-
'''
|
|
466
|
-
nodes = await core.nodes(q)
|
|
467
|
-
|
|
468
|
-
data = nodes[0].nodedata['migration.s.itSecCpe_2_170_0']
|
|
469
|
-
self.nn(data)
|
|
470
|
-
self.eq(data['status'], 'success')
|
|
471
|
-
self.none(data.get('reason'))
|
|
472
|
-
|
|
473
|
-
data = nodes[1].nodedata['migration.s.itSecCpe_2_170_0']
|
|
474
|
-
self.nn(data)
|
|
475
|
-
self.eq(data['status'], 'success')
|
|
476
|
-
self.none(data.get('reason'))
|
|
477
|
-
|
|
478
|
-
async with self.getRegrCore('itSecCpe_2_170_0', maxvers=(0, 2, 27)) as core:
|
|
479
|
-
# Migrate it:sec:cpe nodes with a valid CPE2.3, invalid CPE2.2
|
|
480
|
-
q = '''
|
|
481
|
-
it:sec:cpe +#test.cpe.23valid +#test.cpe.22invalid
|
|
482
|
-
$lib.debug=$lib.true
|
|
483
|
-
$lib.model.migration.s.itSecCpe_2_170_0($node)
|
|
484
|
-
'''
|
|
485
|
-
nodes = await core.nodes(q)
|
|
486
|
-
self.len(3, nodes)
|
|
487
|
-
self.eq(
|
|
488
|
-
[
|
|
489
|
-
('it:sec:cpe', 'cpe:2.3:a:1c:1c\\:enterprise:-:*:*:*:*:*:*:*'),
|
|
490
|
-
('it:sec:cpe', 'cpe:2.3:o:zyxel:nas542_firmware:5.21\\%28aazf.15\\%29co:*:*:*:*:*:*:*'),
|
|
491
|
-
('it:sec:cpe', 'cpe:2.3:a:abinitio:control\\>center:-:*:*:*:*:*:*:*'),
|
|
492
|
-
],
|
|
493
|
-
[node.ndef for node in nodes]
|
|
494
|
-
)
|
|
495
|
-
|
|
496
|
-
q = '''
|
|
497
|
-
it:sec:cpe +#test.cpe.23valid +#test.cpe.22invalid
|
|
498
|
-
$node.data.load(migration.s.itSecCpe_2_170_0)
|
|
499
|
-
'''
|
|
500
|
-
nodes = await core.nodes(q)
|
|
501
|
-
self.len(3, nodes)
|
|
502
|
-
|
|
503
|
-
data = nodes[0].nodedata['migration.s.itSecCpe_2_170_0']
|
|
504
|
-
self.nn(data)
|
|
505
|
-
self.eq(data['status'], 'success')
|
|
506
|
-
self.eq(data['updated'], ['v2_2', 'product'])
|
|
507
|
-
self.eq(nodes[0].get('v2_2'), 'cpe:/a:1c:1c%3aenterprise:-')
|
|
508
|
-
self.eq(nodes[0].get('product'), '1c:enterprise')
|
|
509
|
-
|
|
510
|
-
data = nodes[1].nodedata['migration.s.itSecCpe_2_170_0']
|
|
511
|
-
self.nn(data)
|
|
512
|
-
self.eq(data['status'], 'success')
|
|
513
|
-
self.none(data.get('valu'))
|
|
514
|
-
self.eq(data['updated'], ['v2_2', 'version'])
|
|
515
|
-
self.eq(nodes[1].get('v2_2'), 'cpe:/o:zyxel:nas542_firmware:5.21%2528aazf.15%2529co')
|
|
516
|
-
self.eq(nodes[1].get('version'), '5.21%28aazf.15%29co')
|
|
517
|
-
|
|
518
|
-
data = nodes[2].nodedata['migration.s.itSecCpe_2_170_0']
|
|
519
|
-
self.nn(data)
|
|
520
|
-
self.eq(data['status'], 'success')
|
|
521
|
-
self.eq(data['updated'], ['v2_2', 'product'])
|
|
522
|
-
self.eq(nodes[2].get('v2_2'), 'cpe:/a:abinitio:control%3ecenter:-')
|
|
523
|
-
self.eq(nodes[2].get('product'), 'control>center')
|
|
524
|
-
|
|
525
|
-
# The migration of this node was not correct because the CPE2.3 string (primary property) is valid but was
|
|
526
|
-
# not created correctly due to a bad CPE2.2 input value. Now we update :v2_2 to be correct, and re-run the
|
|
527
|
-
# migration. This time, we specify `prefer_v22=True` and `force=True` so the migration will use the updated
|
|
528
|
-
# :v2_2 prop for reparsing the strings. Force will cause the migration to continue past the check where both
|
|
529
|
-
# the primary property and :v2_2 are valid.
|
|
530
|
-
q = '''
|
|
531
|
-
it:sec:cpe:product=nas542_firmware [ :v2_2="cpe:/o:zyxel:nas542_firmware:5.21%28aazf.15%29co" ]
|
|
532
|
-
$lib.debug=$lib.true
|
|
533
|
-
$lib.model.migration.s.itSecCpe_2_170_0($node, prefer_v22=$lib.true, force=$lib.true)
|
|
534
|
-
'''
|
|
535
|
-
nodes = await core.nodes(q)
|
|
536
|
-
self.len(1, nodes)
|
|
537
|
-
|
|
538
|
-
# Lift the updated node and check the migration did what was expected.
|
|
539
|
-
q = '''
|
|
540
|
-
it:sec:cpe:product=nas542_firmware
|
|
541
|
-
$node.data.load(migration.s.itSecCpe_2_170_0)
|
|
542
|
-
'''
|
|
543
|
-
nodes = await core.nodes(q)
|
|
544
|
-
self.len(1, nodes)
|
|
545
|
-
|
|
546
|
-
data = nodes[0].nodedata['migration.s.itSecCpe_2_170_0']
|
|
547
|
-
self.nn(data)
|
|
548
|
-
self.eq(data['status'], 'success')
|
|
549
|
-
self.eq(data['updated'], ['version'])
|
|
550
|
-
self.eq(data['valu'], 'cpe:2.3:o:zyxel:nas542_firmware:5.21\\(aazf.15\\)co:*:*:*:*:*:*:*')
|
|
551
|
-
self.eq(nodes[0].get('v2_2'), 'cpe:/o:zyxel:nas542_firmware:5.21%28aazf.15%29co')
|
|
552
|
-
self.eq(nodes[0].get('version'), '5.21(aazf.15)co')
|
|
553
|
-
|
|
554
|
-
async with self.getRegrCore('itSecCpe_2_170_0', maxvers=(0, 2, 27)) as core:
|
|
555
|
-
# Migrate it:sec:cpe nodes with a invalid CPE2.3, valid CPE2.2
|
|
556
|
-
q = '''
|
|
557
|
-
it:sec:cpe +#test.cpe.23invalid +#test.cpe.22valid
|
|
558
|
-
$lib.debug=$lib.true
|
|
559
|
-
$lib.model.migration.s.itSecCpe_2_170_0($node)
|
|
560
|
-
'''
|
|
561
|
-
nodes = await core.nodes(q)
|
|
562
|
-
self.len(4, nodes)
|
|
563
|
-
self.eq(
|
|
564
|
-
[
|
|
565
|
-
('it:sec:cpe', 'cpe:2.3:h:d\\-link:dir\\-850l:*:*:*:*:*:*:*:*'),
|
|
566
|
-
('it:sec:cpe', 'cpe:2.3:a:acurax:under_construction_%2f_maintenance_mode:-::~~~wordpress~~:*:*:*:*:*'),
|
|
567
|
-
('it:sec:cpe', 'cpe:2.3:a:10web:social_feed_for_instagram:1.0.0::~~premium~wordpress~~:*:*:*:*:*'),
|
|
568
|
-
('it:sec:cpe', 'cpe:2.3:o:zyxel:nas326_firmware:5.21%28aazf.14%29c0:*:*:*:*:*:*:*'),
|
|
569
|
-
],
|
|
570
|
-
[node.ndef for node in nodes]
|
|
571
|
-
)
|
|
572
|
-
|
|
573
|
-
q = '''
|
|
574
|
-
it:sec:cpe +#test.cpe.23invalid +#test.cpe.22valid
|
|
575
|
-
$node.data.load(migration.s.itSecCpe_2_170_0)
|
|
576
|
-
'''
|
|
577
|
-
nodes = await core.nodes(q)
|
|
578
|
-
self.len(4, nodes)
|
|
579
|
-
|
|
580
|
-
data = nodes[0].nodedata['migration.s.itSecCpe_2_170_0']
|
|
581
|
-
self.nn(data)
|
|
582
|
-
self.eq(data['status'], 'success')
|
|
583
|
-
self.eq(data['updated'], ['vendor', 'product'])
|
|
584
|
-
self.eq(data['valu'], 'cpe:2.3:h:d-link:dir-850l:*:*:*:*:*:*:*:*')
|
|
585
|
-
self.eq(nodes[0].get('vendor'), 'd-link')
|
|
586
|
-
self.eq(nodes[0].get('product'), 'dir-850l')
|
|
587
|
-
|
|
588
|
-
data = nodes[1].nodedata['migration.s.itSecCpe_2_170_0']
|
|
589
|
-
self.nn(data)
|
|
590
|
-
self.eq(data['status'], 'success')
|
|
591
|
-
self.eq(data['updated'], ['product', 'update', 'edition', 'target_sw'])
|
|
592
|
-
self.eq(data['valu'], 'cpe:2.3:a:acurax:under_construction_\\/_maintenance_mode:-:*:*:*:*:wordpress:*:*')
|
|
593
|
-
self.eq(nodes[1].get('product'), 'under_construction_/_maintenance_mode')
|
|
594
|
-
self.eq(nodes[1].get('update'), '*')
|
|
595
|
-
self.eq(nodes[1].get('edition'), '*')
|
|
596
|
-
self.eq(nodes[1].get('target_sw'), 'wordpress')
|
|
597
|
-
|
|
598
|
-
data = nodes[2].nodedata['migration.s.itSecCpe_2_170_0']
|
|
599
|
-
self.nn(data)
|
|
600
|
-
self.eq(data['status'], 'success')
|
|
601
|
-
self.eq(data['updated'], ['update', 'edition', 'sw_edition', 'target_sw'])
|
|
602
|
-
self.eq(data['valu'], 'cpe:2.3:a:10web:social_feed_for_instagram:1.0.0:*:*:*:premium:wordpress:*:*')
|
|
603
|
-
self.eq(nodes[2].get('update'), '*')
|
|
604
|
-
self.eq(nodes[2].get('edition'), '*')
|
|
605
|
-
self.eq(nodes[2].get('sw_edition'), 'premium')
|
|
606
|
-
self.eq(nodes[2].get('target_sw'), 'wordpress')
|
|
607
|
-
|
|
608
|
-
data = nodes[3].nodedata['migration.s.itSecCpe_2_170_0']
|
|
609
|
-
self.nn(data)
|
|
610
|
-
self.eq(data['status'], 'success')
|
|
611
|
-
self.eq(data['updated'], ['version'])
|
|
612
|
-
self.eq(data['valu'], 'cpe:2.3:o:zyxel:nas326_firmware:5.21\\(aazf.14\\)c0:*:*:*:*:*:*:*')
|
|
613
|
-
self.eq(nodes[3].get('version'), '5.21(aazf.14)c0')
|
|
614
|
-
|
|
615
|
-
async with self.getRegrCore('itSecCpe_2_170_0', maxvers=(0, 2, 27)) as core:
|
|
616
|
-
# Migrate it:sec:cpe nodes with a invalid CPE2.3, invalid CPE2.2
|
|
617
|
-
q = '''
|
|
618
|
-
it:sec:cpe +#test.cpe.23invalid +#test.cpe.22invalid
|
|
619
|
-
$lib.debug=$lib.true
|
|
620
|
-
$lib.model.migration.s.itSecCpe_2_170_0($node)
|
|
621
|
-
'''
|
|
622
|
-
msgs = await core.stormlist(q)
|
|
623
|
-
mesg = 'itSecCpe_2_170_0(it:sec:cpe=cpe:2.3:a:openbsd:openssh:8.2p1 ubuntu-4ubuntu0.2:*:*:*:*:*:*:*): '
|
|
624
|
-
mesg += 'Unable to migrate due to invalid data. Primary property and :v2_2 are both invalid.'
|
|
625
|
-
self.stormIsInWarn(mesg, msgs)
|
|
626
|
-
|
|
627
|
-
ndefs = [m[1][0] for m in msgs if m[0] == 'node']
|
|
628
|
-
self.eq(
|
|
629
|
-
[
|
|
630
|
-
('it:sec:cpe', 'cpe:2.3:a:openbsd:openssh:7.4\r\n:*:*:*:*:*:*:*'),
|
|
631
|
-
('it:sec:cpe', 'cpe:2.3:a:openbsd:openssh:8.2p1 ubuntu-4ubuntu0.2:*:*:*:*:*:*:*')
|
|
632
|
-
],
|
|
633
|
-
ndefs
|
|
634
|
-
)
|
|
635
|
-
|
|
636
|
-
q = '''
|
|
637
|
-
it:sec:cpe +#test.cpe.23invalid +#test.cpe.22invalid
|
|
638
|
-
$node.data.load(migration.s.itSecCpe_2_170_0)
|
|
639
|
-
'''
|
|
640
|
-
nodes = await core.nodes(q)
|
|
641
|
-
self.len(2, nodes)
|
|
642
|
-
|
|
643
|
-
for node in nodes:
|
|
644
|
-
data = node.nodedata['migration.s.itSecCpe_2_170_0']
|
|
645
|
-
self.eq(data, {
|
|
646
|
-
'status': 'failed',
|
|
647
|
-
'reason': 'Unable to migrate due to invalid data. Primary property and :v2_2 are both invalid.',
|
|
648
|
-
})
|
|
649
|
-
|
|
650
|
-
# Now update the :v2_2 on one of the nodes and migrate again
|
|
651
|
-
q = '''
|
|
652
|
-
it:sec:cpe:version^=8.2p1 [ :v2_2="cpe:/a:openbsd:openssh:8.2p1_ubuntu-4ubuntu0.2" ]
|
|
653
|
-
$lib.debug=$lib.true
|
|
654
|
-
$lib.model.migration.s.itSecCpe_2_170_0($node)
|
|
655
|
-
'''
|
|
656
|
-
msgs = await core.stormlist(q)
|
|
657
|
-
self.stormHasNoWarnErr(msgs)
|
|
658
|
-
|
|
659
|
-
q = '''
|
|
660
|
-
it:sec:cpe:version^=8.2p1
|
|
661
|
-
$node.data.load(migration.s.itSecCpe_2_170_0)
|
|
662
|
-
'''
|
|
663
|
-
nodes = await core.nodes(q)
|
|
664
|
-
self.len(1, nodes)
|
|
665
|
-
|
|
666
|
-
data = nodes[0].nodedata['migration.s.itSecCpe_2_170_0']
|
|
667
|
-
self.nn(data)
|
|
668
|
-
self.eq(data['status'], 'success')
|
|
669
|
-
self.eq(data['updated'], ['version'])
|
|
670
|
-
self.eq(data['valu'], 'cpe:2.3:a:openbsd:openssh:8.2p1_ubuntu-4ubuntu0.2:*:*:*:*:*:*:*')
|
|
671
|
-
self.eq(nodes[0].get('version'), '8.2p1_ubuntu-4ubuntu0.2')
|
|
672
|
-
|
|
673
|
-
# Run the migration again to make sure we identify already migrated
|
|
674
|
-
# nodes correctly and bail early.
|
|
675
|
-
q = '''
|
|
676
|
-
it:sec:cpe:version^=8.2p1
|
|
677
|
-
$lib.debug=$lib.true
|
|
678
|
-
$lib.model.migration.s.itSecCpe_2_170_0($node)
|
|
679
|
-
'''
|
|
680
|
-
msgs = await core.stormlist(q)
|
|
681
|
-
self.stormIsInPrint('DEBUG: itSecCpe_2_170_0(it:sec:cpe=cpe:2.3:a:openbsd:openssh:8.2p1 ubuntu-4ubuntu0.2:*:*:*:*:*:*:*): Node already migrated.', msgs)
|
|
682
|
-
|
|
683
|
-
q = '''
|
|
684
|
-
it:sec:cpe:version^=8.2p1
|
|
685
|
-
$lib.debug=$lib.true
|
|
686
|
-
$lib.model.migration.s.itSecCpe_2_170_0($node, force=$lib.true)
|
|
687
|
-
'''
|
|
688
|
-
msgs = await core.stormlist(q)
|
|
689
|
-
self.stormIsInPrint('DEBUG: itSecCpe_2_170_0(it:sec:cpe=cpe:2.3:a:openbsd:openssh:8.2p1 ubuntu-4ubuntu0.2:*:*:*:*:*:*:*): No property updates required.', msgs)
|
|
690
|
-
|
|
691
|
-
async with self.getTestCore() as core:
|
|
692
|
-
with self.raises(s_exc.BadArg):
|
|
693
|
-
await core.callStorm('$lib.model.migration.s.itSecCpe_2_170_0(newp)')
|
|
694
|
-
|
|
695
|
-
with self.raises(s_exc.BadArg):
|
|
696
|
-
await core.callStorm('[ inet:fqdn=vertex.link ] $lib.model.migration.s.itSecCpe_2_170_0($node)')
|
|
697
|
-
|
|
698
428
|
async def test_stormlib_model_migrations_risk_hasvuln_vulnerable(self):
|
|
699
429
|
|
|
700
430
|
async with self.getTestCore() as core:
|
|
@@ -907,6 +907,17 @@ class StormTypesTest(s_test.SynTest):
|
|
|
907
907
|
'refs',
|
|
908
908
|
'20153b758f9d5eaaa38e4f4a65c36da797c3e59e549620fa7c4895e1a920991f'), edges)
|
|
909
909
|
|
|
910
|
+
data = await core.callStorm('''
|
|
911
|
+
$data = ({})
|
|
912
|
+
inet:user=visi
|
|
913
|
+
for ($name, $valu) in $lib.layer.get().getNodeData($node.iden()) { $data.$name = $valu }
|
|
914
|
+
return($data)
|
|
915
|
+
''')
|
|
916
|
+
foo = data.get('foo')
|
|
917
|
+
self.nn(foo)
|
|
918
|
+
self.nn(foo.get('asof'))
|
|
919
|
+
self.eq('bar', foo.get('data'))
|
|
920
|
+
|
|
910
921
|
msgs = await core.stormlist('$lib.print($lib.null)')
|
|
911
922
|
self.stormIsInPrint('$lib.null', msgs)
|
|
912
923
|
self.stormNotInPrint('None', msgs)
|
|
@@ -1778,8 +1778,17 @@ class InfotechModelTest(s_t_utils.SynTest):
|
|
|
1778
1778
|
with self.raises(s_exc.BadTypeValu):
|
|
1779
1779
|
nodes = await core.nodes('[it:sec:cpe=cpe:2.3:1:2:3:4:5:6:7:8:9:10:11:12]')
|
|
1780
1780
|
|
|
1781
|
-
|
|
1782
|
-
|
|
1781
|
+
with self.raises(s_exc.BadTypeValu):
|
|
1782
|
+
await core.nodes('[ it:sec:cpe=cpe:2.3:a:vertex:synapse ]')
|
|
1783
|
+
|
|
1784
|
+
with self.raises(s_exc.BadTypeValu):
|
|
1785
|
+
await core.callStorm(r'$lib.cast(it:sec:cpe, "cpe:2.3:a:openbsd:openssh:7.4\r\n:*:*:*:*:*:*:*")')
|
|
1786
|
+
|
|
1787
|
+
with self.raises(s_exc.BadTypeValu):
|
|
1788
|
+
await core.callStorm(r'$lib.cast(it:sec:cpe:v2_2, "cpe:/a:01generator:pireospay\r\n:-::~~~prestashop~~")')
|
|
1789
|
+
|
|
1790
|
+
with self.raises(s_exc.BadTypeValu):
|
|
1791
|
+
await core.callStorm('$lib.cast(it:sec:cpe:v2_2, "cpe:2.3:*")')
|
|
1783
1792
|
|
|
1784
1793
|
nodes = await core.nodes('''[
|
|
1785
1794
|
it:sec:cpe=cpe:2.3:a:microsoft:internet_explorer:8.0.6001:beta:*:*:*:*:*:*
|
|
@@ -1792,14 +1801,8 @@ class InfotechModelTest(s_t_utils.SynTest):
|
|
|
1792
1801
|
self.eq(nodes[0].get('version'), '8.0.6001')
|
|
1793
1802
|
self.eq(nodes[0].get('update'), 'beta')
|
|
1794
1803
|
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
self.eq(nodes[0].ndef, ('it:sec:cpe', 'cpe:2.3:a:openbsd:openssh:7.4:*:*:*:*:*:*:*'))
|
|
1798
|
-
self.eq(nodes[0].get('part'), 'a')
|
|
1799
|
-
self.eq(nodes[0].get('product'), 'openssh')
|
|
1800
|
-
self.eq(nodes[0].get('vendor'), 'openbsd')
|
|
1801
|
-
self.eq(nodes[0].get('version'), '7.4')
|
|
1802
|
-
self.eq(nodes[0].get('v2_2'), 'cpe:/a:openbsd:openssh:7.4')
|
|
1804
|
+
with self.raises(s_exc.BadTypeValu):
|
|
1805
|
+
await core.nodes("[ it:sec:cpe='cpe:2.3:a:openbsd:openssh:7.4\r\n:*:*:*:*:*:*:*' ]")
|
|
1803
1806
|
|
|
1804
1807
|
nodes = await core.nodes(r'[ it:sec:cpe="cpe:2.3:o:cisco:ios:12.1\(22\)ea1a:*:*:*:*:*:*:*" ]')
|
|
1805
1808
|
self.len(1, nodes)
|
|
@@ -1923,7 +1926,7 @@ class InfotechModelTest(s_t_utils.SynTest):
|
|
|
1923
1926
|
nodes = await core.nodes(q, opts={'vars': {'valu': valu}})
|
|
1924
1927
|
self.len(1, nodes)
|
|
1925
1928
|
node = nodes[0]
|
|
1926
|
-
self.eq(node.ndef[1], valu.lower())
|
|
1929
|
+
self.eq(node.ndef[1], valu.lower(), msg=valu.lower())
|
|
1927
1930
|
|
|
1928
1931
|
async def test_infotech_c2config(self):
|
|
1929
1932
|
async with self.getTestCore() as core:
|
synapse/tools/changelog.py
CHANGED
|
@@ -883,9 +883,17 @@ async def format(opts: argparse.Namespace,
|
|
|
883
883
|
text = text + f'\n{header}\n{"-" * len(header)}'
|
|
884
884
|
dataz.sort(key=lambda x: x.get('prs'))
|
|
885
885
|
for data in dataz:
|
|
886
|
-
desc = data.get('desc')
|
|
887
|
-
|
|
888
|
-
|
|
886
|
+
desc = data.get('desc') # type: str
|
|
887
|
+
desc_lines = desc.splitlines()
|
|
888
|
+
for i, chunk in enumerate(desc_lines):
|
|
889
|
+
if i == 0:
|
|
890
|
+
for line in textwrap.wrap(chunk, initial_indent='- ', subsequent_indent=' ', width=opts.width):
|
|
891
|
+
text = f'{text}\n{line}'
|
|
892
|
+
else:
|
|
893
|
+
text = text + '\n'
|
|
894
|
+
for line in textwrap.wrap(chunk, initial_indent=' ', subsequent_indent=' ', width=opts.width):
|
|
895
|
+
text = f'{text}\n{line}'
|
|
896
|
+
|
|
889
897
|
if not opts.hide_prs:
|
|
890
898
|
for pr in data.get('prs'):
|
|
891
899
|
text = f'{text}\n (`#{pr} <https://github.com/vertexproject/synapse/pull/{pr}>`_)'
|
|
@@ -2,7 +2,7 @@ synapse/__init__.py,sha256=R2kOXlF5j-8m6G0JkHuN7rXRPg_tHLmbMxr__94mHQk,1145
|
|
|
2
2
|
synapse/axon.py,sha256=DQu_Ps4BDRDnmdHmqCbpd3W_91yzhdo7AzAk-wtQC3s,61520
|
|
3
3
|
synapse/cells.py,sha256=eNvdglfAoTURVhGOLGcgMXCGpfsIX1a02SQnyiklo3E,308
|
|
4
4
|
synapse/common.py,sha256=JRGiA6FCkCZP2pBc3s_H7MsQGwc9jU_vkJFQP3XpVLs,36523
|
|
5
|
-
synapse/cortex.py,sha256=
|
|
5
|
+
synapse/cortex.py,sha256=1lanSlEVw07Ie3jMBFbL_306T1wNWT2dOFuTIIflYb8,254739
|
|
6
6
|
synapse/cryotank.py,sha256=oTbAOKq-q8WqAkYmY46Mc8hy85W3ZcQMxmP2EJDFyZ0,12124
|
|
7
7
|
synapse/daemon.py,sha256=-xy6EnmD5CodWQs_S-v7apKILECmn5EEYBpEPG-MDns,16986
|
|
8
8
|
synapse/datamodel.py,sha256=QvIXNLpARXQwKCkz5SmXmQYv9V0pfp51G0cQ9h-omSo,38837
|
|
@@ -10,8 +10,6 @@ synapse/exc.py,sha256=TCSS6ODXNKTxEfo_PT0keumTOAONGJXbTZ4ph_HrWF0,9090
|
|
|
10
10
|
synapse/glob.py,sha256=tb6NPtK6Jp6YES9sB1AQi26HP6f-BcEiHrZz2yEyZ90,3210
|
|
11
11
|
synapse/mindmeld.py,sha256=TiijGH7wX2zdXIFSBUlN40CPOvYaFlw6Wxi66XZuB_M,26
|
|
12
12
|
synapse/telepath.py,sha256=HlsxX5akFRf7VCJxztnqjAelc2YMOPyCoDsYAAiWQnc,44395
|
|
13
|
-
synapse/assets/__init__.py,sha256=2-JUtbhS3pJIzDK5-7DO8CzLDuTSY30bez5sgAsYis0,938
|
|
14
|
-
synapse/assets/storm/migrations/model-0.2.28.storm,sha256=8WObPl9knvR9E0jJf47VVvwiKqbZnzDR-9mvMucah9U,11253
|
|
15
13
|
synapse/cmds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
14
|
synapse/cmds/boss.py,sha256=anEKo72bmMV6xTQ1XM-Dz9HFYkNKUX7Ee6Q6jKtkml4,2920
|
|
17
15
|
synapse/cmds/cortex.py,sha256=l81zQjR0OWF-X_lOm-gPqwhVGJ4KcKe0JLA3T1NbuU4,15402
|
|
@@ -111,7 +109,7 @@ synapse/lib/grammar.py,sha256=bl79DVSH0A213loOh5GWOaVt7gZEG6D9tn5ddr6hNuk,2572
|
|
|
111
109
|
synapse/lib/hashitem.py,sha256=3115F7E1hIR97hrJ7QY6j1amasm7uXy63SmpRD1nB_I,658
|
|
112
110
|
synapse/lib/hashset.py,sha256=6R9q6iNfxZ5iGGEmoN7ODDCUnba1XBn7w2PPJh4Yz9o,1468
|
|
113
111
|
synapse/lib/health.py,sha256=wkVZObjo3quEmxA0VOUnYHapnRinOVZdTFOVobjoTH4,1730
|
|
114
|
-
synapse/lib/hive.py,sha256=
|
|
112
|
+
synapse/lib/hive.py,sha256=jgsIFUueTqRmm_KpcwZRlgJ_f3hJrgtgASxlnx-cyII,20692
|
|
115
113
|
synapse/lib/hiveauth.py,sha256=YJeBZ8UVz0GdhckesVzlv0_9-O2lz5ppczSST-SpLsA,41523
|
|
116
114
|
synapse/lib/httpapi.py,sha256=i0E2dFl54ovWjEPSq7VQ5kNs6FThjXDUkD7ml9XNLOI,43186
|
|
117
115
|
synapse/lib/ingest.py,sha256=HNW1xs215c_UXVjKaxjipKBmVL4ujrjmarHBRvLPLkE,40
|
|
@@ -120,7 +118,7 @@ synapse/lib/jsonstor.py,sha256=QQVf7Kl90sI_v97UZZAoa6stizDeMyy0ykR3RsHpmi8,19359
|
|
|
120
118
|
synapse/lib/layer.py,sha256=9QriT6ikYTQJrpQUw2AGZS887Ndstv61P4UGKK5y1Zo,154151
|
|
121
119
|
synapse/lib/link.py,sha256=DdCmaJzCqYWSJSxv2CQQiMKmW5q12nm34MYyrzCsL-Y,10216
|
|
122
120
|
synapse/lib/lmdbslab.py,sha256=g4_Wh2U1kPlfr0kq7PVDGrBLpPryk2qdJvodr2Fyzxo,60978
|
|
123
|
-
synapse/lib/modelrev.py,sha256=
|
|
121
|
+
synapse/lib/modelrev.py,sha256=kfFBV-rM_rO1jGBleM8630CVmlCaC9hrrFoxrJmZ3oQ,70813
|
|
124
122
|
synapse/lib/module.py,sha256=0XLFLzuZVmEqulKmdT0uah0oi1t8_f_ghakhqvoKtKI,4686
|
|
125
123
|
synapse/lib/modules.py,sha256=xHNrGBWLOSTSqn7GMMnm6iiw3Df-Q11h5gOUw84Ax7E,1282
|
|
126
124
|
synapse/lib/msgpack.py,sha256=I2dc4Py9m5ohGkcsb2Ariqfon6nkam5hC0leEoqADhs,7835
|
|
@@ -141,14 +139,14 @@ synapse/lib/share.py,sha256=HDQR7nb4IOleHB1kIFe6prZQVW7PjPAivSAkPuhNn5A,663
|
|
|
141
139
|
synapse/lib/slaboffs.py,sha256=Fd0RrIRBMjh159aQz5y1ONmzw0NvV040kVX_jZjQW6I,815
|
|
142
140
|
synapse/lib/slabseqn.py,sha256=LJ2SZEsZlROBAD3mdS-3JxNVVPXXkBW8GIJXsW0OGG8,10287
|
|
143
141
|
synapse/lib/snap.py,sha256=QfNtFHV_76ABrm7Zf7WR5kVBB-MvuZmdmDfy0n1Whlo,59880
|
|
144
|
-
synapse/lib/spooled.py,sha256=
|
|
142
|
+
synapse/lib/spooled.py,sha256=pKPacX-fvZDUTUWPaKgyct_lk_3eoSsF9Ufh_cn_1fQ,5987
|
|
145
143
|
synapse/lib/storm.lark,sha256=ItEIPItfrCT5VmaoS1vm8FWD8Wv7b7B6ZWucCJCdO6s,26517
|
|
146
|
-
synapse/lib/storm.py,sha256=
|
|
144
|
+
synapse/lib/storm.py,sha256=DDUNmM4c9sB_qPpzgOFpI1r6r3G2xEuARzXeTDvCPI0,215144
|
|
147
145
|
synapse/lib/storm_format.py,sha256=Q8mf9QWzPljwp70BC4dYv0MGWB_YUJi3Ul4T7ReqjlQ,4818
|
|
148
146
|
synapse/lib/stormctrl.py,sha256=XvyZ6M0Ew8sXsjGvRTWbXh0MjktZrGi_zQ9kNa7AWTE,285
|
|
149
147
|
synapse/lib/stormhttp.py,sha256=tw0LuO0UfxZT50sfF_V9hemudv5yZc2M9nFMkGrRHRw,28884
|
|
150
148
|
synapse/lib/stormsvc.py,sha256=dKREBhzYAncOXBbI-FYLRy9VusGIbRyF0TaDDz7mMXw,7581
|
|
151
|
-
synapse/lib/stormtypes.py,sha256=
|
|
149
|
+
synapse/lib/stormtypes.py,sha256=hPGAU6YOKkHP-eR4QSgJEix72Ohiit1XbiX7msiwthk,389390
|
|
152
150
|
synapse/lib/stormwhois.py,sha256=w7N2oCyMljNvi_sRt_bZb5BJwWwYkVGcRd7H_0oHY8Q,2554
|
|
153
151
|
synapse/lib/structlog.py,sha256=qiuD7TTdwCyYEDF2f-88G2iX54SuB-lJ1pqlYokL1r8,1303
|
|
154
152
|
synapse/lib/task.py,sha256=krDjQvNh0EpAs1PILK8CJJa9DMeM0depI0K8Eimp010,5733
|
|
@@ -159,7 +157,7 @@ synapse/lib/time.py,sha256=FKTYwpdvpuAj8p8sSodRjOxoA7Vu67CIbbXz55gtghk,9231
|
|
|
159
157
|
synapse/lib/trigger.py,sha256=mnfkoBHB88JfqPoxb5oflvAaBKZpNvYdxP247YS53fE,20697
|
|
160
158
|
synapse/lib/types.py,sha256=u89ukW38oDziRzeA6IWrPwwPD0Ds75u-gwJSXsQ4loY,69708
|
|
161
159
|
synapse/lib/urlhelp.py,sha256=j-DvWGi-xH0TcO0NbCuwG7guUuiV8wxIxfMyJOzDygo,2523
|
|
162
|
-
synapse/lib/version.py,sha256=
|
|
160
|
+
synapse/lib/version.py,sha256=57HvpCRODByujSSPEEre91DclVaeCWPaWJiChgN0PYI,7162
|
|
163
161
|
synapse/lib/view.py,sha256=bP1lMl8Wm0yaMIlc4cfwobm5ojNzMsWguPFnPUkKhoM,60567
|
|
164
162
|
synapse/lib/crypto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
165
163
|
synapse/lib/crypto/coin.py,sha256=_dhlkzIrHT8BvHdJOWK7PDThz3sK3dDRnWAUqjRpZJc,4910
|
|
@@ -199,7 +197,7 @@ synapse/lib/stormlib/log.py,sha256=wdV-lqzQMM0C3GXNJKJKvkSKjk0CBsUfjd-Cl06LOtE,7
|
|
|
199
197
|
synapse/lib/stormlib/macro.py,sha256=7iQ18mCaNZcslmfXGQvOmGQ71HxD7JeDp0HDmu5-EKM,8807
|
|
200
198
|
synapse/lib/stormlib/math.py,sha256=3RKHj40GkYFiJSINa2AZZOAA-GqqeEP98bWw2JNity8,1149
|
|
201
199
|
synapse/lib/stormlib/mime.py,sha256=WMDAcUiF8RkABKL8EUOScrO77pwi5EHPTko7hI2FPIE,1095
|
|
202
|
-
synapse/lib/stormlib/model.py,sha256=
|
|
200
|
+
synapse/lib/stormlib/model.py,sha256=6I0JVJUqBnWAo4x-l40SndrynaPjHZ7fxb1VzmXtbDw,53385
|
|
203
201
|
synapse/lib/stormlib/modelext.py,sha256=h_uGVK-OjsFXOC--W-2WwTKVWIhDnWatSa2CRAHo4ZE,13073
|
|
204
202
|
synapse/lib/stormlib/notifications.py,sha256=6y1YuMavQs34WwnW5D_KrLPZ0DQlQKg5VFU56sounSA,3305
|
|
205
203
|
synapse/lib/stormlib/oauth.py,sha256=hgfjI--w8vbvgNbGvZlzINTOEdQv68nk5mB27CkC93M,13011
|
|
@@ -239,7 +237,7 @@ synapse/models/files.py,sha256=tGb7sCb06Ehg-LmjFgA3TtJPzNHUUXcMCv-KgPgB4iU,33512
|
|
|
239
237
|
synapse/models/geopol.py,sha256=QbSw5hhXVeOhGcB6oP1v4TPsYPbeK_3tQIYs_dLt_eU,11256
|
|
240
238
|
synapse/models/geospace.py,sha256=MY1vPyZXBCQ4GJPj0RCvx0WGaYy0Rue03WfKzMCteko,19345
|
|
241
239
|
synapse/models/inet.py,sha256=4iIbIW2yO5wuwR65b4ORjgPUNpviNT_XeAEgJv2Cdjg,168035
|
|
242
|
-
synapse/models/infotech.py,sha256=
|
|
240
|
+
synapse/models/infotech.py,sha256=wHY8J7tnRRcgVhur-x9tDtnh7IxLs4Mbf71GaBTi8Uc,148771
|
|
243
241
|
synapse/models/language.py,sha256=hBVVIf5kc_FSIV7HZhWnberoc9ssxuqeff4fqC9iz4o,3640
|
|
244
242
|
synapse/models/material.py,sha256=d-nonZKyJpHc32ebghtkm5tSifwVFN_ctx2kb8N4NqI,3214
|
|
245
243
|
synapse/models/math.py,sha256=5zDLSwGbOcWI6T5-KspPL20sR8Bcs59pnRK2nEELzss,1775
|
|
@@ -267,7 +265,6 @@ synapse/servers/jsonstor.py,sha256=cnt0PESw5qHunEVHCyT-eKOWgywMqe0WNPDtljVgt3c,2
|
|
|
267
265
|
synapse/servers/stemcell.py,sha256=nHACvCWqG2zWTYIo8QvSWi5EBXgYI_3XX7d1-K7xjvg,1192
|
|
268
266
|
synapse/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
269
267
|
synapse/tests/nopmod.py,sha256=sVRGWOVSzYYkDLonKTWbWU4PHYGDRkrUDyS1UEbdqgQ,70
|
|
270
|
-
synapse/tests/test_assets.py,sha256=M9SG1b0nXjzDSdVknBTMEKA02Mm2N2n8mMJs7WZxz20,783
|
|
271
268
|
synapse/tests/test_axon.py,sha256=qsxQHJZI9vexja56bNoXIHn7My58izAEl06sgnnx-Ho,47521
|
|
272
269
|
synapse/tests/test_cmds_boss.py,sha256=SdBwM2qJHFzzfrjWYiZOLBKeye8uru7KeJ3NU_YSkWw,4718
|
|
273
270
|
synapse/tests/test_cmds_cortex.py,sha256=LWFz8HyuvsIGjtz2DqXYh-R-5QbiQWzLlQKqew7gabY,17157
|
|
@@ -289,7 +286,7 @@ synapse/tests/test_lib_autodoc.py,sha256=H2XO2_d8FmsHUd-cn7M-LjTX-078xLhMiOGiGGk
|
|
|
289
286
|
synapse/tests/test_lib_base.py,sha256=0XUGNaXmfDW896gpBTYYd7ovADUD8cyDLkGTefqn1FM,14550
|
|
290
287
|
synapse/tests/test_lib_boss.py,sha256=gZEuJnMO99Fu9gQ7Ct0g67umBW5XFCs8vcwInB5qr14,1598
|
|
291
288
|
synapse/tests/test_lib_cache.py,sha256=oQgEBhm8pZFCEvMfcD3znTDQgl8Gv91fEOB-3eb2IIg,8594
|
|
292
|
-
synapse/tests/test_lib_cell.py,sha256=
|
|
289
|
+
synapse/tests/test_lib_cell.py,sha256=M_OGjNGDd9F6Q2HryXY3Bl5u150ZLm5Gd0HT05QsPgA,143087
|
|
293
290
|
synapse/tests/test_lib_certdir.py,sha256=d5X1lvp0DnBRigXYLbofZAXakZp440-bjaMH30PlGsI,42728
|
|
294
291
|
synapse/tests/test_lib_chop.py,sha256=LkrM_pQU_KS88aVRPD4DI97qSdhxmw6EUA_jb-UJpww,6238
|
|
295
292
|
synapse/tests/test_lib_cli.py,sha256=B8qGx9KtTWp31RlCMtfFMzhJ0TzaaO9ph7RCK2jHtx4,9283
|
|
@@ -315,7 +312,7 @@ synapse/tests/test_lib_jsonstor.py,sha256=1AebkkDAqFhd_mUyjpGviAUq_n0XFUzeuBxPev
|
|
|
315
312
|
synapse/tests/test_lib_layer.py,sha256=duZUqyqwgRk8RSvVsnV1GCEBOlRl6y84-usWXZdP-Wk,94557
|
|
316
313
|
synapse/tests/test_lib_link.py,sha256=sTRctDa6s9cmQ6ODoV4ifC3eQhEyXOhX2AkHMQHFHls,10204
|
|
317
314
|
synapse/tests/test_lib_lmdbslab.py,sha256=868e9x7HQppILxjQpEcDWto6sjyEyidd5oQEDcVKSX4,65666
|
|
318
|
-
synapse/tests/test_lib_modelrev.py,sha256=
|
|
315
|
+
synapse/tests/test_lib_modelrev.py,sha256=cP0gokBJJ9yBak6YPO7slfCrwy9DksYXc0jxznj89tE,80480
|
|
319
316
|
synapse/tests/test_lib_module.py,sha256=h2OyCW4HW-ZFiJBNQtZ-sPLjsnrlLdTFHQPaXpA8cds,3923
|
|
320
317
|
synapse/tests/test_lib_msgpack.py,sha256=_cS-Kzap6InQstBH0nCgFj9HoVO_tB2dj7D2zCa2miU,10056
|
|
321
318
|
synapse/tests/test_lib_multislabseqn.py,sha256=ujIp3VkFRhPURx3Js9nklXJ4aYup8UTrcLg7X96lrDs,17425
|
|
@@ -332,7 +329,7 @@ synapse/tests/test_lib_scrape.py,sha256=ZAbt-obxC9x7WN--pMPq8fU3ZLyKX_aDFSStwJYW
|
|
|
332
329
|
synapse/tests/test_lib_slaboffs.py,sha256=FHQ8mGZ27dGqVwGk6q2UJ4gkPRZN22eIVzS8hMPkD9c,756
|
|
333
330
|
synapse/tests/test_lib_slabseqn.py,sha256=74V6jU7DRTsy_hqUFDuT4C6dPlJ6ObNnjmI9qhbbyVc,5230
|
|
334
331
|
synapse/tests/test_lib_snap.py,sha256=OviJtj9N5LhBV-56TySkWvRly7f8VH9d-VBcNFLAtmg,27805
|
|
335
|
-
synapse/tests/test_lib_spooled.py,sha256=
|
|
332
|
+
synapse/tests/test_lib_spooled.py,sha256=fkLuujrDqjeJtyByptmGZvJbM9QiETCAu4r_4PdLfZg,3929
|
|
336
333
|
synapse/tests/test_lib_storm.py,sha256=2cmkPI_wmmXhURTq-8f_rtq96iajB8mK1EROE2HDP0c,226103
|
|
337
334
|
synapse/tests/test_lib_storm_format.py,sha256=tEZgQMmKAeG8FQZE5HUjOT7bnKawVTpNaVQh_3Wa630,277
|
|
338
335
|
synapse/tests/test_lib_stormhttp.py,sha256=ZS8iONsisWjEi2CXx9AttiQ9bOrPs9x4GCwXlJEB_u0,42592
|
|
@@ -359,7 +356,7 @@ synapse/tests/test_lib_stormlib_json.py,sha256=Ds8YsNXHDBg_yNxOrBJDKjF9W3tzGzIeO
|
|
|
359
356
|
synapse/tests/test_lib_stormlib_log.py,sha256=pZwEgCou368-MzeDL5jMEARRyswVNKKJ-VuuKjoSmlU,2905
|
|
360
357
|
synapse/tests/test_lib_stormlib_macro.py,sha256=IfGRX6ZAJr_RJGNPq2BKTEPByY90pnYDYdtHp8C1JbQ,18508
|
|
361
358
|
synapse/tests/test_lib_stormlib_mime.py,sha256=ozBJ70XxdrErOmycStWdh1xkBHVnM0BTPHvaP4faC0g,1510
|
|
362
|
-
synapse/tests/test_lib_stormlib_model.py,sha256=
|
|
359
|
+
synapse/tests/test_lib_stormlib_model.py,sha256=yiB_EflrQ34FDUqxKNkyxFc9xtXnksBqYoLg8IifNQ4,31475
|
|
363
360
|
synapse/tests/test_lib_stormlib_modelext.py,sha256=Dxw-pz9eYwL1bFofi8ijCbnTbuLizFxMkGfEWN51Lvw,26168
|
|
364
361
|
synapse/tests/test_lib_stormlib_oauth.py,sha256=rb6ZWyLrWwcDT32VfjdQUg3AurwlhzbQv-kXIfPeRsQ,28858
|
|
365
362
|
synapse/tests/test_lib_stormlib_pack.py,sha256=YSb4dErPM3CeU0piqvhIQF_F1m3YjApo3nA14ewPWf0,1563
|
|
@@ -375,7 +372,7 @@ synapse/tests/test_lib_stormlib_vault.py,sha256=pE_nDisXiyb-4Zm1hOrfsuEz3bjYwR8c
|
|
|
375
372
|
synapse/tests/test_lib_stormlib_xml.py,sha256=dWa9NkXXE28VZ3bTmMDbddo7VpUKsSEHTS1ojJr-F90,3704
|
|
376
373
|
synapse/tests/test_lib_stormlib_yaml.py,sha256=egTVXk8wW31V2msF__9WxP3THcqfysG1mYhc7hQG8rw,1358
|
|
377
374
|
synapse/tests/test_lib_stormsvc.py,sha256=J5-bmS_M3nkmJtmgUjyh7_vSwEzw_TxcMwe6q5ah1e8,43887
|
|
378
|
-
synapse/tests/test_lib_stormtypes.py,sha256=
|
|
375
|
+
synapse/tests/test_lib_stormtypes.py,sha256=FGOhXvz6fbtcj0v-6FrMgJ75AhCq43QWiw-KbhkUEHw,309850
|
|
379
376
|
synapse/tests/test_lib_stormwhois.py,sha256=AWMUYEgZ5yqvDfPC_rM4evmhgfOA_Fv5aoTjmKmN1_0,4818
|
|
380
377
|
synapse/tests/test_lib_structlog.py,sha256=DGfzrfc2nybRq5RjwiUXd1v4sC5zl8d46RHgTmFD0iA,3964
|
|
381
378
|
synapse/tests/test_lib_task.py,sha256=Zby9Evlg_mBwE3_aF7p_5PIMhWp2Er7Y-ye4Y-3L5RQ,1646
|
|
@@ -404,7 +401,7 @@ synapse/tests/test_model_gov_cn.py,sha256=FnfKNM_wnvmScLm4cYFSQXZ21kVaTPPDusiCD7
|
|
|
404
401
|
synapse/tests/test_model_gov_intl.py,sha256=v5BZhQnoMurzZYhM9hkzALzQzp92KidweYxVlghXDws,770
|
|
405
402
|
synapse/tests/test_model_gov_us.py,sha256=kvZ9DudBrbKtZmqGm8X-b_IOw4oJ7XZMnvTgiDkzsrY,1525
|
|
406
403
|
synapse/tests/test_model_inet.py,sha256=vJs4OjwY9Bx3H9YfxuGse-hWQ_Cd7sSv17S_7fK4NUU,150463
|
|
407
|
-
synapse/tests/test_model_infotech.py,sha256=
|
|
404
|
+
synapse/tests/test_model_infotech.py,sha256=_fC1TP21x5vfvHjZtJMM6fQUVtXZs3SP9X09wuFYqyA,110873
|
|
408
405
|
synapse/tests/test_model_language.py,sha256=49stF1B8_EwWJB67Xa5VXCG563Zfbr6S85iKN9Iom48,3046
|
|
409
406
|
synapse/tests/test_model_material.py,sha256=M7ACDCuMtavm-xtwAIZa1M-bHVq5PCUedDfR-Ty9_F4,1975
|
|
410
407
|
synapse/tests/test_model_math.py,sha256=x-rHBfm-59ueZdHXXzSi53eshldvVURoJeLeexWTL2U,826
|
|
@@ -525,7 +522,7 @@ synapse/tools/autodoc.py,sha256=-esajH0-4ftIJHzW93t7FwQEJ4WsvH8iV5em_sf1Wlw,3508
|
|
|
525
522
|
synapse/tools/axon2axon.py,sha256=FOaBLUrHH-r5Vw8FABwfTNGn_fJCg7jJxtP0ALpJUGM,1654
|
|
526
523
|
synapse/tools/backup.py,sha256=Cz3OSaYMRND7gE55FdyjrBr3C1_qd68yJ23O4-mukCM,5969
|
|
527
524
|
synapse/tools/cellauth.py,sha256=2ACKpOsOK_9F1B-HV5qhzGORSN7MhlElkL01Q710M1k,12122
|
|
528
|
-
synapse/tools/changelog.py,sha256=
|
|
525
|
+
synapse/tools/changelog.py,sha256=uuXsN_tk6Lm_zlijTXBRrBoXNe0vgOGKBPL8KupdxqA,45529
|
|
529
526
|
synapse/tools/cmdr.py,sha256=VdXzGU6ekhgvO0LmXFQlIWwH-T0v_q0VBZsKqONmhlg,1692
|
|
530
527
|
synapse/tools/csvtool.py,sha256=n3TB1qLgb7-0Du6Z6CZtu2vxaHUtzncwr2aQmQjgzi0,7477
|
|
531
528
|
synapse/tools/easycert.py,sha256=naoYnWfg0m6NrBraKUVk3FK5OW53yVBZH8rv6RrXRH8,4531
|
|
@@ -605,8 +602,8 @@ synapse/vendor/xrpl/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
|
605
602
|
synapse/vendor/xrpl/tests/test_codec.py,sha256=Zwq6A5uZUK_FWDL3BA932c5b-rL3hnC6efobWHSLC4o,6651
|
|
606
603
|
synapse/vendor/xrpl/tests/test_main.py,sha256=kZQwWk7I6HrP-PMvLdsUUN4POvWD9I-iXDHOwdeF090,4299
|
|
607
604
|
synapse/vendor/xrpl/tests/test_main_test_cases.py,sha256=vTlUM4hJD2Hd2wCIdd9rfsvcMZZZQmNHWdCTTFeGz2Y,4221
|
|
608
|
-
synapse-2.
|
|
609
|
-
synapse-2.
|
|
610
|
-
synapse-2.
|
|
611
|
-
synapse-2.
|
|
612
|
-
synapse-2.
|
|
605
|
+
synapse-2.187.0.dist-info/LICENSE,sha256=xllut76FgcGL5zbIRvuRc7aezPbvlMUTWJPsVr2Sugg,11358
|
|
606
|
+
synapse-2.187.0.dist-info/METADATA,sha256=4gFQ4HZha5_h28ATU7M2IFv9GNmqgDUD3mupZFhd2ak,4598
|
|
607
|
+
synapse-2.187.0.dist-info/WHEEL,sha256=V9njg5PXytSyv_DtLjFqv-lPwlYJ-pVdrLhmVh7fan0,93
|
|
608
|
+
synapse-2.187.0.dist-info/top_level.txt,sha256=v_1YsqjmoSCzCKs7oIhzTNmWtSYoORiBMv1TJkOhx8A,8
|
|
609
|
+
synapse-2.187.0.dist-info/RECORD,,
|
synapse/assets/__init__.py
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
import logging
|
|
3
|
-
|
|
4
|
-
import synapse.common as s_common
|
|
5
|
-
|
|
6
|
-
logger = logging.getLogger(__name__)
|
|
7
|
-
dirname = os.path.dirname(__file__)
|
|
8
|
-
|
|
9
|
-
def getStorm(*names):
|
|
10
|
-
'''
|
|
11
|
-
Return a storm file from the synapse storm folder.
|
|
12
|
-
|
|
13
|
-
Example:
|
|
14
|
-
|
|
15
|
-
text = storm.get('migrate.storm')
|
|
16
|
-
await core.callStorm(text)
|
|
17
|
-
|
|
18
|
-
Example #2:
|
|
19
|
-
text = storm.get('migrations', 'model-0.2.28.storm')
|
|
20
|
-
await core.callStorm(text)
|
|
21
|
-
'''
|
|
22
|
-
fp = getAssetPath('storm', *names)
|
|
23
|
-
with open(fp, 'rb') as fd:
|
|
24
|
-
text = fd.read()
|
|
25
|
-
return text.decode('utf8')
|
|
26
|
-
|
|
27
|
-
def getAssetPath(*names):
|
|
28
|
-
fp = s_common.genpath(dirname, *names)
|
|
29
|
-
if not fp.startswith(dirname):
|
|
30
|
-
logger.error(f'{fp} is not in {dirname}')
|
|
31
|
-
raise ValueError(f'Path escaping detected for {names}')
|
|
32
|
-
if not os.path.isfile(fp):
|
|
33
|
-
logger.error('{} does not exist'.format(fp))
|
|
34
|
-
raise ValueError(f'Asset does not exist for {names}')
|
|
35
|
-
return fp
|