1

TitanGraphDB + Cassandraを使用しています。次のようにTitanを起動しています

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

上記の Titan + Cassandra との通信に使用できる Rexster シェルがあります。

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

Titan Graph DB を使用してネットワーク トポロジをモデル化しようとしています。Python プログラムから Titan Graph DB をプログラムしたいと考えています。そのために電球パッケージを使用しています。3 種類の頂点を作成します

 - switch
 - port 
 - device

物理的に接続されているポート間にラベル付きのエッジを作成します。使用するラベルは「リンク」です。

2 つのポート頂点portAとがあるとしportBます。

使用している電球パッケージからportA接続されているかどうかを確認したい。portBpython program

最初のステップとして、スクリプトを作成します (ファイルに保存されますis_connected.sh) 。

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

次のように rexster-console から上記のスクリプトを実行しようとすると、次の結果が得られます。

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

これは、ストアド プロシージャ (別名グレムリン スクリプト) を作成する最初の試みです。これがそれにアプローチする正しい方法であるかどうかはわかりません。また、私の最終的な目的は、Python プログラムからこのスクリプトを呼び出すことができるようにすることです。電球を使用しています。誰かが私を正しい方向に向けることができれば、それは素晴らしいことです!

4

1 に答える 1

1

この?eコマンドでは、同じ行で実行するファイルを指定する必要があります。私が作成しましたsum.groovy

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

次に、コンソールから:

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

?eファイルなしで指定すると、適切な改行が行われないのは奇妙です。私はそれを修正しようとします。

于 2014-07-16T10:33:00.160 に答える