synapse 2.231.0__tar.gz → 2.232.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.
- {synapse-2.231.0/synapse.egg-info → synapse-2.232.0}/PKG-INFO +2 -1
- {synapse-2.231.0 → synapse-2.232.0}/pyproject.toml +2 -1
- {synapse-2.231.0 → synapse-2.232.0}/synapse/cortex.py +44 -19
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/base.py +4 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/cell.py +14 -5
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/nexus.py +43 -2
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/auth.py +3 -3
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/pkg.py +1 -1
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormtypes.py +27 -25
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/version.py +2 -2
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/base.py +7 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_cortex.py +3 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_base.py +4 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_cell.py +76 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_nexus.py +106 -1
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_auth.py +2 -2
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormtypes.py +9 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_risk.py +8 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_telepath.py +37 -0
- {synapse-2.231.0 → synapse-2.232.0/synapse.egg-info}/PKG-INFO +2 -1
- {synapse-2.231.0 → synapse-2.232.0}/synapse.egg-info/requires.txt +1 -0
- {synapse-2.231.0 → synapse-2.232.0}/LICENSE +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/README.rst +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/setup.cfg +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/axon.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/cells.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/cmds/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/cmds/boss.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/cmds/cortex.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/cmds/hive.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/common.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/cryotank.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/daemon.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/iana.uris.mpk +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/json-schema.org/draft-07/schema +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-2.231.0 → synapse-2.232.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.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-2.231.0 → synapse-2.232.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.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-2.231.0 → synapse-2.232.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.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-2.231.0 → synapse-2.232.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.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/lark/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/lark/imap.lark +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/data/lark/storm.lark +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/datamodel.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/exc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/glob.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/agenda.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/aha.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/ast.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/auth.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/autodoc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/boss.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/cache.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/certdir.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/chop.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/cli.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/cmd.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/cmdr.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/config.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/const.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/coro.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/datfile.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/drive.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/encoding.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/gis.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/grammar.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/hashitem.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/hashset.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/health.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/hive.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/httpapi.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/ingest.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/interval.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/json.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/layer.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/link.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/lmdbslab.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/modelrev.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/module.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/modules.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/msgpack.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/node.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/oauth.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/output.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/parser.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/queue.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/ratelimit.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/reflect.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/rstorm.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/schemas.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/scope.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/scrape.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/share.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/slaboffs.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/snap.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/spooled.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/storm.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/storm_format.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormhttp.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/aha.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/backup.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/cache.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/cell.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/cortex.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/env.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/gen.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/index.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/infosec.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/json.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/math.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/model.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/modelext.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/notifications.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/oauth.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/project.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/quorum.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/random.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/smtp.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/spooled.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/stats.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/stix.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/tabular.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/task.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/utils.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/vault.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/version.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/xml.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormsvc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/stormwhois.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/structlog.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/task.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/thishost.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/thisplat.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/threads.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/time.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/trigger.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/types.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lib/view.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lookup/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lookup/cvss.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lookup/iana.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lookup/iso3166.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lookup/macho.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lookup/pe.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/lookup/timezones.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/mindmeld.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/auth.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/belief.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/biz.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/crypto.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/dns.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/doc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/economic.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/entity.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/files.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/geopol.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/geospace.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/gov/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/gov/cn.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/gov/intl.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/gov/us.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/inet.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/infotech.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/language.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/material.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/math.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/media.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/orgs.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/person.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/planning.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/proj.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/risk.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/science.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/syn.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/telco.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/models/transport.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/servers/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/servers/aha.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/servers/axon.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/servers/cell.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/servers/cortex.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/servers/cryotank.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/servers/stemcell.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/telepath.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/certdir/users/root.crt +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/certdir/users/root.key +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/certdir/users/user.crt +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/certdir/users/user.key +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/cpedata.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stix_import/scos.json +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/badinits.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/badvaultskeys.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/badvaultsschema.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/dotstorm_noevents/dotstorm.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/test.dat +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/testcore/cell.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/testpkg_build_docs/docs/bar.rst +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/testpkg_build_docs/docs/foo.rst +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/testpkg_build_docs/storm/commands/testcmd.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/testpkg_build_docs/storm/modules/apimod.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/testpkg_build_docs/storm/modules/testmod.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/testpkg_build_docs/storm/testcmd.storm +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/files/testpkg_build_docs/testpkg.yaml +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/nopmod.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_axon.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_cmds_boss.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_cmds_cortex.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_cmds_hive.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_common.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_cryotank.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_data.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_datamodel.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_exc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_glob.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_init.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_agenda.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_aha.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_ast.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_auth.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_encoding.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_grammar.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_hive.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_httpapi.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_interval.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_json.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_layer.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_modelrev.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_module.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_node.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_ratelimit.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_rstorm.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_slaboffs.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_snap.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_storm.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormctrl.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_pkg.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_quorum.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_task.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_utils.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormsvc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_stormwhois.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_structlog.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_trigger.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_types.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lib_view.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lookup_iso3166.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_mindmeld.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_auth.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_base.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_biz.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_dns.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_doc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_economic.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_entity.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_files.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_inet.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_infotech.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_math.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_media.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_orgs.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_person.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_planning.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_proj.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_science.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_syn.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_telco.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_model_transport.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_servers_cryotank.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_servers_stemcell.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_axon_copy.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_axon_dump_load.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_axon_get.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_axon_put.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_cellauth.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_cortex_csv.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_cortex_feed.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_cortex_layer.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_cryo_list.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_hiveload.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_hivesave.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_service_apikey.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_service_backup.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_service_demote.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_service_healthcheck.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_service_livebackup.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_service_modrole.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_service_moduser.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_service_promote.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_service_reload.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_service_shutdown.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_service_snapshot.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_storm_cli.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_storm_pkg_doc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_storm_pkg_gen.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_utils_autodoc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_utils_changelog.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_utils_easycert.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_utils_guid.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_utils_json2mpk.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_tools_utils_rstorm.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_utils.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tests/utils.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/aha/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/aha/clone.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/aha/easycert.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/aha/enroll.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/aha/list.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/aha/mirror.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/apikey.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/autodoc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/axon/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/axon/copy.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/axon/dump.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/axon/get.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/axon/load.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/axon/put.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/axon2axon.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/backup.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/cellauth.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/changelog.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/cmdr.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/cortex/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/cortex/csv.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/cortex/feed.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/cortex/layer/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/cortex/layer/dump.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/cortex/layer/load.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/cryo/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/cryo/cat.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/cryo/list.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/csvtool.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/demote.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/docker/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/easycert.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/feed.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/genpkg.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/guid.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/healthcheck.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/hive/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/hive/load.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/hive/save.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/json2mpk.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/livebackup.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/modrole.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/moduser.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/pkgs/gendocs.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/promote.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/pullfile.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/pushfile.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/reload.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/rstorm.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/service/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/service/apikey.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/service/backup.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/service/demote.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/service/healthcheck.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/service/livebackup.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/service/modrole.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/service/moduser.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/service/promote.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/service/reload.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/service/shutdown.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/service/snapshot.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/shutdown.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/snapshot.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/storm/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/storm/__main__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/storm/_cli.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/storm/pkg/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/storm/pkg/_pandoc_filter.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/storm/pkg/doc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/storm/pkg/gen.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/utils/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/utils/autodoc.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/utils/changelog.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/utils/easycert.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/utils/guid.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/utils/json2mpk.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/tools/utils/rstorm.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/utils/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/utils/getrefs.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/utils/stormcov/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/utils/stormcov/plugin.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/LICENSE +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/http/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/http/cookies.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/json.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/test/test_http_cookies.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/cpython/lib/test/test_json.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/utils.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse.egg-info/SOURCES.txt +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-2.231.0 → synapse-2.232.0}/synapse.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: synapse
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.232.0
|
|
4
4
|
Summary: Synapse Intelligence Analysis Framework
|
|
5
5
|
Author-email: The Vertex Project LLC <root@vertex.link>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -57,6 +57,7 @@ Requires-Dist: pycodestyle<3.0.0,>=2.10.0; extra == "dev"
|
|
|
57
57
|
Requires-Dist: bump2version<1.1.0,>=1.0.1; extra == "dev"
|
|
58
58
|
Requires-Dist: pytest-xdist<4.0.0,>=3.0.2; extra == "dev"
|
|
59
59
|
Requires-Dist: coverage<8.0.0,>=7.0.0; extra == "dev"
|
|
60
|
+
Requires-Dist: setproctitle<2.0.0,>=1.0.0; extra == "dev"
|
|
60
61
|
Provides-Extra: docs
|
|
61
62
|
Requires-Dist: sphinx<9.0.0,>=8.0.0; extra == "docs"
|
|
62
63
|
Requires-Dist: sphinx-rtd-theme<4.0.0,>=3.0.0; extra == "docs"
|
|
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = 'synapse'
|
|
7
|
-
version = '2.
|
|
7
|
+
version = '2.232.0'
|
|
8
8
|
authors = [
|
|
9
9
|
{ name = 'The Vertex Project LLC', email = 'root@vertex.link'},
|
|
10
10
|
]
|
|
@@ -64,6 +64,7 @@ dev = [
|
|
|
64
64
|
'bump2version>=1.0.1,<1.1.0',
|
|
65
65
|
'pytest-xdist>=3.0.2,<4.0.0',
|
|
66
66
|
'coverage>=7.0.0,<8.0.0',
|
|
67
|
+
'setproctitle>=1.0.0,<2.0.0',
|
|
67
68
|
]
|
|
68
69
|
docs = [
|
|
69
70
|
'sphinx>=8.0.0,<9.0.0',
|
|
@@ -768,6 +768,12 @@ class CoreApi(s_cell.CellApi):
|
|
|
768
768
|
async def getHttpExtApiByPath(self, path):
|
|
769
769
|
return await self.cell.getHttpExtApiByPath(path)
|
|
770
770
|
|
|
771
|
+
async def getViewDef(self, iden):
|
|
772
|
+
'''
|
|
773
|
+
Get a view definition by iden.
|
|
774
|
+
'''
|
|
775
|
+
return await self.cell.getViewDef(iden, user=self.user)
|
|
776
|
+
|
|
771
777
|
class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
772
778
|
'''
|
|
773
779
|
A Cortex implements the synapse hypergraph.
|
|
@@ -949,6 +955,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
949
955
|
self.bldgbuids = {} # buid -> (Node, Event) Nodes under construction
|
|
950
956
|
|
|
951
957
|
self.axon = None # type: s_axon.AxonApi
|
|
958
|
+
self.jsonstor = None # type: s_jsonstor.JsonStorApi
|
|
952
959
|
self.axready = asyncio.Event()
|
|
953
960
|
self.axoninfo = {}
|
|
954
961
|
|
|
@@ -1422,13 +1429,19 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1422
1429
|
'desc': 'Controls the ability to remove Layers from the cortex.'},
|
|
1423
1430
|
{'perm': ('layer', 'read'), 'gate': 'layer',
|
|
1424
1431
|
'desc': 'Controls the ability to read/lift from a Layer.'},
|
|
1425
|
-
{'perm': ('layer', 'read', '<
|
|
1432
|
+
{'perm': ('layer', 'read', '<layer>'), 'gate': 'cortex',
|
|
1426
1433
|
'desc': 'Controls the ability to read/lift from a specific Layer.'},
|
|
1427
|
-
|
|
1428
|
-
|
|
1434
|
+
|
|
1435
|
+
{'perm': ('layer', 'set', 'name'), 'gate': 'layer',
|
|
1436
|
+
'desc': 'Controls the ability set a layer name.'},
|
|
1437
|
+
{'perm': ('layer', 'set', 'desc'), 'gate': 'layer',
|
|
1438
|
+
'desc': 'Controls the ability set a layer description.'},
|
|
1439
|
+
{'perm': ('layer', 'set', 'readonly'), 'gate': 'layer',
|
|
1440
|
+
'desc': 'Controls the ability set a layer readonly.'},
|
|
1441
|
+
|
|
1429
1442
|
{'perm': ('layer', 'write'), 'gate': 'layer',
|
|
1430
1443
|
'desc': 'Controls the ability to write to a Layer.'},
|
|
1431
|
-
{'perm': ('layer', 'write', '<
|
|
1444
|
+
{'perm': ('layer', 'write', '<layer>'), 'gate': 'cortex',
|
|
1432
1445
|
'desc': 'Controls the ability to write to a specific Layer.'},
|
|
1433
1446
|
|
|
1434
1447
|
{'perm': ('model', 'form', 'add'), 'gate': 'cortex',
|
|
@@ -1509,10 +1522,10 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1509
1522
|
{'perm': ('node', 'tag', 'del'), 'gate': 'layer',
|
|
1510
1523
|
'desc': 'Controls removing any tag on any node in a layer.'},
|
|
1511
1524
|
|
|
1512
|
-
{'perm': ('node', 'tag', 'add', '<tag
|
|
1525
|
+
{'perm': ('node', 'tag', 'add', '<tag>'), 'gate': 'layer',
|
|
1513
1526
|
'ex': 'node.tag.add.cno.mal.redtree',
|
|
1514
1527
|
'desc': 'Controls adding a specific tag on any node in a layer.'},
|
|
1515
|
-
{'perm': ('node', 'tag', 'del', '<tag
|
|
1528
|
+
{'perm': ('node', 'tag', 'del', '<tag>'), 'gate': 'layer',
|
|
1516
1529
|
'ex': 'node.tag.del.cno.mal.redtree',
|
|
1517
1530
|
'desc': 'Controls removing a specific tag on any node in a layer.'},
|
|
1518
1531
|
|
|
@@ -1539,12 +1552,12 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1539
1552
|
|
|
1540
1553
|
{'perm': ('node', 'data', 'set'), 'gate': 'layer',
|
|
1541
1554
|
'desc': 'Permits a user to set node data in a given layer.'},
|
|
1542
|
-
{'perm': ('node', 'data', 'set', '<
|
|
1555
|
+
{'perm': ('node', 'data', 'set', '<varname>'), 'gate': 'layer',
|
|
1543
1556
|
'ex': 'node.data.set.hehe',
|
|
1544
1557
|
'desc': 'Permits a user to set node data in a given layer for a specific key.'},
|
|
1545
1558
|
{'perm': ('node', 'data', 'pop'), 'gate': 'layer',
|
|
1546
1559
|
'desc': 'Permits a user to remove node data in a given layer.'},
|
|
1547
|
-
{'perm': ('node', 'data', 'pop', '<
|
|
1560
|
+
{'perm': ('node', 'data', 'pop', '<varname>'), 'gate': 'layer',
|
|
1548
1561
|
'ex': 'node.data.pop.hehe',
|
|
1549
1562
|
'desc': 'Permits a user to remove node data in a given layer for a specific key.'},
|
|
1550
1563
|
|
|
@@ -1587,9 +1600,17 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1587
1600
|
'desc': 'Controls access to fork a view.'},
|
|
1588
1601
|
{'perm': ('view', 'read'), 'gate': 'view',
|
|
1589
1602
|
'desc': 'Controls read access to view.'},
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
'
|
|
1603
|
+
|
|
1604
|
+
{'perm': ('view', 'set', 'name'), 'gate': 'view',
|
|
1605
|
+
'desc': 'Controls access to set a view name.'},
|
|
1606
|
+
{'perm': ('view', 'set', 'desc'), 'gate': 'view',
|
|
1607
|
+
'desc': 'Controls access to set a view description.'},
|
|
1608
|
+
{'perm': ('view', 'set', 'quorum'), 'gate': 'view',
|
|
1609
|
+
'desc': 'Controls access to set a view quorum status.'},
|
|
1610
|
+
{'perm': ('view', 'set', 'parent'), 'gate': 'view',
|
|
1611
|
+
'desc': 'Controls access to set a view parent view.'},
|
|
1612
|
+
{'perm': ('view', 'set', 'protected'), 'gate': 'view',
|
|
1613
|
+
'desc': 'Controls access to set a view protected status.'},
|
|
1593
1614
|
))
|
|
1594
1615
|
for pdef in self._cortex_permdefs:
|
|
1595
1616
|
s_schemas.reqValidPermDef(pdef)
|
|
@@ -4284,9 +4305,12 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
4284
4305
|
'''
|
|
4285
4306
|
Generic fini handler for cortex components which may change or vary at runtime.
|
|
4286
4307
|
'''
|
|
4287
|
-
if self.axon:
|
|
4308
|
+
if self.axon is not None:
|
|
4288
4309
|
await self.axon.fini()
|
|
4289
4310
|
|
|
4311
|
+
if self.jsonstor is not None:
|
|
4312
|
+
await self.jsonstor.fini()
|
|
4313
|
+
|
|
4290
4314
|
[await wind.fini() for wind in tuple(self.nodeeditwindows)]
|
|
4291
4315
|
|
|
4292
4316
|
async def syncLayerNodeEdits(self, iden, offs, wait=True):
|
|
@@ -4542,8 +4566,6 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
4542
4566
|
conf = {'cell:guid': jsoniden, 'health:sysctl:checks': False}
|
|
4543
4567
|
self.jsonstor = await s_jsonstor.JsonStorCell.anit(path, conf=conf, parent=self)
|
|
4544
4568
|
|
|
4545
|
-
self.onfini(self.jsonstor)
|
|
4546
|
-
|
|
4547
4569
|
async def getJsonObj(self, path):
|
|
4548
4570
|
if self.jsonurl is not None:
|
|
4549
4571
|
await self.jsonstor.waitready()
|
|
@@ -4743,9 +4765,8 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
4743
4765
|
# Ensure each ctor's permdefs are valid
|
|
4744
4766
|
for pdef in ctor._storm_lib_perms:
|
|
4745
4767
|
s_schemas.reqValidPermDef(pdef)
|
|
4746
|
-
|
|
4747
|
-
|
|
4748
|
-
self.addStormLib(path, ctor)
|
|
4768
|
+
|
|
4769
|
+
self.addStormLib(path, ctor)
|
|
4749
4770
|
|
|
4750
4771
|
def _initFeedFuncs(self):
|
|
4751
4772
|
'''
|
|
@@ -5420,8 +5441,8 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
5420
5441
|
def listViews(self):
|
|
5421
5442
|
return list(self.views.values())
|
|
5422
5443
|
|
|
5423
|
-
async def getViewDef(self, iden):
|
|
5424
|
-
view = self.getView(iden=iden)
|
|
5444
|
+
async def getViewDef(self, iden, user=None):
|
|
5445
|
+
view = self.getView(iden=iden, user=user)
|
|
5425
5446
|
if view is not None:
|
|
5426
5447
|
return await view.pack()
|
|
5427
5448
|
|
|
@@ -5997,6 +6018,10 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
5997
6018
|
|
|
5998
6019
|
self.stormlibs.append((path, ctor))
|
|
5999
6020
|
|
|
6021
|
+
# Skip libbase which is registered as a default ctor in the storm Runtime
|
|
6022
|
+
if not path:
|
|
6023
|
+
return
|
|
6024
|
+
|
|
6000
6025
|
root = self.libroot
|
|
6001
6026
|
# (name, {kids}, {funcs})
|
|
6002
6027
|
|
|
@@ -453,6 +453,10 @@ class Base:
|
|
|
453
453
|
finally:
|
|
454
454
|
self.off(evnt, func)
|
|
455
455
|
|
|
456
|
+
def _wouldfini(self):
|
|
457
|
+
'''Check if a Base would be fini() if fini() was called on it.'''
|
|
458
|
+
return self._syn_refs == 1
|
|
459
|
+
|
|
456
460
|
async def waitfini(self, timeout=None):
|
|
457
461
|
'''
|
|
458
462
|
Wait for the base to fini()
|
|
@@ -1563,7 +1563,13 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
1563
1563
|
|
|
1564
1564
|
async def fini(self):
|
|
1565
1565
|
'''Fini override that ensures locking teardown order.'''
|
|
1566
|
-
|
|
1566
|
+
|
|
1567
|
+
# First we teardown our activebase if it is set. This allows those tasks to be
|
|
1568
|
+
# cancelled and do any cleanup that they may need to perform.
|
|
1569
|
+
if self._wouldfini() and self.activebase:
|
|
1570
|
+
await self.activebase.fini()
|
|
1571
|
+
|
|
1572
|
+
# we inherit from Pusher to make the Cell a Base subclass, so we tear it down through that.
|
|
1567
1573
|
retn = await s_nexus.Pusher.fini(self)
|
|
1568
1574
|
if retn == 0:
|
|
1569
1575
|
self._onFiniCellGuid()
|
|
@@ -4815,6 +4821,8 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
4815
4821
|
if mirror is not None:
|
|
4816
4822
|
mirror = s_urlhelp.sanitizeUrl(mirror)
|
|
4817
4823
|
|
|
4824
|
+
nxfo = await self.nexsroot.getNexsInfo()
|
|
4825
|
+
|
|
4818
4826
|
ret = {
|
|
4819
4827
|
'synapse': {
|
|
4820
4828
|
'commit': s_version.commit,
|
|
@@ -4829,13 +4837,13 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
4829
4837
|
'active': self.isactive,
|
|
4830
4838
|
'safemode': self.safemode,
|
|
4831
4839
|
'started': self.startms,
|
|
4832
|
-
'ready':
|
|
4840
|
+
'ready': nxfo['ready'], # TODO: Remove in 3.x.x
|
|
4833
4841
|
'commit': self.COMMIT,
|
|
4834
4842
|
'version': self.VERSION,
|
|
4835
4843
|
'verstring': self.VERSTRING,
|
|
4836
4844
|
'cellvers': dict(self.cellvers.items()),
|
|
4837
|
-
'nexsindx':
|
|
4838
|
-
'uplink':
|
|
4845
|
+
'nexsindx': nxfo['indx'], # TODO: Remove in 3.x.x
|
|
4846
|
+
'uplink': nxfo['uplink:ready'], # TODO: Remove in 3.x.x
|
|
4839
4847
|
'mirror': mirror,
|
|
4840
4848
|
'aha': {
|
|
4841
4849
|
'name': self.conf.get('aha:name'),
|
|
@@ -4844,7 +4852,8 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
4844
4852
|
},
|
|
4845
4853
|
'network': {
|
|
4846
4854
|
'https': self.https_listeners,
|
|
4847
|
-
}
|
|
4855
|
+
},
|
|
4856
|
+
'nexus': nxfo,
|
|
4848
4857
|
},
|
|
4849
4858
|
'features': self.features,
|
|
4850
4859
|
}
|
|
@@ -22,6 +22,11 @@ leaderversion = 'Leader is a higher version than we are.'
|
|
|
22
22
|
|
|
23
23
|
# As a mirror follower, amount of time before giving up on a write request
|
|
24
24
|
FOLLOWER_WRITE_WAIT_S = 30.0
|
|
25
|
+
# As a mirror, amount of time to wait for a connection to the leader before entering
|
|
26
|
+
# read-only mode and cancelling tasks waiting on responses.
|
|
27
|
+
FOLLOWER_CONNECT_WAIT_S = 60.0
|
|
28
|
+
|
|
29
|
+
mirrordisconnect = f'Unable to connect to leader for {FOLLOWER_CONNECT_WAIT_S}s.'
|
|
25
30
|
|
|
26
31
|
WINDOW_MAXSIZE = 10_000
|
|
27
32
|
YIELD_PREFIX = b'\x92\xa8t2:yield\x81\xa4retn\x92\xc3\x92'
|
|
@@ -225,6 +230,19 @@ class NexsRoot(s_base.Base):
|
|
|
225
230
|
|
|
226
231
|
logger.warning('...Nexus log migration complete')
|
|
227
232
|
|
|
233
|
+
async def getNexsInfo(self):
|
|
234
|
+
ret = {
|
|
235
|
+
'indx': await self.index(),
|
|
236
|
+
'ready': self.ready.is_set(),
|
|
237
|
+
'uplink:ready': self.miruplink.is_set(),
|
|
238
|
+
'readonly': self.readonly,
|
|
239
|
+
# This is a list of dictionaries so that we can populate metadata
|
|
240
|
+
# in the future if we want to do so.
|
|
241
|
+
'holds': sorted([{'reason': hold} for hold in self.writeholds],
|
|
242
|
+
key=lambda x: x.get('reason'))
|
|
243
|
+
}
|
|
244
|
+
return ret
|
|
245
|
+
|
|
228
246
|
@contextlib.contextmanager
|
|
229
247
|
def _getResponseFuture(self, iden=None):
|
|
230
248
|
|
|
@@ -354,7 +372,7 @@ class NexsRoot(s_base.Base):
|
|
|
354
372
|
await client.issue(nexsiden, event, args, kwargs, meta, wait=False)
|
|
355
373
|
else:
|
|
356
374
|
await client.issue(nexsiden, event, args, kwargs, meta)
|
|
357
|
-
return await
|
|
375
|
+
return await futu
|
|
358
376
|
|
|
359
377
|
async def eat(self, nexsiden, event, args, kwargs, meta, wait=True):
|
|
360
378
|
'''
|
|
@@ -365,6 +383,10 @@ class NexsRoot(s_base.Base):
|
|
|
365
383
|
|
|
366
384
|
await self.cell.nexslock.acquire()
|
|
367
385
|
|
|
386
|
+
if self.isfini:
|
|
387
|
+
self.cell.nexslock.release()
|
|
388
|
+
raise s_exc.IsFini(mesg=f'Nexus has been shutdown, cannot propose {s_common.trimText(str((nexsiden, event, args, kwargs, meta)))}')
|
|
389
|
+
|
|
368
390
|
try:
|
|
369
391
|
if (nexus := self._nexskids.get(nexsiden)) is None:
|
|
370
392
|
mesg = f'No Nexus Pusher with iden {nexsiden} {event=} args={s_common.trimText(repr(args))} ' \
|
|
@@ -391,6 +413,9 @@ class NexsRoot(s_base.Base):
|
|
|
391
413
|
async def _eat(self, item, indx=None):
|
|
392
414
|
|
|
393
415
|
try:
|
|
416
|
+
if self.isfini:
|
|
417
|
+
raise s_exc.IsFini(mesg=f'Nexus has been shutdown, cannot apply {s_common.trimText(str(item))}')
|
|
418
|
+
|
|
394
419
|
if self.donexslog:
|
|
395
420
|
saveindx, packitem = await self.nexslog.addWithPackRetn(item, indx=indx)
|
|
396
421
|
|
|
@@ -472,7 +497,7 @@ class NexsRoot(s_base.Base):
|
|
|
472
497
|
return
|
|
473
498
|
|
|
474
499
|
if self.isfini:
|
|
475
|
-
raise s_exc.IsFini()
|
|
500
|
+
raise s_exc.IsFini(mesg='Nexus has been shutdown, cannot iterate changes.')
|
|
476
501
|
|
|
477
502
|
maxoffs = offs
|
|
478
503
|
|
|
@@ -542,6 +567,7 @@ class NexsRoot(s_base.Base):
|
|
|
542
567
|
|
|
543
568
|
if self.client is not None:
|
|
544
569
|
await self.client.fini()
|
|
570
|
+
await self.delWriteHold(mirrordisconnect)
|
|
545
571
|
|
|
546
572
|
self._mirready.clear()
|
|
547
573
|
|
|
@@ -554,6 +580,7 @@ class NexsRoot(s_base.Base):
|
|
|
554
580
|
if mirurl is not None:
|
|
555
581
|
self.client = await s_telepath.Client.anit(mirurl, onlink=self._onTeleLink)
|
|
556
582
|
self.onfini(self.client)
|
|
583
|
+
self.client.schedCoro(self.connectTimeout())
|
|
557
584
|
|
|
558
585
|
self.started = True
|
|
559
586
|
|
|
@@ -580,13 +607,27 @@ class NexsRoot(s_base.Base):
|
|
|
580
607
|
|
|
581
608
|
await self.startup()
|
|
582
609
|
|
|
610
|
+
async def connectTimeout(self):
|
|
611
|
+
try:
|
|
612
|
+
await s_common.wait_for(self.miruplink.wait(), FOLLOWER_CONNECT_WAIT_S)
|
|
613
|
+
|
|
614
|
+
except asyncio.TimeoutError:
|
|
615
|
+
await self.addWriteHold(mirrordisconnect)
|
|
616
|
+
|
|
617
|
+
for futu in list(self._futures.values()):
|
|
618
|
+
futu.set_exception(s_exc.LinkErr(mesg=mirrordisconnect))
|
|
619
|
+
|
|
583
620
|
async def _onTeleLink(self, proxy):
|
|
584
621
|
self.miruplink.set()
|
|
622
|
+
await self.delWriteHold(mirrordisconnect)
|
|
585
623
|
|
|
586
624
|
def onfini():
|
|
587
625
|
self.miruplink.clear()
|
|
588
626
|
self.issuewait = False
|
|
589
627
|
|
|
628
|
+
if not self.isfini:
|
|
629
|
+
self.client.schedCoro(self.connectTimeout())
|
|
630
|
+
|
|
590
631
|
proxy.onfini(onfini)
|
|
591
632
|
proxy.schedCoro(self.runMirrorLoop(proxy))
|
|
592
633
|
|
|
@@ -1938,13 +1938,13 @@ class LibUsers(s_stormtypes.Lib):
|
|
|
1938
1938
|
{'perm': ('auth', 'user', 'set', 'rules'), 'gate': 'cortex',
|
|
1939
1939
|
'desc': 'Controls adding rules to a user.'},
|
|
1940
1940
|
|
|
1941
|
-
{'perm': ('auth', 'user', 'get', 'profile', '<
|
|
1941
|
+
{'perm': ('auth', 'user', 'get', 'profile', '<varname>'), 'gate': 'cortex',
|
|
1942
1942
|
'desc': 'Permits a user to retrieve their profile information.',
|
|
1943
1943
|
'ex': 'auth.user.get.profile.fullname'},
|
|
1944
|
-
{'perm': ('auth', 'user', 'pop', 'profile', '<
|
|
1944
|
+
{'perm': ('auth', 'user', 'pop', 'profile', '<varname>'), 'gate': 'cortex',
|
|
1945
1945
|
'desc': 'Permits a user to remove profile information.',
|
|
1946
1946
|
'ex': 'auth.user.pop.profile.fullname'},
|
|
1947
|
-
{'perm': ('auth', 'user', 'set', 'profile', '<
|
|
1947
|
+
{'perm': ('auth', 'user', 'set', 'profile', '<varname>'), 'gate': 'cortex',
|
|
1948
1948
|
'desc': 'Permits a user to set profile information.',
|
|
1949
1949
|
'ex': 'auth.user.set.profile.fullname'},
|
|
1950
1950
|
{'perm': ('auth', 'user', 'set', 'apikey'), 'gate': 'cortex',
|
|
@@ -258,7 +258,7 @@ class LibPkg(s_stormtypes.Lib):
|
|
|
258
258
|
'returns': {'type': 'pkg:queues', 'desc': 'An object for accessing the package Queues.', }}},
|
|
259
259
|
)
|
|
260
260
|
_storm_lib_perms = (
|
|
261
|
-
{'perm': ('power-ups', '<
|
|
261
|
+
{'perm': ('power-ups', '<power-up>', 'admin'), 'gate': 'cortex',
|
|
262
262
|
'desc': 'Controls the ability to interact with the vars or Queues for a Storm Package by name.'},
|
|
263
263
|
)
|
|
264
264
|
_storm_lib_path = ('pkg',)
|
|
@@ -940,8 +940,6 @@ class LibService(Lib):
|
|
|
940
940
|
'desc': 'Controls the ability to delete a Storm Service from the Cortex'},
|
|
941
941
|
{'perm': ('service', 'get'), 'gate': 'cortex',
|
|
942
942
|
'desc': 'Controls the ability to get the Service object for any Storm Service.'},
|
|
943
|
-
{'perm': ('service', 'get', '<iden>'), 'gate': 'cortex',
|
|
944
|
-
'desc': 'Controls the ability to get the Service object for a Storm Service by iden.'},
|
|
945
943
|
{'perm': ('service', 'list'), 'gate': 'cortex',
|
|
946
944
|
'desc': 'Controls the ability to list all available Storm Services and their service definitions.'},
|
|
947
945
|
)
|
|
@@ -1415,6 +1413,26 @@ class LibBase(Lib):
|
|
|
1415
1413
|
'desc': 'A deep copy of the primitive object.', }}},
|
|
1416
1414
|
)
|
|
1417
1415
|
|
|
1416
|
+
_storm_lib_perms = (
|
|
1417
|
+
{'perm': ('globals',), 'gate': 'cortex',
|
|
1418
|
+
'desc': 'Used to control all operations for global variables.'},
|
|
1419
|
+
|
|
1420
|
+
{'perm': ('globals', 'get'), 'gate': 'cortex',
|
|
1421
|
+
'desc': 'Used to control read access to all global variables.'},
|
|
1422
|
+
{'perm': ('globals', 'get', '<varname>'), 'gate': 'cortex',
|
|
1423
|
+
'desc': 'Used to control read access to a specific global variable.'},
|
|
1424
|
+
|
|
1425
|
+
{'perm': ('globals', 'set'), 'gate': 'cortex',
|
|
1426
|
+
'desc': 'Used to control edit access to all global variables.'},
|
|
1427
|
+
{'perm': ('globals', 'set', '<varname>'), 'gate': 'cortex',
|
|
1428
|
+
'desc': 'Used to control edit access to a specific global variable.'},
|
|
1429
|
+
|
|
1430
|
+
{'perm': ('globals', 'del'), 'gate': 'cortex',
|
|
1431
|
+
'desc': 'Used to control delete access to all global variables.'},
|
|
1432
|
+
{'perm': ('globals', 'del', '<varname>'), 'gate': 'cortex',
|
|
1433
|
+
'desc': 'Used to control delete access to a specific global variable.'},
|
|
1434
|
+
)
|
|
1435
|
+
|
|
1418
1436
|
def __init__(self, runt, name=()):
|
|
1419
1437
|
Lib.__init__(self, runt, name=name)
|
|
1420
1438
|
self.stors['debug'] = self._setRuntDebug
|
|
@@ -1592,7 +1610,12 @@ class LibBase(Lib):
|
|
|
1592
1610
|
name = await toprim(name)
|
|
1593
1611
|
valu = await toprim(valu)
|
|
1594
1612
|
|
|
1595
|
-
|
|
1613
|
+
try:
|
|
1614
|
+
return self._reqTypeByName(name).repr(valu)
|
|
1615
|
+
except s_exc.SynErr:
|
|
1616
|
+
raise
|
|
1617
|
+
except Exception as e:
|
|
1618
|
+
raise s_exc.BadArg(mesg=f'Failed to repr {name=} valu={s_common.trimText(repr(valu))}; {e}') from None
|
|
1596
1619
|
|
|
1597
1620
|
@stormfunc(readonly=True)
|
|
1598
1621
|
async def _exit(self, mesg=None, **kwargs):
|
|
@@ -4218,9 +4241,7 @@ class LibTelepath(Lib):
|
|
|
4218
4241
|
_storm_lib_path = ('telepath',)
|
|
4219
4242
|
_storm_lib_perms = (
|
|
4220
4243
|
{'perm': ('storm', 'lib', 'telepath', 'open'), 'gate': 'cortex',
|
|
4221
|
-
'desc': 'Controls the ability to open
|
|
4222
|
-
{'perm': ('storm', 'lib', 'telepath', 'open', '<scheme>'), 'gate': 'cortex',
|
|
4223
|
-
'desc': 'Controls the ability to open a telepath URL with a specific URI scheme. USE WITH CAUTION.'},
|
|
4244
|
+
'desc': 'Controls the ability to open a telepath URL. USE WITH CAUTION.'},
|
|
4224
4245
|
)
|
|
4225
4246
|
|
|
4226
4247
|
def getObjLocals(self):
|
|
@@ -5868,25 +5889,6 @@ class LibGlobals(Lib):
|
|
|
5868
5889
|
'desc': 'A list of tuples with variable names and values that the user can access.', }}},
|
|
5869
5890
|
)
|
|
5870
5891
|
_storm_lib_path = ('globals', )
|
|
5871
|
-
_storm_lib_perms = (
|
|
5872
|
-
{'perm': ('globals',), 'gate': 'cortex',
|
|
5873
|
-
'desc': 'Used to control all operations for global variables.'},
|
|
5874
|
-
|
|
5875
|
-
{'perm': ('globals', 'get'), 'gate': 'cortex',
|
|
5876
|
-
'desc': 'Used to control read access to all global variables.'},
|
|
5877
|
-
{'perm': ('globals', 'get', '<name>'), 'gate': 'cortex',
|
|
5878
|
-
'desc': 'Used to control read access to a specific global variable.'},
|
|
5879
|
-
|
|
5880
|
-
{'perm': ('globals', 'set'), 'gate': 'cortex',
|
|
5881
|
-
'desc': 'Used to control edit access to all global variables.'},
|
|
5882
|
-
{'perm': ('globals', 'set', '<name>'), 'gate': 'cortex',
|
|
5883
|
-
'desc': 'Used to control edit access to a specific global variable.'},
|
|
5884
|
-
|
|
5885
|
-
{'perm': ('globals', 'pop'), 'gate': 'cortex',
|
|
5886
|
-
'desc': 'Used to control delete access to all global variables.'},
|
|
5887
|
-
{'perm': ('globals', 'pop', '<name>'), 'gate': 'cortex',
|
|
5888
|
-
'desc': 'Used to control delete access to a specific global variable.'},
|
|
5889
|
-
)
|
|
5890
5892
|
|
|
5891
5893
|
def __init__(self, runt, name):
|
|
5892
5894
|
Lib.__init__(self, runt, name)
|
|
@@ -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, 232, 0)
|
|
227
227
|
verstring = '.'.join([str(x) for x in version])
|
|
228
|
-
commit = '
|
|
228
|
+
commit = '5a0c548c56e314e5c2a4b0373ce90d74d239d167'
|
|
@@ -213,6 +213,13 @@ class BaseModule(s_module.CoreModule):
|
|
|
213
213
|
|
|
214
214
|
(('meta:rule', 'detects', None), {
|
|
215
215
|
'doc': 'The meta:rule is designed to detect instances of the target node.'}),
|
|
216
|
+
|
|
217
|
+
(('meta:rule', 'generated', 'risk:alert'), {
|
|
218
|
+
'doc': 'The meta:rule generated the risk:alert node.'}),
|
|
219
|
+
|
|
220
|
+
(('meta:rule', 'generated', 'it:log:event'), {
|
|
221
|
+
'doc': 'The meta:rule generated the it:log:event node.'}),
|
|
222
|
+
|
|
216
223
|
),
|
|
217
224
|
'forms': (
|
|
218
225
|
|
|
@@ -296,14 +296,18 @@ class BaseTest(s_t_utils.SynTest):
|
|
|
296
296
|
|
|
297
297
|
async def test_base_refcount(self):
|
|
298
298
|
base = await s_base.Base.anit()
|
|
299
|
+
self.true(base._wouldfini())
|
|
299
300
|
|
|
300
301
|
self.eq(base.incref(), 2)
|
|
302
|
+
self.false(base._wouldfini())
|
|
301
303
|
|
|
302
304
|
self.eq(await base.fini(), 1)
|
|
303
305
|
self.false(base.isfini)
|
|
306
|
+
self.true(base._wouldfini())
|
|
304
307
|
|
|
305
308
|
self.eq(await base.fini(), 0)
|
|
306
309
|
self.true(base.isfini)
|
|
310
|
+
self.false(base._wouldfini())
|
|
307
311
|
|
|
308
312
|
async def test_baseref_gen(self):
|
|
309
313
|
|
|
@@ -910,6 +910,7 @@ class CellTest(s_t_utils.SynTest):
|
|
|
910
910
|
info = await prox.getCellInfo()
|
|
911
911
|
# Cell information
|
|
912
912
|
cnfo = info.get('cell')
|
|
913
|
+
nxfo = cnfo.get('nexus')
|
|
913
914
|
snfo = info.get('synapse')
|
|
914
915
|
self.eq(cnfo.get('commit'), 'mycommit')
|
|
915
916
|
self.eq(cnfo.get('version'), (1, 2, 3))
|
|
@@ -919,7 +920,15 @@ class CellTest(s_t_utils.SynTest):
|
|
|
919
920
|
self.ge(cnfo.get('nexsindx'), 0)
|
|
920
921
|
self.true(cnfo.get('active'))
|
|
921
922
|
self.false(cnfo.get('uplink'))
|
|
923
|
+
self.true(cnfo.get('ready'))
|
|
922
924
|
self.none(cnfo.get('mirror', True))
|
|
925
|
+
# Nexus info
|
|
926
|
+
self.ge(nxfo.get('indx'), 0)
|
|
927
|
+
self.false(nxfo.get('uplink:ready'))
|
|
928
|
+
self.true(nxfo.get('ready'))
|
|
929
|
+
self.false(nxfo.get('readonly'))
|
|
930
|
+
self.eq(nxfo.get('holds'), [])
|
|
931
|
+
|
|
923
932
|
# A Cortex populated cellvers
|
|
924
933
|
self.isin('cortex:defaults', cnfo.get('cellvers', {}))
|
|
925
934
|
|
|
@@ -938,6 +947,21 @@ class CellTest(s_t_utils.SynTest):
|
|
|
938
947
|
https = netw.get('https')
|
|
939
948
|
self.eq(https, http_info)
|
|
940
949
|
|
|
950
|
+
# Write hold information is reflected through cell info
|
|
951
|
+
await cell.nexsroot.addWriteHold('boop')
|
|
952
|
+
await cell.nexsroot.addWriteHold('beep')
|
|
953
|
+
info = await prox.getCellInfo()
|
|
954
|
+
nxfo = info.get('cell').get('nexus')
|
|
955
|
+
self.true(nxfo.get('readonly'))
|
|
956
|
+
self.eq(nxfo.get('holds'), [{'reason': 'beep'}, {'reason': 'boop'}])
|
|
957
|
+
|
|
958
|
+
await cell.nexsroot.delWriteHold('boop')
|
|
959
|
+
await cell.nexsroot.delWriteHold('beep')
|
|
960
|
+
info = await prox.getCellInfo()
|
|
961
|
+
nxfo = info.get('cell').get('nexus')
|
|
962
|
+
self.false(nxfo.get('readonly'))
|
|
963
|
+
self.eq(nxfo.get('holds'), [])
|
|
964
|
+
|
|
941
965
|
# Mirrors & ready flags
|
|
942
966
|
async with self.getTestAha() as aha: # type: s_aha.AhaCell
|
|
943
967
|
|
|
@@ -956,18 +980,26 @@ class CellTest(s_t_utils.SynTest):
|
|
|
956
980
|
await cell01.sync()
|
|
957
981
|
|
|
958
982
|
cnfo0 = await cell00.getCellInfo()
|
|
983
|
+
nxfo0 = cnfo0['cell']['nexus']
|
|
959
984
|
cnfo1 = await cell01.getCellInfo()
|
|
985
|
+
nxfo1 = cnfo1['cell']['nexus']
|
|
960
986
|
self.true(cnfo0['cell']['ready'])
|
|
961
987
|
self.false(cnfo0['cell']['uplink'])
|
|
962
988
|
self.none(cnfo0['cell']['mirror'])
|
|
963
989
|
self.eq(cnfo0['cell']['version'], (1, 2, 3))
|
|
990
|
+
self.false(nxfo0.get('uplink:ready'))
|
|
991
|
+
self.true(nxfo0.get('ready'))
|
|
964
992
|
|
|
965
993
|
self.true(cnfo1['cell']['ready'])
|
|
966
994
|
self.true(cnfo1['cell']['uplink'])
|
|
967
995
|
self.eq(cnfo1['cell']['mirror'], 'aha://root@cell...')
|
|
968
996
|
self.eq(cnfo1['cell']['version'], (1, 2, 3))
|
|
969
997
|
|
|
998
|
+
self.true(nxfo1.get('uplink:ready'))
|
|
999
|
+
self.true(nxfo1.get('ready'))
|
|
1000
|
+
|
|
970
1001
|
self.eq(cnfo0['cell']['nexsindx'], cnfo1['cell']['nexsindx'])
|
|
1002
|
+
self.eq(nxfo0['indx'], nxfo1['indx'])
|
|
971
1003
|
|
|
972
1004
|
async def test_cell_dyncall(self):
|
|
973
1005
|
|
|
@@ -3612,3 +3644,47 @@ class CellTest(s_t_utils.SynTest):
|
|
|
3612
3644
|
|
|
3613
3645
|
self.none(await cell00.getTask(task01))
|
|
3614
3646
|
self.false(await cell00.killTask(task01))
|
|
3647
|
+
|
|
3648
|
+
async def test_cell_fini_order(self):
|
|
3649
|
+
|
|
3650
|
+
with self.getTestDir() as dirn:
|
|
3651
|
+
|
|
3652
|
+
data = []
|
|
3653
|
+
conf = {'nexslog:en': True}
|
|
3654
|
+
|
|
3655
|
+
async with self.getTestCell(dirn=dirn, conf=conf) as cell:
|
|
3656
|
+
|
|
3657
|
+
event00 = asyncio.Event()
|
|
3658
|
+
|
|
3659
|
+
async def coro():
|
|
3660
|
+
try:
|
|
3661
|
+
event00.set()
|
|
3662
|
+
await asyncio.sleep(100000)
|
|
3663
|
+
except asyncio.CancelledError:
|
|
3664
|
+
# nexus txn can run in a activeTask handler
|
|
3665
|
+
await cell.sync()
|
|
3666
|
+
data.append('activetask_cancelled')
|
|
3667
|
+
|
|
3668
|
+
async def bg_coro():
|
|
3669
|
+
self.true(await cell.waitfini(timeout=12))
|
|
3670
|
+
data.append('cell_fini')
|
|
3671
|
+
return True
|
|
3672
|
+
|
|
3673
|
+
bg_task = s_coro.create_task(bg_coro())
|
|
3674
|
+
cell.runActiveTask(coro())
|
|
3675
|
+
self.true(await asyncio.wait_for(event00.wait(), timeout=6))
|
|
3676
|
+
|
|
3677
|
+
# Perform a non-sync nexus txn then teardown the cell via __aexit__
|
|
3678
|
+
self.nn(await cell.addUser('someuser'))
|
|
3679
|
+
|
|
3680
|
+
self.true(await asyncio.wait_for(bg_task, timeout=6))
|
|
3681
|
+
|
|
3682
|
+
self.eq(data, ['activetask_cancelled', 'cell_fini'])
|
|
3683
|
+
|
|
3684
|
+
async with self.getTestCell(dirn=dirn, conf=conf) as cell:
|
|
3685
|
+
offs = await cell.getNexsIndx()
|
|
3686
|
+
items = []
|
|
3687
|
+
async for offs, item in cell.getNexusChanges(offs - 1, wait=False):
|
|
3688
|
+
items.append(item)
|
|
3689
|
+
self.len(1, items)
|
|
3690
|
+
self.eq('sync', items[0][1])
|