* Implement errors package in senml transformer, readers and writers
Signed-off-by: Ivan Milošević <iva@blokovi.com>
* Remove unused const
Return wrapped error in postgres writer
Signed-off-by: Ivan Milošević <iva@blokovi.com>
* fix default db host in postgres writer
Signed-off-by: Ivan Milošević <iva@blokovi.com>
* fix capital letters in errors messages
Signed-off-by: Ivan Milošević <iva@blokovi.com>
* use svcName instead of postgres for Promethius initialization
Signed-off-by: Ivan Milošević <iva@blokovi.com>
* Add feature of filtering by subtopics in writer
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Fix mistake
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Refactoring writer sevices
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Rename variables related to filter (channels & subtopics)
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Set default value of filtering when configuration file doesn't exist
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Add a blank line at the end of the file
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Refactor loading filters configuration (moving into writer package, merge both loading methods & returning error)
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Remove useless log
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Change type of variables (channels & subtopics) and simplify loading method
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Add logging error when loading filters
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Simplify return configuration in loading method
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Merge both filter files into one file
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Move loading subjects into writer package
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Add subscribe to selected subjects
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Edit README of writer services
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Keep only subscribe loop
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Use full NATS subjects
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
* Edit comment in subjects files
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
Co-authored-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com>
* Add Transformer tests
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Fix readers and writers
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Fix README typo
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Tidy vendor
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Remove link field from docs
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Use Normalizer as a lib
To normalize messages on the consumer side, Normalizer is moved
to the internal pkgs. Writers being message consumers are modified to
do message normalization instead of subscribing to normalized messages
subject.
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Fix logging middleware for readers and writers
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Remove normalizer interface
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Use Normalizer in writers
As we agreed on #919, we'll use normalizer as an interface and provide
the default SenML implementation. Because of that, Normalizer is removed
from `internal` and we'll use the project structure proposed in the
aforementioned issue.
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Fix tests
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Remove unused batch settings from influxDB reader
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Update docs
Move Normalizer service to `addons`.
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Rename channels input topic
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Update Noramlizer docs
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Remove commented code
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Update readers logging
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Update addons docker-compose files
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Update topcis explanations
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Add support for channel filtering using config
Add support for channel filtering using yaml configuration files
for writers.
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update writers documentation with new env var
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Add info comment to configuration file
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Fix configuration and update yaml dep
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update config from yaml to toml
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update metadata type in things service
Update things service so that metadata has map type. Update repo
implementation by adding sqlx lib.
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Add sqlx lib to bootstrap service
Add sqlx lib to bootstrap service and update metadata field type.
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update metadata in redis streams consumer
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update tests for bootstrap service
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Fix mongo reader logging and driver version
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Fix mongo reader and writer
Fix mongo reader and writer by updating driver version.
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update SDK with new metadata format
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update LoRa adapter with new metadata format
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update users service in order to use sqlx
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Replace anonymous struct with map
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update docs for LoRa adapter
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Fix LoRa application metadata format
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Fix metadata format in LoRa docs
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Add metadata2 var to SDK things test
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Commit for mainflux-596
Modified and tested:
- cli
- http
- mqtt
- normalizer
- all readers
- sdk messages
- all writers
- ws
Missing:
- coap
- lora
Signed-off-by: ale <ale@metaverso.org>
* - fix subtopic name in, when starting with dot, http/ws/mqtt
- add some test on readers
Signed-off-by: ale <ale@metaverso.org>
* - fix string concatenation
- update http/transport regexp to match subtopic names with only \w-
- update ws/transport regexp like http ones with also the wildcard * and >
Signed-off-by: ale <ale@metaverso.org>
* added subtopic support to coap adapter
Signed-off-by: ale <ale@metaverso.org>
* - update replace functions with replaceall when needed
- renamed getDestChannel to fmtSubject
- update api/transport and ws/transport route to be more readable
- fix mqtt syntax
- renamed func andQuery to query as suggested by @anovakovic01
- have a nice we :)
Signed-off-by: ale <ale@metaverso.org>
* - fix error declaration on ws/nat/publisher
- fix regexp added missing allowed chars - and _ on coap/api/transport
- fix subtopic clean suffix / if present on coap/api/transport
- improve regexp on http and ws /api/transport, now does not accept url that do not strictly match
- add some ws subtopic tests
Signed-off-by: ale <ale@metaverso.org>
* - enabled wildcard chars on coap/api/transport
- allow use special chars on http and ws api/transport
Signed-off-by: ale <ale@metaverso.org>
* - use strings.Replace() insted ReplaceAll()
Signed-off-by: ale <ale@metaverso.org>
* - allow every chars on subtopics
- fix replace error on mqtt
Signed-off-by: ale <ale@metaverso.org>
* fix cassandra test
Signed-off-by: ale <ale@metaverso.org>
* fix ws test with invalid subtopic
Signed-off-by: ale <ale@metaverso.org>
* fix invalid GOCACHE in go1.12, replaced by -count 1, see https://golang.org/doc/go1.10#test
Signed-off-by: ale <ale@metaverso.org>
* - improve regexp on http/ws api/transport
- minor changes
Signed-off-by: ale <ale@metaverso.org>
* - add generic function parseSubtopic on ws/http adapters
Signed-off-by: ale <ale@metaverso.org>
* - add generic function fmtSubtopic on coap adapter
Signed-off-by: ale <ale@metaverso.org>
* Update increment ID to UUID in things service
Update increment ID to UUID for things and channels in things
service and proto files. Also, update ID type from uint to string.
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update increment ID to UUID in http adapter
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update increment ID to UUID in ws adapter
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update increment ID to UUID in CoAP adapter
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update increment ID to UUID in normalizer service
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update increment ID to UUID in writer services
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update increment ID to UUID in reader services
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update increment ID to UUID in SDK
Update increment ID to UUID in SDK. Update id type to string.
Update tests.
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update increment ID to UUID in mqtt adapter
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Remove unnecessary case from influxdb reader
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update tests in order to increase code coverage
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update lora adapter to use string ID instead of unsigned int
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Use message time as Point time in InfluxDB
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Use actual message time
Update all Reader and Writer services to use time from the message
instead of time given from the corrseponding Writer service.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Remove message time check
Messages time less than 2**28 represent time relative to the current time so Writer used to convert this to the correct value, i.e. msg.Time += time.Now(). However, this step is optional and should really be a part of the app on top of Mainflux or could be introduced with minor changes in Normalizer, Reader or Writer services, so there is no need for this to be supported out of box.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Use channel and publisher as tag keys
Move all the other Message fields to the field keys.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Fix empty protobuf values
Update Normalizer service and .proto files. Reader and Writer services
needs to be updated due to message format change.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Update HTTP adapter to use gogo protobuf
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Update Reader services API
Update API or Reader services to match Message changes due to switching to gogo/proto.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Update InfluxDB services
Update InfluxDB Reader and Writer services to match new Message format.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Update MongoDB services
Update MongoDB Reader and Writer services to match new message format.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Update Cassandra services
Update Cassandra Reader and Writer service to match new Message format.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Fix InfluxDB Reader test
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Update Makefile and docs accordingly
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Fix possible data race in InfluxDB writer
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Update InfluxDB Writer tests
Raise test coverage.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Fix InfluxDB reader
Fix wrong ValueSum readings. Upadete tests and raise coverage.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Update MongoDB services tests
Raise test coverage for MongoDB Reader and Writer services.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Update Readers API tests
Raise test coverage.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Raise test coverage
Update Cassandra Reader and Writer services tests.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Use gogo/protobuf in CoAP adapter
Add gogo/protobuf to Gopkg.toml and update dependencies.
Update Dockerfile to run `make proto`.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Update Cassandra Reader tests
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Refactor code
Improve code style and comments to improve readability.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Rename Sum to SumValue
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Rename Values to Value
Since message contains only single value (or possibly no value at all),
`Values` name could be misleading. Rename simple double value from
`Value` to `FloatValue` accordingly.
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Fix InfluxDB Reader logging
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Replace exclusive if statements with switch-case
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Update Cassandra services tests
Signed-off-by: Dusan Borovcanin <dusan.borovcanin@mainflux.com>
* Adding an option to select log level
Signed-off-by: Michael Finley <Michael.Finley@target.com>
* making error default log level
Signed-off-by: Michael Finley <Michael.Finley@target.com>
* removing go-kit/levels and expanding levels wrapper
Signed-off-by: Michael Finley <Michael.Finley@target.com>
* refactoring test cases and using log.fatal
Signed-off-by: Michael Finley <Michael.Finley@target.com>
* logger.new no longer accpets enum and now accepts string for level
Signed-off-by: Michael Finley <Michael.Finley@target.com>
* level_test.go refactor to compare error
Signed-off-by: Michael Finley <Michael.Finley@target.com>
* Updating the ws README
Signed-off-by: Michael Finley <Michael.Finley@target.com>
* Adding log level for mqtt Adapter
Signed-off-by: Michael Finley <Michael.Finley@target.com>
* Add mongodb reader service
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Add tests for mongodb reader service
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Add documentation for mongodb reader service
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Fix test function name
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update comment in docker-compose for mongodb-reader service
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Update WS tests
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Use require in all writer tests
Refactor code.
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Ignore Mainflux generated pb.go files
Ignore *.pb.go files generated by Mainflux, but don't ignore vendored generated code.
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Return an exported ErrNotFound instead of the unexported one
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Update mocks to match the actual behaviour
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Update mocks error message
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Add auth service unavailable error test
Since this error is caused by gRPC server returning codes.Internal,
this behaviour is simulated using specific token. When that token is
passed as an auth header, the mock gRPC client returns aforementioned error.
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Use require package for postgres tests
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Remove redundant error checks in tests
Refactor tests.
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Rename error flag token
Signed-off-by: Dušan Borovčanin <dusan.borovcanin@mainflux.com>
* Add Cassandra writer implementation
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Add cassandra service with version and metrics endpoints
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Add test for cassandra writer
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Exclude api.go files from code coverage
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Add readme file for cassandra writer
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Add docker compose configuration for cassandra writer
Add README file. Add docker compose configuration.
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Add gocql as project dependency
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Fix init script for cassandra in docker-compose
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>
* Add testifies require subpackage
Signed-off-by: Aleksandar Novakovic <aleksandar.novakovic@mainflux.com>