Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
S
schema-orchestrator
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
This is an archived project. Repository and other project resources are read-only.
Show more breadcrumbs
GraphPolaris
Microservices
schema-orchestrator
Commits
e466eea4
Commit
e466eea4
authored
1 year ago
by
Leonardo Christino
Browse files
Options
Downloads
Patches
Plain Diff
backend changes to conform to keycloak auth logic
parent
3c517080
No related branches found
No related tags found
No related merge requests found
Pipeline
#125779
failed
1 year ago
Stage: test
Stage: docker
Stage: deploy
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
cmd/schema-orchestrator/main.go
+16
-4
16 additions, 4 deletions
cmd/schema-orchestrator/main.go
internal/usecases/schema/retrieve.go
+9
-9
9 additions, 9 deletions
internal/usecases/schema/retrieve.go
with
25 additions
and
13 deletions
cmd/schema-orchestrator/main.go
+
16
−
4
View file @
e466eea4
...
...
@@ -7,12 +7,15 @@ package main
import
(
"fmt"
"log"
"os"
"schema-orchestrator/internal/drivers/rpcdriver"
"schema-orchestrator/internal/drivers/webdriver"
"schema-orchestrator/internal/usecases/produce"
"schema-orchestrator/internal/usecases/schema"
"strconv"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"git.science.uu.nl/graphpolaris/broker"
"git.science.uu.nl/graphpolaris/keyvaluestore"
...
...
@@ -23,6 +26,15 @@ import (
This is the main method, it executes the code for this service
*/
func
main
()
{
// Set up logging
zerolog
.
TimeFieldFormat
=
zerolog
.
TimeFormatUnix
logLevel
,
log_err
:=
strconv
.
Atoi
(
os
.
Getenv
(
"LOG_LEVEL"
))
if
log_err
!=
nil
{
log
.
Error
()
.
AnErr
(
"err"
,
log_err
)
.
Msg
(
"LOG_LEVEL not type int or empty"
)
}
zerolog
.
SetGlobalLevel
(
zerolog
.
Level
(
logLevel
))
log
.
Logger
=
log
.
Output
(
zerolog
.
ConsoleWriter
{
Out
:
os
.
Stderr
})
// Create rpcDriver
rpcDriver
:=
rpcdriver
.
New
()
...
...
@@ -33,21 +45,21 @@ func main() {
clientUpdaterRedisService
:=
keyvaluestore
.
NewDriver
()
err
:=
clientUpdaterRedisService
.
Connect
(
os
.
Getenv
(
"UI_REDIS_ADDRESS"
))
if
err
!=
nil
{
log
.
Panic
ln
(
fmt
.
Sprintf
(
"keyValueStore error: %s"
,
err
))
log
.
Panic
()
.
Msg
(
fmt
.
Sprintf
(
"keyValueStore error: %s"
,
err
))
}
// Create keyvaluestore to keep track of schema status
schemaStatusRedisService
:=
keyvaluestore
.
NewDriver
()
err
=
schemaStatusRedisService
.
Connect
(
os
.
Getenv
(
"SCHEMA_REDIS_ADDRESS"
))
if
err
!=
nil
{
log
.
Panic
ln
(
fmt
.
Sprintf
(
"keyValueStore error: %s"
,
err
))
log
.
Panic
()
.
Msg
(
fmt
.
Sprintf
(
"keyValueStore error: %s"
,
err
))
}
// Create object store driver
objectStore
:=
objectstore
.
NewDriver
()
err
=
objectStore
.
Connect
()
if
err
!=
nil
{
log
.
Panic
ln
(
fmt
.
Sprintf
(
"objectStore error: %s"
,
err
))
log
.
Panic
()
.
Msg
(
fmt
.
Sprintf
(
"objectStore error: %s"
,
err
))
}
// Create producer service
...
...
This diff is collapsed.
Click to expand it.
internal/usecases/schema/retrieve.go
+
9
−
9
View file @
e466eea4
...
...
@@ -5,7 +5,8 @@ import (
"encoding/json"
"errors"
"fmt"
"log"
"github.com/rs/zerolog/log"
"git.science.uu.nl/graphpolaris/keyvaluestore"
)
...
...
@@ -23,29 +24,28 @@ func (s *Service) Retrieve(request *[]byte, sessionID string, clientID string, d
// Check if the schema is currently being retrieved for this database
schemaBeingRetrievedInterface
,
err
:=
s
.
keyValueStore
.
Get
(
context
.
Background
(),
fmt
.
Sprintf
(
"%s-%s"
,
databaseName
,
clientID
),
keyvaluestore
.
Bool
)
if
err
!=
nil
&&
err
!=
keyvaluestore
.
ErrKeyNotFound
{
log
.
Println
(
err
)
log
.
Println
(
fmt
.
Sprintf
(
"error accessing keyvaluestore in schema retrieve method: %s"
,
err
.
Error
()))
log
.
Error
()
.
AnErr
(
"Err"
,
err
)
.
Msg
(
"error accessing keyvaluestore in schema retrieve method"
)
return
err
}
// Cast the interface{} to bool
schemaBeingRetrieved
,
ok
:=
schemaBeingRetrievedInterface
.
(
bool
)
if
!
ok
{
log
.
Println
(
"error casting schemaBeingRetrieved to bool"
)
log
.
Error
()
.
Msg
(
"error casting schemaBeingRetrieved to bool"
)
return
errors
.
New
(
"internal error (kvs)"
)
}
// Schema is already being retrieved
if
schemaBeingRetrieved
{
log
.
Println
(
"schema is already being retrieved"
)
log
.
Warn
()
.
Msg
(
"schema is already being retrieved"
)
return
nil
}
log
.
Println
(
"schema is not being retrieved yet"
)
log
.
Trace
()
.
Msg
(
"schema is not being retrieved yet"
)
// Check if the schema should be force refreshed
if
!
cached
{
log
.
Println
(
"Not cached! Producing a schema retrieval request"
)
log
.
Trace
()
.
Msg
(
"Not cached! Producing a schema retrieval request"
)
// Produce a schema retrieval request
s
.
producer
.
ProduceSchemaRetrievalRequest
(
*
request
,
sessionID
,
clientID
,
databaseName
)
...
...
@@ -55,7 +55,7 @@ func (s *Service) Retrieve(request *[]byte, sessionID string, clientID string, d
// Check if the schema has been cached
schema
,
err
:=
s
.
retrieveCachedSchema
(
clientID
,
databaseName
)
if
err
!=
nil
{
log
.
Println
(
"schema not present in object store"
)
log
.
Trace
()
.
Msg
(
"schema not present in object store"
)
// Schema was not in object store, or there was another issue with the object store
// Produce a schema retrieval request
s
.
producer
.
ProduceSchemaRetrievalRequest
(
*
request
,
sessionID
,
clientID
,
databaseName
)
...
...
@@ -67,7 +67,7 @@ func (s *Service) Retrieve(request *[]byte, sessionID string, clientID string, d
return
nil
}
log
.
Println
(
"schema present in object store"
)
log
.
Trace
()
.
Msg
(
"schema present in object store"
)
// Produce the cached schema
jsonResult
:=
make
(
map
[
string
]
interface
{})
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment