Comments (2)
Hi @lcpopa -- agreed this should likely be more consistent, but to help get to the root of the inconsistencies it would be great if you could clarify with some specifics:
- some specific examples of the methods you're using (you mention searching but the explanation is regarding instance GUIDs, which none of the search interfaces take as input, so I'm guessing you mean something like
getEntityDetail
?) - building on those same examples, which specific method(s) (in which implementations) seem to be returning which specific exceptions
I believe RepositoryErrorException
is intended to be thrown when there is some unexpected error like the underlying repository being offline, so probably shouldn't be used in the case where we simply know that an instance does not exist; however, this simply means that for this specific scenario we may be able to avoid it -- it does not mean that in general it will never be thrown back to the OMAS even if we solve this inconsistency. For example, if the underlying e.g. IGC repository goes offline the proxy may still validly need to respond with RepositoryErrorException
as it won't even be able to check whether the entity exists or not in IGC (since IGC is offline).
from egeria-connector-ibm-information-server.
Hi Chris,
Indeed the methods I am referring to are IGCOMRSMetadataCollection.getEntityDetail and EntityMapping.getEntityDetail. The first one will throw the EntityNotKnownException and the second the RepositoryErrorException
If we are to call with a non existent guid like 'mango', the EntityNotKnownException with code 4xx is thrown from IGCOMRSMetadataCollection.getEntityDetail:789
If we are to call with a non existent guid like 'kiwi@metadataCollectionId:papaya', the RepositoryErrorException with the 4xx code is thrown from EntityMapping.getEntityDetail:729. In order to pass the guid validation, it is important to have '@', and ':' in the proper order
We understand that we won't avoid RepoErEx in all cases, nor do we want that; when it is indeed the case it must be thrown. However, the callers (ex: omas) should get a consistent result since each exception is treated differently. In our case, the omas behaves as if IGC is down when the entity doesn't actually exists
Best wishes,
Liviu
from egeria-connector-ibm-information-server.
Related Issues (20)
- Lack of context for data_files without data_file_folders HOT 8
- NPE when trying to get EntityDetail for rid that is not present in IGC
- Implement a NOOP event mapper HOT 1
- findEntities with multiple conditions does not return entities HOT 1
- Add differentiation between primary and secondary categories HOT 1
- Property 'assigned_to_terms' no longer supported for searching using 'main_object' generic type HOT 1
- Implement new classification for primary category HOT 1
- IGC repository connector - validation for instance properties mapped with wrong primitive type HOT 3
- Data Stage connector support for high level lienage HOT 7
- Results for a relationship search by type (with multiple mappings) extend beyond pageSize
- Improve handling of complex search criteria for findEntities method HOT 2
- Searching for NEQ minCardinality on SchemaAttributes does not work
- repository-services getEntityDetail is ignoring MetadataCollectionId part of GUID HOT 2
- Move data_file_field mappings from TabularColumn to TabularFileColumn
- Data Stage connector batch processing sync state per instance
- Data Stage connector capability to process virtual assets
- Mapping new typedef properties (Failed test ConnectorTest.verifySupportedTypes) HOT 2
- Can igc-adapter create anchor classifications for data asset types?
- SonarCloud Quality Gate Code duplication rule too restrictive HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from egeria-connector-ibm-information-server.