Add database override to bolt output, default is neo4j

This commit is contained in:
Cyber MacGeddon 2024-11-28 19:18:03 +00:00
parent b2f7b34529
commit c1ec3d6abb
4 changed files with 166 additions and 4 deletions

View file

@ -0,0 +1,81 @@
local base = import "base/base.jsonnet";
local images = import "values/images.jsonnet";
local url = import "values/url.jsonnet";
local memgraph = import "stores/memgraph.jsonnet";
memgraph + {
"memgraph-url":: "bolt://memgraph:7687",
"memgraph-database":: "memgraph",
"store-triples" +: {
create:: function(engine)
local container =
engine.container("store-triples")
.with_image(images.trustgraph)
.with_command([
"triples-write-neo4j",
"-p",
url.pulsar,
"-g",
$["memgraph-url"],
"--database",
$["memgraph-database"],
])
.with_limits("0.5", "128M")
.with_reservations("0.1", "128M");
local containerSet = engine.containers(
"store-triples", [ container ]
);
local service =
engine.internalService(containerSet)
.with_port(8080, 8080, "metrics");
engine.resources([
containerSet,
service,
])
},
"query-triples" +: {
create:: function(engine)
local container =
engine.container("query-triples")
.with_image(images.trustgraph)
.with_command([
"triples-query-neo4j",
"-p",
url.pulsar,
"-g",
$["memgraph-url"],
"--database",
$["memgraph-database"],
])
.with_limits("0.5", "128M")
.with_reservations("0.1", "128M");
local containerSet = engine.containers(
"query-triples", [ container ]
);
local service =
engine.internalService(containerSet)
.with_port(8080, 8080, "metrics");
engine.resources([
containerSet,
service,
])
}
}

View file

@ -0,0 +1,65 @@
local base = import "base/base.jsonnet";
local images = import "values/images.jsonnet";
{
"memgraph" +: {
create:: function(engine)
local container =
engine.container("memgraph")
.with_image(images.memgraph_mage)
.with_limits("1.0", "1000M")
.with_reservations("0.5", "1000M")
.with_port(7474, 7474, "api")
.with_port(7687, 7687, "api2");
local containerSet = engine.containers(
"memgraph", [ container ]
);
local service =
engine.service(containerSet)
.with_port(7474, 7474, "api")
.with_port(7687, 7687, "api2");
engine.resources([
containerSet,
service,
])
},
"memgraph-lab" +: {
create:: function(engine)
local container =
engine.container("lab")
.with_image(images.memgraph_lab)
.with_environment({
QUICK_CONNECT_MG_HOST: "memgraph",
QUICK_CONNECT_MG_PORT: "7687",
})
.with_limits("1.0", "512M")
.with_reservations("0.5", "512M")
.with_port(3010, 3000, "http");
local containerSet = engine.containers(
"lab", [ container ]
);
local service =
engine.service(containerSet)
.with_port(3010, 3010, "http");
engine.resources([
containerSet,
service,
])
},
}

View file

@ -21,6 +21,7 @@ default_subscriber = module
default_graph_host = 'bolt://neo4j:7687'
default_username = 'neo4j'
default_password = 'password'
default_database = 'neo4j'
class Processor(ConsumerProducer):
@ -31,7 +32,8 @@ class Processor(ConsumerProducer):
subscriber = params.get("subscriber", default_subscriber)
graph_host = params.get("graph_host", default_graph_host)
username = params.get("username", default_username)
password = params.get("passowrd", default_password)
password = params.get("password", default_password)
database = params.get("database", default_database)
super(Processor, self).__init__(
**params | {
@ -44,7 +46,7 @@ class Processor(ConsumerProducer):
}
)
self.db = "neo4j"
self.db = database
self.io = GraphDatabase.driver(graph_host, auth=(username, password))
@ -342,6 +344,12 @@ class Processor(ConsumerProducer):
help=f'Neo4j password (default: {default_password})'
)
parser.add_argument(
'--database',
default=default_database,
help=f'Neo4j database (default: {default_database})'
)
def run():
Processor.start(module, __doc__)

View file

@ -24,6 +24,7 @@ default_subscriber = module
default_graph_host = 'bolt://neo4j:7687'
default_username = 'neo4j'
default_password = 'password'
default_database = 'neo4j'
class Processor(Consumer):
@ -33,7 +34,8 @@ class Processor(Consumer):
subscriber = params.get("subscriber", default_subscriber)
graph_host = params.get("graph_host", default_graph_host)
username = params.get("username", default_username)
password = params.get("passowrd", default_password)
password = params.get("password", default_password)
database = params.get("database", default_database)
super(Processor, self).__init__(
**params | {
@ -44,7 +46,7 @@ class Processor(Consumer):
}
)
self.db = "neo4j"
self.db = database
self.io = GraphDatabase.driver(graph_host, auth=(username, password))
@ -152,6 +154,12 @@ class Processor(Consumer):
help=f'Neo4j password (default: {default_password})'
)
parser.add_argument(
'--database',
default=default_database,
help=f'Neo4j database (default: {default_database})'
)
def run():
Processor.start(module, __doc__)