diff --git a/deployments/deployment.yml b/deployments/deployment.yml index b2e39d7b60eec8fe9a18da05193cde3287cd2a82..cf1c8bb2f91d6cebfa573a1ade6f1845644bb863 100644 --- a/deployments/deployment.yml +++ b/deployments/deployment.yml @@ -1,21 +1,21 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: query-handler-deployment + name: query-handler labels: - app: query-handler + app: query-service spec: replicas: 1 selector: matchLabels: - app: query-handler + app: query-service template: metadata: labels: - app: query-handler + app: query-service spec: containers: - - name: query-handler + - name: query-service image: datastropheregistry.azurecr.io/query-service:latest ports: - containerPort: 3000 @@ -38,11 +38,12 @@ spec: value: redis.redis.svc.cluster.local:6379 - name: LOG_MESSAGES value: "true" - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: ARANGO_HOST - value: http://arangodb:8529 + resources: + requests: + memory: "100Mi" + cpu: "100m" + limits: + memory: "250Mi" + cpu: "500m" imagePullSecrets: - name: docker-regcred \ No newline at end of file diff --git a/deployments/hpa.yml b/deployments/hpa.yml new file mode 100644 index 0000000000000000000000000000000000000000..b440289ed6f1a519a5a844d08f8142c5224eff8f --- /dev/null +++ b/deployments/hpa.yml @@ -0,0 +1,18 @@ +apiVersion: autoscaling/v2beta2 +kind: HorizontalPodAutoscaler +metadata: + name: query-service +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: query-service + minReplicas: 1 + maxReplicas: 3 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 80 \ No newline at end of file diff --git a/deployments/svc.yml b/deployments/svc.yml index 4280c417900298b08e6e276ddb96617c335ccebf..6ede7e67d6ef2c03d81c6302e44d43e3c7557393 100644 --- a/deployments/svc.yml +++ b/deployments/svc.yml @@ -2,10 +2,10 @@ kind: Service apiVersion: v1 metadata: - name: query-handler-service + name: query-service spec: selector: - app: query-handler + app: query-service ports: - port: 3000 targetPort: 3000 \ No newline at end of file diff --git a/go.mod b/go.mod index fa19abf0964f7999736091a27b6268d3543a57d7..af75cd555cdbfd202a0909fe80795f14e2dfcbef 100644 --- a/go.mod +++ b/go.mod @@ -3,12 +3,12 @@ module query-service go 1.15 require ( - github.com/arangodb/go-driver v0.0.0-20210304082257-d7e0ea043b7f - github.com/go-redis/redis/v8 v8.8.0 + github.com/arangodb/go-driver v0.0.0-20210506071742-64f314d85db7 + github.com/go-redis/redis/v8 v8.8.2 github.com/streadway/amqp v1.0.0 github.com/stretchr/testify v1.7.0 - github.com/thijsheijden/alice v0.1.9 - golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe // indirect + github.com/thijsheijden/alice v0.1.15 + golang.org/x/sys v0.0.0-20210507161434-a76c4d0a0096 // indirect google.golang.org/grpc v1.37.0 - google.golang.org/protobuf v1.25.0 + google.golang.org/protobuf v1.26.0 ) diff --git a/go.sum b/go.sum index 539020dee1b24e9b9fea33716a1605a74cb34076..98a55b6241ab924d0e82ff9a24635070c206f37f 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/arangodb/go-driver v0.0.0-20210304082257-d7e0ea043b7f h1:MEdxM6EhSFo2ecumBN0CC6s1zMWDpNvcmDIHEfMvl18= github.com/arangodb/go-driver v0.0.0-20210304082257-d7e0ea043b7f/go.mod h1:3NUekcRLpgheFIGEwcOvxilEW73MV1queNKW58k7sdc= +github.com/arangodb/go-driver v0.0.0-20210506071742-64f314d85db7 h1:xRFEg4kM17h2fIOt3o4+mws3uRpw5rqWtemPYKfTURg= +github.com/arangodb/go-driver v0.0.0-20210506071742-64f314d85db7/go.mod h1:3NUekcRLpgheFIGEwcOvxilEW73MV1queNKW58k7sdc= github.com/arangodb/go-velocypack v0.0.0-20200318135517-5af53c29c67e h1:Xg+hGrY2LcQBbxd0ZFdbGSyRKTYMZCfBbw/pMJFOk1g= github.com/arangodb/go-velocypack v0.0.0-20200318135517-5af53c29c67e/go.mod h1:mq7Shfa/CaixoDxiyAAc5jZ6CVBAyPaNQCGS7mkj4Ho= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -26,6 +28,8 @@ github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/go-redis/redis/v8 v8.8.0 h1:fDZP58UN/1RD3DjtTXP/fFZ04TFohSYhjZDkcDe2dnw= github.com/go-redis/redis/v8 v8.8.0/go.mod h1:F7resOH5Kdug49Otu24RjHWwgK7u9AmtqWMnCV1iP5Y= +github.com/go-redis/redis/v8 v8.8.2 h1:O/NcHqobw7SEptA0yA6up6spZVFtwE06SXM8rgLtsP8= +github.com/go-redis/redis/v8 v8.8.2/go.mod h1:F7resOH5Kdug49Otu24RjHWwgK7u9AmtqWMnCV1iP5Y= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -38,6 +42,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/google/addlicense v0.0.0-20200817051935-6f4cd4aacc89/go.mod h1:EMjYTRimagHs1FwlIqKyX3wAM0u3rA+McvlIIWmSamA= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -69,12 +75,15 @@ github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.19.0/go.mod h1:IzD0RJ65iWH0w97OQQebJEvTZYvsCUm9WVLWBQrJRjo= github.com/streadway/amqp v1.0.0 h1:kuuDrUJFZL1QYL9hUNuCxNObNzB0bV/ZG5jV3RWAQgo= github.com/streadway/amqp v1.0.0/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/thijsheijden/alice v0.1.9 h1:uJc3k+PssenZLcNfoEVCtre8Kj0zcGA4T3qa9w4nyR4= github.com/thijsheijden/alice v0.1.9/go.mod h1:lYOP30HKhw/7xJa3lLhs+Xsdc5T7MRo7DOb/npzfg9I= +github.com/thijsheijden/alice v0.1.15 h1:swapJQbuqDOYBrUnLrmFGvrG+h655qhG15zr3C8S3HE= +github.com/thijsheijden/alice v0.1.15/go.mod h1:lYOP30HKhw/7xJa3lLhs+Xsdc5T7MRo7DOb/npzfg9I= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opentelemetry.io/otel v0.19.0 h1:Lenfy7QHRXPZVsw/12CWpxX6d/JkrX8wrx2vO8G80Ng= @@ -124,6 +133,8 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe h1:WdX7u8s3yOigWAhHEaDl8r9G+4XwFQEQFtBMYyN+kXQ= golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210507161434-a76c4d0a0096 h1:5PbJGn5Sp3GEUjJ61aYbUP6RIo3Z3r2E4Tv9y2z8UHo= +golang.org/x/sys v0.0.0-20210507161434-a76c4d0a0096/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -163,6 +174,9 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= diff --git a/integration-testing/config.json b/integration-testing/config.json index e9818c2bc5c8daf07a5db48b8ec662778f46bb6c..9840589a283ab5faf4f78b6a17ec3c1f99d89c1d 100644 --- a/integration-testing/config.json +++ b/integration-testing/config.json @@ -11,7 +11,7 @@ "routingKey": "aql-query-request", "headers": { "sessionID": "test-session", - "clientID": "c28ha5d2ngurnrncjgkg" + "clientID": "test-client-id" }, "data":"{\"DatabaseName\":\"test\",\"Return\":{\"Entities\":[0,1],\"Relations\":[0]},\"Entities\":[{\"Type\":\"airports\",\"Constraints\":[{\"Attribute\":\"city\",\"Value\":\"New York\",\"DataType\":\"text\",\"MatchType\":\"exact\"}]},{\"Type\":\"airports\",\"Constraints\":[{\"Attribute\":\"city\",\"Value\":\"San Francisco\",\"DataType\":\"text\",\"MatchType\":\"exact\"},{\"Attribute\":\"vip\",\"Value\":\"true\",\"DataType\":\"bool\",\"MatchType\":\"exact\"}]}],\"Relations\":[{\"Type\":\"flights\",\"Depth\":{\"min\":1,\"max\":1},\"EntityFrom\":0,\"EntityTo\":1,\"Constraints\":[{\"Attribute\":\"Month\",\"Value\":\"1\",\"DataType\":\"number\",\"MatchType\":\"exact\"},{\"Attribute\":\"Day\",\"Value\":\"15\",\"DataType\":\"number\",\"MatchType\":\"exact\"}]}], \"limit\": 1000}" }, @@ -19,7 +19,7 @@ "routingKey": "aql-query-request", "headers": { "sessionID": "test-session", - "clientID": "c28ha5d2ngurnrncjgkg" + "clientID": "test-client-id" }, "data":"This is not a valid query" } @@ -40,7 +40,7 @@ "type": "exact", "consumerid": "consumer1", "id": "query result returned", - "data": "{\"type\":\"query_result\",\"values\":{\"edges\":[{\"_from\":\"airports/JFK\",\"_id\":\"flights/286552\",\"_key\":\"286552\",\"_rev\":\"_cP0-dsi--w\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2332,\"ArrTimeUTC\":\"2008-01-16T07:32:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":2006,\"DepTimeUTC\":\"2008-01-16T01:06:00.000Z\",\"Distance\":2586,\"FlightNum\":649,\"Month\":1,\"TailNum\":\"N597JB\",\"UniqueCarrier\":\"B6\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/286394\",\"_key\":\"286394\",\"_rev\":\"_cP0-dsK--e\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2330,\"ArrTimeUTC\":\"2008-01-16T07:30:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1958,\"DepTimeUTC\":\"2008-01-16T00:58:00.000Z\",\"Distance\":2586,\"FlightNum\":19,\"Month\":1,\"TailNum\":\"N537UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/283386\",\"_key\":\"283386\",\"_rev\":\"_cP0-dkK--h\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2215,\"ArrTimeUTC\":\"2008-01-16T06:15:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1849,\"DepTimeUTC\":\"2008-01-15T23:49:00.000Z\",\"Distance\":2586,\"FlightNum\":73,\"Month\":1,\"TailNum\":\"N3759\",\"UniqueCarrier\":\"DL\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/282498\",\"_key\":\"282498\",\"_rev\":\"_cP0-di---g\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2358,\"ArrTimeUTC\":\"2008-01-16T07:58:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":2052,\"DepTimeUTC\":\"2008-01-16T01:52:00.000Z\",\"Distance\":2586,\"FlightNum\":9,\"Month\":1,\"TailNum\":\"N554UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/282321\",\"_key\":\"282321\",\"_rev\":\"_cP0-dhi--f\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2132,\"ArrTimeUTC\":\"2008-01-16T05:32:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1825,\"DepTimeUTC\":\"2008-01-15T23:25:00.000Z\",\"Distance\":2586,\"FlightNum\":647,\"Month\":1,\"TailNum\":\"N651JB\",\"UniqueCarrier\":\"B6\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/281151\",\"_key\":\"281151\",\"_rev\":\"_cP0-deq--Y\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2108,\"ArrTimeUTC\":\"2008-01-16T05:08:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1746,\"DepTimeUTC\":\"2008-01-15T22:46:00.000Z\",\"Distance\":2586,\"FlightNum\":17,\"Month\":1,\"TailNum\":\"N560UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/281077\",\"_key\":\"281077\",\"_rev\":\"_cP0-dee--c\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2119,\"ArrTimeUTC\":\"2008-01-16T05:19:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1742,\"DepTimeUTC\":\"2008-01-15T22:42:00.000Z\",\"Distance\":2586,\"FlightNum\":177,\"Month\":1,\"TailNum\":\"N321AA\",\"UniqueCarrier\":\"AA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/279990\",\"_key\":\"279990\",\"_rev\":\"_cP0-db6--C\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1423,\"ArrTimeUTC\":\"2008-01-15T22:23:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1114,\"DepTimeUTC\":\"2008-01-15T16:14:00.000Z\",\"Distance\":2586,\"FlightNum\":11,\"Month\":1,\"TailNum\":\"N555UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/279206\",\"_key\":\"279206\",\"_rev\":\"_cP0-da---Q\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1406,\"ArrTimeUTC\":\"2008-01-15T22:06:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1054,\"DepTimeUTC\":\"2008-01-15T15:54:00.000Z\",\"Distance\":2586,\"FlightNum\":15,\"Month\":1,\"TailNum\":\"N356AA\",\"UniqueCarrier\":\"AA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/278458\",\"_key\":\"278458\",\"_rev\":\"_cP0-dYO--K\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2003,\"ArrTimeUTC\":\"2008-01-16T04:03:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1624,\"DepTimeUTC\":\"2008-01-15T21:24:00.000Z\",\"Distance\":2586,\"FlightNum\":151,\"Month\":1,\"TailNum\":\"N3744D\",\"UniqueCarrier\":\"DL\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/276601\",\"_key\":\"276601\",\"_rev\":\"_cP0-dTu--I\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1909,\"ArrTimeUTC\":\"2008-01-16T03:09:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1535,\"DepTimeUTC\":\"2008-01-15T20:35:00.000Z\",\"Distance\":2586,\"FlightNum\":15,\"Month\":1,\"TailNum\":\"N510UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/276139\",\"_key\":\"276139\",\"_rev\":\"_cP0-dSq--e\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1815,\"ArrTimeUTC\":\"2008-01-16T02:15:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1524,\"DepTimeUTC\":\"2008-01-15T20:24:00.000Z\",\"Distance\":2586,\"FlightNum\":85,\"Month\":1,\"TailNum\":\"N373AA\",\"UniqueCarrier\":\"AA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/273773\",\"_key\":\"273773\",\"_rev\":\"_cP0-dNO--I\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1156,\"ArrTimeUTC\":\"2008-01-15T19:56:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":840,\"DepTimeUTC\":\"2008-01-15T13:40:00.000Z\",\"Distance\":2586,\"FlightNum\":2979,\"Month\":1,\"TailNum\":\"N387AA\",\"UniqueCarrier\":\"AA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/273538\",\"_key\":\"273538\",\"_rev\":\"_cP0-dMu--A\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1131,\"ArrTimeUTC\":\"2008-01-15T19:31:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":831,\"DepTimeUTC\":\"2008-01-15T13:31:00.000Z\",\"Distance\":2586,\"FlightNum\":893,\"Month\":1,\"TailNum\":\"N505UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/272322\",\"_key\":\"272322\",\"_rev\":\"_cP0-dJ6--C\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1118,\"ArrTimeUTC\":\"2008-01-15T19:18:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":757,\"DepTimeUTC\":\"2008-01-15T12:57:00.000Z\",\"Distance\":2586,\"FlightNum\":641,\"Month\":1,\"TailNum\":\"N528JB\",\"UniqueCarrier\":\"B6\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/271860\",\"_key\":\"271860\",\"_rev\":\"_cP0-dI2--V\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1133,\"ArrTimeUTC\":\"2008-01-15T19:33:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":743,\"DepTimeUTC\":\"2008-01-15T12:43:00.000Z\",\"Distance\":2586,\"FlightNum\":877,\"Month\":1,\"TailNum\":\"N502UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/270140\",\"_key\":\"270140\",\"_rev\":\"_cP0-dEy--K\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1042,\"ArrTimeUTC\":\"2008-01-15T18:42:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":650,\"DepTimeUTC\":\"2008-01-15T11:50:00.000Z\",\"Distance\":2586,\"FlightNum\":59,\"Month\":1,\"TailNum\":\"N399AA\",\"UniqueCarrier\":\"AA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/269347\",\"_key\":\"269347\",\"_rev\":\"_cP0-dC2--j\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":913,\"ArrTimeUTC\":\"2008-01-15T17:13:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":606,\"DepTimeUTC\":\"2008-01-15T11:06:00.000Z\",\"Distance\":2586,\"FlightNum\":5,\"Month\":1,\"TailNum\":\"N537UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}}],\"nodes\":[{\"_id\":\"airports/SFO\",\"_key\":\"SFO\",\"_rev\":\"_cPz825i-_J\",\"attributes\":{\"city\":\"San Francisco\",\"country\":\"USA\",\"lat\":37.61900194,\"long\":-122.3748433,\"name\":\"San Francisco International\",\"state\":\"CA\",\"vip\":true}},{\"_id\":\"airports/JFK\",\"_key\":\"JFK\",\"_rev\":\"_cPz824u-Ai\",\"attributes\":{\"city\":\"New York\",\"country\":\"USA\",\"lat\":40.63975111,\"long\":-73.77892556,\"name\":\"John F Kennedy Intl\",\"state\":\"NY\",\"vip\":true}}]}}" + "data": "{\"type\":\"query_result\",\"values\":{\"edges\":[{\"_from\":\"airports/JFK\",\"_id\":\"flights/286552\",\"_key\":\"286552\",\"_rev\":\"_cTBW4Dm--F\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2332,\"ArrTimeUTC\":\"2008-01-16T07:32:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":2006,\"DepTimeUTC\":\"2008-01-16T01:06:00.000Z\",\"Distance\":2586,\"FlightNum\":649,\"Month\":1,\"TailNum\":\"N597JB\",\"UniqueCarrier\":\"B6\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/286394\",\"_key\":\"286394\",\"_rev\":\"_cTBW4DK--M\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2330,\"ArrTimeUTC\":\"2008-01-16T07:30:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1958,\"DepTimeUTC\":\"2008-01-16T00:58:00.000Z\",\"Distance\":2586,\"FlightNum\":19,\"Month\":1,\"TailNum\":\"N537UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/283386\",\"_key\":\"283386\",\"_rev\":\"_cTBW362--o\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2215,\"ArrTimeUTC\":\"2008-01-16T06:15:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1849,\"DepTimeUTC\":\"2008-01-15T23:49:00.000Z\",\"Distance\":2586,\"FlightNum\":73,\"Month\":1,\"TailNum\":\"N3759\",\"UniqueCarrier\":\"DL\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/282498\",\"_key\":\"282498\",\"_rev\":\"_cTBW34a--Y\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2358,\"ArrTimeUTC\":\"2008-01-16T07:58:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":2052,\"DepTimeUTC\":\"2008-01-16T01:52:00.000Z\",\"Distance\":2586,\"FlightNum\":9,\"Month\":1,\"TailNum\":\"N554UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/282321\",\"_key\":\"282321\",\"_rev\":\"_cTBW336--S\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2132,\"ArrTimeUTC\":\"2008-01-16T05:32:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1825,\"DepTimeUTC\":\"2008-01-15T23:25:00.000Z\",\"Distance\":2586,\"FlightNum\":647,\"Month\":1,\"TailNum\":\"N651JB\",\"UniqueCarrier\":\"B6\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/281151\",\"_key\":\"281151\",\"_rev\":\"_cTBW30y--C\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2108,\"ArrTimeUTC\":\"2008-01-16T05:08:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1746,\"DepTimeUTC\":\"2008-01-15T22:46:00.000Z\",\"Distance\":2586,\"FlightNum\":17,\"Month\":1,\"TailNum\":\"N560UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/281077\",\"_key\":\"281077\",\"_rev\":\"_cTBW30i--o\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2119,\"ArrTimeUTC\":\"2008-01-16T05:19:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1742,\"DepTimeUTC\":\"2008-01-15T22:42:00.000Z\",\"Distance\":2586,\"FlightNum\":177,\"Month\":1,\"TailNum\":\"N321AA\",\"UniqueCarrier\":\"AA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/279990\",\"_key\":\"279990\",\"_rev\":\"_cTBW3xe--o\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1423,\"ArrTimeUTC\":\"2008-01-15T22:23:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1114,\"DepTimeUTC\":\"2008-01-15T16:14:00.000Z\",\"Distance\":2586,\"FlightNum\":11,\"Month\":1,\"TailNum\":\"N555UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/279206\",\"_key\":\"279206\",\"_rev\":\"_cTBW3vW---\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1406,\"ArrTimeUTC\":\"2008-01-15T22:06:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1054,\"DepTimeUTC\":\"2008-01-15T15:54:00.000Z\",\"Distance\":2586,\"FlightNum\":15,\"Month\":1,\"TailNum\":\"N356AA\",\"UniqueCarrier\":\"AA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/278458\",\"_key\":\"278458\",\"_rev\":\"_cTBW3tS--i\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":2003,\"ArrTimeUTC\":\"2008-01-16T04:03:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1624,\"DepTimeUTC\":\"2008-01-15T21:24:00.000Z\",\"Distance\":2586,\"FlightNum\":151,\"Month\":1,\"TailNum\":\"N3744D\",\"UniqueCarrier\":\"DL\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/276601\",\"_key\":\"276601\",\"_rev\":\"_cTBW3oO--Q\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1909,\"ArrTimeUTC\":\"2008-01-16T03:09:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1535,\"DepTimeUTC\":\"2008-01-15T20:35:00.000Z\",\"Distance\":2586,\"FlightNum\":15,\"Month\":1,\"TailNum\":\"N510UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/276139\",\"_key\":\"276139\",\"_rev\":\"_cTBW3n---q\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1815,\"ArrTimeUTC\":\"2008-01-16T02:15:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":1524,\"DepTimeUTC\":\"2008-01-15T20:24:00.000Z\",\"Distance\":2586,\"FlightNum\":85,\"Month\":1,\"TailNum\":\"N373AA\",\"UniqueCarrier\":\"AA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/273773\",\"_key\":\"273773\",\"_rev\":\"_cTBW3g6--u\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1156,\"ArrTimeUTC\":\"2008-01-15T19:56:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":840,\"DepTimeUTC\":\"2008-01-15T13:40:00.000Z\",\"Distance\":2586,\"FlightNum\":2979,\"Month\":1,\"TailNum\":\"N387AA\",\"UniqueCarrier\":\"AA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/273538\",\"_key\":\"273538\",\"_rev\":\"_cTBW3gW--Q\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1131,\"ArrTimeUTC\":\"2008-01-15T19:31:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":831,\"DepTimeUTC\":\"2008-01-15T13:31:00.000Z\",\"Distance\":2586,\"FlightNum\":893,\"Month\":1,\"TailNum\":\"N505UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/272322\",\"_key\":\"272322\",\"_rev\":\"_cTBW3dO--O\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1118,\"ArrTimeUTC\":\"2008-01-15T19:18:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":757,\"DepTimeUTC\":\"2008-01-15T12:57:00.000Z\",\"Distance\":2586,\"FlightNum\":641,\"Month\":1,\"TailNum\":\"N528JB\",\"UniqueCarrier\":\"B6\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/271860\",\"_key\":\"271860\",\"_rev\":\"_cTBW3c---u\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1133,\"ArrTimeUTC\":\"2008-01-15T19:33:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":743,\"DepTimeUTC\":\"2008-01-15T12:43:00.000Z\",\"Distance\":2586,\"FlightNum\":877,\"Month\":1,\"TailNum\":\"N502UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/270140\",\"_key\":\"270140\",\"_rev\":\"_cTBW3Xi--A\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":1042,\"ArrTimeUTC\":\"2008-01-15T18:42:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":650,\"DepTimeUTC\":\"2008-01-15T11:50:00.000Z\",\"Distance\":2586,\"FlightNum\":59,\"Month\":1,\"TailNum\":\"N399AA\",\"UniqueCarrier\":\"AA\",\"Year\":2008}},{\"_from\":\"airports/JFK\",\"_id\":\"flights/269347\",\"_key\":\"269347\",\"_rev\":\"_cTBW3Ve--g\",\"_to\":\"airports/SFO\",\"attributes\":{\"ArrTime\":913,\"ArrTimeUTC\":\"2008-01-15T17:13:00.000Z\",\"Day\":15,\"DayOfWeek\":2,\"DepTime\":606,\"DepTimeUTC\":\"2008-01-15T11:06:00.000Z\",\"Distance\":2586,\"FlightNum\":5,\"Month\":1,\"TailNum\":\"N537UA\",\"UniqueCarrier\":\"UA\",\"Year\":2008}}],\"nodes\":[{\"_id\":\"airports/SFO\",\"_key\":\"SFO\",\"_rev\":\"_cTBXAOe--m\",\"attributes\":{\"city\":\"San Francisco\",\"country\":\"USA\",\"lat\":37.61900194,\"long\":-122.3748433,\"name\":\"San Francisco International\",\"state\":\"CA\",\"vip\":true}},{\"_id\":\"airports/JFK\",\"_key\":\"JFK\",\"_rev\":\"_cTBXANy--y\",\"attributes\":{\"city\":\"New York\",\"country\":\"USA\",\"lat\":40.63975111,\"long\":-73.77892556,\"name\":\"John F Kennedy Intl\",\"state\":\"NY\",\"vip\":true}}]}}" }, { "type": "exact", diff --git a/integration-testing/pod.yml b/integration-testing/pod.yml index 4da909419da0e66d0bc603362c8709903f6c0d2b..66826a908810542843dc9d00a0c5059a2ae65f0a 100644 --- a/integration-testing/pod.yml +++ b/integration-testing/pod.yml @@ -22,7 +22,12 @@ spec: value: redis:6379 - name: LOG_MESSAGES value: "true" - - name: ARANGO_HOST - value: http://arangodb.default.svc.cluster.local:8529 + resources: + requests: + memory: "50Mi" + cpu: "50m" + limits: + memory: "100Mi" + cpu: "100m" imagePullSecrets: - name: docker-regcred diff --git a/internal/drivers/brokerdriver/broker.go b/internal/drivers/brokerdriver/broker.go index aa71621f5a7d28f12d410fc4e5771531881c339d..7452e27ce0519843576ec88f68ad07d41c9922b6 100644 --- a/internal/drivers/brokerdriver/broker.go +++ b/internal/drivers/brokerdriver/broker.go @@ -1,9 +1,11 @@ package brokerdriver import ( + "log" "os" "query-service/internal/adapters/brokeradapter" "query-service/pkg/errorhandler" + "query-service/pkg/logger" "strconv" "time" @@ -29,8 +31,39 @@ func CreateAliceBroker(gateway brokeradapter.GatewayInterface) *Driver { config := alice.CreateConfig(rabbitUser, rabbitPassword, rabbitHost, rabbitPort, true, time.Minute*1, alice.DefaultErrorHandler) + // Attempt to create a broker, if an error is returned retry the connection every 10 seconds + broker, err := alice.CreateBroker(config) + if err != nil { + errorhandler.FailWithError(err, err.Error()) + errorhandler.LogError(err, "Failed to connect to RabbitMQ") + + // Create 10 second ticker + ticker := time.NewTicker(time.Second * 10) + done := make(chan bool, 1) + + for { + select { + case <-ticker.C: + logger.Log("Retrying RabbitMQ connection") + broker, err = alice.CreateBroker(config) + if err == nil { + done <- true + ticker.Stop() + } + case <-done: + log.Println("Succesfully connected to broker") + return &Driver{ + broker: broker, + gateway: gateway, + } + } + } + } + + // Return the created driver + // This code only gets called if the broker creation works on the first try, which it more often than not does return &Driver{ - broker: alice.CreateBroker(config), + broker: broker, gateway: gateway, } } diff --git a/internal/drivers/brokerdriver/consumer.go b/internal/drivers/brokerdriver/consumer.go index 194b2ad217e79868a423f2a6d17b27bfad5805ba..5e38fb6e69215918e1f8000859531d93bc7295d2 100644 --- a/internal/drivers/brokerdriver/consumer.go +++ b/internal/drivers/brokerdriver/consumer.go @@ -16,7 +16,7 @@ type AliceConsumer struct { // ConsumeMessages starts the consumer using an alice consumer func (ac *AliceConsumer) ConsumeMessages() { - go ac.consumer.ConsumeMessages(nil, false, ac.handleMessage) + go ac.consumer.ConsumeMessages(nil, "", false, ac.handleMessage) } func (ac *AliceConsumer) handleMessage(msg amqp.Delivery) { diff --git a/internal/usecases/consume/handlemessage.go b/internal/usecases/consume/handlemessage.go index 8f7148bfd527dec8b9e7e158f502d57487860dd8..53ee5bdef2bba604afc3b07ff8bf00830c39dcba 100644 --- a/internal/usecases/consume/handlemessage.go +++ b/internal/usecases/consume/handlemessage.go @@ -58,6 +58,14 @@ func (s *Service) HandleMessage(msg *brokeradapter.Message) { // Fetch database credentials from the user service databaseInfo, err := s.databaseInfoService.GetDatabaseInfo(&clientID, databaseName) + if err != nil { + errorMsg := make(map[string]string) + errorMsg["type"] = "query_database_not_found" + errorMsg["value"] = err.Error() + errorMsgBytes, _ := json.Marshal(errorMsg) + s.producer.PublishMessage(&errorMsgBytes, &sessionID) + return + } // execute and retrieve result // convert result to general (node-link (?)) format diff --git a/internal/usecases/convertquery/createConstraints.go b/internal/usecases/convertquery/createConstraints.go index b03d06f79342d39122612dd076eeedf5afe37f8b..a971a08b0772a13373456b6e23637e07d2143a4b 100644 --- a/internal/usecases/convertquery/createConstraints.go +++ b/internal/usecases/convertquery/createConstraints.go @@ -44,24 +44,31 @@ func createConstraintBoolExpression(constraint *entity.QueryConstraintStruct, na line string ) + // Constraint datatypes back end + // text MatchTypes: EQ/NEQ/contains/excludes + // number MatchTypes: EQ/NEQ/GT/LT/GET/LET + // bool MatchTypes: EQ/NEQ + switch constraint.DataType { case "text": value = fmt.Sprintf("\"%s\"", constraint.Value) switch constraint.MatchType { + case "NEQ": + match = "!=" case "contains": - match = "IN" - case "startswith": - match = "LIKE" - value = fmt.Sprintf("\"%s%%\"", constraint.Value) - case "endswith": match = "LIKE" - value = fmt.Sprintf("\"_%s\"", constraint.Value) - default: //exact + value = fmt.Sprintf("\"%%%s%%\"", constraint.Value) + case "excludes": + match = "NOT LIKE" + value = fmt.Sprintf("\"%%%s%%\"", constraint.Value) + default: //EQ match = "==" } case "number": value = constraint.Value switch constraint.MatchType { + case "NEQ": + match = "!=" case "GT": match = ">" case "LT":