Skip to content

Commit a143bb7

Browse files
committed
graph: Allow the service to run without a NatsJS server
For running the Graph Education API we want to keep it possible to run the service standalone. With an LDAP server as the only external dependency.
1 parent 9590068 commit a143bb7

1 file changed

Lines changed: 27 additions & 26 deletions

File tree

services/graph/pkg/command/server.go

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -48,36 +48,37 @@ func Server(cfg *config.Config) *cli.Command {
4848
mtrcs := metrics.New()
4949
mtrcs.BuildInfo.WithLabelValues(version.GetString()).Set(1)
5050

51-
//Connect to NATS servers
52-
natsOptions := nats.Options{
53-
Servers: cfg.Store.Nodes,
54-
User: cfg.Store.AuthUsername,
55-
Password: cfg.Store.AuthPassword,
56-
}
57-
conn, err := natsOptions.Connect()
58-
if err != nil {
59-
return err
60-
}
61-
62-
js, err := jetstream.New(conn)
63-
if err != nil {
64-
return err
65-
}
66-
kv, err := js.KeyValue(ctx, cfg.Store.Database)
67-
if err != nil {
68-
if !errors.Is(err, jetstream.ErrBucketNotFound) {
69-
return fmt.Errorf("failed to get bucket (%s): %w", cfg.Store.Database, err)
51+
var kv jetstream.KeyValue
52+
// Allow to run without a NATS store (e.g. for the standalone Education provisioning service)
53+
if len(cfg.Store.Nodes) > 0 {
54+
//Connect to NATS servers
55+
natsOptions := nats.Options{
56+
Servers: cfg.Store.Nodes,
57+
User: cfg.Store.AuthUsername,
58+
Password: cfg.Store.AuthPassword,
59+
}
60+
conn, err := natsOptions.Connect()
61+
if err != nil {
62+
return err
7063
}
7164

72-
kv, err = js.CreateKeyValue(ctx, jetstream.KeyValueConfig{
73-
Bucket: cfg.Store.Database,
74-
})
65+
js, err := jetstream.New(conn)
7566
if err != nil {
76-
return fmt.Errorf("failed to create bucket (%s): %w", cfg.Store.Database, err)
67+
return err
68+
}
69+
kv, err = js.KeyValue(ctx, cfg.Store.Database)
70+
if err != nil {
71+
if !errors.Is(err, jetstream.ErrBucketNotFound) {
72+
return fmt.Errorf("failed to get bucket (%s): %w", cfg.Store.Database, err)
73+
}
74+
75+
kv, err = js.CreateKeyValue(ctx, jetstream.KeyValueConfig{
76+
Bucket: cfg.Store.Database,
77+
})
78+
if err != nil {
79+
return fmt.Errorf("failed to create bucket (%s): %w", cfg.Store.Database, err)
80+
}
7781
}
78-
}
79-
if err != nil {
80-
return err
8182
}
8283

8384
gr := runner.NewGroup()

0 commit comments

Comments
 (0)