Skip to content

[Bug]: Bug with start_node_reference in Google_Cloud_to_Neo4j tempalate #2939

@AntonKetska

Description

@AntonKetska

Related Template(s)

Google_Cloud_to_Neo4j

Template Version

latest

What happened?

The problem is in the jobSpec, it is written in docs that we can set start_node_reference/end_node_reference as string or object docs. But actually we can't set is as object because we get error:
[SCHM-1029][$.targets.relationships[1].start_node_reference] $.targets.relationships[1].start_node_reference: object found, string expected - [SCHM-1029][$.targets.relationships[1].end_node_reference] $.targets.relationships[1].end_node_reference: object found, string expected

This is the part of specification which causes error:

{
  "relationships": [
    {
      "source": "roles",
      "name": "Acted_in",
      "type": "ACTED_IN",
      "start_node_reference": {
        "name": "Person",
        "key_mappings": [
          {
            "source_field": "personId",
            "node_property": "id"
          }
        ]
      },
      "end_node_reference": {
        "name": "Movie",
        "key_mappings": [
          {
            "source_field": "movieId",
            "node_property": "id"
          }
        ]
      },
      "write_mode": "merge",
      "node_match_mode": "match",
      "properties": [
        {
          "source_field": "role",
          "target_property": "role",
          "target_property_type": "string"
        }
      ]
    }
  ]
}

Relevant log output

com.google.cloud.teleport.v2.common.UncaughtExceptionLogger - The template launch failed.
java.lang.RuntimeException: Unable to process Neo4j job specification
	at com.google.cloud.teleport.v2.neo4j.model.helpers.JobSpecMapper.validationFailure(JobSpecMapper.java:124)
	at com.google.cloud.teleport.v2.neo4j.model.helpers.JobSpecMapper.parse(JobSpecMapper.java:57)
	at com.google.cloud.teleport.v2.neo4j.templates.GoogleCloudToNeo4j.<init>(GoogleCloudToNeo4j.java:173)
	at com.google.cloud.teleport.v2.neo4j.templates.GoogleCloudToNeo4j.main(GoogleCloudToNeo4j.java:228)
Caused by: org.neo4j.importer.v1.validation.InvalidSpecificationException: Import specification is invalid, see report below:
===============================================================================
Summary
===============================================================================
	- 3 error(s)
	- 0 warning(s)

=== Errors ===
	- [SCHM-1042][$.version] $.version: must be the constant value '1'
	- [SCHM-1029][$.targets.relationships[1].start_node_reference] $.targets.relationships[1].start_node_reference: object found, string expected
	- [SCHM-1029][$.targets.relationships[1].end_node_reference] $.targets.relationships[1].end_node_reference: object found, string expected
===============================================================================
	at org.neo4j.importer.v1.ImportSpecificationDeserializer.validate(ImportSpecificationDeserializer.java:147)
	at org.neo4j.importer.v1.ImportSpecificationDeserializer.deserialize(ImportSpecificationDeserializer.java:87)
	at org.neo4j.importer.v1.ImportSpecificationDeserializer.deserialize(ImportSpecificationDeserializer.java:75)
	at com.google.cloud.teleport.v2.neo4j.model.helpers.JobSpecMapper.parse(JobSpecMapper.java:55)
	... 2 common frames omitted

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions