Search code examples
amazon-neptunegremlinpython

Can't add vertex with python in neptune workbench


I'm trying to put together a demo of Neptune using Neptune workbench, but something's not working right. I've got this block set up:

from __future__  import print_function  # Python 2/3 compatibility

from gremlin_python import statics
from gremlin_python.structure.graph import Graph
from gremlin_python.process.graph_traversal import __
from gremlin_python.process.strategies import *
from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection

graph = Graph()

cluster_url = #my cluster

remoteConn = DriverRemoteConnection( f'wss://{cluster_url}:8182/gremlin','g')

g = graph.traversal().withRemote(remoteConn)


import uuid

tmp = uuid.uuid4()
tmp_id=str(id)

def get_id(name):
    uid = uuid.uuid5(uuid.NAMESPACE_DNS, f"{name}.licensing.company.com")
    return str(uid)


def add_sku(name):
    tmp_id = get_id(name)
    g.addV('SKU').property('id', tmp_id, 'name', name)
    return name

def get_values():
    return g.V().properties().toList()


The problem is that calling add_sku doesn't result in a vertex being added to the graph. Doing the same operation in a cell with gremlin magic works, and I can retrieve values through python, but I can't add vertices. Does anyone see what I'm missing here?


Solution

  • The Python code is not working because it is missing a terminal step (next() or iterate()) on the end of it which forces it to evaluate. If you add the terminal step it should work:

    g.addV('SKU').property('id', tmp_id, 'name', name).next()