synapse 2.172.0__tar.gz → 2.174.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.172.0/synapse.egg-info → synapse-2.174.0}/PKG-INFO +1 -1
- {synapse-2.172.0 → synapse-2.174.0}/pyproject.toml +1 -1
- {synapse-2.172.0 → synapse-2.174.0}/synapse/axon.py +1 -1
- {synapse-2.172.0 → synapse-2.174.0}/synapse/common.py +19 -5
- {synapse-2.172.0 → synapse-2.174.0}/synapse/cortex.py +46 -10
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/agenda.py +6 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/ast.py +1 -1
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/hiveauth.py +81 -4
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/layer.py +8 -8
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/lmdbslab.py +11 -1
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/modelrev.py +17 -1
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/modules.py +1 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/msgpack.py +25 -3
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/nexus.py +26 -22
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/schemas.py +31 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormsvc.py +30 -11
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormtypes.py +23 -9
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/trigger.py +0 -4
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/version.py +2 -2
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/view.py +2 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/crypto.py +22 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/economic.py +23 -2
- synapse-2.174.0/synapse/models/entity.py +16 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/files.py +4 -1
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/geopol.py +3 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/orgs.py +7 -5
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/person.py +5 -2
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/planning.py +5 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_cortex.py +13 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_agenda.py +129 -1
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_ast.py +21 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_grammar.py +4 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_hiveauth.py +139 -1
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_httpapi.py +1 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_layer.py +67 -13
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_lmdbslab.py +16 -1
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_modelrev.py +57 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_msgpack.py +58 -8
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_nexus.py +44 -1
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_storm.py +7 -7
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormsvc.py +128 -51
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormtypes.py +43 -4
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_trigger.py +23 -4
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_crypto.py +6 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_economic.py +14 -1
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_geopol.py +3 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_orgs.py +8 -2
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_person.py +2 -0
- synapse-2.174.0/synapse/tools/changelog.py +236 -0
- {synapse-2.172.0 → synapse-2.174.0/synapse.egg-info}/PKG-INFO +1 -1
- {synapse-2.172.0 → synapse-2.174.0}/synapse.egg-info/SOURCES.txt +2 -0
- {synapse-2.172.0 → synapse-2.174.0}/LICENSE +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/README.rst +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/setup.cfg +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/cells.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/cmds/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/cmds/boss.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/cmds/cortex.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/cmds/hive.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/cryotank.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/daemon.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-2.172.0 → synapse-2.174.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.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-2.172.0 → synapse-2.174.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.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-2.172.0 → synapse-2.174.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.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-2.172.0 → synapse-2.174.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.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/datamodel.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/exc.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/glob.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/aha.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/autodoc.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/base.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/boss.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/cache.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/cell.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/certdir.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/chop.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/cli.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/cmd.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/cmdr.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/config.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/const.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/coro.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/datfile.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/encoding.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/gis.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/grammar.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/hashitem.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/hashset.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/health.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/hive.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/httpapi.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/ingest.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/interval.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/jupyter.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/link.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/module.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/node.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/oauth.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/output.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/parser.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/queue.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/ratelimit.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/reflect.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/rstorm.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/scope.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/scrape.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/share.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/slaboffs.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/snap.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/spooled.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/storm.lark +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/storm.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/storm_format.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormhttp.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/aha.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/auth.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/backup.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/cache.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/cell.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/cortex.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/env.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/gen.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/infosec.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/json.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/math.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/model.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/modelext.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/notifications.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/oauth.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/project.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/random.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/smtp.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/spooled.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/stats.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/stix.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/vault.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/version.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/xml.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormwhois.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/structlog.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/task.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/thishost.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/thisplat.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/threads.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/time.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/types.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/cvss.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/iana.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/iso3166.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/macho.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/pe.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/timezones.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/mindmeld.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/auth.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/base.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/belief.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/biz.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/dns.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/geospace.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/gov/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/gov/cn.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/gov/intl.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/gov/us.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/inet.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/infotech.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/language.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/material.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/media.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/proj.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/risk.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/science.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/syn.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/telco.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/models/transport.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/aha.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/axon.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/cell.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/cortex.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/cryotank.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/stemcell.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/telepath.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/users/root.crt +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/users/root.key +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/users/user.crt +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/users/user.key +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/cpedata.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/test.dat +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/testcore/cell.yaml +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/nopmod.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_axon.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_cmds_boss.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_cmds_cortex.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_cmds_hive.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_common.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_cryotank.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_data.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_datamodel.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_exc.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_glob.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_init.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_aha.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_base.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_cell.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_encoding.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_hive.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_interval.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_jupyter.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_module.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_node.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_ratelimit.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_rstorm.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_slaboffs.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_snap.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormwhois.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_structlog.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_types.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_view.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lookup_iso3166.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_mindmeld.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_auth.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_base.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_biz.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_dns.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_files.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_inet.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_infotech.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_media.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_planning.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_proj.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_risk.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_science.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_syn.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_telco.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_transport.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_servers_cryotank.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_servers_stemcell.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_telepath.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_autodoc.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_axon2axon.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_backup.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_cellauth.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_cryo_list.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_csvtool.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_easycert.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_feed.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_genpkg.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_guid.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_healthcheck.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_hiveload.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_hivesave.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_json2mpk.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_livebackup.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_modrole.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_moduser.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_pullfile.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_pushfile.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_reload.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_rstorm.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_storm.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_utils.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/utils.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/aha/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/aha/easycert.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/aha/enroll.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/aha/list.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/autodoc.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/axon2axon.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/backup.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/cellauth.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/cmdr.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/cryo/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/cryo/cat.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/cryo/list.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/csvtool.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/docker/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/easycert.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/feed.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/genpkg.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/guid.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/healthcheck.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/hive/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/hive/load.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/hive/save.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/json2mpk.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/livebackup.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/modrole.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/moduser.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/promote.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/pullfile.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/pushfile.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/reload.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/rstorm.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/storm.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/utils/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/utils/getrefs.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/utils/stormcov/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/utils/stormcov/plugin.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/utils.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse.egg-info/requires.txt +0 -0
- {synapse-2.172.0 → synapse-2.174.0}/synapse.egg-info/top_level.txt +0 -0
|
@@ -493,7 +493,7 @@ class AxonApi(s_cell.CellApi, s_share.Share): # type: ignore
|
|
|
493
493
|
|
|
494
494
|
async def wants(self, sha256s):
|
|
495
495
|
'''
|
|
496
|
-
Get a list of sha256 values the axon does not have from
|
|
496
|
+
Get a list of sha256 values the axon does not have from an input list.
|
|
497
497
|
|
|
498
498
|
Args:
|
|
499
499
|
sha256s (list): A list of sha256 values as bytes.
|
|
@@ -11,6 +11,7 @@ import types
|
|
|
11
11
|
import base64
|
|
12
12
|
import shutil
|
|
13
13
|
import struct
|
|
14
|
+
import typing
|
|
14
15
|
import asyncio
|
|
15
16
|
import decimal
|
|
16
17
|
import fnmatch
|
|
@@ -379,7 +380,7 @@ def reqbytes(*paths):
|
|
|
379
380
|
with reqfile(*paths) as fd:
|
|
380
381
|
return fd.read()
|
|
381
382
|
|
|
382
|
-
def genfile(*paths):
|
|
383
|
+
def genfile(*paths) -> typing.BinaryIO:
|
|
383
384
|
'''
|
|
384
385
|
Create or open (for read/write) a file path join.
|
|
385
386
|
|
|
@@ -396,7 +397,7 @@ def genfile(*paths):
|
|
|
396
397
|
to append.
|
|
397
398
|
|
|
398
399
|
Returns:
|
|
399
|
-
|
|
400
|
+
A file-object which can be read/written too.
|
|
400
401
|
'''
|
|
401
402
|
path = genpath(*paths)
|
|
402
403
|
gendir(os.path.dirname(path))
|
|
@@ -535,13 +536,26 @@ def yamlload(*paths):
|
|
|
535
536
|
with io.open(path, 'rb') as fd:
|
|
536
537
|
return yamlloads(fd)
|
|
537
538
|
|
|
539
|
+
def yamldump(obj, stream: typing.Optional[typing.BinaryIO] =None) -> bytes:
|
|
540
|
+
'''
|
|
541
|
+
Dump a object to yaml.
|
|
542
|
+
|
|
543
|
+
Args:
|
|
544
|
+
obj: The object to serialize.
|
|
545
|
+
stream: The optional stream to write the stream too.
|
|
546
|
+
|
|
547
|
+
Returns:
|
|
548
|
+
The raw yaml bytes if stream is not provided.
|
|
549
|
+
'''
|
|
550
|
+
return yaml.dump(obj, allow_unicode=True, default_flow_style=False,
|
|
551
|
+
default_style='', explicit_start=True, explicit_end=True,
|
|
552
|
+
encoding='utf8', stream=stream, Dumper=Dumper)
|
|
553
|
+
|
|
538
554
|
def yamlsave(obj, *paths):
|
|
539
555
|
path = genpath(*paths)
|
|
540
556
|
with genfile(path) as fd:
|
|
541
557
|
fd.truncate(0)
|
|
542
|
-
|
|
543
|
-
default_style='', explicit_start=True, explicit_end=True,
|
|
544
|
-
encoding='utf8', stream=fd, Dumper=Dumper)
|
|
558
|
+
yamldump(obj, stream=fd)
|
|
545
559
|
|
|
546
560
|
def yamlmod(obj, *paths):
|
|
547
561
|
'''
|
|
@@ -42,6 +42,7 @@ import synapse.lib.schemas as s_schemas
|
|
|
42
42
|
import synapse.lib.spooled as s_spooled
|
|
43
43
|
import synapse.lib.version as s_version
|
|
44
44
|
import synapse.lib.urlhelp as s_urlhelp
|
|
45
|
+
import synapse.lib.hashitem as s_hashitem
|
|
45
46
|
import synapse.lib.jsonstor as s_jsonstor
|
|
46
47
|
import synapse.lib.modelrev as s_modelrev
|
|
47
48
|
import synapse.lib.stormsvc as s_stormsvc
|
|
@@ -949,6 +950,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
949
950
|
|
|
950
951
|
# Initialize our storage and views
|
|
951
952
|
await self._initCoreAxon()
|
|
953
|
+
await self._initJsonStor()
|
|
952
954
|
|
|
953
955
|
await self._initCoreLayers()
|
|
954
956
|
await self._initCoreViews()
|
|
@@ -1009,8 +1011,16 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1009
1011
|
await self._bumpCellVers('cortex:storage', (
|
|
1010
1012
|
(1, self._storUpdateMacros),
|
|
1011
1013
|
(2, self._storLayrFeedDefaults),
|
|
1014
|
+
(3, self._updateTriggerViewIdens),
|
|
1012
1015
|
), nexs=False)
|
|
1013
1016
|
|
|
1017
|
+
async def _updateTriggerViewIdens(self):
|
|
1018
|
+
for view in self.views.values():
|
|
1019
|
+
for trigiden, trigger in await view.listTriggers():
|
|
1020
|
+
if trigger.get('view') != view.iden:
|
|
1021
|
+
trigger.tdef['view'] = view.iden
|
|
1022
|
+
await view.trigdict.set(trigiden, trigger.tdef)
|
|
1023
|
+
|
|
1014
1024
|
async def _viewNomergeToProtected(self):
|
|
1015
1025
|
for view in self.views.values():
|
|
1016
1026
|
nomerge = view.info.get('nomerge', False)
|
|
@@ -1462,8 +1472,6 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1462
1472
|
async def initServiceRuntime(self):
|
|
1463
1473
|
|
|
1464
1474
|
# do any post-nexus initialization here...
|
|
1465
|
-
await self._initJsonStor()
|
|
1466
|
-
|
|
1467
1475
|
if self.isactive:
|
|
1468
1476
|
await self._checkNexsIndx()
|
|
1469
1477
|
|
|
@@ -2550,7 +2558,10 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
2550
2558
|
name = pkgdef.get('name')
|
|
2551
2559
|
olddef = self.pkghive.get(name, None)
|
|
2552
2560
|
if olddef is not None:
|
|
2553
|
-
|
|
2561
|
+
if s_hashitem.hashitem(pkgdef) != s_hashitem.hashitem(olddef):
|
|
2562
|
+
await self._dropStormPkg(olddef)
|
|
2563
|
+
else:
|
|
2564
|
+
return
|
|
2554
2565
|
|
|
2555
2566
|
await self.loadStormPkg(pkgdef)
|
|
2556
2567
|
await self.pkghive.set(name, pkgdef)
|
|
@@ -2965,17 +2976,19 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
2965
2976
|
'''
|
|
2966
2977
|
Delete storm packages associated with a service.
|
|
2967
2978
|
'''
|
|
2968
|
-
|
|
2969
|
-
for _, pdef in self.pkghive.items():
|
|
2970
|
-
pkgiden = pdef.get('svciden')
|
|
2971
|
-
if pkgiden and pkgiden == iden:
|
|
2972
|
-
oldpkgs.append(pdef)
|
|
2973
|
-
|
|
2974
|
-
for pkg in oldpkgs:
|
|
2979
|
+
for pkg in self.getStormSvcPkgs(iden):
|
|
2975
2980
|
name = pkg.get('name')
|
|
2976
2981
|
if name:
|
|
2977
2982
|
await self._delStormPkg(name)
|
|
2978
2983
|
|
|
2984
|
+
def getStormSvcPkgs(self, iden):
|
|
2985
|
+
pkgs = []
|
|
2986
|
+
for _, pdef in self.pkghive.items():
|
|
2987
|
+
pkgiden = pdef.get('svciden')
|
|
2988
|
+
if pkgiden and pkgiden == iden:
|
|
2989
|
+
pkgs.append(pdef)
|
|
2990
|
+
return pkgs
|
|
2991
|
+
|
|
2979
2992
|
async def setStormSvcEvents(self, iden, edef):
|
|
2980
2993
|
'''
|
|
2981
2994
|
Set the event callbacks for a storm service. Extends the sdef dict.
|
|
@@ -6113,6 +6126,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
6113
6126
|
Args:
|
|
6114
6127
|
iden (bytes): The iden of the cron job to be deleted
|
|
6115
6128
|
'''
|
|
6129
|
+
await self._killCronTask(iden)
|
|
6116
6130
|
try:
|
|
6117
6131
|
await self.agenda.delete(iden)
|
|
6118
6132
|
except s_exc.NoSuchIden:
|
|
@@ -6142,6 +6156,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
6142
6156
|
'''
|
|
6143
6157
|
await self.agenda.enable(iden)
|
|
6144
6158
|
await self.feedBeholder('cron:enable', {'iden': iden}, gates=[iden])
|
|
6159
|
+
logger.info(f'Enabled cron job {iden}', extra=await self.getLogExtra(iden=iden, status='MODIFY'))
|
|
6145
6160
|
|
|
6146
6161
|
@s_nexus.Pusher.onPushAuto('cron:disable')
|
|
6147
6162
|
async def disableCronJob(self, iden):
|
|
@@ -6152,7 +6167,28 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
6152
6167
|
iden (bytes): The iden of the cron job to be changed
|
|
6153
6168
|
'''
|
|
6154
6169
|
await self.agenda.disable(iden)
|
|
6170
|
+
await self._killCronTask(iden)
|
|
6155
6171
|
await self.feedBeholder('cron:disable', {'iden': iden}, gates=[iden])
|
|
6172
|
+
logger.info(f'Disabled cron job {iden}', extra=await self.getLogExtra(iden=iden, status='MODIFY'))
|
|
6173
|
+
|
|
6174
|
+
async def killCronTask(self, iden):
|
|
6175
|
+
if self.agenda.appts.get(iden) is None:
|
|
6176
|
+
return False
|
|
6177
|
+
return await self._push('cron:task:kill', iden)
|
|
6178
|
+
|
|
6179
|
+
@s_nexus.Pusher.onPush('cron:task:kill')
|
|
6180
|
+
async def _killCronTask(self, iden):
|
|
6181
|
+
|
|
6182
|
+
appt = self.agenda.appts.get(iden)
|
|
6183
|
+
if appt is None:
|
|
6184
|
+
return False
|
|
6185
|
+
|
|
6186
|
+
task = appt.task
|
|
6187
|
+
if task is None:
|
|
6188
|
+
return False
|
|
6189
|
+
|
|
6190
|
+
self.schedCoro(task.kill())
|
|
6191
|
+
return True
|
|
6156
6192
|
|
|
6157
6193
|
async def listCronJobs(self):
|
|
6158
6194
|
'''
|
|
@@ -274,6 +274,7 @@ class _Appt:
|
|
|
274
274
|
def __init__(self, stor, iden, recur, indx, query, creator, recs, nexttime=None, view=None, created=None, pool=False):
|
|
275
275
|
self.doc = ''
|
|
276
276
|
self.name = ''
|
|
277
|
+
self.task = None
|
|
277
278
|
self.stor = stor
|
|
278
279
|
self.pool = pool
|
|
279
280
|
self.iden = iden
|
|
@@ -801,7 +802,12 @@ class Agenda(s_base.Base):
|
|
|
801
802
|
|
|
802
803
|
coro = self._runJob(user, appt)
|
|
803
804
|
task = self.core.runActiveTask(coro)
|
|
805
|
+
|
|
804
806
|
appt.task = await self.core.boss.promotetask(task, f'Cron {appt.iden}', user, info=info)
|
|
807
|
+
async def fini():
|
|
808
|
+
appt.task = None
|
|
809
|
+
|
|
810
|
+
appt.task.onfini(fini)
|
|
805
811
|
|
|
806
812
|
async def _markfailed(self, appt, reason):
|
|
807
813
|
now = self._getNowTick()
|
|
@@ -3017,11 +3017,11 @@ class ArrayCond(Cond):
|
|
|
3017
3017
|
|
|
3018
3018
|
async def getCondEval(self, runt):
|
|
3019
3019
|
|
|
3020
|
-
name = await self.kids[0].compute(runt, None)
|
|
3021
3020
|
cmpr = await self.kids[1].compute(runt, None)
|
|
3022
3021
|
|
|
3023
3022
|
async def cond(node, path):
|
|
3024
3023
|
|
|
3024
|
+
name = await self.kids[0].compute(runt, None)
|
|
3025
3025
|
prop = node.form.props.get(name)
|
|
3026
3026
|
if prop is None:
|
|
3027
3027
|
raise self.kids[0].addExcInfo(s_exc.NoSuchProp.init(name))
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import dataclasses
|
|
3
3
|
|
|
4
|
-
from typing import Union
|
|
4
|
+
from typing import Optional, Union
|
|
5
5
|
|
|
6
6
|
import synapse.exc as s_exc
|
|
7
7
|
import synapse.common as s_common
|
|
@@ -941,16 +941,38 @@ class HiveUser(HiveRuler):
|
|
|
941
941
|
if not self.allowed(perm):
|
|
942
942
|
await self.addRule((True, perm), indx=0)
|
|
943
943
|
|
|
944
|
-
def allowed(self,
|
|
944
|
+
def allowed(self,
|
|
945
|
+
perm: tuple[str, ...],
|
|
946
|
+
default: Optional[str] = None,
|
|
947
|
+
gateiden: Optional[str] = None,
|
|
948
|
+
deepdeny: bool = False) -> Union[bool, None]:
|
|
949
|
+
'''
|
|
950
|
+
Check if a user is allowed a given permission.
|
|
951
|
+
|
|
952
|
+
Args:
|
|
953
|
+
perm: The permission tuple to check.
|
|
954
|
+
default: The default rule value if there is no match.
|
|
955
|
+
gateiden: The gate iden to check against.
|
|
956
|
+
deepdeny: If True, give precedence for checking deny rules which are more specific than the requested
|
|
957
|
+
permission.
|
|
958
|
+
|
|
959
|
+
Notes:
|
|
960
|
+
The use of the deepdeny argument is intended for checking a less-specific part of a permissions tree, in
|
|
961
|
+
order to know about possible short circuit options. Using it to check a more specific part may have
|
|
962
|
+
unintended results.
|
|
963
|
+
|
|
964
|
+
Returns:
|
|
965
|
+
The allowed value of the permission.
|
|
966
|
+
'''
|
|
945
967
|
perm = tuple(perm)
|
|
946
|
-
return self.permcache.get((perm, default, gateiden))
|
|
968
|
+
return self.permcache.get((perm, default, gateiden, deepdeny))
|
|
947
969
|
|
|
948
970
|
def _allowed(self, pkey):
|
|
949
971
|
'''
|
|
950
972
|
NOTE: This must remain in sync with any changes to _getAllowedReason()!
|
|
951
973
|
'''
|
|
952
974
|
|
|
953
|
-
perm, default, gateiden = pkey
|
|
975
|
+
perm, default, gateiden, deepdeny = pkey
|
|
954
976
|
|
|
955
977
|
if self.info.get('locked'):
|
|
956
978
|
return False
|
|
@@ -958,6 +980,9 @@ class HiveUser(HiveRuler):
|
|
|
958
980
|
if self.info.get('admin'):
|
|
959
981
|
return True
|
|
960
982
|
|
|
983
|
+
if deepdeny and self._hasDeepDeny(perm, gateiden):
|
|
984
|
+
return False
|
|
985
|
+
|
|
961
986
|
# 1. check authgate user rules
|
|
962
987
|
if gateiden is not None:
|
|
963
988
|
|
|
@@ -1055,6 +1080,58 @@ class HiveUser(HiveRuler):
|
|
|
1055
1080
|
|
|
1056
1081
|
return _allowedReason(default, default=True)
|
|
1057
1082
|
|
|
1083
|
+
def _hasDeepDeny(self, perm, gateiden):
|
|
1084
|
+
|
|
1085
|
+
permlen = len(perm)
|
|
1086
|
+
|
|
1087
|
+
# 1. check authgate user rules
|
|
1088
|
+
if gateiden is not None:
|
|
1089
|
+
|
|
1090
|
+
info = self.authgates.get(gateiden)
|
|
1091
|
+
if info is not None:
|
|
1092
|
+
|
|
1093
|
+
if info.get('admin'):
|
|
1094
|
+
return False
|
|
1095
|
+
|
|
1096
|
+
for allow, path in info.get('rules', ()):
|
|
1097
|
+
if allow:
|
|
1098
|
+
continue
|
|
1099
|
+
if path[:permlen] == perm and len(path) > permlen:
|
|
1100
|
+
return True
|
|
1101
|
+
|
|
1102
|
+
# 2. check user rules
|
|
1103
|
+
for allow, path in self.info.get('rules', ()):
|
|
1104
|
+
if allow:
|
|
1105
|
+
continue
|
|
1106
|
+
|
|
1107
|
+
if path[:permlen] == perm and len(path) > permlen:
|
|
1108
|
+
return True
|
|
1109
|
+
|
|
1110
|
+
# 3. check authgate role rules
|
|
1111
|
+
if gateiden is not None:
|
|
1112
|
+
|
|
1113
|
+
for role in self.getRoles():
|
|
1114
|
+
|
|
1115
|
+
info = role.authgates.get(gateiden)
|
|
1116
|
+
if info is None:
|
|
1117
|
+
continue
|
|
1118
|
+
|
|
1119
|
+
for allow, path in info.get('rules', ()):
|
|
1120
|
+
if allow:
|
|
1121
|
+
continue
|
|
1122
|
+
if path[:permlen] == perm and len(path) > permlen:
|
|
1123
|
+
return True
|
|
1124
|
+
|
|
1125
|
+
# 4. check role rules
|
|
1126
|
+
for role in self.getRoles():
|
|
1127
|
+
for allow, path in role.info.get('rules', ()):
|
|
1128
|
+
if allow:
|
|
1129
|
+
continue
|
|
1130
|
+
if path[:permlen] == perm and len(path) > permlen:
|
|
1131
|
+
return True
|
|
1132
|
+
|
|
1133
|
+
return False
|
|
1134
|
+
|
|
1058
1135
|
def clearAuthCache(self):
|
|
1059
1136
|
self.permcache.clear()
|
|
1060
1137
|
self.allowedcache.clear()
|
|
@@ -4095,9 +4095,6 @@ class Layer(s_nexus.Pusher):
|
|
|
4095
4095
|
yield prop[0]
|
|
4096
4096
|
|
|
4097
4097
|
async def confirmLayerEditPerms(self, user, gateiden, delete=False):
|
|
4098
|
-
if user.allowed(('node',), gateiden=gateiden):
|
|
4099
|
-
return
|
|
4100
|
-
|
|
4101
4098
|
if delete:
|
|
4102
4099
|
perm_forms = ('node', 'del')
|
|
4103
4100
|
perm_props = ('node', 'prop', 'del')
|
|
@@ -4111,11 +4108,14 @@ class Layer(s_nexus.Pusher):
|
|
|
4111
4108
|
perm_ndata = ('node', 'data', 'set')
|
|
4112
4109
|
perm_edges = ('node', 'edge', 'add')
|
|
4113
4110
|
|
|
4114
|
-
|
|
4115
|
-
|
|
4116
|
-
|
|
4117
|
-
|
|
4118
|
-
|
|
4111
|
+
if user.allowed(('node',), gateiden=gateiden, deepdeny=True):
|
|
4112
|
+
return
|
|
4113
|
+
|
|
4114
|
+
allow_forms = user.allowed(perm_forms, gateiden=gateiden, deepdeny=True)
|
|
4115
|
+
allow_props = user.allowed(perm_props, gateiden=gateiden, deepdeny=True)
|
|
4116
|
+
allow_tags = user.allowed(perm_tags, gateiden=gateiden, deepdeny=True)
|
|
4117
|
+
allow_ndata = user.allowed(perm_ndata, gateiden=gateiden, deepdeny=True)
|
|
4118
|
+
allow_edges = user.allowed(perm_edges, gateiden=gateiden, deepdeny=True)
|
|
4119
4119
|
|
|
4120
4120
|
if all((allow_forms, allow_props, allow_tags, allow_ndata, allow_edges)):
|
|
4121
4121
|
return
|
|
@@ -1623,7 +1623,17 @@ class Slab(s_base.Base):
|
|
|
1623
1623
|
self.commitstats.append((starttime, xactopslen, delta))
|
|
1624
1624
|
|
|
1625
1625
|
if self.WARN_COMMIT_TIME_MS and delta > self.WARN_COMMIT_TIME_MS:
|
|
1626
|
-
|
|
1626
|
+
|
|
1627
|
+
extra = {
|
|
1628
|
+
'delta': delta,
|
|
1629
|
+
'path': self.path,
|
|
1630
|
+
'sysctls': s_thisplat.getSysctls(),
|
|
1631
|
+
'xactopslen': xactopslen,
|
|
1632
|
+
}
|
|
1633
|
+
|
|
1634
|
+
mesg = f'Commit with {xactopslen} items in {self!r} took {delta} ms - performance may be degraded.'
|
|
1635
|
+
logger.warning(mesg, extra={'synapse': extra})
|
|
1636
|
+
|
|
1627
1637
|
self._initCoXact()
|
|
1628
1638
|
return True
|
|
1629
1639
|
|
|
@@ -8,7 +8,7 @@ import synapse.lib.layer as s_layer
|
|
|
8
8
|
|
|
9
9
|
logger = logging.getLogger(__name__)
|
|
10
10
|
|
|
11
|
-
maxvers = (0, 2,
|
|
11
|
+
maxvers = (0, 2, 25)
|
|
12
12
|
|
|
13
13
|
class ModelRev:
|
|
14
14
|
|
|
@@ -38,6 +38,7 @@ class ModelRev:
|
|
|
38
38
|
((0, 2, 22), self.revModel_0_2_22),
|
|
39
39
|
((0, 2, 23), self.revModel_0_2_23),
|
|
40
40
|
((0, 2, 24), self.revModel_0_2_24),
|
|
41
|
+
((0, 2, 25), self.revModel_0_2_25),
|
|
41
42
|
)
|
|
42
43
|
|
|
43
44
|
async def _uniqSortArray(self, todoprops, layers):
|
|
@@ -757,6 +758,17 @@ class ModelRev:
|
|
|
757
758
|
for form, props in formprops.items():
|
|
758
759
|
await self._normVelocityProps(layers, form, props)
|
|
759
760
|
|
|
761
|
+
async def revModel_0_2_25(self, layers):
|
|
762
|
+
await self._typeToForm(layers, 'econ:currency', 'econ:currency')
|
|
763
|
+
await self._normPropValu(layers, 'ou:position:title')
|
|
764
|
+
await self._propToForm(layers, 'ou:position:title', 'ou:jobtitle')
|
|
765
|
+
|
|
766
|
+
await self._normPropValu(layers, 'ou:conference:name')
|
|
767
|
+
await self._propToForm(layers, 'ou:conference:name', 'entity:name')
|
|
768
|
+
|
|
769
|
+
await self._normPropValu(layers, 'ou:conference:names')
|
|
770
|
+
await self._propArrayToForm(layers, 'ou:conference:names', 'entity:name')
|
|
771
|
+
|
|
760
772
|
async def runStorm(self, text, opts=None):
|
|
761
773
|
'''
|
|
762
774
|
Run storm code in a schedcoro and log the output messages.
|
|
@@ -1116,6 +1128,10 @@ class ModelRev:
|
|
|
1116
1128
|
'''
|
|
1117
1129
|
await self.runStorm(storm, opts=opts)
|
|
1118
1130
|
|
|
1131
|
+
async def _typeToForm(self, layers, typename, formname):
|
|
1132
|
+
for prop in layers[0].core.model.getPropsByType(typename):
|
|
1133
|
+
await self._propToForm(layers, prop.full, formname)
|
|
1134
|
+
|
|
1119
1135
|
async def _propArrayToForm(self, layers, propfull, formname):
|
|
1120
1136
|
|
|
1121
1137
|
opts = {'vars': {
|
|
@@ -17,6 +17,7 @@ coremods = (
|
|
|
17
17
|
'synapse.models.telco.TelcoModule',
|
|
18
18
|
'synapse.models.inet.InetModule',
|
|
19
19
|
'synapse.models.material.MatModule',
|
|
20
|
+
'synapse.models.entity.EntityModule',
|
|
20
21
|
'synapse.models.language.LangModule',
|
|
21
22
|
'synapse.models.crypto.CryptoModule',
|
|
22
23
|
'synapse.models.gov.cn.GovCnModule',
|
|
@@ -7,8 +7,27 @@ import synapse.exc as s_exc
|
|
|
7
7
|
|
|
8
8
|
logger = logging.getLogger(__name__)
|
|
9
9
|
|
|
10
|
+
def _ext_un(code, byts):
|
|
11
|
+
if code == 0:
|
|
12
|
+
return int.from_bytes(byts, 'big')
|
|
13
|
+
elif code == 1:
|
|
14
|
+
return int.from_bytes(byts, 'big', signed=True)
|
|
15
|
+
else: # pragma: no cover
|
|
16
|
+
mesg = f'Invalid msgpack ext code: {code} ({repr(byts)[:20]})'
|
|
17
|
+
raise s_exc.SynErr(mesg=mesg)
|
|
18
|
+
|
|
19
|
+
def _ext_en(item):
|
|
20
|
+
if isinstance(item, int):
|
|
21
|
+
if item > 0xffffffffffffffff:
|
|
22
|
+
size = (item.bit_length() + 7) // 8
|
|
23
|
+
return msgpack.ExtType(0, item.to_bytes(size, 'big'))
|
|
24
|
+
if item < -0x8000000000000000:
|
|
25
|
+
size = (item.bit_length() // 8) + 1
|
|
26
|
+
return msgpack.ExtType(1, item.to_bytes(size, 'big', signed=True))
|
|
27
|
+
return item
|
|
28
|
+
|
|
10
29
|
# Single Packer object which is reused for performance
|
|
11
|
-
pakr = msgpack.Packer(use_bin_type=True, unicode_errors='surrogatepass')
|
|
30
|
+
pakr = msgpack.Packer(use_bin_type=True, unicode_errors='surrogatepass', default=_ext_en)
|
|
12
31
|
if isinstance(pakr, m_fallback.Packer): # pragma: no cover
|
|
13
32
|
logger.warning('******************************************************************************************************')
|
|
14
33
|
logger.warning('* msgpack is using the pure python fallback implementation. This will impact performance negatively. *')
|
|
@@ -21,6 +40,7 @@ unpacker_kwargs = {
|
|
|
21
40
|
'raw': False,
|
|
22
41
|
'use_list': False,
|
|
23
42
|
'strict_map_key': False,
|
|
43
|
+
'ext_hook': _ext_un,
|
|
24
44
|
'max_buffer_size': 2**32 - 1,
|
|
25
45
|
'unicode_errors': 'surrogatepass'
|
|
26
46
|
}
|
|
@@ -67,7 +87,8 @@ def _fallback_en(item):
|
|
|
67
87
|
bytes: The serialized bytes in msgpack format.
|
|
68
88
|
'''
|
|
69
89
|
try:
|
|
70
|
-
return msgpack.packb(item, use_bin_type=True,
|
|
90
|
+
return msgpack.packb(item, use_bin_type=True,
|
|
91
|
+
unicode_errors='surrogatepass', default=_ext_en)
|
|
71
92
|
except TypeError as e:
|
|
72
93
|
mesg = f'{e.args[0]}: {repr(item)[:20]}'
|
|
73
94
|
raise s_exc.NotMsgpackSafe(mesg=mesg) from e
|
|
@@ -95,7 +116,8 @@ def un(byts, use_list=False):
|
|
|
95
116
|
obj: The de-serialized object
|
|
96
117
|
'''
|
|
97
118
|
# This uses a subset of unpacker_kwargs
|
|
98
|
-
return msgpack.loads(byts, use_list=use_list, raw=False, strict_map_key=False,
|
|
119
|
+
return msgpack.loads(byts, use_list=use_list, raw=False, strict_map_key=False,
|
|
120
|
+
unicode_errors='surrogatepass', ext_hook=_ext_un)
|
|
99
121
|
|
|
100
122
|
def isok(item):
|
|
101
123
|
'''
|
|
@@ -12,7 +12,6 @@ import synapse.common as s_common
|
|
|
12
12
|
import synapse.telepath as s_telepath
|
|
13
13
|
|
|
14
14
|
import synapse.lib.base as s_base
|
|
15
|
-
import synapse.lib.version as s_version
|
|
16
15
|
|
|
17
16
|
logger = logging.getLogger(__name__)
|
|
18
17
|
|
|
@@ -267,7 +266,7 @@ class NexsRoot(s_base.Base):
|
|
|
267
266
|
raise
|
|
268
267
|
|
|
269
268
|
except Exception:
|
|
270
|
-
logger.exception('Exception while replaying log')
|
|
269
|
+
logger.exception(f'Exception while replaying log: {s_common.trimText(repr(indxitem))}')
|
|
271
270
|
|
|
272
271
|
async def addWriteHold(self, reason):
|
|
273
272
|
|
|
@@ -497,27 +496,32 @@ class NexsRoot(s_base.Base):
|
|
|
497
496
|
|
|
498
497
|
async def runMirrorLoop(self, proxy):
|
|
499
498
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
499
|
+
try:
|
|
500
|
+
cellinfo = await proxy.getCellInfo()
|
|
501
|
+
features = cellinfo.get('features', {})
|
|
502
|
+
if features.get('dynmirror'):
|
|
503
|
+
await proxy.readyToMirror()
|
|
504
|
+
|
|
505
|
+
cellvers = cellinfo['cell']['version']
|
|
506
|
+
if cellvers > self.cell.VERSION:
|
|
507
|
+
logger.error('Leader is a higher version than we are. Mirrors must be updated first. Entering read-only mode.')
|
|
508
|
+
await self.addWriteHold(leaderversion)
|
|
509
|
+
# this will fire again on reconnect...
|
|
510
|
+
return
|
|
504
511
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
logger.error('Leader is a higher version than we are. Mirrors must be updated first. Entering read-only mode.')
|
|
508
|
-
await self.addWriteHold(leaderversion)
|
|
509
|
-
# this will fire again on reconnect...
|
|
510
|
-
return
|
|
512
|
+
# When we reconnect and the leader version has become ok...
|
|
513
|
+
await self.delWriteHold(leaderversion)
|
|
511
514
|
|
|
512
|
-
|
|
513
|
-
|
|
515
|
+
if self.celliden is not None:
|
|
516
|
+
if self.celliden != await proxy.getCellIden():
|
|
517
|
+
logger.error('remote cell has different iden! Aborting mirror sync')
|
|
518
|
+
await proxy.fini()
|
|
519
|
+
await self.fini()
|
|
520
|
+
return
|
|
514
521
|
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
await proxy.fini()
|
|
519
|
-
await self.fini()
|
|
520
|
-
return
|
|
522
|
+
except Exception as exc:
|
|
523
|
+
logger.exception(f'Unknown error during mirror loop startup: {exc}')
|
|
524
|
+
await proxy.fini()
|
|
521
525
|
|
|
522
526
|
while not proxy.isfini:
|
|
523
527
|
|
|
@@ -573,8 +577,8 @@ class NexsRoot(s_base.Base):
|
|
|
573
577
|
if respfutu is not None:
|
|
574
578
|
respfutu.set_result(retn)
|
|
575
579
|
|
|
576
|
-
except Exception: # pragma: no cover
|
|
577
|
-
logger.exception('error in mirror loop')
|
|
580
|
+
except Exception as exc: # pragma: no cover
|
|
581
|
+
logger.exception(f'error in mirror loop: {exc}')
|
|
578
582
|
|
|
579
583
|
# If we've left the mirror loop for some reason, we no longer know if we
|
|
580
584
|
# will be in the realtime window or not. So we should try to set the ready
|
|
@@ -287,3 +287,34 @@ _stormPoolOptsSchema = {
|
|
|
287
287
|
'additionalProperties': False,
|
|
288
288
|
}
|
|
289
289
|
reqValidStormPoolOpts = s_config.getJsValidator(_stormPoolOptsSchema)
|
|
290
|
+
|
|
291
|
+
# These types are order sensitive
|
|
292
|
+
_changelogTypes = {'migration': 'Automatic Migrations',
|
|
293
|
+
'model': 'Model Changes',
|
|
294
|
+
'feat': 'Features and Enhancements',
|
|
295
|
+
'bug': 'Bugfixes',
|
|
296
|
+
'doc': 'Improved documentation',
|
|
297
|
+
'deprecation': 'Deprecations'}
|
|
298
|
+
|
|
299
|
+
_changelogSchema = {
|
|
300
|
+
'type': 'object',
|
|
301
|
+
'properties': {
|
|
302
|
+
'type': {
|
|
303
|
+
'type': 'string',
|
|
304
|
+
'enum': list(_changelogTypes.keys()),
|
|
305
|
+
},
|
|
306
|
+
'desc': {
|
|
307
|
+
'type': 'string',
|
|
308
|
+
'minLength': 1,
|
|
309
|
+
},
|
|
310
|
+
'prs': {
|
|
311
|
+
'type': 'array',
|
|
312
|
+
'items': {
|
|
313
|
+
'type': 'integer',
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
'additionalProperties': False,
|
|
318
|
+
'required': ['type', 'desc']
|
|
319
|
+
}
|
|
320
|
+
_reqChanglogSchema = s_config.getJsValidator(_changelogSchema)
|