Cassandra 从使用灯泡的python程序调用gremlin脚本
我正在使用Titan GraphDB+Cassandra。我正在启动Titan,如下所示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
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