Commit Graph

66 Commits (d8a775c60dc0331ec4261d50300853e2be43afa7)

Author SHA1 Message Date
Michael Chisholm 63166ab256 Add some backward-compatibility to filesystem store: versioned
objects are searched for as ID-named json files in the type
directories, in addition to timestamp-named files in ID
directories.

Made a bugfix: fixed improper exception re-raises

Made an efficiency improvement: don't stat() files in
_get_matching_dir_entries() if no st_mode_test callable is given.
2018-11-27 15:24:09 -05:00
Michael Chisholm da13882eec Fix FileSystemSource.get() to not look for the latest version of
an object when markings are queried, since markings are not
versioned.
2018-11-27 15:24:08 -05:00
Michael Chisholm 2b983368e5 Fix an indexing error which caused FileSystemSource.get() to return
the oldest object instead of the newest.
2018-11-27 15:24:07 -05:00
Michael Chisholm 9693c16cd1 Adjust import order to satisfy tox import check 2018-11-27 15:24:07 -05:00
Michael Chisholm 428a18ded2 Implemented clenk's suggested changes in multi-version filesystem
store:
- Use utils.get_type_from_id() instead of my own (I didn't know it
  was already there)
- Use dict-style instead of attribute-style access to get stix
  object properties
- Convert timezone-aware timestamps to UTC in _timestamp2filename()
  to ensure that different times always result in different
  filenames.

Also added a couple new tests for _timestamp2filename(), which
exercises the timezone conversion code.
2018-11-27 15:24:07 -05:00
Michael Chisholm 461e8bd5cb Removed the old FileSystemSource.query method. I'd renamed it
"query2" and forgot about it and left it there...
2018-11-27 15:24:07 -05:00
Michael Chisholm 0096835cfc Add multi-version support to the filesystem datastore.
Factored out the _is_marking() function from the memory datastore
module to utils so it can be reused, and changed both filesystem
and memory datastore modules to import and use it.
2018-11-27 15:24:07 -05:00
Emmanuelle Vargas-Gonzalez 51df054f33
Update memory.py 2018-11-14 15:16:49 -05:00
Emmanuelle Vargas-Gonzalez d6435a18fa Missing changes to key/value approach 2018-11-14 15:03:57 -05:00
Emmanuelle Vargas-Gonzalez c80f39ceed Change approach to allow for custom objects 2018-11-14 14:35:22 -05:00
Chris Lenk c4668f5dc1
Revert "Multi version filesystem store" 2018-11-07 10:10:06 -05:00
Michael Chisholm 7bb3d1f6a6 Fix FileSystemSource.get() to not look for the latest version of
an object when markings are queried, since markings are not
versioned.
2018-11-06 16:06:26 -05:00
Michael Chisholm e2f5d60b51 Fix an indexing error which caused FileSystemSource.get() to return
the oldest object instead of the newest.
2018-11-01 20:25:00 -04:00
Michael Chisholm e2d9325356 Adjust import order to satisfy tox import check 2018-11-01 20:25:00 -04:00
Michael Chisholm ee57596d6a Implemented clenk's suggested changes in multi-version filesystem
store:
- Use utils.get_type_from_id() instead of my own (I didn't know it
  was already there)
- Use dict-style instead of attribute-style access to get stix
  object properties
- Convert timezone-aware timestamps to UTC in _timestamp2filename()
  to ensure that different times always result in different
  filenames.

Also added a couple new tests for _timestamp2filename(), which
exercises the timezone conversion code.
2018-11-01 20:25:00 -04:00
Michael Chisholm 51668a9a04 Removed the old FileSystemSource.query method. I'd renamed it
"query2" and forgot about it and left it there...
2018-11-01 20:25:00 -04:00
Michael Chisholm 9486b46f77 Add multi-version support to the filesystem datastore.
Factored out the _is_marking() function from the memory datastore
module to utils so it can be reused, and changed both filesystem
and memory datastore modules to import and use it.
2018-11-01 20:25:00 -04:00
Chris Lenk 6613b55a43 Update MemoryStore documentation
...now that MemorySource normalizes its data to python-stix2 objects.
2018-10-23 14:29:56 -04:00
Michael Chisholm cbe8d22d0a Added support to multi-version memory stores for markings. Also
added some more unit tests which test storing/retrieving markings
from the stores.
2018-10-17 20:54:53 -04:00
Michael Chisholm 2d89cfb0cf Remove outdated TODO's from the memory datastore module-level
docstring.
2018-10-17 15:49:58 -04:00
Michael Chisholm d9f6a213c1 Fixed Memory source/sink/store so that it supports multiple versions
of objects.  Fixed several bugs too.
2018-10-15 18:02:49 -04:00
Michael Chisholm 5a0e102959 Modify docstring for apply_common_filters() to change what it
says are the required types for its parameters.  It gave
specific types (list and set), when really it worked with more
than just that (iterables).  And I certainly didn't only call
it with just lists and sets.
2018-10-15 18:02:48 -04:00
Chris Lenk f47809eaaf Add "contains" filter
This allows filtering on, for example, observed-data objects that
contain a specific cyber observable.
2018-07-02 18:28:27 -04:00
= 3fb1840289 safer error class 2018-05-22 10:03:06 -04:00
= e484b7c25f formatting 2018-05-18 11:45:40 -04:00
= a3313bc08f creating native DataSourceError exception class to wrap taxii client and server errors 2018-05-16 13:23:50 -04:00
= 2b4c5bf264 handling and modifying exception messages in a manner acceptable by all python versions 2018-05-15 17:42:19 -04:00
= 0d3f80f2fe removing taxii 503 error test as not reproducible in Travis environment 2018-05-15 15:41:46 -04:00
= 2392912533 handle TAXII client/server errors according to decided policy 2018-05-15 11:28:34 -04:00
Emmanuelle Vargas-Gonzalez fb79e703b8 Simplify FilterSet instance in MemorySource 2018-04-23 14:12:16 -04:00
Emmanuelle Vargas-Gonzalez 8a9acfe487 Create TAXII query correctly. closes #169 2018-04-23 14:11:08 -04:00
Chris Lenk 194672ee2b Tweak FilterSet docstrings style 2018-04-13 17:11:07 -04:00
= 6df23e7268 removed unecessary checks, (clearly I need to review python ref model) 2018-04-13 16:06:31 -04:00
= eba1844535 tweak to filter property checking to make sure original object property is not altered; added tests for this as well 2018-04-13 14:01:33 -04:00
= 61e091baf3 added FilterSet class for internal use; modified certain parsing processes to make deepcopies or suppled values(dicts) so as to taint original user passed data; added Filter logic to handle datetime objects; added/adjusted tests accordingly 2018-04-13 12:25:12 -04:00
= 1a1e5e1616 WIP- getting close though 2018-04-13 11:08:03 -04:00
= 31fc1c369a still WIP 2018-04-12 12:03:07 -04:00
= 333fea4d18 merge conflicts 2018-04-11 21:08:37 -04:00
= ba6fa595c6 WIP - finding more issues with allowing dicts as filters 2018-04-11 20:54:16 -04:00
= 27647091a5 WIP - just at stash point 2018-04-11 13:36:52 -04:00
Chris Lenk f83d9a56b5 Clean up documentation 2018-04-09 13:29:53 -04:00
Chris Lenk e6e72856b3 Remove query_by_type()
Missed these earlier.
2018-04-05 11:22:50 -04:00
Greg Back a1ad90d43f
Merge pull request #150 from oasis-open/38-workbench
Create Workbench layer
2018-04-05 10:09:23 -05:00
Chris Lenk e3bbc39353 Fix bug with mutable default parameter 2018-04-05 10:07:35 -04:00
Chris Lenk 589c00064b Remove query_by_type
It's not that much of a shortcut and we can add it back in later if it
makes sense.
2018-04-04 14:09:54 -04:00
Chris Lenk f951b9b09e Factor out dupl. code for creating list of filters 2018-04-04 13:50:41 -04:00
Chris Lenk 940afb0012 Require a type when querying by type 2018-04-02 09:54:22 -04:00
Emmanuelle Vargas-Gonzalez 0bb1bb37f1 Call parse() on stix_data
# Fix on MemorySource.load_from_file()
2018-04-02 07:40:25 -04:00
Chris Lenk 4a2ac6df3a Add/fix workbench docs, rename add() -> save() 2018-03-30 12:04:31 -04:00
Chris Lenk 4fb24f14de Allow passing add'l filters to related_to() 2018-03-30 12:02:27 -04:00