Я использую TitanGraphDB + Cassandra. Я запускаю Titan следующим образом.
cd titan-cassandra-0.3.1
bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties
У меня есть оболочка Rexster, которую я могу использовать для связи с Titan+Cassandra, описанной выше.
cd rexster-console-2.3.0
bin/rexster-console.sh
Я пытаюсь смоделировать топологию сети с помощью базы данных Titan Graph. Я хочу запрограммировать базу данных Titan Graph из моей программы на Python. Для этого я использую пакет bulbs. Я создаю три типа вершин
- switch
- port
- device
Я создаю помеченные ребра между портами, которые физически соединены. Я использую метку «ссылка».
Допустим, у меня есть две вершины порта portA
и portB
.
Я хочу проверить, подключен ли portA
к portB
из моего python program
с помощью пакета лампочек.
В качестве первого шага пишу скрипт (сохранил в файле 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
Это моя самая первая попытка написать хранимую процедуру (также известную как скрипт гремлина). Я не знаю, правильный ли это подход. Также моей конечной целью было бы иметь возможность вызывать этот скрипт из моей программы на Python, которая использует лампочки. Если бы кто-нибудь мог указать мне правильное направление, это было бы здорово!