synapse 2.168.0__tar.gz → 2.169.0__tar.gz
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-2.168.0/synapse.egg-info → synapse-2.169.0}/PKG-INFO +1 -1
- {synapse-2.168.0 → synapse-2.169.0}/pyproject.toml +1 -1
- {synapse-2.168.0 → synapse-2.169.0}/synapse/cortex.py +11 -8
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/agenda.py +3 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/cell.py +6 -14
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/httpapi.py +3 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/snap.py +3 -1
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/model.py +120 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormtypes.py +10 -2
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/version.py +2 -2
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/view.py +7 -10
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_agenda.py +17 -3
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_cell.py +21 -52
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_cortex.py +12 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_model.py +105 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormtypes.py +26 -0
- {synapse-2.168.0 → synapse-2.169.0/synapse.egg-info}/PKG-INFO +1 -1
- {synapse-2.168.0 → synapse-2.169.0}/LICENSE +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/README.rst +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/setup.cfg +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/axon.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/cells.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/cmds/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/cmds/boss.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/cmds/cortex.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/cmds/hive.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/common.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/cryotank.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/daemon.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/datamodel.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/exc.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/glob.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/aha.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/ast.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/autodoc.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/base.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/boss.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/cache.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/certdir.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/chop.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/cli.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/cmd.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/cmdr.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/config.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/const.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/coro.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/datfile.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/encoding.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/gis.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/grammar.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/hashitem.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/hashset.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/health.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/hive.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/hiveauth.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/ingest.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/interval.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/jupyter.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/layer.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/link.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/lmdbslab.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/modelrev.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/module.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/modules.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/msgpack.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/nexus.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/node.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/oauth.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/output.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/parser.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/queue.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/ratelimit.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/reflect.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/rstorm.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/schemas.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/scope.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/scrape.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/share.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/slaboffs.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/spooled.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/storm.lark +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/storm.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/storm_format.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormhttp.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/aha.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/auth.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/backup.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/cache.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/cell.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/cortex.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/gen.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/infosec.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/json.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/math.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/modelext.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/notifications.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/oauth.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/project.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/random.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/smtp.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/spooled.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/stats.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/stix.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/vault.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/version.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/xml.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormsvc.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/stormwhois.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/structlog.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/task.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/thishost.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/thisplat.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/threads.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/time.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/trigger.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/types.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lookup/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lookup/cvss.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lookup/iana.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lookup/iso3166.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lookup/macho.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lookup/pe.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/lookup/timezones.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/mindmeld.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/auth.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/base.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/belief.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/biz.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/crypto.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/dns.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/economic.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/files.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/geopol.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/geospace.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/gov/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/gov/cn.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/gov/intl.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/gov/us.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/inet.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/infotech.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/language.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/material.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/media.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/orgs.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/person.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/planning.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/proj.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/risk.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/science.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/syn.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/telco.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/models/transport.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/servers/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/servers/aha.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/servers/axon.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/servers/cell.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/servers/cortex.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/servers/cryotank.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/servers/stemcell.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/telepath.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/certdir/users/root.crt +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/certdir/users/root.key +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/certdir/users/user.crt +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/certdir/users/user.key +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/test.dat +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/files/testcore/cell.yaml +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/nopmod.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_axon.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_cmds_boss.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_cmds_cortex.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_cmds_hive.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_common.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_cortex.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_cryotank.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_data.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_datamodel.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_exc.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_glob.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_init.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_aha.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_ast.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_base.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_encoding.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_grammar.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_hive.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_hiveauth.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_httpapi.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_interval.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_jupyter.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_layer.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_modelrev.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_module.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_nexus.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_node.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_ratelimit.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_rstorm.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_slaboffs.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_snap.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_storm.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormsvc.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_stormwhois.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_structlog.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_trigger.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_types.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lib_view.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lookup_iso3166.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_mindmeld.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_auth.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_base.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_biz.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_dns.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_economic.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_files.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_inet.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_infotech.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_media.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_orgs.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_person.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_planning.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_proj.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_risk.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_science.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_syn.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_telco.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_model_transport.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_servers_cryotank.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_servers_stemcell.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_telepath.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_autodoc.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_axon2axon.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_backup.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_cellauth.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_cryo_list.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_csvtool.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_easycert.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_feed.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_genpkg.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_guid.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_healthcheck.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_hiveload.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_hivesave.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_json2mpk.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_livebackup.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_modrole.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_moduser.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_pullfile.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_pushfile.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_reload.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_rstorm.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_tools_storm.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_utils.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tests/utils.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/aha/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/aha/easycert.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/aha/enroll.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/aha/list.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/autodoc.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/axon2axon.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/backup.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/cellauth.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/cmdr.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/cryo/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/cryo/cat.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/cryo/list.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/csvtool.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/docker/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/easycert.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/feed.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/genpkg.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/guid.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/healthcheck.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/hive/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/hive/load.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/hive/save.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/json2mpk.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/livebackup.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/modrole.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/moduser.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/promote.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/pullfile.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/pushfile.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/reload.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/rstorm.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/tools/storm.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/utils/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/utils/getrefs.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/utils/stormcov/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/utils/stormcov/plugin.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/utils.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse.egg-info/SOURCES.txt +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse.egg-info/requires.txt +0 -0
- {synapse-2.168.0 → synapse-2.169.0}/synapse.egg-info/top_level.txt +0 -0
|
@@ -573,14 +573,6 @@ class CoreApi(s_cell.CellApi):
|
|
|
573
573
|
async def delStormDmon(self, iden):
|
|
574
574
|
return await self.cell.delStormDmon(iden)
|
|
575
575
|
|
|
576
|
-
@s_cell.adminapi(log=True)
|
|
577
|
-
async def enableMigrationMode(self): # pragma: no cover
|
|
578
|
-
s_common.deprdate('CoreApi.enableMigrationMode', '2024-05-05')
|
|
579
|
-
|
|
580
|
-
@s_cell.adminapi(log=True)
|
|
581
|
-
async def disableMigrationMode(self): # pragma: no cover
|
|
582
|
-
s_common.deprdate('CoreApi.disableMigrationMode', '2024-05-05')
|
|
583
|
-
|
|
584
576
|
@s_cell.adminapi()
|
|
585
577
|
async def cloneLayer(self, iden, ldef=None):
|
|
586
578
|
|
|
@@ -1350,6 +1342,17 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1350
1342
|
'ex': 'node.prop.del.inet:ipv4.asn',
|
|
1351
1343
|
'desc': 'Controls removing a specific property from a form of node in a layer.'},
|
|
1352
1344
|
|
|
1345
|
+
{'perm': ('node', 'data', 'set'), 'gate': 'layer',
|
|
1346
|
+
'desc': 'Permits a user to set node data in a given layer.'},
|
|
1347
|
+
{'perm': ('node', 'data', 'set', '<key>'), 'gate': 'layer',
|
|
1348
|
+
'ex': 'node.data.set.hehe',
|
|
1349
|
+
'desc': 'Permits a user to set node data in a given layer for a specific key.'},
|
|
1350
|
+
{'perm': ('node', 'data', 'pop'), 'gate': 'layer',
|
|
1351
|
+
'desc': 'Permits a user to remove node data in a given layer.'},
|
|
1352
|
+
{'perm': ('node', 'data', 'pop', '<key>'), 'gate': 'layer',
|
|
1353
|
+
'ex': 'node.data.pop.hehe',
|
|
1354
|
+
'desc': 'Permits a user to remove node data in a given layer for a specific key.'},
|
|
1355
|
+
|
|
1353
1356
|
{'perm': ('pkg', 'add'), 'gate': 'cortex',
|
|
1354
1357
|
'desc': 'Controls access to adding storm packages.'},
|
|
1355
1358
|
{'perm': ('pkg', 'del'), 'gate': 'cortex',
|
|
@@ -1295,14 +1295,20 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
1295
1295
|
|
|
1296
1296
|
async def _onBootOptimize(self):
|
|
1297
1297
|
|
|
1298
|
+
bdir = s_common.genpath(self.dirn, 'backups')
|
|
1298
1299
|
tdir = s_common.gendir(self.dirn, 'tmp')
|
|
1299
1300
|
tdev = os.stat(tdir).st_dev
|
|
1300
1301
|
|
|
1302
|
+
logger.warning('Collecting LMDB files for onboot optimization.')
|
|
1303
|
+
|
|
1301
1304
|
lmdbs = []
|
|
1302
1305
|
for (root, dirs, files) in os.walk(self.dirn):
|
|
1303
1306
|
for dirname in dirs:
|
|
1304
1307
|
filepath = os.path.join(root, dirname, 'data.mdb')
|
|
1305
1308
|
if os.path.isfile(filepath):
|
|
1309
|
+
if filepath.startswith(bdir):
|
|
1310
|
+
logger.debug(f'Skipping backup file {filepath}')
|
|
1311
|
+
continue
|
|
1306
1312
|
if os.stat(filepath).st_dev != tdev:
|
|
1307
1313
|
logger.warning(f'Unable to run onboot:optimize, {filepath} is not on the same volume as {tdir}')
|
|
1308
1314
|
return
|
|
@@ -2891,24 +2897,10 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
2891
2897
|
self.onfini(self.dmon.fini)
|
|
2892
2898
|
|
|
2893
2899
|
async def _initCellHive(self):
|
|
2894
|
-
isnew = not self.slab.dbexists('hive')
|
|
2895
|
-
|
|
2896
2900
|
db = self.slab.initdb('hive')
|
|
2897
2901
|
hive = await s_hive.SlabHive.anit(self.slab, db=db, nexsroot=self.getCellNexsRoot())
|
|
2898
2902
|
self.onfini(hive)
|
|
2899
2903
|
|
|
2900
|
-
if isnew:
|
|
2901
|
-
path = os.path.join(self.dirn, 'hiveboot.yaml')
|
|
2902
|
-
if os.path.isfile(path):
|
|
2903
|
-
s_common.deprdate('Initial hive config from hiveboot.yaml', '2024-05-05')
|
|
2904
|
-
logger.debug(f'Loading cell hive from {path}')
|
|
2905
|
-
tree = s_common.yamlload(path)
|
|
2906
|
-
if tree is not None:
|
|
2907
|
-
# Pack and unpack the tree to avoid tuple/list issues
|
|
2908
|
-
# for in-memory structures.
|
|
2909
|
-
tree = s_common.tuplify(tree)
|
|
2910
|
-
await hive.loadHiveTree(tree)
|
|
2911
|
-
|
|
2912
2904
|
return hive
|
|
2913
2905
|
|
|
2914
2906
|
async def _initCellSlab(self, readonly=False):
|
|
@@ -717,7 +717,9 @@ class Snap(s_base.Base):
|
|
|
717
717
|
|
|
718
718
|
show_storage = False
|
|
719
719
|
|
|
720
|
-
|
|
720
|
+
info = opts.get('_loginfo', {})
|
|
721
|
+
info.update({'mode': opts.get('mode', 'storm'), 'view': self.view.iden})
|
|
722
|
+
self.core._logStormQuery(text, user, info=info)
|
|
721
723
|
|
|
722
724
|
# { form: ( embedprop, ... ) }
|
|
723
725
|
embeds = opts.get('embeds')
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import synapse.exc as s_exc
|
|
2
2
|
import synapse.common as s_common
|
|
3
3
|
|
|
4
|
+
import synapse.lib.node as s_node
|
|
4
5
|
import synapse.lib.cache as s_cache
|
|
5
6
|
import synapse.lib.stormtypes as s_stormtypes
|
|
6
7
|
|
|
@@ -692,3 +693,122 @@ class LibModelDeprecated(s_stormtypes.Lib):
|
|
|
692
693
|
todo = s_common.todo('setDeprLock', name, locked)
|
|
693
694
|
gatekeys = ((self.runt.user.iden, ('model', 'deprecated', 'lock'), None),)
|
|
694
695
|
await self.runt.dyncall('cortex', todo, gatekeys=gatekeys)
|
|
696
|
+
|
|
697
|
+
@s_stormtypes.registry.registerLib
|
|
698
|
+
class LibModelMigration(s_stormtypes.Lib):
|
|
699
|
+
'''
|
|
700
|
+
A Storm library containing migration tools.
|
|
701
|
+
'''
|
|
702
|
+
_storm_locals = (
|
|
703
|
+
{'name': 'copyData', 'desc': 'Copy node data from the src node to the dst node.',
|
|
704
|
+
'type': {'type': 'function', '_funcname': '_methCopyData',
|
|
705
|
+
'args': (
|
|
706
|
+
{'name': 'src', 'type': 'node', 'desc': 'The node to copy data from.', },
|
|
707
|
+
{'name': 'dst', 'type': 'node', 'desc': 'The node to copy data to.', },
|
|
708
|
+
{'name': 'overwrite', 'type': 'boolean', 'default': False,
|
|
709
|
+
'desc': 'Copy data even if the key exists on the destination node.', },
|
|
710
|
+
),
|
|
711
|
+
'returns': {'type': 'null', }}},
|
|
712
|
+
{'name': 'copyEdges', 'desc': 'Copy edges from the src node to the dst node.',
|
|
713
|
+
'type': {'type': 'function', '_funcname': '_methCopyEdges',
|
|
714
|
+
'args': (
|
|
715
|
+
{'name': 'src', 'type': 'node', 'desc': 'The node to copy edges from.', },
|
|
716
|
+
{'name': 'dst', 'type': 'node', 'desc': 'The node to copy edges to.', },
|
|
717
|
+
),
|
|
718
|
+
'returns': {'type': 'null', }}},
|
|
719
|
+
{'name': 'copyTags', 'desc': 'Copy tags, tag timestamps, and tag props from the src node to the dst node.',
|
|
720
|
+
'type': {'type': 'function', '_funcname': '_methCopyTags',
|
|
721
|
+
'args': (
|
|
722
|
+
{'name': 'src', 'type': 'node', 'desc': 'The node to copy tags from.', },
|
|
723
|
+
{'name': 'dst', 'type': 'node', 'desc': 'The node to copy tags to.', },
|
|
724
|
+
{'name': 'overwrite', 'type': 'boolean', 'default': False,
|
|
725
|
+
'desc': 'Copy tag property value even if the property exists on the destination node.', },
|
|
726
|
+
),
|
|
727
|
+
'returns': {'type': 'null', }}},
|
|
728
|
+
)
|
|
729
|
+
_storm_lib_path = ('model', 'migration')
|
|
730
|
+
|
|
731
|
+
def getObjLocals(self):
|
|
732
|
+
return {
|
|
733
|
+
'copyData': self._methCopyData,
|
|
734
|
+
'copyEdges': self._methCopyEdges,
|
|
735
|
+
'copyTags': self._methCopyTags,
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
async def _methCopyData(self, src, dst, overwrite=False):
|
|
739
|
+
|
|
740
|
+
if not isinstance(src, s_node.Node):
|
|
741
|
+
raise s_exc.BadArg(mesg='$lib.model.migration.copyData() source argument must be a node.')
|
|
742
|
+
if not isinstance(dst, s_node.Node):
|
|
743
|
+
raise s_exc.BadArg(mesg='$lib.model.migration.copyData() dest argument must be a node.')
|
|
744
|
+
|
|
745
|
+
overwrite = await s_stormtypes.tobool(overwrite)
|
|
746
|
+
|
|
747
|
+
async with self.runt.snap.getEditor() as editor:
|
|
748
|
+
|
|
749
|
+
proto = editor.loadNode(dst)
|
|
750
|
+
|
|
751
|
+
async for name in src.iterDataKeys():
|
|
752
|
+
if overwrite or not await dst.hasData(name):
|
|
753
|
+
self.runt.layerConfirm(('node', 'data', 'set', name))
|
|
754
|
+
valu = await src.getData(name)
|
|
755
|
+
await proto.setData(name, valu)
|
|
756
|
+
|
|
757
|
+
async def _methCopyEdges(self, src, dst):
|
|
758
|
+
|
|
759
|
+
if not isinstance(src, s_node.Node):
|
|
760
|
+
raise s_exc.BadArg(mesg='$lib.model.migration.copyEdges() source argument must be a node.')
|
|
761
|
+
if not isinstance(dst, s_node.Node):
|
|
762
|
+
raise s_exc.BadArg(mesg='$lib.model.migration.copyEdges() dest argument must be a node.')
|
|
763
|
+
|
|
764
|
+
snap = self.runt.snap
|
|
765
|
+
|
|
766
|
+
async with snap.getEditor() as editor:
|
|
767
|
+
|
|
768
|
+
proto = editor.loadNode(dst)
|
|
769
|
+
verbs = set()
|
|
770
|
+
|
|
771
|
+
async for (verb, n2iden) in src.iterEdgesN1():
|
|
772
|
+
|
|
773
|
+
if verb not in verbs:
|
|
774
|
+
self.runt.layerConfirm(('node', 'edge', 'add', verb))
|
|
775
|
+
verbs.add(verb)
|
|
776
|
+
|
|
777
|
+
if await snap.getNodeByBuid(s_common.uhex(n2iden)) is not None:
|
|
778
|
+
await proto.addEdge(verb, n2iden)
|
|
779
|
+
|
|
780
|
+
dstiden = s_common.ehex(dst.buid)
|
|
781
|
+
|
|
782
|
+
async for (verb, n1iden) in src.iterEdgesN2():
|
|
783
|
+
|
|
784
|
+
if verb not in verbs:
|
|
785
|
+
self.runt.layerConfirm(('node', 'edge', 'add', verb))
|
|
786
|
+
verbs.add(verb)
|
|
787
|
+
|
|
788
|
+
n1proto = await editor.getNodeByBuid(s_common.uhex(n1iden))
|
|
789
|
+
if n1proto is not None:
|
|
790
|
+
await n1proto.addEdge(verb, dstiden)
|
|
791
|
+
|
|
792
|
+
async def _methCopyTags(self, src, dst, overwrite=False):
|
|
793
|
+
|
|
794
|
+
if not isinstance(src, s_node.Node):
|
|
795
|
+
raise s_exc.BadArg(mesg='$lib.model.migration.copyTags() source argument must be a node.')
|
|
796
|
+
if not isinstance(dst, s_node.Node):
|
|
797
|
+
raise s_exc.BadArg(mesg='$lib.model.migration.copyTags() dest argument must be a node.')
|
|
798
|
+
|
|
799
|
+
overwrite = await s_stormtypes.tobool(overwrite)
|
|
800
|
+
|
|
801
|
+
snap = self.runt.snap
|
|
802
|
+
|
|
803
|
+
async with snap.getEditor() as editor:
|
|
804
|
+
|
|
805
|
+
proto = editor.loadNode(dst)
|
|
806
|
+
|
|
807
|
+
for name, valu in src.tags.items():
|
|
808
|
+
self.runt.layerConfirm(('node', 'tag', 'add', *name.split('.')))
|
|
809
|
+
await proto.addTag(name, valu=valu)
|
|
810
|
+
|
|
811
|
+
for tagname, tagprops in src.tagprops.items():
|
|
812
|
+
for propname, valu in tagprops.items():
|
|
813
|
+
if overwrite or not dst.hasTagProp(tagname, propname):
|
|
814
|
+
await proto.setTagProp(tagname, propname, valu) # use tag perms
|
|
@@ -1604,8 +1604,12 @@ class LibBase(Lib):
|
|
|
1604
1604
|
continue
|
|
1605
1605
|
vals.append(arg)
|
|
1606
1606
|
|
|
1607
|
+
if len(vals) < 1:
|
|
1608
|
+
mesg = '$lib.min() must have at least one argument or a list containing at least one value.'
|
|
1609
|
+
raise s_exc.StormRuntimeError(mesg=mesg)
|
|
1610
|
+
|
|
1607
1611
|
ints = [await toint(x) for x in vals]
|
|
1608
|
-
return min(
|
|
1612
|
+
return min(ints)
|
|
1609
1613
|
|
|
1610
1614
|
@stormfunc(readonly=True)
|
|
1611
1615
|
async def _max(self, *args):
|
|
@@ -1618,8 +1622,12 @@ class LibBase(Lib):
|
|
|
1618
1622
|
continue
|
|
1619
1623
|
vals.append(arg)
|
|
1620
1624
|
|
|
1625
|
+
if len(vals) < 1:
|
|
1626
|
+
mesg = '$lib.max() must have at least one argument or a list containing at least one value.'
|
|
1627
|
+
raise s_exc.StormRuntimeError(mesg=mesg)
|
|
1628
|
+
|
|
1621
1629
|
ints = [await toint(x) for x in vals]
|
|
1622
|
-
return max(
|
|
1630
|
+
return max(ints)
|
|
1623
1631
|
|
|
1624
1632
|
@staticmethod
|
|
1625
1633
|
async def _get_mesg(mesg, **kwargs):
|
|
@@ -223,6 +223,6 @@ def reqVersion(valu, reqver,
|
|
|
223
223
|
##############################################################################
|
|
224
224
|
# The following are touched during the release process by bumpversion.
|
|
225
225
|
# Do not modify these directly.
|
|
226
|
-
version = (2,
|
|
226
|
+
version = (2, 169, 0)
|
|
227
227
|
verstring = '.'.join([str(x) for x in version])
|
|
228
|
-
commit = '
|
|
228
|
+
commit = '41421efcf40bb7655af3f90cb7d6d335247fc726'
|
|
@@ -868,20 +868,16 @@ class View(s_nexus.Pusher): # type: ignore
|
|
|
868
868
|
|
|
869
869
|
self.layers.append(layr)
|
|
870
870
|
|
|
871
|
-
async def eval(self, text, opts=None
|
|
871
|
+
async def eval(self, text, opts=None):
|
|
872
872
|
'''
|
|
873
873
|
Evaluate a storm query and yield Nodes only.
|
|
874
874
|
'''
|
|
875
875
|
opts = self.core._initStormOpts(opts)
|
|
876
876
|
user = self.core._userFromOpts(opts)
|
|
877
877
|
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
log_info['mode'] = opts.get('mode', 'storm')
|
|
882
|
-
log_info['view'] = self.iden
|
|
883
|
-
|
|
884
|
-
self.core._logStormQuery(text, user, info=log_info)
|
|
878
|
+
info = opts.get('_loginfo', {})
|
|
879
|
+
info.update({'mode': opts.get('mode', 'storm'), 'view': self.iden})
|
|
880
|
+
self.core._logStormQuery(text, user, info=info)
|
|
885
881
|
|
|
886
882
|
taskiden = opts.get('task')
|
|
887
883
|
taskinfo = {'query': text, 'view': self.iden}
|
|
@@ -997,8 +993,9 @@ class View(s_nexus.Pusher): # type: ignore
|
|
|
997
993
|
count += 1
|
|
998
994
|
|
|
999
995
|
else:
|
|
1000
|
-
|
|
1001
|
-
|
|
996
|
+
info = opts.get('_loginfo', {})
|
|
997
|
+
info.update({'mode': opts.get('mode', 'storm'), 'view': self.iden})
|
|
998
|
+
self.core._logStormQuery(text, user, info=info)
|
|
1002
999
|
async for item in snap.storm(text, opts=opts, user=user):
|
|
1003
1000
|
count += 1
|
|
1004
1001
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import json
|
|
1
2
|
import asyncio
|
|
2
3
|
import hashlib
|
|
3
4
|
import datetime
|
|
@@ -156,7 +157,7 @@ class AgendaTest(s_t_utils.SynTest):
|
|
|
156
157
|
newts = ar.nexttime(now)
|
|
157
158
|
self.eq(newts, datetime.datetime(year=2018, month=12, day=5, hour=7, minute=2, tzinfo=tz.utc).timestamp())
|
|
158
159
|
|
|
159
|
-
async def
|
|
160
|
+
async def test_agenda_base(self):
|
|
160
161
|
MONO_DELT = 1543827303.0
|
|
161
162
|
unixtime = datetime.datetime(year=2018, month=12, day=5, hour=7, minute=0, tzinfo=tz.utc).timestamp()
|
|
162
163
|
|
|
@@ -382,8 +383,21 @@ class AgendaTest(s_t_utils.SynTest):
|
|
|
382
383
|
self.true(appt.enabled)
|
|
383
384
|
self.eq(0, appt.startcount)
|
|
384
385
|
|
|
385
|
-
|
|
386
|
-
|
|
386
|
+
# Ensure structured logging captures the cron iden value
|
|
387
|
+
core.stormlog = True
|
|
388
|
+
with self.getStructuredAsyncLoggerStream('synapse.storm') as stream:
|
|
389
|
+
unixtime = datetime.datetime(year=2019, month=2, day=13, hour=10, minute=16,
|
|
390
|
+
tzinfo=tz.utc).timestamp()
|
|
391
|
+
self.eq((12, 'bar'), await asyncio.wait_for(core.callStorm('return($lib.queue.gen(visi).pop(wait=$lib.true))'), timeout=5))
|
|
392
|
+
core.stormlog = False
|
|
393
|
+
|
|
394
|
+
data = stream.getvalue()
|
|
395
|
+
raw_mesgs = [m for m in data.split('\n') if m]
|
|
396
|
+
msgs = [json.loads(m) for m in raw_mesgs]
|
|
397
|
+
msgs = [m for m in msgs if m['text'] == '$lib.queue.gen(visi).put(bar)']
|
|
398
|
+
self.gt(len(msgs), 0)
|
|
399
|
+
for m in msgs:
|
|
400
|
+
self.eq(m.get('cron'), appt.iden)
|
|
387
401
|
|
|
388
402
|
self.eq(1, appt.startcount)
|
|
389
403
|
|
|
@@ -496,52 +496,6 @@ class CellTest(s_t_utils.SynTest):
|
|
|
496
496
|
with self.raises(s_exc.AuthDeny):
|
|
497
497
|
await prox.setCellUser(visiiden)
|
|
498
498
|
|
|
499
|
-
async def test_cell_hiveboot(self):
|
|
500
|
-
|
|
501
|
-
with self.getTestDir() as dirn:
|
|
502
|
-
|
|
503
|
-
tree = {
|
|
504
|
-
'kids': {
|
|
505
|
-
'hehe': {'value': 'haha'},
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
bootpath = os.path.join(dirn, 'hiveboot.yaml')
|
|
510
|
-
|
|
511
|
-
s_common.yamlsave(tree, bootpath)
|
|
512
|
-
|
|
513
|
-
with warnings.catch_warnings(record=True) as warns:
|
|
514
|
-
async with self.getTestCell(s_cell.Cell, dirn=dirn) as cell:
|
|
515
|
-
self.eq('haha', await cell.hive.get(('hehe',)))
|
|
516
|
-
|
|
517
|
-
self.isin('Initial hive config from hiveboot.yaml', str(warns[0].message))
|
|
518
|
-
|
|
519
|
-
# test that the file does not load again
|
|
520
|
-
tree['kids']['redballoons'] = {'value': 99}
|
|
521
|
-
s_common.yamlsave(tree, bootpath)
|
|
522
|
-
|
|
523
|
-
async with self.getTestCell(s_cell.Cell, dirn=dirn) as cell:
|
|
524
|
-
self.none(await cell.hive.get(('redballoons',)))
|
|
525
|
-
|
|
526
|
-
# Do a full hive dump/load
|
|
527
|
-
with self.getTestDir() as dirn:
|
|
528
|
-
dir0 = s_common.genpath(dirn, 'cell00')
|
|
529
|
-
dir1 = s_common.genpath(dirn, 'cell01')
|
|
530
|
-
async with self.getTestCell(s_cell.Cell, dirn=dir0, conf={'auth:passwd': 'root'}) as cell00:
|
|
531
|
-
await cell00.hive.set(('beeps',), [1, 2, 'three'])
|
|
532
|
-
|
|
533
|
-
tree = await cell00.saveHiveTree()
|
|
534
|
-
s_common.yamlsave(tree, dir1, 'hiveboot.yaml')
|
|
535
|
-
with s_common.genfile(dir1, 'cell.guid') as fd:
|
|
536
|
-
_ = fd.write(cell00.iden.encode())
|
|
537
|
-
|
|
538
|
-
async with self.getTestCell(s_cell.Cell, dirn=dir1) as cell01:
|
|
539
|
-
resp = await cell01.hive.get(('beeps',))
|
|
540
|
-
self.isinstance(resp, tuple)
|
|
541
|
-
self.eq(resp, (1, 2, 'three'))
|
|
542
|
-
|
|
543
|
-
self.eq(cell00.iden, cell01.iden)
|
|
544
|
-
|
|
545
499
|
async def test_cell_getinfo(self):
|
|
546
500
|
async with self.getTestCore() as cell:
|
|
547
501
|
cell.COMMIT = 'mycommit'
|
|
@@ -2243,8 +2197,8 @@ class CellTest(s_t_utils.SynTest):
|
|
|
2243
2197
|
async with self.getTestCore(dirn=dirn, conf=conf) as core:
|
|
2244
2198
|
pass
|
|
2245
2199
|
|
|
2246
|
-
|
|
2247
|
-
|
|
2200
|
+
stream.seek(0)
|
|
2201
|
+
self.isin('onboot optimization complete!', stream.read())
|
|
2248
2202
|
|
|
2249
2203
|
stat01 = os.stat(lmdbfile)
|
|
2250
2204
|
self.ne(stat00.st_ino, stat01.st_ino)
|
|
@@ -2266,10 +2220,25 @@ class CellTest(s_t_utils.SynTest):
|
|
|
2266
2220
|
async with self.getTestCore(dirn=dirn, conf=conf) as core:
|
|
2267
2221
|
pass
|
|
2268
2222
|
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2223
|
+
stream.seek(0)
|
|
2224
|
+
buf = stream.read()
|
|
2225
|
+
self.notin('onboot optimization complete!', buf)
|
|
2226
|
+
self.isin('not on the same volume', buf)
|
|
2227
|
+
|
|
2228
|
+
# Local backup files are skipped
|
|
2229
|
+
async with self.getTestCore(dirn=dirn) as core:
|
|
2230
|
+
await core.runBackup()
|
|
2231
|
+
|
|
2232
|
+
with self.getAsyncLoggerStream('synapse.lib.cell') as stream:
|
|
2233
|
+
|
|
2234
|
+
conf = {'onboot:optimize': True}
|
|
2235
|
+
async with self.getTestCore(dirn=dirn, conf=conf) as core:
|
|
2236
|
+
pass
|
|
2237
|
+
|
|
2238
|
+
stream.seek(0)
|
|
2239
|
+
buf = stream.read()
|
|
2240
|
+
self.isin('Skipping backup file', buf)
|
|
2241
|
+
self.isin('onboot optimization complete!', buf)
|
|
2273
2242
|
|
|
2274
2243
|
async def test_cell_gc(self):
|
|
2275
2244
|
async with self.getTestCore() as core:
|
|
@@ -281,6 +281,18 @@ $request.reply(206, headers=$headers, body=({"no":"body"}))
|
|
|
281
281
|
self.eq(data.get('json'), 'err')
|
|
282
282
|
self.eq(data.get('path'), 'echo/words/wOw')
|
|
283
283
|
|
|
284
|
+
# Storm query logging includes the httpapi iden in structlog data
|
|
285
|
+
core.stormlog = True
|
|
286
|
+
with self.getStructuredAsyncLoggerStream('synapse.storm', 'Executing storm query') as stream:
|
|
287
|
+
resp = await sess.get(url)
|
|
288
|
+
self.eq(resp.status, 200)
|
|
289
|
+
self.true(await stream.wait(timeout=12))
|
|
290
|
+
data = stream.getvalue()
|
|
291
|
+
raw_mesgs = [m for m in data.split('\n') if m]
|
|
292
|
+
msgs = [json.loads(m) for m in raw_mesgs]
|
|
293
|
+
self.eq(msgs[0].get('httpapi'), echoiden)
|
|
294
|
+
core.stormlog = False
|
|
295
|
+
|
|
284
296
|
# Sad paths on the $request methods
|
|
285
297
|
q = '''$api = $lib.cortex.httpapi.add(testpath02)
|
|
286
298
|
$api.methods.get = ${ $request.sendcode(200) $request.sendheaders('beep beep') }
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import synapse.exc as s_exc
|
|
2
|
+
import synapse.lib.time as s_time
|
|
2
3
|
import synapse.lib.layer as s_layer
|
|
3
4
|
|
|
4
5
|
import synapse.tests.utils as s_test
|
|
@@ -295,3 +296,107 @@ class StormlibModelTest(s_test.SynTest):
|
|
|
295
296
|
|
|
296
297
|
self.stormIsInWarn('.pdep is not yet locked', mesgs)
|
|
297
298
|
self.stormNotInWarn('test:dep:easy.pdep is not yet locked', mesgs)
|
|
299
|
+
|
|
300
|
+
async def test_stormlib_model_migration(self):
|
|
301
|
+
|
|
302
|
+
async with self.getTestCore() as core:
|
|
303
|
+
|
|
304
|
+
nodes = await core.nodes('[ test:str=src test:str=dst test:str=deny test:str=other ]')
|
|
305
|
+
otheriden = nodes[3].iden()
|
|
306
|
+
|
|
307
|
+
lowuser = await core.auth.addUser('lowuser')
|
|
308
|
+
aslow = {'user': lowuser.iden}
|
|
309
|
+
|
|
310
|
+
# copy node data
|
|
311
|
+
|
|
312
|
+
await self.asyncraises(s_exc.BadArg, core.nodes('test:str=src $lib.model.migration.copyData($node, newp)'))
|
|
313
|
+
await self.asyncraises(s_exc.BadArg, core.nodes('test:str=dst $lib.model.migration.copyData(newp, $node)'))
|
|
314
|
+
|
|
315
|
+
nodes = await core.nodes('''
|
|
316
|
+
test:str=src
|
|
317
|
+
$node.data.set(a, a-src)
|
|
318
|
+
$node.data.set(b, b-src)
|
|
319
|
+
$n=$node -> {
|
|
320
|
+
test:str=dst
|
|
321
|
+
$node.data.set(a, a-dst)
|
|
322
|
+
$lib.model.migration.copyData($n, $node)
|
|
323
|
+
}
|
|
324
|
+
''')
|
|
325
|
+
self.len(1, nodes)
|
|
326
|
+
self.sorteq(
|
|
327
|
+
[('a', 'a-dst'), ('b', 'b-src')],
|
|
328
|
+
[data async for data in nodes[0].iterData()]
|
|
329
|
+
)
|
|
330
|
+
|
|
331
|
+
nodes = await core.nodes('''
|
|
332
|
+
test:str=src $n=$node -> {
|
|
333
|
+
test:str=dst
|
|
334
|
+
$lib.model.migration.copyData($n, $node, overwrite=$lib.true)
|
|
335
|
+
}
|
|
336
|
+
''')
|
|
337
|
+
self.len(1, nodes)
|
|
338
|
+
self.sorteq(
|
|
339
|
+
[('a', 'a-src'), ('b', 'b-src')],
|
|
340
|
+
[data async for data in nodes[0].iterData()]
|
|
341
|
+
)
|
|
342
|
+
|
|
343
|
+
q = 'test:str=src $n=$node -> { test:str=deny $lib.model.migration.copyData($n, $node) }'
|
|
344
|
+
await self.asyncraises(s_exc.AuthDeny, core.nodes(q, opts=aslow))
|
|
345
|
+
|
|
346
|
+
# copy edges
|
|
347
|
+
|
|
348
|
+
await self.asyncraises(s_exc.BadArg, core.nodes('test:str=src $lib.model.migration.copyEdges($node, newp)'))
|
|
349
|
+
await self.asyncraises(s_exc.BadArg, core.nodes('test:str=dst $lib.model.migration.copyEdges(newp, $node)'))
|
|
350
|
+
|
|
351
|
+
nodes = await core.nodes('''
|
|
352
|
+
test:str=src
|
|
353
|
+
[ <(foo)+ { test:str=other } +(bar)> { test:str=other } ]
|
|
354
|
+
$n=$node -> {
|
|
355
|
+
test:str=dst
|
|
356
|
+
$lib.model.migration.copyEdges($n, $node)
|
|
357
|
+
}
|
|
358
|
+
''')
|
|
359
|
+
self.len(1, nodes)
|
|
360
|
+
self.eq([('bar', otheriden)], [edge async for edge in nodes[0].iterEdgesN1()])
|
|
361
|
+
self.eq([('foo', otheriden)], [edge async for edge in nodes[0].iterEdgesN2()])
|
|
362
|
+
|
|
363
|
+
q = 'test:str=src $n=$node -> { test:str=deny $lib.model.migration.copyEdges($n, $node) }'
|
|
364
|
+
await self.asyncraises(s_exc.AuthDeny, core.nodes(q, opts=aslow))
|
|
365
|
+
|
|
366
|
+
# copy tags
|
|
367
|
+
|
|
368
|
+
await self.asyncraises(s_exc.BadArg, core.nodes('test:str=src $lib.model.migration.copyTags($node, newp)'))
|
|
369
|
+
await self.asyncraises(s_exc.BadArg, core.nodes('test:str=dst $lib.model.migration.copyTags(newp, $node)'))
|
|
370
|
+
|
|
371
|
+
await core.nodes('$lib.model.ext.addTagProp(test, (str, ({})), ({}))')
|
|
372
|
+
|
|
373
|
+
nodes = await core.nodes('''
|
|
374
|
+
test:str=src
|
|
375
|
+
[ +#foo=(2010, 2012) +#foo.bar +#baz:test=src ]
|
|
376
|
+
$n=$node -> {
|
|
377
|
+
test:str=dst
|
|
378
|
+
[ +#foo=(2010, 2011) +#baz:test=dst ]
|
|
379
|
+
$lib.model.migration.copyTags($n, $node)
|
|
380
|
+
}
|
|
381
|
+
''')
|
|
382
|
+
self.len(1, nodes)
|
|
383
|
+
self.sorteq([
|
|
384
|
+
('baz', (None, None)),
|
|
385
|
+
('foo', (s_time.parse('2010'), s_time.parse('2012'))),
|
|
386
|
+
('foo.bar', (None, None))
|
|
387
|
+
], nodes[0].getTags())
|
|
388
|
+
self.eq([], nodes[0].getTagProps('foo'))
|
|
389
|
+
self.eq([], nodes[0].getTagProps('foo.bar'))
|
|
390
|
+
self.eq([('test', 'dst')], [(k, nodes[0].getTagProp('baz', k)) for k in nodes[0].getTagProps('baz')])
|
|
391
|
+
|
|
392
|
+
nodes = await core.nodes('''
|
|
393
|
+
test:str=src $n=$node -> {
|
|
394
|
+
test:str=dst
|
|
395
|
+
$lib.model.migration.copyTags($n, $node, overwrite=$lib.true)
|
|
396
|
+
}
|
|
397
|
+
''')
|
|
398
|
+
self.len(1, nodes)
|
|
399
|
+
self.eq([('test', 'src')], [(k, nodes[0].getTagProp('baz', k)) for k in nodes[0].getTagProps('baz')])
|
|
400
|
+
|
|
401
|
+
q = 'test:str=src $n=$node -> { test:str=deny $lib.model.migration.copyTags($n, $node) }'
|
|
402
|
+
await self.asyncraises(s_exc.AuthDeny, core.nodes(q, opts=aslow))
|
|
@@ -575,6 +575,32 @@ class StormTypesTest(s_test.SynTest):
|
|
|
575
575
|
self.len(1, nodes)
|
|
576
576
|
self.eq(30, nodes[0].ndef[1])
|
|
577
577
|
|
|
578
|
+
# $lib.min / $lib.max behavior with 1 item
|
|
579
|
+
ret = await core.callStorm('$x = ([(1234)]) return ( $lib.min($x) )')
|
|
580
|
+
self.eq(ret, 1234)
|
|
581
|
+
|
|
582
|
+
ret = await core.callStorm('return ( $lib.min(1234) )')
|
|
583
|
+
self.eq(ret, 1234)
|
|
584
|
+
|
|
585
|
+
ret = await core.callStorm('$x = ([(1234)]) return ( $lib.max($x) )')
|
|
586
|
+
self.eq(ret, 1234)
|
|
587
|
+
|
|
588
|
+
ret = await core.callStorm('return ( $lib.max(1234) )')
|
|
589
|
+
self.eq(ret, 1234)
|
|
590
|
+
|
|
591
|
+
# $lib.min / $lib.max behavior with 0 items
|
|
592
|
+
with self.raises(s_exc.StormRuntimeError):
|
|
593
|
+
await core.callStorm('$lib.max()')
|
|
594
|
+
|
|
595
|
+
with self.raises(s_exc.StormRuntimeError):
|
|
596
|
+
await core.callStorm('$l=() $lib.max($l)')
|
|
597
|
+
|
|
598
|
+
with self.raises(s_exc.StormRuntimeError):
|
|
599
|
+
await core.callStorm('$lib.min()')
|
|
600
|
+
|
|
601
|
+
with self.raises(s_exc.StormRuntimeError):
|
|
602
|
+
await core.callStorm('$l=() $lib.min($l)')
|
|
603
|
+
|
|
578
604
|
nodes = await core.nodes('[ inet:asn=$lib.len(asdf) ]')
|
|
579
605
|
self.len(1, nodes)
|
|
580
606
|
self.eq(4, nodes[0].ndef[1])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|