odpi / egeria

Egeria core
https://egeria-project.org
Apache License 2.0
797 stars 259 forks source link

Various sample failures #4656

Closed planetf1 closed 3 years ago

planetf1 commented 3 years ago

When testing R2.6 :

[jboss@lab-odpi-egeria-lab-dev-0 samples]$ /deployments/e ./admin-services-config-metadata-server-sample-2.6-jar-with-dependencies.jar
=================================
Configure Metadata Server Sample
=================================
Running against admin platform: https://localhost:9443
Using admin userId: garygeeke
(No connection security)

Configuring server: cocoMDS1
Exception: org.odpi.openmetadata.adminservices.ffdc.exception.OMAGConfigurationErrorException with message OMAG-ADMIN-400-006 Unable to configure server cocoMDS1 since access service information-view is not enabled in this OMAG Server Platform

This is because IV is now removed. The code sample needs updating accordingly.

mandy-chessell commented 3 years ago

I have updated the sample but see this failure when I run it ...



=================================
Configure Metadata Server Sample 
=================================
Running against admin platform: https://localhost:9443
Using admin userId: garygeeke
(No connection security)

Configuring server: cocoMDS10
Exception: org.odpi.openmetadata.adminservices.ffdc.exception.OMAGConfigurationErrorException with message OMAG-ADMIN-503-001 A client-side exception was received from API call setServerURLRoot to OMAG Server Platform at https://localhost:9443.  The error message was CLIENT-SIDE-REST-API-CONNECTOR-503-002 A client-side exception org.springframework.web.client.ResourceAccessException was received by method setServerURLRoot from API call https://localhost:9443/open-metadata/admin-services/users/{0}/servers/{1}/server-url-root-for-caller to server cocoMDS10 on platform https://localhost:9443.  The error message was I/O error on POST request for "https://localhost:9443/open-metadata/admin-services/users/garygeeke/servers/cocoMDS10/server-url-root-for-caller": sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Process finished with exit code 255
planetf1 commented 3 years ago

Will look tomorrow and go through the other samples

planetf1 commented 3 years ago

I see the master fix is in. I've a PR for 2.6 (and one for 26 that isn't needed) in draft. testing the other samples then will complete

planetf1 commented 3 years ago

The avro/csv samples work ok (eclient is just my script to set the security certs up)

Governance leadership fails with:

jonesn:samples/ (issue4656master) $ eclient ./governance-leadership-sample-2.6-jar-with-dependencies.jar cocoMDS2 https://localhost:9443 garygeeke
===============================
Governance Leadership Sample
===============================
Running against server: cocoMDS2 at https://localhost:9443
Using userId: garygeeke
Creating profiles for Jules and Ivor
----------------------------
Profile: 99aa990b-0726-42d3-aa03-8c99f408c153
  UserId: julesKeeper
  Employee Id: 026
  Full Name: Julian Keeper
  Known Name: Jules Keeper
  Job Title: Chief Data and Privacy Officer
  Job Description: Chief Data and Privacy Officer
Exception: java.lang.NullPointerException with message Cannot invoke "java.util.Map.get(Object)" because the return value of "org.odpi.openmetadata.accessservices.communityprofile.properties.PersonalProfile.getAdditionalProperties()" is null
planetf1 commented 3 years ago

Gov zone sample ok, and Subject area sample works correctly, other than the default server is perhaps a bad choice 'cocoMDS4'. Until 2.6 this was serving subject area omas but this was changed.

Updating default to cocoMDS2 seems prudent

planetf1 commented 3 years ago

CIM model import also has issues - but opening this as #4661 to record/document - and possible issues with originating jsonld file

planetf1 commented 3 years ago

The glossary canonical model import also fails:

eclient ./glossary-canonical-model-2.6-jar-with-dependencies.jar ~/src/egeria/open-metadata-resources/open-metadata-archives/design-model-archives/glossary-canonical-model/src/test/resources/EgeriaSampleOntology.json

Model file Name: /Users/jonesn/src/egeria/open-metadata-resources/open-metadata-archives/design-model-archives/glossary-canonical-model/src/test/resources/EgeriaSampleOntology.json

Retrieving model contents from: /Users/jonesn/src/egeria/open-metadata-resources/open-metadata-archives/design-model-archives/glossary-canonical-model/src/test/resources/EgeriaSampleOntology.json
error is org.apache.jena.shared.NoReaderForLangException: Reader not found: JSON-LD

Opened up #4662. There is a mismatch of intent in what we ship here. Not a bug to fix for 2.6

planetf1 commented 3 years ago

Request body for the personal profile is:

PersonalProfileRequestBody{profileUserId='julesKeeper'originatingSystemGUID='null', qualifiedName='026', fullName='Julian Keeper', knownName='Jules Keeper', jobTitle='Chief Data and Privacy Officer', jobRoleDescription='Ensuring CocoP makes the best use of data.', profileProperties=null, additionalProperties={ContactType=Employee, WorkLocation=2}}

sent to https://localhost:9443/servers/{0}/open-metadata/access-services/community-profile/users/{1}/personal-profiles (parms are servername, userid)

Exception is

Exception: java.lang.NullPointerException with message Cannot invoke "java.util.Map.get(Object)" because the return value of "org.odpi.openmetadata.accessservices.communityprofile.properties.PersonalProfile.getAdditionalProperties()" is null

In PersonalProfile (Community profile api)

    public Map<String, String> getAdditionalProperties()

This was on get - this code doesn't seem to have changed recently

planetf1 commented 3 years ago

@mandy-chessell ref your issue running the clients. I agree it's painful now. The complete spec for running any java app and specifying tls is documented at https://egeria.odpi.org/open-metadata-implementation/admin-services/docs/user/omag-server-platform-transport-level-security.html . See 'Egeria java clients'. The truststore in particular cannot be included in the jar using the default handlers (I was working on a PR to address this but it was deemed unnecessary complex - fairly - but it could more flexibly handle this case). In addition we need to change to not having any certs present by default, not even self signed. One approach is to add a 'launcher' script (shell script / windows cmd) with preconfigured paths to a well defined location.

planetf1 commented 3 years ago

The governance zone sample worked in 2.3 but broke from 2.4. So not a 2.6 regression. (subject area sample ref to cocoMDS4 left for now) Assigning to 2.7

planetf1 commented 3 years ago

This is still failing in 2.7. Presuming we'll fix in a future release

planetf1 commented 3 years ago

Governance Leadership sample fails with a similar error to previously in the 2.9 release:

eclient ./governance-leadership-sample-2.9-jar-with-dependencies.jar cocoMDS2 https://localhost:9444 garygeeke
Picked up JAVA_TOOL_OPTIONS: --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED
===============================
Governance Leadership Sample
===============================
Running against server: cocoMDS2 at https://localhost:9444
Using userId: garygeeke
Creating profiles for Jules and Ivor
Exception: org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException with message OMAG-MULTI-TENANT-404-001 The OMAG Server cocoMDS2 is not available to service a request from user garygeeke
jonesn:samples/ (egeria-release-2.9) $ eclient ./governance-leadership-sample-2.9-jar-with-dependencies.jar cocoMDS2 https://localhost:9443 garygeeke
Picked up JAVA_TOOL_OPTIONS: --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED
===============================
Governance Leadership Sample
===============================
Running against server: cocoMDS2 at https://localhost:9443
Using userId: garygeeke
Creating profiles for Jules and Ivor
----------------------------
Profile: 1ed3722b-0b0e-4214-9593-22451654b5fc
  UserId: julesKeeper
  Employee Id: 026
  Full Name: Julian Keeper
  Known Name: Jules Keeper
  Job Title: Chief Data and Privacy Officer
  Job Description: Chief Data and Privacy Officer
----------------------------
----------------------------
Profile: bc7e3d73-a385-427b-b66d-993b33703da4
  UserId: ivorPadlock
  Employee Id: 008
  Full Name: null
  Known Name: Ivor Padlock
  Job Title: Security Executive
  Job Description: Security Executive
----------------------------
Creating CDO, CPO and CSO governance officers
Exception: org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException with message OMAG-REPOSITORY-HANDLER-500-001 An unexpected error org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException was returned to getEntityByGUID by the metadata server during getGovernanceOfficerByGUID request for open metadata access service Governance Program OMAS on server cocoMDS2; message was OMAG-REPOSITORY-HANDLER-404-001 The getEntityByGUID method has retrieved a object for unique identifier (guid) c400e270-b9af-4cf0-9cd6-9c655b80f197 which is of type GovernanceOfficer rather than type GovernanceOfficerProperties on behalf of method getGovernanceOfficerByGUID

The client script referred to is just to fully specify (for testing) the various TLS parms ie:

cat ~/bin/eclient                                                                              [14:17:42]
#!/bin/sh

# Location of my source tree
BUILD=~/src/egeria

# Use the certs in the build, with the default passwords of 'egeria' and a server alias of 'tomcat'
KS=${BUILD}/open-metadata-implementation/server-chassis/server-chassis-spring/src/main/resources/keystore.p12
TS=${BUILD}/open-metadata-implementation/server-chassis/server-chassis-spring/src/main/resources/keystore.p12
KSP=egeria
TSP=egeria
SKEY=tomcat

# version
VER=2.4-SNAPSHOT

# Launch the server chassis
JAR=$1

# Offset parms
shift

# Based on this for a fully specified launch of the chassis we would therefore use:
java \
    -Dserver.ssl.key-store=${KS} \
    -Dserver.ssl.key-alias=${SKEY} \
    -Dserver.ssl.key-store-password=${KSP} \
    -Dserver.ssl.trust-store=${TS} \
    -Dserver.ssl.trust-store-password=${TSP} \
    -Djavax.net.ssl.keyStore=${KS} \
    -Djavax.net.ssl.keyStorePassword=${KSP} \
    -Djavax.net.ssl.trustStore=${KS} \
    -Djavax.net.ssl.trustStorePassword=${KSP} \
    -jar ${JAR} $@

will not suggest we stop release on these issues

planetf1 commented 3 years ago

This is superceeded by the behaviour documented in #5299 for 2.10 -- closing this issue