synapse 2.201.0__tar.gz → 2.202.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.201.0/synapse.egg-info → synapse-2.202.0}/PKG-INFO +1 -1
- {synapse-2.201.0 → synapse-2.202.0}/pyproject.toml +1 -1
- {synapse-2.201.0 → synapse-2.202.0}/synapse/cortex.py +30 -23
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/base.py +2 -12
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/cell.py +9 -13
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/parser.py +2 -1
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/storm.lark +5 -4
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/storm_format.py +2 -1
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/version.py +2 -2
- {synapse-2.201.0 → synapse-2.202.0}/synapse/telepath.py +75 -16
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_cortex.py +23 -3
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_cell.py +11 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_grammar.py +4 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_storm.py +6 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_telepath.py +56 -34
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_utils_getrefs.py +35 -28
- {synapse-2.201.0 → synapse-2.202.0}/synapse/utils/getrefs.py +4 -2
- {synapse-2.201.0 → synapse-2.202.0/synapse.egg-info}/PKG-INFO +1 -1
- {synapse-2.201.0 → synapse-2.202.0}/LICENSE +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/README.rst +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/setup.cfg +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/axon.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/cells.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/cmds/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/cmds/boss.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/cmds/cortex.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/cmds/hive.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/common.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/cryotank.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/daemon.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-2.201.0 → synapse-2.202.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.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-2.201.0 → synapse-2.202.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.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-2.201.0 → synapse-2.202.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.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-2.201.0 → synapse-2.202.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.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/datamodel.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/exc.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/glob.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/agenda.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/aha.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/ast.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/auth.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/autodoc.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/boss.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/cache.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/certdir.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/chop.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/cli.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/cmd.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/cmdr.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/config.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/const.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/coro.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/datfile.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/drive.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/encoding.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/gis.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/grammar.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/hashitem.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/hashset.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/health.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/hive.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/httpapi.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/ingest.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/interval.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/layer.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/link.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/lmdbslab.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/modelrev.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/module.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/modules.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/msgpack.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/nexus.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/node.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/oauth.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/output.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/queue.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/ratelimit.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/reflect.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/rstorm.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/schemas.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/scope.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/scrape.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/share.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/slaboffs.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/snap.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/spooled.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/storm.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormhttp.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/aha.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/auth.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/backup.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/cache.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/cell.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/cortex.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/env.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/gen.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/index.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/infosec.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/json.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/math.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/model.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/modelext.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/notifications.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/oauth.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/project.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/random.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/smtp.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/spooled.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/stats.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/stix.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/tabular.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/utils.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/vault.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/version.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/xml.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormsvc.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormtypes.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/stormwhois.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/structlog.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/task.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/thishost.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/thisplat.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/threads.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/time.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/trigger.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/types.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lib/view.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lookup/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lookup/cvss.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lookup/iana.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lookup/iso3166.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lookup/macho.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lookup/pe.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/lookup/timezones.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/mindmeld.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/auth.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/base.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/belief.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/biz.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/crypto.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/dns.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/doc.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/economic.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/entity.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/files.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/geopol.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/geospace.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/gov/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/gov/cn.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/gov/intl.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/gov/us.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/inet.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/infotech.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/language.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/material.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/math.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/media.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/orgs.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/person.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/planning.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/proj.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/risk.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/science.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/syn.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/telco.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/models/transport.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/servers/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/servers/aha.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/servers/axon.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/servers/cell.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/servers/cortex.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/servers/cryotank.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/servers/stemcell.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/certdir/users/root.crt +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/certdir/users/root.key +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/certdir/users/user.crt +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/certdir/users/user.key +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/cpedata.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/test.dat +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/files/testcore/cell.yaml +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/nopmod.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_axon.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_cmds_boss.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_cmds_cortex.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_cmds_hive.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_common.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_cryotank.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_data.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_datamodel.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_exc.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_glob.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_init.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_agenda.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_aha.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_ast.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_auth.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_base.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_encoding.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_hive.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_httpapi.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_interval.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_layer.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_modelrev.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_module.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_nexus.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_node.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_ratelimit.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_rstorm.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_slaboffs.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_snap.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormctrl.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_utils.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormsvc.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormtypes.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_stormwhois.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_structlog.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_trigger.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_types.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lib_view.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lookup_iso3166.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_mindmeld.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_auth.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_base.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_biz.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_dns.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_doc.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_economic.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_files.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_inet.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_infotech.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_math.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_media.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_orgs.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_person.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_planning.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_proj.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_risk.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_science.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_syn.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_telco.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_model_transport.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_servers_cryotank.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_servers_stemcell.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_apikey.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_autodoc.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_axon2axon.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_backup.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_cellauth.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_changelog.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_cryo_list.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_csvtool.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_easycert.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_feed.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_genpkg.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_guid.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_healthcheck.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_hiveload.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_hivesave.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_json2mpk.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_livebackup.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_modrole.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_moduser.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_promote.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_pullfile.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_pushfile.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_reload.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_rstorm.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_snapshot.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_tools_storm.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_utils.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tests/utils.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/aha/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/aha/clone.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/aha/easycert.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/aha/enroll.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/aha/list.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/aha/mirror.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/apikey.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/autodoc.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/axon2axon.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/backup.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/cellauth.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/changelog.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/cmdr.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/cryo/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/cryo/cat.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/cryo/list.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/csvtool.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/docker/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/easycert.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/feed.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/genpkg.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/guid.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/healthcheck.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/hive/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/hive/load.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/hive/save.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/json2mpk.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/livebackup.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/modrole.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/moduser.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/promote.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/pullfile.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/pushfile.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/reload.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/rstorm.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/snapshot.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/tools/storm.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/utils/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/utils/stormcov/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/utils/stormcov/plugin.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/LICENSE +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/lib/http/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/lib/http/cookies.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/lib/test/test_http_cookies.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/utils.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse.egg-info/SOURCES.txt +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse.egg-info/requires.txt +0 -0
- {synapse-2.201.0 → synapse-2.202.0}/synapse.egg-info/top_level.txt +0 -0
|
@@ -5874,38 +5874,45 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
5874
5874
|
if self.stormpool is None: # pragma: no cover
|
|
5875
5875
|
return None
|
|
5876
5876
|
|
|
5877
|
-
|
|
5877
|
+
size = self.stormpool.size()
|
|
5878
|
+
if size == 0:
|
|
5878
5879
|
logger.warning('Storm query mirror pool is empty, running query locally.')
|
|
5879
5880
|
return None
|
|
5880
5881
|
|
|
5881
|
-
|
|
5882
|
+
for _ in range(size):
|
|
5882
5883
|
|
|
5883
|
-
|
|
5884
|
-
|
|
5885
|
-
|
|
5886
|
-
|
|
5887
|
-
|
|
5888
|
-
|
|
5889
|
-
|
|
5884
|
+
try:
|
|
5885
|
+
timeout = self.stormpoolopts.get('timeout:connection')
|
|
5886
|
+
proxy = await self.stormpool.proxy(timeout=timeout)
|
|
5887
|
+
proxyname = proxy._ahainfo.get('name')
|
|
5888
|
+
if proxyname is not None and proxyname == self.ahasvcname:
|
|
5889
|
+
# we are part of the pool and were selected. Convert to local use.
|
|
5890
|
+
return None
|
|
5891
|
+
|
|
5892
|
+
except TimeoutError:
|
|
5893
|
+
logger.warning('Timeout waiting for pool mirror proxy.')
|
|
5894
|
+
continue
|
|
5895
|
+
|
|
5896
|
+
try:
|
|
5897
|
+
|
|
5898
|
+
curoffs = opts.setdefault('nexsoffs', await self.getNexsIndx() - 1)
|
|
5899
|
+
miroffs = await s_common.wait_for(proxy.getNexsIndx(), timeout) - 1
|
|
5900
|
+
if (delta := curoffs - miroffs) <= MAX_NEXUS_DELTA:
|
|
5901
|
+
return proxy
|
|
5890
5902
|
|
|
5891
|
-
|
|
5892
|
-
miroffs = await s_common.wait_for(proxy.getNexsIndx(), timeout) - 1
|
|
5893
|
-
if (delta := curoffs - miroffs) > MAX_NEXUS_DELTA:
|
|
5894
|
-
mesg = (f'Pool mirror [{proxyname}] Nexus offset delta too large '
|
|
5895
|
-
f'({delta} > {MAX_NEXUS_DELTA}), running query locally.')
|
|
5903
|
+
mesg = f'Pool mirror [{proxyname}] is too far out of sync. Skipping.'
|
|
5896
5904
|
logger.warning(mesg, extra=await self.getLogExtra(delta=delta, mirror=proxyname, mirror_offset=miroffs))
|
|
5897
|
-
return None
|
|
5898
5905
|
|
|
5899
|
-
|
|
5906
|
+
except s_exc.IsFini:
|
|
5907
|
+
mesg = f'Proxy for pool mirror [{proxyname}] was shutdown. Skipping.'
|
|
5908
|
+
logger.warning(mesg, extra=await self.getLogExtra(mirror=proxyname))
|
|
5900
5909
|
|
|
5901
|
-
|
|
5902
|
-
|
|
5903
|
-
logger.warning('Timeout waiting for pool mirror, running query locally.')
|
|
5904
|
-
else:
|
|
5905
|
-
mesg = f'Timeout waiting for pool mirror [{proxyname}] Nexus offset, running query locally.'
|
|
5910
|
+
except TimeoutError:
|
|
5911
|
+
mesg = f'Timeout waiting for pool mirror [{proxyname}] Nexus offset.'
|
|
5906
5912
|
logger.warning(mesg, extra=await self.getLogExtra(mirror=proxyname))
|
|
5907
|
-
|
|
5908
|
-
|
|
5913
|
+
|
|
5914
|
+
logger.warning('Pool members exhausted. Running query locally.', extra=await self.getLogExtra())
|
|
5915
|
+
return None
|
|
5909
5916
|
|
|
5910
5917
|
async def storm(self, text, opts=None):
|
|
5911
5918
|
|
|
@@ -128,7 +128,7 @@ class Base:
|
|
|
128
128
|
|
|
129
129
|
self.isfini = False
|
|
130
130
|
self.anitted = True # For assertion purposes
|
|
131
|
-
self.finievt =
|
|
131
|
+
self.finievt = asyncio.Event()
|
|
132
132
|
self.entered = False
|
|
133
133
|
|
|
134
134
|
# hold a weak ref to other bases we should fini if they
|
|
@@ -431,10 +431,7 @@ class Base:
|
|
|
431
431
|
self._syn_funcs.clear()
|
|
432
432
|
self._fini_funcs.clear()
|
|
433
433
|
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
if fevt is not None:
|
|
437
|
-
fevt.set()
|
|
434
|
+
self.finievt.set()
|
|
438
435
|
|
|
439
436
|
return 0
|
|
440
437
|
|
|
@@ -468,13 +465,6 @@ class Base:
|
|
|
468
465
|
base.waitfini(timeout=30)
|
|
469
466
|
|
|
470
467
|
'''
|
|
471
|
-
|
|
472
|
-
if self.isfini:
|
|
473
|
-
return True
|
|
474
|
-
|
|
475
|
-
if self.finievt is None:
|
|
476
|
-
self.finievt = asyncio.Event()
|
|
477
|
-
|
|
478
468
|
return await s_coro.event_wait(self.finievt, timeout)
|
|
479
469
|
|
|
480
470
|
def schedCoro(self, coro):
|
|
@@ -2711,6 +2711,12 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
2711
2711
|
raise s_exc.BadArg(mesg=mesg, arg='path', valu=path)
|
|
2712
2712
|
await self._streamBackupArchive(path, user, name)
|
|
2713
2713
|
|
|
2714
|
+
async def _removeStreamingBackup(self, path):
|
|
2715
|
+
logger.debug(f'Removing {path}')
|
|
2716
|
+
await s_coro.executor(shutil.rmtree, path, ignore_errors=True)
|
|
2717
|
+
logger.debug(f'Removed {path}')
|
|
2718
|
+
self.backupstreaming = False
|
|
2719
|
+
|
|
2714
2720
|
async def iterNewBackupArchive(self, user, name=None, remove=False):
|
|
2715
2721
|
|
|
2716
2722
|
if self.backupstreaming:
|
|
@@ -2728,23 +2734,13 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
2728
2734
|
mesg = 'Backup with name already exists'
|
|
2729
2735
|
raise s_exc.BadArg(mesg=mesg)
|
|
2730
2736
|
|
|
2731
|
-
|
|
2732
|
-
await self.runBackup(name)
|
|
2733
|
-
except Exception:
|
|
2734
|
-
if remove:
|
|
2735
|
-
logger.debug(f'Removing {path}')
|
|
2736
|
-
await s_coro.executor(shutil.rmtree, path, ignore_errors=True)
|
|
2737
|
-
logger.debug(f'Removed {path}')
|
|
2738
|
-
raise
|
|
2739
|
-
|
|
2737
|
+
await self.runBackup(name)
|
|
2740
2738
|
await self._streamBackupArchive(path, user, name)
|
|
2741
2739
|
|
|
2742
2740
|
finally:
|
|
2743
2741
|
if remove:
|
|
2744
|
-
|
|
2745
|
-
await
|
|
2746
|
-
logger.debug(f'Removed {path}')
|
|
2747
|
-
self.backupstreaming = False
|
|
2742
|
+
self.removetask = asyncio.create_task(self._removeStreamingBackup(path))
|
|
2743
|
+
await asyncio.shield(self.removetask)
|
|
2748
2744
|
|
|
2749
2745
|
async def isUserAllowed(self, iden, perm, gateiden=None, default=False):
|
|
2750
2746
|
user = self.auth.user(iden) # type: s_auth.User
|
|
@@ -75,7 +75,7 @@ terminalEnglishMap = {
|
|
|
75
75
|
'MODSET': '+= or -=',
|
|
76
76
|
'MODSETMULTI': '++= or --=',
|
|
77
77
|
'NONQUOTEWORD': 'unquoted value',
|
|
78
|
-
'
|
|
78
|
+
'NOTOP': 'not',
|
|
79
79
|
'NULL': 'null',
|
|
80
80
|
'NUMBER': 'number',
|
|
81
81
|
'OCTNUMBER': 'number',
|
|
@@ -134,6 +134,7 @@ terminalEnglishMap = {
|
|
|
134
134
|
'_LPARNOSPACE': '(',
|
|
135
135
|
'_MATCHHASH': '#',
|
|
136
136
|
'_MATCHHASHWILD': '#',
|
|
137
|
+
'_NOT': 'not',
|
|
137
138
|
'_RETURN': 'return',
|
|
138
139
|
'_REVERSE': 'reverse',
|
|
139
140
|
'_RIGHTJOIN': '-+>',
|
|
@@ -437,7 +437,8 @@ _cond: notcond | "(" _condexpr ")"
|
|
|
437
437
|
| condsubq | arraycond
|
|
438
438
|
| _varvalu | _reqdollarexprs
|
|
439
439
|
|
|
440
|
-
|
|
440
|
+
_NOT: "not"
|
|
441
|
+
notcond: _NOT _cond
|
|
441
442
|
|
|
442
443
|
hasrelpropcond: relprop | univprop
|
|
443
444
|
relpropcond: relpropvalue _cmpr _valu
|
|
@@ -627,15 +628,15 @@ OCTNUMBER.1: /
|
|
|
627
628
|
/x
|
|
628
629
|
|
|
629
630
|
BOOL.2: /(true|false)(?=$|[\s\),\]}\|\=])/
|
|
630
|
-
NULL.2:
|
|
631
|
-
|
|
631
|
+
NULL.2: /null(?=$|[\s\),\]}\|\=])/
|
|
632
|
+
NOTOP.2: /not(?=$|[\s\),\]}\|\=])/
|
|
632
633
|
OR.2: "or"
|
|
633
634
|
AND.2: "and"
|
|
634
635
|
|
|
635
636
|
// $ expression rules in increasing order of precedence (modeled on Python's order)
|
|
636
637
|
?expror: exprand | expror OR exprand
|
|
637
638
|
?exprand: exprnot | exprand AND exprnot
|
|
638
|
-
?exprnot: exprcmp |
|
|
639
|
+
?exprnot: exprcmp | NOTOP exprcmp
|
|
639
640
|
?exprcmp: exprsum | exprcmp (CMPR | EQSPACE | EQNOSPACE) exprsum
|
|
640
641
|
?exprsum: exprproduct | exprsum (EXPRPLUS | EXPRMINUS) exprproduct
|
|
641
642
|
?exprproduct: exprunary | exprproduct (EXPRTIMES | EXPRDIVIDE | EXPRMODULO) exprunary
|
|
@@ -57,7 +57,7 @@ TerminalPygMap = {
|
|
|
57
57
|
'MODSET': p_t.Operator,
|
|
58
58
|
'MODSETMULTI': p_t.Operator,
|
|
59
59
|
'NONQUOTEWORD': p_t.Literal,
|
|
60
|
-
'
|
|
60
|
+
'NOTOP': p_t.Operator,
|
|
61
61
|
'NULL': p_t.Keyword,
|
|
62
62
|
'NUMBER': p_t.Literal.Number,
|
|
63
63
|
'OCTNUMBER': p_t.Literal.Number,
|
|
@@ -115,6 +115,7 @@ TerminalPygMap = {
|
|
|
115
115
|
'_LPARNOSPACE': p_t.Punctuation,
|
|
116
116
|
'_MATCHHASH': p_t.Punctuation,
|
|
117
117
|
'_MATCHHASHWILD': p_t.Punctuation,
|
|
118
|
+
'_NOT': p_t.Keyword,
|
|
118
119
|
'_RETURN': p_t.Keyword,
|
|
119
120
|
'_REVERSE': p_t.Keyword,
|
|
120
121
|
'_RIGHTJOIN': p_t.Punctuation,
|
|
@@ -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, 202, 0)
|
|
227
227
|
verstring = '.'.join([str(x) for x in version])
|
|
228
|
-
commit = '
|
|
228
|
+
commit = '744d404357c48b663bd03528e35c6f0e186edb0e'
|
|
@@ -31,6 +31,8 @@ televers = (3, 0)
|
|
|
31
31
|
|
|
32
32
|
aha_clients = {}
|
|
33
33
|
|
|
34
|
+
LINK_CULL_INTERVAL = 10
|
|
35
|
+
|
|
34
36
|
async def addAhaUrl(url):
|
|
35
37
|
'''
|
|
36
38
|
Add (incref) an aha registry URL.
|
|
@@ -590,6 +592,10 @@ class Proxy(s_base.Base):
|
|
|
590
592
|
valu = proxy.getFooValu(x, y)
|
|
591
593
|
|
|
592
594
|
'''
|
|
595
|
+
_link_task = None
|
|
596
|
+
_link_event = asyncio.Event()
|
|
597
|
+
_all_proxies = set()
|
|
598
|
+
|
|
593
599
|
async def __anit__(self, link, name):
|
|
594
600
|
|
|
595
601
|
await s_base.Base.__anit__(self)
|
|
@@ -608,11 +614,15 @@ class Proxy(s_base.Base):
|
|
|
608
614
|
self.methinfo = {}
|
|
609
615
|
|
|
610
616
|
self.sess = None
|
|
617
|
+
|
|
611
618
|
self.links = collections.deque()
|
|
612
|
-
self.
|
|
619
|
+
self.alllinks = collections.deque()
|
|
620
|
+
|
|
621
|
+
self._link_add = 0 # counter for pending links being connected
|
|
622
|
+
self._links_min = 4 # low water mark for the link pool
|
|
623
|
+
self._links_max = 12 # high water mark for the link pool
|
|
613
624
|
|
|
614
625
|
self.synack = None
|
|
615
|
-
self.syndone = asyncio.Event()
|
|
616
626
|
|
|
617
627
|
self.handlers = {
|
|
618
628
|
'task:fini': self._onTaskFini,
|
|
@@ -626,19 +636,52 @@ class Proxy(s_base.Base):
|
|
|
626
636
|
await item.fini()
|
|
627
637
|
|
|
628
638
|
mesg = ('task:fini', {'retn': (False, ('IsFini', {}))})
|
|
629
|
-
for
|
|
639
|
+
for iden, task in list(self.tasks.items()): # pragma: no cover
|
|
630
640
|
task.reply(mesg)
|
|
631
|
-
del self.tasks[
|
|
641
|
+
del self.tasks[iden]
|
|
632
642
|
|
|
633
|
-
|
|
634
|
-
|
|
643
|
+
# fini all the links from a different task to prevent
|
|
644
|
+
# delaying the proxy shutdown...
|
|
645
|
+
s_coro.create_task(self._finiAllLinks())
|
|
635
646
|
|
|
636
|
-
|
|
637
|
-
|
|
647
|
+
if self in self._all_proxies:
|
|
648
|
+
self._all_proxies.remove(self)
|
|
649
|
+
|
|
650
|
+
if not Proxy._all_proxies and Proxy._link_task is not None:
|
|
651
|
+
Proxy._link_task.cancel()
|
|
652
|
+
Proxy._link_task = None
|
|
653
|
+
|
|
654
|
+
Proxy._all_proxies.add(self)
|
|
638
655
|
|
|
639
656
|
self.onfini(fini)
|
|
640
657
|
self.link.onfini(self.fini)
|
|
641
658
|
|
|
659
|
+
if Proxy._link_task is None:
|
|
660
|
+
Proxy._link_task = s_coro.create_task(Proxy._linkLoopTask())
|
|
661
|
+
|
|
662
|
+
@classmethod
|
|
663
|
+
async def _linkLoopTask(clas):
|
|
664
|
+
while True:
|
|
665
|
+
try:
|
|
666
|
+
await s_coro.event_wait(Proxy._link_event, timeout=LINK_CULL_INTERVAL)
|
|
667
|
+
|
|
668
|
+
for proxy in list(Proxy._all_proxies):
|
|
669
|
+
|
|
670
|
+
if proxy.isfini:
|
|
671
|
+
continue
|
|
672
|
+
|
|
673
|
+
# close one link per proxy per period if the number of
|
|
674
|
+
# available links is greater than _links_max...
|
|
675
|
+
if len(proxy.links) > proxy._links_max:
|
|
676
|
+
link = proxy.links.popleft()
|
|
677
|
+
await link.fini()
|
|
678
|
+
await proxy.fire('pool:link:fini', link=link)
|
|
679
|
+
|
|
680
|
+
Proxy._link_event.clear()
|
|
681
|
+
|
|
682
|
+
except Exception: # pragma: no cover
|
|
683
|
+
logger.exception('synapse.telepath.Proxy.linkLoopTask()')
|
|
684
|
+
|
|
642
685
|
def _hasTeleFeat(self, name, vers=1):
|
|
643
686
|
return self._features.get(name, 0) >= vers
|
|
644
687
|
|
|
@@ -692,6 +735,12 @@ class Proxy(s_base.Base):
|
|
|
692
735
|
|
|
693
736
|
link = self.links.popleft()
|
|
694
737
|
|
|
738
|
+
# fire a task to replace the link if we are
|
|
739
|
+
# below the low-water mark for link count.
|
|
740
|
+
if len(self.links) + self._link_add < self._links_min:
|
|
741
|
+
self._link_add += 1
|
|
742
|
+
self.schedCoro(self._addPoolLink())
|
|
743
|
+
|
|
695
744
|
if link.isfini:
|
|
696
745
|
continue
|
|
697
746
|
|
|
@@ -700,6 +749,11 @@ class Proxy(s_base.Base):
|
|
|
700
749
|
# we need a new one...
|
|
701
750
|
return await self._initPoolLink()
|
|
702
751
|
|
|
752
|
+
async def _addPoolLink(self):
|
|
753
|
+
link = await self._initPoolLink()
|
|
754
|
+
self.links.append(link)
|
|
755
|
+
self._link_add -= 1
|
|
756
|
+
|
|
703
757
|
async def getPipeline(self, genr, name=None):
|
|
704
758
|
'''
|
|
705
759
|
Construct a proxy API call pipeline in order to make
|
|
@@ -724,8 +778,6 @@ class Proxy(s_base.Base):
|
|
|
724
778
|
|
|
725
779
|
async def _initPoolLink(self):
|
|
726
780
|
|
|
727
|
-
# TODO loop / backoff
|
|
728
|
-
|
|
729
781
|
if self.link.get('unix'):
|
|
730
782
|
|
|
731
783
|
path = self.link.get('path')
|
|
@@ -739,19 +791,26 @@ class Proxy(s_base.Base):
|
|
|
739
791
|
|
|
740
792
|
link = await s_link.connect(host, port, ssl=ssl)
|
|
741
793
|
|
|
742
|
-
self.
|
|
794
|
+
self.alllinks.append(link)
|
|
795
|
+
async def fini():
|
|
796
|
+
self.alllinks.remove(link)
|
|
797
|
+
if link in self.links:
|
|
798
|
+
self.links.remove(link)
|
|
799
|
+
|
|
800
|
+
link.onfini(fini)
|
|
743
801
|
|
|
744
802
|
return link
|
|
745
803
|
|
|
804
|
+
async def _finiAllLinks(self):
|
|
805
|
+
for link in list(self.alllinks):
|
|
806
|
+
await link.fini()
|
|
807
|
+
await self.link.fini()
|
|
808
|
+
|
|
746
809
|
async def _putPoolLink(self, link):
|
|
747
810
|
|
|
748
811
|
if link.isfini:
|
|
749
812
|
return
|
|
750
813
|
|
|
751
|
-
# If we've exceeded our poolsize, discard the current link.
|
|
752
|
-
if len(self.links) >= self._link_poolsize:
|
|
753
|
-
return await link.fini()
|
|
754
|
-
|
|
755
814
|
self.links.append(link)
|
|
756
815
|
|
|
757
816
|
def __enter__(self):
|
|
@@ -862,6 +921,7 @@ class Proxy(s_base.Base):
|
|
|
862
921
|
|
|
863
922
|
except GeneratorExit:
|
|
864
923
|
# if they bail early on the genr, fini the link
|
|
924
|
+
# TODO: devise a tx/rx strategy to recover these links...
|
|
865
925
|
await link.fini()
|
|
866
926
|
|
|
867
927
|
return s_coro.GenrHelp(genrloop())
|
|
@@ -1321,7 +1381,6 @@ class Client(s_base.Base):
|
|
|
1321
1381
|
info.update(self._t_opts)
|
|
1322
1382
|
self._t_proxy = await openinfo(info)
|
|
1323
1383
|
self._t_methinfo = self._t_proxy.methinfo
|
|
1324
|
-
self._t_proxy._link_poolsize = self._t_conf.get('link_poolsize', 4)
|
|
1325
1384
|
|
|
1326
1385
|
async def fini():
|
|
1327
1386
|
if self._t_named_meths:
|
|
@@ -8504,6 +8504,26 @@ class CortexBasicTest(s_t_utils.SynTest):
|
|
|
8504
8504
|
self.notin('Timeout waiting for pool mirror', data)
|
|
8505
8505
|
self.notin('Timeout waiting for query mirror', data)
|
|
8506
8506
|
|
|
8507
|
+
orig = s_telepath.ClientV2.proxy
|
|
8508
|
+
async def finidproxy(self, timeout=None):
|
|
8509
|
+
prox = await orig(self, timeout=timeout)
|
|
8510
|
+
await prox.fini()
|
|
8511
|
+
return prox
|
|
8512
|
+
|
|
8513
|
+
with patch('synapse.telepath.ClientV2.proxy', finidproxy):
|
|
8514
|
+
with self.getLoggerStream('synapse') as stream:
|
|
8515
|
+
msgs = await alist(core00.storm('inet:asn=0'))
|
|
8516
|
+
self.len(1, [m for m in msgs if m[0] == 'node'])
|
|
8517
|
+
|
|
8518
|
+
stream.seek(0)
|
|
8519
|
+
data = stream.read()
|
|
8520
|
+
self.isin('Proxy for pool mirror [01.core.synapse] was shutdown. Skipping.', data)
|
|
8521
|
+
|
|
8522
|
+
msgs = await core00.stormlist('cortex.storm.pool.set --connection-timeout 1 --sync-timeout 1 aha://pool00...')
|
|
8523
|
+
self.stormHasNoWarnErr(msgs)
|
|
8524
|
+
self.stormIsInPrint('Storm pool configuration set.', msgs)
|
|
8525
|
+
await core00.stormpool.waitready(timeout=12)
|
|
8526
|
+
|
|
8507
8527
|
core01.nexsroot.nexslog.indx = 0
|
|
8508
8528
|
|
|
8509
8529
|
with patch('synapse.cortex.MAX_NEXUS_DELTA', 1):
|
|
@@ -8516,8 +8536,7 @@ class CortexBasicTest(s_t_utils.SynTest):
|
|
|
8516
8536
|
|
|
8517
8537
|
stream.seek(0)
|
|
8518
8538
|
data = stream.read()
|
|
8519
|
-
explog = (
|
|
8520
|
-
f'({nexsoffs} > 1), running query locally')
|
|
8539
|
+
explog = ('Pool mirror [01.core.synapse] is too far out of sync. Skipping.')
|
|
8521
8540
|
self.isin(explog, data)
|
|
8522
8541
|
self.notin('Offloading Storm query', data)
|
|
8523
8542
|
|
|
@@ -8575,7 +8594,8 @@ class CortexBasicTest(s_t_utils.SynTest):
|
|
|
8575
8594
|
|
|
8576
8595
|
stream.seek(0)
|
|
8577
8596
|
data = stream.read()
|
|
8578
|
-
self.isin('Timeout waiting for pool mirror
|
|
8597
|
+
self.isin('Timeout waiting for pool mirror proxy.', data)
|
|
8598
|
+
self.isin('Pool members exhausted. Running query locally.', data)
|
|
8579
8599
|
|
|
8580
8600
|
await core01.fini()
|
|
8581
8601
|
|
|
@@ -1817,8 +1817,16 @@ class CellTest(s_t_utils.SynTest):
|
|
|
1817
1817
|
|
|
1818
1818
|
with open(bkuppath3, 'wb') as bkup3:
|
|
1819
1819
|
async for msg in proxy.iterNewBackupArchive('bkup3', remove=True):
|
|
1820
|
+
self.true(core.backupstreaming)
|
|
1820
1821
|
bkup3.write(msg)
|
|
1821
1822
|
|
|
1823
|
+
async def streamdone():
|
|
1824
|
+
while core.backupstreaming:
|
|
1825
|
+
await asyncio.sleep(0)
|
|
1826
|
+
|
|
1827
|
+
task = core.schedCoro(streamdone())
|
|
1828
|
+
await asyncio.wait_for(task, 15)
|
|
1829
|
+
|
|
1822
1830
|
self.eq(('bkup', 'bkup2'), sorted(await proxy.getBackups()))
|
|
1823
1831
|
self.false(os.path.isdir(os.path.join(backdirn, 'bkup3')))
|
|
1824
1832
|
|
|
@@ -1830,6 +1838,9 @@ class CellTest(s_t_utils.SynTest):
|
|
|
1830
1838
|
async for msg in proxy.iterNewBackupArchive(remove=True):
|
|
1831
1839
|
bkup4.write(msg)
|
|
1832
1840
|
|
|
1841
|
+
task = core.schedCoro(streamdone())
|
|
1842
|
+
await asyncio.wait_for(task, 15)
|
|
1843
|
+
|
|
1833
1844
|
self.eq(('bkup', 'bkup2'), sorted(await proxy.getBackups()))
|
|
1834
1845
|
|
|
1835
1846
|
# Start another backup while one is already running
|
|
@@ -746,6 +746,8 @@ Queries = [
|
|
|
746
746
|
'[test:str=foo :bar--=(foo, bar)]',
|
|
747
747
|
'[test:str=foo :bar?++=$baz]',
|
|
748
748
|
'[test:str=foo :bar?--={[it:dev:str=foo]}]',
|
|
749
|
+
'$foo=(notime,)',
|
|
750
|
+
'$foo=(nulltime,)',
|
|
749
751
|
]
|
|
750
752
|
|
|
751
753
|
# Generated with print_parse_list below
|
|
@@ -1394,6 +1396,8 @@ _ParseResults = [
|
|
|
1394
1396
|
'Query: [EditNodeAdd: [FormName: [Const: test:str], Const: =, Const: foo], EditPropSetMulti: [RelProp: [Const: bar], Const: --=, List: [Const: foo, Const: bar]]]',
|
|
1395
1397
|
'Query: [EditNodeAdd: [FormName: [Const: test:str], Const: =, Const: foo], EditPropSetMulti: [RelProp: [Const: bar], Const: ?++=, VarValue: [Const: baz]]]',
|
|
1396
1398
|
'Query: [EditNodeAdd: [FormName: [Const: test:str], Const: =, Const: foo], EditPropSetMulti: [RelProp: [Const: bar], Const: ?--=, SubQuery: [Query: [EditNodeAdd: [FormName: [Const: it:dev:str], Const: =, Const: foo]]]]]',
|
|
1399
|
+
'Query: [SetVarOper: [Const: foo, List: [Const: notime]]]',
|
|
1400
|
+
'Query: [SetVarOper: [Const: foo, List: [Const: nulltime]]]',
|
|
1397
1401
|
]
|
|
1398
1402
|
|
|
1399
1403
|
class GrammarTest(s_t_utils.SynTest):
|
|
@@ -167,6 +167,12 @@ class StormTest(s_t_utils.SynTest):
|
|
|
167
167
|
self.len(1, await core.nodes('ou:org=({"name": "origname"}) [ :name=newname ]'))
|
|
168
168
|
self.len(0, await core.nodes('ou:org=({"name": "origname"})'))
|
|
169
169
|
|
|
170
|
+
nodes = await core.nodes('[ it:exec:proc=(notime,) ]')
|
|
171
|
+
self.len(1, nodes)
|
|
172
|
+
|
|
173
|
+
nodes = await core.nodes('[ it:exec:proc=(nulltime,) ]')
|
|
174
|
+
self.len(1, nodes)
|
|
175
|
+
|
|
170
176
|
async def test_lib_storm_jsonexpr(self):
|
|
171
177
|
async with self.getTestCore() as core:
|
|
172
178
|
|
|
@@ -318,6 +318,10 @@ class TeleTest(s_t_utils.SynTest):
|
|
|
318
318
|
link.onfini(evt.set)
|
|
319
319
|
s_glob.sync(proxy._putPoolLink(link))
|
|
320
320
|
|
|
321
|
+
# Grab the fresh link from the pool so our original link is up next again
|
|
322
|
+
link2 = s_glob.sync(proxy.getPoolLink())
|
|
323
|
+
s_glob.sync(proxy._putPoolLink(link2))
|
|
324
|
+
|
|
321
325
|
q = f'{form} | sleep 0.1'
|
|
322
326
|
|
|
323
327
|
# Break from the generator right away, causing a
|
|
@@ -935,7 +939,6 @@ class TeleTest(s_t_utils.SynTest):
|
|
|
935
939
|
|
|
936
940
|
# Validate the Proxy behavior then the client override
|
|
937
941
|
prox = await s_telepath.openurl(url) # type: Foo
|
|
938
|
-
prox._link_poolsize = 2
|
|
939
942
|
|
|
940
943
|
# Start with no links
|
|
941
944
|
self.len(0, prox.links)
|
|
@@ -947,53 +950,72 @@ class TeleTest(s_t_utils.SynTest):
|
|
|
947
950
|
genr = await prox.genr() # type: s_coro.GenrHelp
|
|
948
951
|
self.eq(await genr.genr.__anext__(), 10)
|
|
949
952
|
|
|
950
|
-
#
|
|
951
|
-
self.len(0, prox.links)
|
|
952
|
-
|
|
953
|
-
# and upon exhuastion, that link is put back
|
|
954
|
-
self.eq(await genr.list(), (20, 30))
|
|
953
|
+
# A new link is in the pool
|
|
955
954
|
self.len(1, prox.links)
|
|
956
|
-
self.true(prox.links[0] is l0)
|
|
957
955
|
|
|
958
|
-
#
|
|
959
|
-
|
|
960
|
-
genr1 = await prox.genr()
|
|
961
|
-
genr2 = await prox.genr()
|
|
962
|
-
self.len(0, prox.links)
|
|
963
|
-
# Consume two of the three generators
|
|
964
|
-
self.eq(await genr2.list(), (10, 20, 30))
|
|
965
|
-
self.len(1, prox.links)
|
|
966
|
-
self.eq(await genr1.list(), (10, 20, 30))
|
|
956
|
+
# and upon exhuastion, the first link is put back
|
|
957
|
+
self.eq(await genr.list(), (20, 30))
|
|
967
958
|
self.len(2, prox.links)
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
959
|
+
self.true(prox.links[1] is l0)
|
|
960
|
+
|
|
961
|
+
# Grabbing a link will still spin up another since we are below low watermark
|
|
962
|
+
genr = await prox.genr() # type: s_coro.GenrHelp
|
|
963
|
+
self.eq(await genr.genr.__anext__(), 10)
|
|
964
|
+
|
|
971
965
|
self.len(2, prox.links)
|
|
972
|
-
|
|
973
|
-
self.
|
|
974
|
-
|
|
975
|
-
|
|
966
|
+
|
|
967
|
+
self.eq(await genr.list(), (20, 30))
|
|
968
|
+
self.len(3, prox.links)
|
|
969
|
+
|
|
970
|
+
# Fill up pool above low watermark
|
|
971
|
+
genrs = [await prox.genr() for _ in range(2)]
|
|
972
|
+
[await genr.list() for genr in genrs]
|
|
973
|
+
self.len(5, prox.links)
|
|
974
|
+
|
|
975
|
+
# Grabbing a link no longer spins up a replacement
|
|
976
|
+
genr = await prox.genr() # type: s_coro.GenrHelp
|
|
977
|
+
self.eq(await genr.genr.__anext__(), 10)
|
|
978
|
+
self.len(4, prox.links)
|
|
979
|
+
|
|
980
|
+
self.eq(await genr.list(), (20, 30))
|
|
981
|
+
self.len(5, prox.links)
|
|
976
982
|
|
|
977
983
|
# Tear down a link by hand and place it back
|
|
978
984
|
# into the pool - that will fail b/c the link
|
|
979
985
|
# has been down down.
|
|
980
986
|
l1 = await prox.getPoolLink()
|
|
981
|
-
self.len(
|
|
987
|
+
self.len(4, prox.links)
|
|
982
988
|
await l1.fini()
|
|
983
989
|
await prox._putPoolLink(l1)
|
|
984
|
-
self.len(
|
|
990
|
+
self.len(4, prox.links)
|
|
985
991
|
|
|
986
992
|
# And all our links are torn down on fini
|
|
987
993
|
await prox.fini()
|
|
988
|
-
self.len(
|
|
989
|
-
for link in prox.links:
|
|
990
|
-
self.true(link.
|
|
994
|
+
self.len(4, prox.links)
|
|
995
|
+
for link in list(prox.links):
|
|
996
|
+
self.true(await link.waitfini(1))
|
|
997
|
+
self.len(0, prox.links)
|
|
998
|
+
|
|
999
|
+
with mock.patch('synapse.telepath.LINK_CULL_INTERVAL', 1):
|
|
1000
|
+
async with self.getTestDmon() as dmon:
|
|
1001
|
+
dmon.share('foo', foo)
|
|
1002
|
+
url = f'tcp://127.0.0.1:{dmon.addr[1]}/foo'
|
|
1003
|
+
|
|
1004
|
+
prox = await s_telepath.openurl(url)
|
|
991
1005
|
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
1006
|
+
# Fill up pool above high watermark
|
|
1007
|
+
genrs = [await prox.genr() for _ in range(13)]
|
|
1008
|
+
[await genr.list() for genr in genrs]
|
|
1009
|
+
self.len(13, prox.links)
|
|
1010
|
+
|
|
1011
|
+
# Add a fini'd proxy for coverage
|
|
1012
|
+
prox2 = await s_telepath.openurl(url)
|
|
1013
|
+
await prox2.fini()
|
|
1014
|
+
prox2._all_proxies.add(prox2)
|
|
1015
|
+
|
|
1016
|
+
wait = prox.waiter(1, 'pool:link:fini')
|
|
1017
|
+
self.len(1, await wait.wait(timeout=5))
|
|
1018
|
+
self.len(12, prox.links)
|
|
997
1019
|
|
|
998
1020
|
async def test_link_fini_breaking_tasks(self):
|
|
999
1021
|
foo = Foo()
|
|
@@ -1062,7 +1084,7 @@ class TeleTest(s_t_utils.SynTest):
|
|
|
1062
1084
|
|
|
1063
1085
|
self.eq(vals, (40, 50, 60))
|
|
1064
1086
|
|
|
1065
|
-
self.eq(
|
|
1087
|
+
self.eq(2, len(proxy.links))
|
|
1066
1088
|
self.eq(160, await proxy.bar(80, 80))
|
|
1067
1089
|
|
|
1068
1090
|
async def boomgenr():
|