synapse 2.185.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 +5 -4
- synapse/exc.py +2 -0
- synapse/lib/ast.py +1 -1
- synapse/lib/cell.py +65 -2
- synapse/lib/drive.py +45 -10
- synapse/lib/hive.py +1 -1
- synapse/lib/modelrev.py +771 -11
- synapse/lib/snap.py +0 -6
- 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/types.py +6 -0
- synapse/lib/version.py +2 -2
- synapse/models/infotech.py +49 -22
- synapse/models/risk.py +3 -0
- synapse/tests/test_cortex.py +10 -5
- synapse/tests/test_lib_base.py +2 -2
- synapse/tests/test_lib_cell.py +16 -4
- 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/tests/test_model_risk.py +2 -0
- synapse/tests/test_tools_snapshot.py +47 -0
- synapse/tools/aha/clone.py +3 -1
- synapse/tools/aha/easycert.py +1 -1
- synapse/tools/aha/enroll.py +3 -1
- synapse/tools/aha/provision/service.py +3 -1
- synapse/tools/aha/provision/user.py +3 -1
- synapse/tools/changelog.py +11 -3
- synapse/tools/livebackup.py +3 -1
- synapse/tools/promote.py +9 -3
- synapse/tools/snapshot.py +69 -0
- {synapse-2.185.0.dist-info → synapse-2.187.0.dist-info}/METADATA +1 -1
- {synapse-2.185.0.dist-info → synapse-2.187.0.dist-info}/RECORD +40 -41
- {synapse-2.185.0.dist-info → synapse-2.187.0.dist-info}/WHEEL +1 -1
- 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.185.0.dist-info → synapse-2.187.0.dist-info}/LICENSE +0 -0
- {synapse-2.185.0.dist-info → synapse-2.187.0.dist-info}/top_level.txt +0 -0
synapse/lib/snap.py
CHANGED
|
@@ -1559,12 +1559,6 @@ class Snap(s_base.Base):
|
|
|
1559
1559
|
return await self.tagnorms.aget(tagname)
|
|
1560
1560
|
|
|
1561
1561
|
async def _getTagNorm(self, tagname):
|
|
1562
|
-
|
|
1563
|
-
if not self.core.isTagValid(tagname):
|
|
1564
|
-
mesg = f'The tag ({tagname}) does not meet the regex for the tree.'
|
|
1565
|
-
await self._raiseOnStrict(s_exc.BadTag, mesg)
|
|
1566
|
-
return None
|
|
1567
|
-
|
|
1568
1562
|
try:
|
|
1569
1563
|
return self.core.model.type('syn:tag').norm(tagname)
|
|
1570
1564
|
except s_exc.BadTypeValu as e:
|
synapse/lib/spooled.py
CHANGED
|
@@ -7,6 +7,8 @@ import synapse.lib.const as s_const
|
|
|
7
7
|
import synapse.lib.msgpack as s_msgpack
|
|
8
8
|
import synapse.lib.lmdbslab as s_lmdbslab
|
|
9
9
|
|
|
10
|
+
MAX_SPOOL_SIZE = 10000
|
|
11
|
+
|
|
10
12
|
class Spooled(s_base.Base):
|
|
11
13
|
'''
|
|
12
14
|
A Base class that can be used to implement objects which fallback to lmdb.
|
|
@@ -15,7 +17,7 @@ class Spooled(s_base.Base):
|
|
|
15
17
|
together. Under memory pressure, these objects have a better shot of getting paged out.
|
|
16
18
|
'''
|
|
17
19
|
|
|
18
|
-
async def __anit__(self, dirn=None, size=
|
|
20
|
+
async def __anit__(self, dirn=None, size=MAX_SPOOL_SIZE, cell=None):
|
|
19
21
|
'''
|
|
20
22
|
Args:
|
|
21
23
|
dirn(Optional[str]): base directory used for backing slab. If None, system temporary directory is used
|
|
@@ -55,7 +57,7 @@ class Set(Spooled):
|
|
|
55
57
|
A minimal set-like implementation that will spool to a slab on large growth.
|
|
56
58
|
'''
|
|
57
59
|
|
|
58
|
-
async def __anit__(self, dirn=None, size=
|
|
60
|
+
async def __anit__(self, dirn=None, size=MAX_SPOOL_SIZE, cell=None):
|
|
59
61
|
await Spooled.__anit__(self, dirn=dirn, size=size, cell=cell)
|
|
60
62
|
self.realset = set()
|
|
61
63
|
self.len = 0
|
|
@@ -84,6 +86,27 @@ class Set(Spooled):
|
|
|
84
86
|
|
|
85
87
|
return len(self.realset)
|
|
86
88
|
|
|
89
|
+
async def copy(self):
|
|
90
|
+
newset = await Set.anit(dirn=self.dirn, size=self.size, cell=self.cell)
|
|
91
|
+
|
|
92
|
+
if self.fallback:
|
|
93
|
+
await newset._initFallBack()
|
|
94
|
+
await self.slab.copydb(None, newset.slab)
|
|
95
|
+
newset.len = self.len
|
|
96
|
+
|
|
97
|
+
else:
|
|
98
|
+
newset.realset = self.realset.copy()
|
|
99
|
+
|
|
100
|
+
return newset
|
|
101
|
+
|
|
102
|
+
async def clear(self):
|
|
103
|
+
if self.fallback:
|
|
104
|
+
self.len = 0
|
|
105
|
+
await self.slab.trash()
|
|
106
|
+
await self._initFallBack()
|
|
107
|
+
else:
|
|
108
|
+
self.realset.clear()
|
|
109
|
+
|
|
87
110
|
async def add(self, valu):
|
|
88
111
|
|
|
89
112
|
if self.fallback:
|
|
@@ -117,7 +140,7 @@ class Set(Spooled):
|
|
|
117
140
|
|
|
118
141
|
class Dict(Spooled):
|
|
119
142
|
|
|
120
|
-
async def __anit__(self, dirn=None, size=
|
|
143
|
+
async def __anit__(self, dirn=None, size=MAX_SPOOL_SIZE, cell=None):
|
|
121
144
|
|
|
122
145
|
await Spooled.__anit__(self, dirn=dirn, size=size, cell=cell)
|
|
123
146
|
self.realdict = {}
|
synapse/lib/storm.py
CHANGED
|
@@ -5979,6 +5979,13 @@ class RunAsCmd(Cmd):
|
|
|
5979
5979
|
|
|
5980
5980
|
NOTE: This command requires admin privileges.
|
|
5981
5981
|
|
|
5982
|
+
NOTE: Heavy objects (for example a View or Layer) are bound to the context which they
|
|
5983
|
+
are instantiated in and methods on them will be run using the user in that
|
|
5984
|
+
context. This means that executing a method on a variable containing a heavy
|
|
5985
|
+
object which was instantiated outside of the runas command and then used
|
|
5986
|
+
within the runas command will check the permissions of the outer user, not
|
|
5987
|
+
the one specified by the runas command.
|
|
5988
|
+
|
|
5982
5989
|
Examples:
|
|
5983
5990
|
|
|
5984
5991
|
// Create a node as another user.
|