Python调用程序,使用一个灯泡脚本小鬼(Calling a gremlin script fro

2019-10-20 11:07发布

我使用TitanGraphDB + Cassandra.I我开始泰坦如下

cd titan-cassandra-0.3.1
bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties

我有可以使用上面进行通信,以泰坦+卡桑德拉一个Rexster壳。

cd rexster-console-2.3.0
bin/rexster-console.sh

我试图用泰坦图DB.I希望泰坦图表DB从我的Python program.I正在使用的灯泡包该程序的网络拓扑模型。 我创建三种类型的顶点

 - switch
 - port 
 - device

我创建了连接,我用的是“连接”标签physically.The端口之间的标记边缘。

让我们说,我有两个端口顶点portAportB

我要检查,如果portA被连接到portB从我的python program使用的灯泡包。

作为第一个step.I写一个脚本(保存在文件中is_connected.sh

def is_connected(portA, portB):
    return portA.both("link").retain([portB]).hasNext()

如果我尝试从我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

这是我在写一个存储过程(又名小鬼脚本)的第一个尝试。我不知道这是否是接近it.Also我的最终目的将是能够从我的Python程序中调用这个脚本的正确途径。使用bulbs.If有人可以点我这将是伟大正确的方向!

Answer 1:

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

def sum(x,y) { x+y }

然后从控制台:

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

奇怪的是,指定?e没有该文件不执行正确的换行。 我会尽力去解决这个问题。



文章来源: Calling a gremlin script from python program that uses Bulbs