Merged in feature/movefromtrigger (pull request #164)
Single Text Queue * notrigger
This commit is contained in:
@@ -13,7 +13,7 @@ import (
|
||||
documentclean "queryorchestration/internal/document/clean"
|
||||
"queryorchestration/internal/server/runner"
|
||||
"queryorchestration/internal/serviceconfig/objectstore"
|
||||
"queryorchestration/internal/serviceconfig/queue/documenttexttrigger"
|
||||
"queryorchestration/internal/serviceconfig/queue/documenttext"
|
||||
"queryorchestration/internal/test"
|
||||
objectstoremock "queryorchestration/mocks/objectstore"
|
||||
|
||||
@@ -26,7 +26,7 @@ import (
|
||||
|
||||
type DocCleanConfig struct {
|
||||
runner.BaseConfig[doccleanrunner.Body]
|
||||
documenttexttrigger.DocTextTriggerConfig
|
||||
documenttext.DocTextConfig
|
||||
objectstore.ObjectStoreConfig
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ func TestDocCleanRunner(t *testing.T) {
|
||||
acfg := test.CreateAWSContainer(t, cfg)
|
||||
|
||||
test.SetQueueClient(t, t.Context(), cfg, acfg.ExternalEndpoint)
|
||||
cfg.DocumentTextTriggerURL = test.CreateQueue(t, cfg, test.DocTextRunnerName)
|
||||
cfg.DocumentTextURL = test.CreateQueue(t, cfg, test.DocTextRunnerName)
|
||||
|
||||
mockStore := objectstoremock.NewMockS3Client(t)
|
||||
cfg.StoreClient = mockStore
|
||||
@@ -104,7 +104,7 @@ func TestDocCleanRunner(t *testing.T) {
|
||||
}
|
||||
assert.True(t, runner.Process(t.Context(), bod))
|
||||
|
||||
test.AssertMessageBody(t, cfg, cfg.GetDocumentTextTriggerURL(), regexp.MustCompile(fmt.Sprintf("{\"id\":\"%s\"}", docId.String())))
|
||||
test.AssertMessageBody(t, cfg, cfg.GetDocumentTextURL(), regexp.MustCompile(fmt.Sprintf("{\"id\":\"%s\"}", docId.String())))
|
||||
}
|
||||
|
||||
const pdfHelloWorld = `%PDF-1.4
|
||||
|
||||
+1
-1
@@ -53,5 +53,5 @@ COPY --from=build /app/bin/ .
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
HEALTHCHECK --interval=3s --timeout=3s --start-period=1s --retries=10 \
|
||||
HEALTHCHECK --interval=30s --timeout=3s --start-period=1s --retries=10 \
|
||||
CMD ["./healthcheck"]
|
||||
|
||||
@@ -16,14 +16,14 @@ import (
|
||||
documentclean "queryorchestration/internal/document/clean"
|
||||
"queryorchestration/internal/server/runner"
|
||||
"queryorchestration/internal/serviceconfig/objectstore"
|
||||
"queryorchestration/internal/serviceconfig/queue/documenttexttrigger"
|
||||
"queryorchestration/internal/serviceconfig/queue/documenttext"
|
||||
|
||||
_ "github.com/lib/pq"
|
||||
)
|
||||
|
||||
type DocCleanConfig struct {
|
||||
runner.BaseConfig[doccleanrunner.Body]
|
||||
documenttexttrigger.DocTextTriggerConfig
|
||||
documenttext.DocTextConfig
|
||||
objectstore.ObjectStoreConfig
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ import (
|
||||
_ "github.com/lib/pq"
|
||||
)
|
||||
|
||||
type DocTextTriggerConfig struct {
|
||||
type DocTextConfig struct {
|
||||
runner.BaseConfig[doctextrunner.Body]
|
||||
textract.TextractConfig
|
||||
querysync.QuerySyncConfig
|
||||
@@ -32,7 +32,7 @@ type DocTextTriggerConfig struct {
|
||||
func main() {
|
||||
ctx := context.Background()
|
||||
|
||||
cfg := &DocTextTriggerConfig{}
|
||||
cfg := &DocTextConfig{}
|
||||
|
||||
cfg.ControllerFunc = func() runner.Controller[doctextrunner.Body] {
|
||||
text := documenttext.New(cfg)
|
||||
|
||||
@@ -16,7 +16,6 @@ services:
|
||||
LOG_LEVEL: DEBUG
|
||||
QUEUE_URL: ${STORE_EVENT_URL}
|
||||
DOCUMENT_INIT_URL: ${DOCUMENT_INIT_URL}
|
||||
DOCUMENT_TEXT_PROCESS_URL: ${DOCUMENT_TEXT_PROCESS_URL}
|
||||
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
|
||||
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
|
||||
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
|
||||
@@ -124,7 +123,7 @@ services:
|
||||
environment:
|
||||
LOG_LEVEL: DEBUG
|
||||
QUEUE_URL: ${DOCUMENT_CLEAN_URL}
|
||||
DOCUMENT_TEXT_TRIGGER_URL: ${DOCUMENT_TEXT_TRIGGER_URL}
|
||||
DOCUMENT_TEXT_URL: ${DOCUMENT_TEXT_URL}
|
||||
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
|
||||
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
|
||||
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
|
||||
@@ -160,7 +159,7 @@ services:
|
||||
- 8080
|
||||
environment:
|
||||
LOG_LEVEL: DEBUG
|
||||
QUEUE_URL: ${DOCUMENT_TEXT_TRIGGER_URL}
|
||||
QUEUE_URL: ${DOCUMENT_TEXT_URL}
|
||||
QUERY_SYNC_URL: ${QUERY_SYNC_URL}
|
||||
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
|
||||
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
|
||||
|
||||
@@ -16,7 +16,6 @@ services:
|
||||
LOG_LEVEL: DEBUG
|
||||
QUEUE_URL: ${STORE_EVENT_URL}
|
||||
DOCUMENT_INIT_URL: ${DOCUMENT_INIT_URL}
|
||||
DOCUMENT_TEXT_PROCESS_URL: ${DOCUMENT_TEXT_PROCESS_URL}
|
||||
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
|
||||
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
|
||||
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
|
||||
@@ -124,7 +123,7 @@ services:
|
||||
environment:
|
||||
LOG_LEVEL: DEBUG
|
||||
QUEUE_URL: ${DOCUMENT_CLEAN_URL}
|
||||
DOCUMENT_TEXT_TRIGGER_URL: ${DOCUMENT_TEXT_TRIGGER_URL}
|
||||
DOCUMENT_TEXT_URL: ${DOCUMENT_TEXT_URL}
|
||||
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
|
||||
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
|
||||
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
|
||||
@@ -159,7 +158,7 @@ services:
|
||||
- 8080
|
||||
environment:
|
||||
LOG_LEVEL: DEBUG
|
||||
QUEUE_URL: ${DOCUMENT_TEXT_TRIGGER_URL}
|
||||
QUEUE_URL: ${DOCUMENT_TEXT_URL}
|
||||
QUERY_SYNC_URL: ${QUERY_SYNC_URL}
|
||||
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
|
||||
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
|
||||
|
||||
+2
-4
@@ -20,8 +20,7 @@
|
||||
"DOCUMENT_CLEAN_URL": "http://localstack:4566/queue/us-east-1/000000000000/document_clean",
|
||||
"DOCUMENT_INIT_URL": "http://localstack:4566/queue/us-east-1/000000000000/document_init",
|
||||
"DOCUMENT_SYNC_URL": "http://localstack:4566/queue/us-east-1/000000000000/document_sync",
|
||||
"DOCUMENT_TEXT_PROCESS_URL": "http://localstack:4566/queue/us-east-1/000000000000/document_text_process",
|
||||
"DOCUMENT_TEXT_TRIGGER_URL": "http://localstack:4566/queue/us-east-1/000000000000/document_text_trigger",
|
||||
"DOCUMENT_TEXT_URL": "http://localstack:4566/queue/us-east-1/000000000000/document_text",
|
||||
"PGDATABASE": "query_orchestration",
|
||||
"PGHOST": "localhost",
|
||||
"PGPASSWORD": "pass",
|
||||
@@ -32,8 +31,7 @@
|
||||
"QNAME_DOCUMENT_CLEAN": "document_clean",
|
||||
"QNAME_DOCUMENT_INIT": "document_init",
|
||||
"QNAME_DOCUMENT_SYNC": "document_sync",
|
||||
"QNAME_DOCUMENT_TEXT_PROCESS": "document_text_process",
|
||||
"QNAME_DOCUMENT_TEXT_TRIGGER": "document_text_trigger",
|
||||
"QNAME_DOCUMENT_TEXT": "document_text",
|
||||
"QNAME_QUERY_RUNNER": "query_runner",
|
||||
"QNAME_QUERY_SYNC": "query_sync",
|
||||
"QNAME_QUERY_VERSION_SYNC": "query_version_sync",
|
||||
|
||||
@@ -33,7 +33,7 @@ func (s *Service) Clean(ctx context.Context, documentId uuid.UUID) error {
|
||||
|
||||
func (s *Service) informClean(ctx context.Context, documentId uuid.UUID) error {
|
||||
err := s.cfg.SendToQueue(ctx, &queue.SendParams{
|
||||
QueueURL: s.cfg.GetDocumentTextTriggerURL(),
|
||||
QueueURL: s.cfg.GetDocumentTextURL(),
|
||||
Body: doctextrunner.Body{
|
||||
DocumentID: documentId,
|
||||
},
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
"queryorchestration/internal/serviceconfig"
|
||||
"queryorchestration/internal/serviceconfig/aws"
|
||||
"queryorchestration/internal/serviceconfig/objectstore"
|
||||
"queryorchestration/internal/serviceconfig/queue/documenttexttrigger"
|
||||
"queryorchestration/internal/serviceconfig/queue/documenttext"
|
||||
objectstoremock "queryorchestration/mocks/objectstore"
|
||||
queuemock "queryorchestration/mocks/queue"
|
||||
|
||||
@@ -27,7 +27,7 @@ import (
|
||||
type DocCleanConfig struct {
|
||||
aws.AWSConfig
|
||||
serviceconfig.BaseConfig
|
||||
documenttexttrigger.DocTextTriggerConfig
|
||||
documenttext.DocTextConfig
|
||||
objectstore.ObjectStoreConfig
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ func TestCreate(t *testing.T) {
|
||||
|
||||
cfg := &DocCleanConfig{}
|
||||
cfg.QueueClient = mockSQS
|
||||
cfg.DocumentTextTriggerURL = "/i/am/here"
|
||||
cfg.DocumentTextURL = "/i/am/here"
|
||||
cfg.DBPool = pool
|
||||
cfg.DBQueries = repository.New(pool)
|
||||
mockS3 := objectstoremock.NewMockS3Client(t)
|
||||
@@ -102,7 +102,7 @@ func TestCreate(t *testing.T) {
|
||||
SendMessage(
|
||||
mock.Anything,
|
||||
mock.MatchedBy(func(in *sqs.SendMessageInput) bool {
|
||||
return *in.QueueUrl == cfg.DocumentTextTriggerURL && *in.MessageBody == fmt.Sprintf("{\"id\":\"%s\"}", doc.ID)
|
||||
return *in.QueueUrl == cfg.DocumentTextURL && *in.MessageBody == fmt.Sprintf("{\"id\":\"%s\"}", doc.ID)
|
||||
}),
|
||||
mock.Anything,
|
||||
).
|
||||
@@ -143,7 +143,7 @@ func TestInformClean(t *testing.T) {
|
||||
|
||||
cfg := &DocCleanConfig{}
|
||||
cfg.QueueClient = mockSQS
|
||||
cfg.DocumentTextTriggerURL = "/i/am/here"
|
||||
cfg.DocumentTextURL = "/i/am/here"
|
||||
svc := Service{
|
||||
cfg: cfg,
|
||||
}
|
||||
@@ -153,7 +153,7 @@ func TestInformClean(t *testing.T) {
|
||||
SendMessage(
|
||||
mock.Anything,
|
||||
mock.MatchedBy(func(in *sqs.SendMessageInput) bool {
|
||||
return *in.QueueUrl == cfg.DocumentTextTriggerURL && *in.MessageBody == fmt.Sprintf("{\"id\":\"%s\"}", id)
|
||||
return *in.QueueUrl == cfg.DocumentTextURL && *in.MessageBody == fmt.Sprintf("{\"id\":\"%s\"}", id)
|
||||
}),
|
||||
mock.Anything,
|
||||
).
|
||||
|
||||
@@ -3,12 +3,12 @@ package documentclean
|
||||
import (
|
||||
"queryorchestration/internal/serviceconfig"
|
||||
"queryorchestration/internal/serviceconfig/objectstore"
|
||||
"queryorchestration/internal/serviceconfig/queue/documenttexttrigger"
|
||||
"queryorchestration/internal/serviceconfig/queue/documenttext"
|
||||
)
|
||||
|
||||
type ConfigProvider interface {
|
||||
serviceconfig.ConfigProvider
|
||||
documenttexttrigger.ConfigProvider
|
||||
documenttext.ConfigProvider
|
||||
objectstore.ConfigProvider
|
||||
}
|
||||
|
||||
|
||||
@@ -6,14 +6,14 @@ import (
|
||||
documentclean "queryorchestration/internal/document/clean"
|
||||
"queryorchestration/internal/serviceconfig"
|
||||
"queryorchestration/internal/serviceconfig/objectstore"
|
||||
"queryorchestration/internal/serviceconfig/queue/documenttexttrigger"
|
||||
"queryorchestration/internal/serviceconfig/queue/documenttext"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
type DocCleanConfig struct {
|
||||
serviceconfig.BaseConfig
|
||||
documenttexttrigger.DocTextTriggerConfig
|
||||
documenttext.DocTextConfig
|
||||
objectstore.ConfigProvider
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package documenttext
|
||||
|
||||
const EnvName = "DOCUMENT_TEXT_URL"
|
||||
|
||||
type DocTextConfig struct {
|
||||
DocumentTextURL string `env:"DOCUMENT_TEXT_URL,required,notEmpty"`
|
||||
}
|
||||
|
||||
func (c *DocTextConfig) GetDocumentTextURL() string {
|
||||
return c.DocumentTextURL
|
||||
}
|
||||
|
||||
type ConfigProvider interface {
|
||||
GetDocumentTextURL() string
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package documenttext_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"queryorchestration/internal/serviceconfig/queue/documenttext"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestGetDocumentTextURL(t *testing.T) {
|
||||
cfg := documenttext.DocTextConfig{}
|
||||
|
||||
name := cfg.GetDocumentTextURL()
|
||||
assert.Equal(t, "", name)
|
||||
|
||||
cfg.DocumentTextURL = "name"
|
||||
name = cfg.GetDocumentTextURL()
|
||||
assert.Equal(t, "name", name)
|
||||
assert.Equal(t, cfg.DocumentTextURL, name)
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
package documenttexttrigger
|
||||
|
||||
const EnvName = "DOCUMENT_TEXT_TRIGGER_URL"
|
||||
|
||||
type DocTextTriggerConfig struct {
|
||||
DocumentTextTriggerURL string `env:"DOCUMENT_TEXT_TRIGGER_URL,required,notEmpty"`
|
||||
}
|
||||
|
||||
func (c *DocTextTriggerConfig) GetDocumentTextTriggerURL() string {
|
||||
return c.DocumentTextTriggerURL
|
||||
}
|
||||
|
||||
type ConfigProvider interface {
|
||||
GetDocumentTextTriggerURL() string
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package documenttexttrigger_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"queryorchestration/internal/serviceconfig/queue/documenttexttrigger"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestGetDocumentTextURL(t *testing.T) {
|
||||
cfg := documenttexttrigger.DocTextTriggerConfig{}
|
||||
|
||||
name := cfg.GetDocumentTextTriggerURL()
|
||||
assert.Equal(t, "", name)
|
||||
|
||||
cfg.DocumentTextTriggerURL = "name"
|
||||
name = cfg.GetDocumentTextTriggerURL()
|
||||
assert.Equal(t, "name", name)
|
||||
assert.Equal(t, cfg.DocumentTextTriggerURL, name)
|
||||
}
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
"queryorchestration/internal/serviceconfig/queue/documentclean"
|
||||
"queryorchestration/internal/serviceconfig/queue/documentinit"
|
||||
"queryorchestration/internal/serviceconfig/queue/documentsync"
|
||||
"queryorchestration/internal/serviceconfig/queue/documenttexttrigger"
|
||||
"queryorchestration/internal/serviceconfig/queue/documenttext"
|
||||
"queryorchestration/internal/serviceconfig/queue/query"
|
||||
"queryorchestration/internal/serviceconfig/queue/querysync"
|
||||
"queryorchestration/internal/serviceconfig/queue/queryversionsync"
|
||||
@@ -36,7 +36,7 @@ const (
|
||||
DocInitRunnerEnv RunnerEnv = documentinit.EnvName
|
||||
DocSyncRunnerEnv RunnerEnv = documentsync.EnvName
|
||||
DocCleanRunnerEnv RunnerEnv = documentclean.EnvName
|
||||
DocTextRunnerEnv RunnerEnv = documenttexttrigger.EnvName
|
||||
DocTextRunnerEnv RunnerEnv = documenttext.EnvName
|
||||
QuerySyncRunnerEnv RunnerEnv = querysync.EnvName
|
||||
QueryRunnerEnv RunnerEnv = query.EnvName
|
||||
ClientSyncRunnerEnv RunnerEnv = clientsync.EnvName
|
||||
|
||||
@@ -73,8 +73,7 @@ tasks:
|
||||
- aws sqs create-queue --queue-name $QNAME_DOCUMENT_INIT
|
||||
- aws sqs create-queue --queue-name $QNAME_DOCUMENT_SYNC
|
||||
- aws sqs create-queue --queue-name $QNAME_DOCUMENT_CLEAN
|
||||
- aws sqs create-queue --queue-name $QNAME_DOCUMENT_TEXT_TRIGGER
|
||||
- aws sqs create-queue --queue-name $QNAME_DOCUMENT_TEXT_PROCESS
|
||||
- aws sqs create-queue --queue-name $QNAME_DOCUMENT_TEXT
|
||||
- aws sqs create-queue --queue-name $QNAME_QUERY_SYNC
|
||||
- aws sqs create-queue --queue-name $QNAME_QUERY_RUNNER
|
||||
- aws sqs create-queue --queue-name $QNAME_CLIENT_SYNC
|
||||
|
||||
Reference in New Issue
Block a user