Cassandra 从使用灯泡的python程序调用gremlin脚本

Cassandra 从使用灯泡的python程序调用gremlin脚本,cassandra,gremlin,titan,bulbs,Cassandra,Gremlin,Titan,Bulbs,我正在使用Titan GraphDB+Cassandra。我正在启动Titan,如下所示 cd titan-cassandra-0.3.1 bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties 我有一个雷克斯特外壳,可以用来和上面的泰坦+卡桑德拉通信 cd rexster-console-2.3.0 bin/rexster-console.sh 我正在尝试使用Titan Gr

我正在使用Titan GraphDB+Cassandra。我正在启动Titan,如下所示

cd titan-cassandra-0.3.1
bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties
我有一个雷克斯特外壳,可以用来和上面的泰坦+卡桑德拉通信

cd rexster-console-2.3.0
bin/rexster-console.sh
我正在尝试使用Titan Graph DB对网络拓扑进行建模。我想从我的python程序中编程Titan Graph DB。为此,我正在使用Bulls包。 我创建了三种类型的顶点

 - switch
 - port 
 - device
我在物理连接的端口之间创建带标签的边。我使用的标签是“链接”

假设我有两个端口顶点
portA
portB

我想检查
portA
是否使用我的
python程序
包连接到
portB

作为第一步,我编写一个脚本(保存在一个文件
is\u connected.sh

如果我尝试从我的rexster控制台执行上述脚本,如下所示,我会得到以下结果

sudo ./start_rexter.sh 
        (l_(l
(_______( 0 0
(        (-Y-) <woof>
l l-----l l
l l,,   l l,,
opening session [127.0.0.1:8184]
?h for help

rexster[groovy]> ?e
specify the file to executerexster[groovy]> is_connected.sh
==>An error occurred while processing the script for language [groovy]. All transactions across all graphs in the session have been concluded with failure: java.util.concurrent.ExecutionException: javax.script.ScriptException: javax.script.ScriptException: groovy.lang.MissingPropertyException: No such property: is_connected for class: Script2
sudo./start\u rexter.sh
(l)(l)
(_______( 0 0
(-Y-)
l--l
l,l,l,,
开幕式[127.0.0.1:8184]
?h寻求帮助
雷克斯特[groovy]>?e
指定executexster[groovy]>is\u connected.sh的文件
==>处理语言[groovy]的脚本时出错。会话中所有图形的所有事务都以失败告终:java.util.concurrent.ExecutionException:javax.script.ScriptException:javax.script.ScriptException:groovy.lang.MissingPropertyException:没有此类属性:是否为类Script2连接

这是我第一次尝试编写存储过程(也称为gremlin脚本)。我不知道这是否是正确的方法。我的最终目标是能够从使用灯泡的python程序中调用此脚本。如果有人能为我指出正确的方向,那就太好了!

?e
命令要求您指定要在同一行中执行的文件。我创建了
sum.groovy:

def sum(x,y) { x+y }
然后从控制台:

rexster[groovy]> ?e sum.groovy
==>null
rexster[groovy]> sum(1,2)
==>3

奇怪的是,在没有文件的情况下指定
?e
并不能实现正确的换行。我将尝试解决这个问题。

不清楚您要做什么。您的代码是Python语法,但使用Groovy中定义的方法(retain,hasNext)您希望在理解Groovy而不是Python的rexster控制台中运行它本机使用Python,但即使使用Bulls,也必须使用适当的Groovy编写更大的脚本。以上是@Tohotom的好建议,但我仍然喜欢这个问题和方法。这是通往稍微复杂一点的道路上的一小步。让它工作起来,然后担心如何使用Bulls。我的最终目标是le使用python代码中给定的脚本。现在可以吗?这对我不起作用。对我来说,它说rexster[groovy]>?e sum.groovy无法读取指定的文件。我已将sum.groovy保留在当前工作目录中。“仍然说无法读取指定的文件”您的“最终目标”你的问题不清楚。你的问题是关于rexster console的,所以我这样回答。关于这个问题,而且它仍然不适用于你,我不确定会出什么问题,除了文件不在预期的位置。你说
sum.groovy
在当前工作目录中,但它在哪里?应该在哪里在rexster控制台发行版的根目录中…它在哪里?如果它在那里,而且这仍然是一个问题,为什么不尝试使用显式绝对路径?
rexster[groovy]> ?e sum.groovy
==>null
rexster[groovy]> sum(1,2)
==>3