1
0
Fork 0
arangodb/UnitTests/HttpInterface
Tobias Gödderz de4f5587ae Gharial rewrite in C++ (#5631)
* Built a C++ skeleton REST handler for gharial, with fallback to the JS handler

* Moved aql::Graph to graph::Graph

* Added complete edge definitions to Graph

Also:
- some cleanup
- used forward-declarations in headers
- use Graph in graph rest handler

* Handle graph lookup failures according to the test suite

* Added GET vertex

* Bugfixes in ResultT

- Added missing #include
- Fixed move semantics

* Move central code of readVertex to GraphOperations

* ResultT fixes and complements

* Implemented a graph cache

* Added and used graph cache to the rest handler

* Added GET edge

* Added DELETE edge

* Extracted some code

* Added PATCH and PUT for both edge and vertex

* Moved update/replace transaction code to GraphOperations

* Added stub routes for POST and a TODO note

* Added a test checking that deleting a vertex removes all incident edges as well

* Added a test checking that deleting a vertex does not remove edges in non-graph collections

* fixed compiler warnings and errors

* Began work on DELETE vertex

For this, added a V8Context to allow for AQL queries to use subtransactions

* Continued work on DELETE vertex (still WIP)

* prep for graph post routes

* fixed removeVertex operation (aql)

* added post vertex and post edge gharial routes

* wasSynchronoues flag changed

* gharial post c++ handler, naming conventions

* added gharial tests

* temporary disabled cache (because not completed), added graph property read functions

* added c++ gharial list vertex collections

* added c++ gharial graph config

* added c++ gharial list graphs

* added graph manager class

* first implementation of create graph in c++, WIP

* changed error messages

* added etag to create graph api, still multiple edge definition check missing

* finished POST /_api/gharial/<graph>

* WIP - DELETE /_api/gharial/<graphName>

* added DELETE /_api/gharial/<graphName> validation, still missing correct response

* gharial delete

* fixed delete gharial lock

* finished DELETE /_api/gharial/<graphName>

* added routes for graph based vertices and edge definitions

* improved delete route

* added add new edge definition to existing graph

* patch edge definition in a graph, still <WIP>

* finished edit edge definition route

* code changes due to devel code changes

* added remove edge definition route

* added vertex delete function

* added todo note regarding one drop collection issue

* add oprhan collection to graph route implemented

* Added a test

* Updated a comment

* Several minor changes

* Minor changes during review

* Changes during review

* Changes during review

* Bugfix: orphans may be null or omitted

* Bugfix: resolve externals

* minor code changes

* seperated graph class to independent component classes

* seperated graph class to independent component classes

* removed log output

* fixed create collection behaviour in a cluster environment

* fixed enterprise graphs behaviour in c++ gharial api

* removed log output

* formatting

* improved error handling, fixed a linux compile bug

* more result refactoring

* more result type cleanup

* fixed wrongly defined test

* result handling

* error handling

* more refactoring

* Bugfix: avoid race condition in cluster when creating collections

* updated graph documentation

* added graph related static strings

* static strings, new method to create options for gharial created collections

* Some minor cleanup

* more use of static strings

* minor code changes, review

* added missing parseint

* removed gharial foxx, added js common module, added v8 general graph module

* correct use of virtual method

* more v8, js general graph, broken state

* more v8 graph functions

* fixed editEdgeDefinition, added drop function

* fixed drop behaviour

* added _list, _exists

* added c++ rename graph collections, added v8 + graph module function

* Added a regression test

* added graph._deleteEdgeDefinition, v8, server

* more v8g

* added _removeVertexCollection

* added _extendEditDefinitions

* todo, need to add a helper sort method for a local defined relation

* fixed test

* fixed lots of tests, added more client functions, _addVertexCollection on client module is still broken

* added more client graph functions, all tests green

* more client functions

* add del edge def route

* Fix use after move

* Minor changes in client general-graph.js module

* Make a copy before sorting (don't touch the argument)

* Minor changes and some additional asserts in graph tests

* Consistently set parameter defaults

* Renamed static strings

* Remove superfluous function

* Made comment more verbose

* Minor changes in general-graph-common.js

* Added missing template arguments

* Fixed community build

* Cleanup in editEdgeDefinition

* Regression test & bugfix: comparison of edge definitions didn' order from and to

* Fixed errors introduced by merge

* Minor changes in v8-general-graph.cpp

* Fixed test failure due to wrong error code in CE

* added missing id field

* Added permission checks for graph._create

* Removed assertion that is no longer valid

* Moved removeGraph from GraphOperations to GraphManager

* Allow C++ implementation of graph._drop to handle smart graphs

* Flush js client db cache after creating/dropping collections via the general graph module

* Added _deleteEdgeDefinition to the general graph client module

* WIP: Added permission checks for drop graph

* Fixed permission checks for drop graph

* Added permission checks for other graph operations

* Bugfix: assert edge definitions are returned in order

* Some cleanup

* Removed unused method

* Minor improvements in GraphManager

* Fixed a type in general-graph common module

* Most useful fix of all times ever: Do not auto cast from bool to int and alternate error/noerror by this

* Added the initial keyword to StaticStrings

* Added a new error code, used whenever a user tries to inject a documentcollection as a relation into the graph, which is invalid

* Some GraphManager/Ops/Graph cleanup. Less Slice parsing, more usage of GraphObjects

* Test edgeDefinitions in graphs with a defined ordering

* GraphClass Layout cleanup

* Do not test error messages, use codes instead

* Recreated backwards compatibility of Graph Creation Permission errors

* Changed error-code if edgedefinition is used twice

* Added a StaticString for the GraphName

* Renamed graphToVpack => graphForClient

* Partly fixed graph-api test to work with better error messages. Still red: The edgeDefinitions are now sorted, the test is supposed to sort his own list, but appearently does not do so. Under investigation

* Added a new error code that rejects injection of differently sharded smart collection into smartgraph. Should be more helpful to our users

* graph createCollectionOptions now require an open object to be cross-called from enterprise. Made enterprise switch for creation of graph more elegant.

* Updated graphs.cpp

* Massive refactoring. Made Factories for graphs to make SmartGraph much more transparent. Also reduced amount of multiple implementations of the same stuff. Killed vocbase/graphs use GraphManager instead. Removed usage of GraphCache, was not completely implemented anyway and only partially used, which is bad at the moment. Option for later improvement never the less

* Adapted JS code to now really use c++ variants. ALso included 3 Classes: Graph, SmartGraph and GraphModule.

* Fixed undefined behaviour in Remove Vertex. Fixed smartgraph sharding if one collection already exists.

* Removed DEBUG output

* Removed DEBUG logs

* Removed dead code

* Fixed Graph EdgeDefinition test, they now have a different ordering.

* Added a test when adding a vertexCollection that it is actually valid in the graph

* Client Graph API now correctly sends `orphanCollections` and not `orphans`

* Let GraphOperations modify the graph in-place. It should now properly handle edgeDefinitions.

* Added initial cid StaticString

* Included the vocbase in fromPersistence creation of Graphs. Only required to enhance 3.3 SmartGraphs on the fly.

* Fixed internal error message

* Fixed compiler isses originiated from merging

* Removed unused imports

* Regenerated generated file
2018-08-09 09:30:04 +02:00
..
Gemfile Remove httparty from the bundle - it comes as a dependency from persistent_httparty 2016-02-10 10:48:03 +01:00
api-admin-spec.rb Replacing statistics handler with c++ (#4653) 2018-02-26 15:33:43 +01:00
api-aql-builtin-spec.rb added /_api/aql-builtin 2016-06-03 12:56:18 +02:00
api-aqlfunction-spec.rb make API for POST /_api/aqlfunction downwards-compatible again (#5636) 2018-06-20 12:52:54 +02:00
api-async-spec-timecritical.rb Replaced lingering calls to removed API. (#3702) 2017-11-15 20:04:03 +01:00
api-attributes-spec.rb move system attributes to the front of objects 2016-04-29 13:13:39 +02:00
api-batch-spec.rb more RFC compliance when parsing http headers - support quotes (#5860) 2018-07-13 11:14:06 +02:00
api-collection-access-spec.rb try to fix another permissions problem when collections are accessed … (#3485) 2017-10-25 18:05:17 +02:00
api-collection-mmfiles-noncluster-spec.rb Added RocksDB export functionality and some bug fixes. 2017-04-04 17:33:14 -04:00
api-collection-mmfiles-spec.rb added key generators "uuid" and "padded" (#5740) 2018-07-03 15:23:47 +02:00
api-collection-rocksdb-noncluster-spec.rb make more tests pass 2017-04-05 14:57:18 +02:00
api-collection-rocksdb-spec.rb Replacing /_api/collection with RestHandler (#3543) 2017-11-02 14:57:17 +01:00
api-cursor-spec-noncluster.rb fix typo in test description 2017-01-30 16:40:55 +01:00
api-cursor-spec.rb fixed issue #4056 (#4057) 2017-12-16 15:10:22 +01:00
api-database-spec.rb issue #2348 2017-03-03 10:50:13 +01:00
api-document-create-spec.rb fix not condition (#5486) 2018-05-29 16:56:29 +02:00
api-document-delete-spec.rb Change undocumented behaviour in case of invalid rev in If-Match headers. 2017-02-07 22:37:38 +01:00
api-document-key-spec.rb Adjust tests for 3.0. 2016-03-09 15:20:55 +01:00
api-document-read-spec.rb Change undocumented behaviour in case of invalid rev in If-Match headers. 2017-02-07 22:37:38 +01:00
api-document-update-spec.rb Change undocumented behaviour in case of invalid rev in If-Match headers. 2017-02-07 22:37:38 +01:00
api-documents-spec.rb test fixes 2016-04-06 17:39:24 +02:00
api-edge-spec.rb Fix edge tests. 2016-03-10 12:45:10 +01:00
api-edges-spec.rb test fixes 2016-03-21 18:25:48 +01:00
api-endpoint-spec.rb Converted endpoint handler from JS to C++ (#2905) 2017-08-01 09:53:04 +02:00
api-explain-spec.rb fixed invalid object access, added a test (#2862) 2017-07-25 22:26:51 +02:00
api-export-spec-timecritical-noncluster.rb Replace rocksdb export cursor with query (#5657) 2018-06-25 18:14:27 +02:00
api-foxx-manager-spec-nightly.rb we may only execute nightly foxx-manager tests so we don't stress out github. 2017-04-26 13:34:31 +02:00
api-general-graph-spec.rb Gharial rewrite in C++ (#5631) 2018-08-09 09:30:04 +02:00
api-http-spec.rb added OPTIONS to cors methods header 2017-03-28 16:18:53 +02:00
api-import-noncluster-spec.rb enable import API for cluster 2016-06-24 10:53:00 +02:00
api-import-spec.rb enable import API for cluster 2016-06-24 10:53:00 +02:00
api-index-geo-spec.rb S2 based Geo-Spatial index (#5249) 2018-05-02 23:54:41 +02:00
api-index-hash-spec.rb added "deduplicate" attribute for array indexes (#2644) 2017-06-30 17:53:50 +02:00
api-index-persistent-spec.rb added tests, fixed unique constraints 2016-06-07 17:26:07 +02:00
api-index-skiplist-spec.rb added tests for sparse indexes 2015-02-10 21:28:12 +01:00
api-index-spec.rb test split 2017-04-04 16:16:50 +02:00
api-miscellaneous-spec.rb Bug fix/wenn der shard mann 2mal klingelt (#5890) 2018-07-26 15:37:40 +02:00
api-pipelining-spec-noncluster.rb attempt to fix test that fails non-deterministically on TravisCI 2015-09-17 21:07:48 +02:00
api-query-analysis-spec-timecritical.rb fixed tests 2017-03-08 18:08:36 +01:00
api-simple-all-spec.rb moved PUT /_api/simple/all to C++ 2015-06-18 15:34:45 +02:00
api-simple-any-spec.rb
api-simple-example-spec.rb
api-simple-fulltext-mmfiles-spec.rb rename tests so they run in mmfiles engine only 2017-04-05 08:59:50 +02:00
api-simple-geo-mmfiles-spec.rb rename tests so they run in mmfiles engine only 2017-04-05 08:59:50 +02:00
api-simple-modify-example-cluster-spec.rb fixed tests 2014-02-27 11:39:36 +01:00
api-simple-modify-example-spec.rb make merging configurable in update-by-example API 2016-01-04 16:31:06 +01:00
api-simple-range-spec.rb
api-statistics-spec.rb use should syntax in ruby test 2016-11-23 11:36:16 +01:00
api-transactions-cluster-spec.rb Feature/js to cpp transaction handler (#2985) 2017-08-11 09:29:34 +02:00
api-transactions-noncluster-spec.rb do not swallow error messages when transactions fail (#3836) 2017-12-06 10:49:28 +01:00
api-traversal-cluster-spec.rb Moved another test to use the document endpoint instead of the edge endpoint. 2016-04-05 10:30:03 +02:00
api-traversal-edgecollection-cluster-spec.rb Fixed test, it still used _api/edges instead of _api/document 2016-04-05 10:20:17 +02:00
api-traversal-edgecollection-noncluster-spec.rb fixed tests 2016-03-22 13:10:36 +01:00
api-traversal-noncluster-spec.rb fixed tests 2016-03-22 13:10:36 +01:00
api-users-spec.rb Refactor Authentication Layer (devel) (#4592) 2018-02-28 13:24:28 +01:00
api-view-arangosearch-spec-noncluster.rb issue 410.3: remove the extra neting of ArangoSearch view definition into 'properties' (#5956) 2018-07-24 16:27:28 +03:00
api-wal-noncluster-spec-mmfiles.rb Moving api-wal-noncluster and adding running trx 2017-04-05 11:54:30 +02:00