Commit Graph

228 Commits

Author SHA1 Message Date
firest 7f1bec5d78 test(gateway): fix meck unload error and reformat some codes 2022-04-08 13:44:23 +08:00
firest 786be82d07 test(gateway): optimize test codes organization 2022-04-07 16:53:10 +08:00
Thales Macedo Garitezi 7d807ce6bb
feat(gateway): export basic gateway info for telemetry 2022-04-04 15:20:48 -03:00
firest 0db6b8d47e test(gateway): integration stomp && exproto test with http authn 2022-04-02 14:06:36 +08:00
firest 25ebe2535e test(gateway): integration MQTT-SN test with http authn 2022-04-02 14:00:37 +08:00
firest ec243d8946 test(gateway): integration CoAP && LwM2M test with http authn 2022-04-02 14:00:33 +08:00
JianBo He 3f6d78dda0 style(gateway): format gateway application 2022-03-31 17:41:32 +08:00
firest ab2f5b9bb7 fix(coap): fix system topic case 2022-03-23 17:25:52 +08:00
firest ab51d8ab8e fix(coap): trigger disconnect logic when the client manually disconnected 2022-03-23 14:19:00 +08:00
firest 0c3d02b02d test(coap): add a observe test case 2022-03-22 11:57:49 +08:00
JianBo He fbc0240f26 feat(sn): introduce subs_resume option
As the mqtt-sn v1.2 spec metioned, the gateway will be able to sync the
subscriptions topic-name registry to client when the client resume
it's session

port from: https://github.com/emqx/emqx/pull/7300
2022-03-17 18:38:54 +08:00
Thales Macedo Garitezi 2748c22b0c
fix(ekka): run cleanups on node down events
When using the RLOG DB Backend with Mria, replicant nodes do not
generate `mnesia down` events.  Therefore, cleanup procedures that
some modules do when a node goes down do not work for replicants.

However, replicant do generate `node down` events, so that may be a
safer way to handle cleanup to take into account that type of node.
2022-03-14 15:55:58 -03:00
JimMoen f5caf66253 refactor(api): unified api name style 2022-03-11 11:07:55 +08:00
JianBo He 724d51a024 fix(mqttsn): fix flaky test 2022-03-09 17:11:09 +08:00
JianBo He 6ab993c3e8 test(mqttsn): uncomment asleep testcases 2022-03-09 12:57:51 +08:00
JianBo He 63ef00a208 fix(gw): add takeover_session/3 for cm_proto_v1 2022-03-02 16:43:53 +08:00
JianBo He 7ade24b344 feat(mqttsn): support to register unknown topic-name to the client 2022-03-02 14:58:43 +08:00
JianBo He ddf3585b22 refactor(gw): support session takeover 2022-03-02 14:58:43 +08:00
JianBo He e2b330e8be fix(stomp): fix unexpected_linefeed error if the packet truncated on headers 2022-02-10 12:26:13 +08:00
Thales Macedo Garitezi 152bbe6bb3
refactor: rm unused fn 2022-02-08 18:18:18 -03:00
Kian-Meng Ang fc92e4c8bf docs: fix typos 2022-01-27 12:29:38 +01:00
Zaiming (Stone) Shi 2105d1f22b test: call ct helpers to load config 2022-01-25 11:50:18 +01:00
k32 c4cb9973a6 fix(emqx_gateway): Apply remarks 2022-01-21 10:42:55 +01:00
k32 925654978e refactor(emqx_gateway): Reuse emqx_gateway_cm APIs 2022-01-20 19:16:30 +01:00
JimMoen 31edd49f76 fix(topic_metrics): `POST` `PUT` need response 2022-01-20 10:15:06 +08:00
k32 36f10e929d test(lwm2m): Fix flaky test 2022-01-18 17:36:10 +01:00
JianBo He 43284768d0 chore(gw): more code coverage for emqx_gateway_conn module 2022-01-14 10:48:56 +08:00
JianBo He 44ea853059 test(gw): more coverage for emqx_gateway_cm 2022-01-14 10:48:56 +08:00
JianBo He e9e559ccd0 test: more code coverage for emqx_gateway_api_clients 2022-01-14 10:48:56 +08:00
JianBo He 3caf0822c4 test(gw): more testcases for emqx_gateway_metrics 2022-01-14 10:48:56 +08:00
JianBo He a829b0b9d0 test(gw): more testcases for emqx_gateway module 2022-01-14 10:48:56 +08:00
JianBo He 056e284bc2 test(gw): more testcases for emqx_gateway_cm_registry 2022-01-14 10:48:56 +08:00
JianBo He 0e011ec4b8 test(gw): more testcases for emqx_gateway_cli module 2022-01-14 10:48:56 +08:00
JianBo He 79a653e2b4 refactor(gw): more readable CLI print 2022-01-14 10:48:56 +08:00
JimMoen 8c9d98b583 chore: LICENSE Copyright reserved 2022-01-13 16:40:08 +08:00
Zaiming (Stone) Shi 63167cea70 chore: update copyright 2022-01-05 20:55:00 +01:00
Zaiming (Stone) Shi 211b8e1b06 Merge remote-tracking branch 'origin/release-5.0-beta.3' into merge-5.0-beta.3-to-master 2022-01-04 22:48:25 +01:00
Zaiming (Stone) Shi 2898fa76e1 Merge remote-tracking branch 'origin/release-5.0-beta.3' into merge-5.0-beta.3-to-master 2022-01-03 11:39:06 +01:00
JianBo He 2411c22b42 fix(gw): fix bad listners field on http response 2021-12-31 14:59:17 +08:00
Thales Macedo Garitezi 8f4453fedb
fix(gateway): undo move headers to root `include`
Keeping headers in the src directory makes sense for the interfaces we
don't want to expose outside, but the `include_lib` directive fails to
compile under Mix. Changing `include_lib("emqx_gateway/src/...")` to
`-include("src/...")` pleases both Mix and Rebar.
2021-12-28 17:34:47 -03:00
Thales Macedo Garitezi 0020cf592f
Merge remote-tracking branch 'origin/master' into build-with-mix-mkII 2021-12-28 11:28:40 -03:00
JianBo He fca5a3bc21 chore(gw): add cli testcases 2021-12-27 16:03:31 +08:00
Thales Macedo Garitezi e137555052
fix(tests): fix include paths that were moved 2021-12-22 15:15:19 -03:00
JianBo He 6d4aac1600 chore(gw): improve http error messages 2021-12-22 16:49:33 +08:00
Thales Macedo Garitezi 917575de5a
chore(mix): minimal elixir mix release build
This commit enables a minimal working build of EMQX release using
Mix.  However, to properly start the release, several configuration
steps are still missing.  A `mix_release.sh` script does a few hacks
to get the release built with Mix to start properly, by first assuming
that `make emqx` has been run prior to the release, ran once to
generate the `app.*.config` files, and then it copies that and some
other files to the expected places.

Also, `emqx_telemetry` hangs the start procedure because it thinks
it's in an official release and tries to make a request.  We disable
it temporarily via config just to get a working build for now.
2021-12-21 13:51:22 -03:00
JianBo He 92fd9c1eca chore(gw): fix adding subscription 2021-12-17 15:31:07 +08:00
JianBo He 5224da57dc
Merge pull request #6411 from HJianBo/gw-improve-apis-3
More precise gateway http-api examples
2021-12-10 16:52:49 +08:00
firest 8493b61cb5 refactor(eqmx_limiter): use the new hierarchical token bucket to replace the old ratelimit code 2021-12-10 14:37:23 +08:00
JianBo He fa11c6df9c test(gw): fix bad test cases 2021-12-10 10:41:38 +08:00
JianBo He 0eff5358ca chore(gw): add examples for gw&client api 2021-12-08 10:52:27 +08:00
JianBo He 7f04837ad2 fix(gw): fix elvis warnings 2021-12-06 16:34:00 +08:00
JianBo He 3f35604d16 refactor(gw): fix gateway http api schema 2021-12-06 16:34:00 +08:00
JianBo He 169848c027 feat(gw): return the created/updated resource info 2021-12-06 16:32:46 +08:00
JianBo He bc012d6554 chore(gw): change lwm2m&coap api path 2021-12-06 16:30:59 +08:00
Zaiming (Stone) Shi a723e41390 test: fix a flaky test which gets interfered by other test cases 2021-12-06 08:00:42 +01:00
JianBo He 27270ca679 test(gw): fix elvis warnings 2021-11-23 16:36:11 +08:00
JianBo He 5204a1c6d4 test(gw): reduce useless log print 2021-11-23 16:01:40 +08:00
DDDHuang 21bd9bba55
fix: generate palce holder (#6250)
* fix: generate place holder

* style: whitespace cleanup

* refactor(authz): placeholder for athuz

* test: authz test suite for placeholder

* fix: lw place holder suite

* fix: auth n redis suite

Co-authored-by: JimMoen <LnJimMoen@outlook.com>
2021-11-23 10:56:43 +08:00
JianBo He 1e2eac0fce test(gw): add tests for authm data-mgmt 2021-11-22 17:38:59 +08:00
JianBo He f033fad7b3 refactor(gw): deps on emqx_dasboard_swagger 2021-11-22 17:38:59 +08:00
JianBo He ad2dbb5a49 chore(gw-sn): append messge headers 2021-11-17 14:51:27 +08:00
JianBo He d0bdf27e0c chore: fix elvis warnings 2021-11-17 11:04:09 +08:00
JianBo He 883c1b2e59 chore(gw): remove needless lines 2021-11-16 10:00:54 +08:00
JianBo He cf1d98adc6 chore(gw): save cert files 2021-11-16 10:00:54 +08:00
JianBo He bc3f3b4c55 test(gw): more robust testing 2021-11-16 10:00:53 +08:00
JianBo He 287859fe36 chore(gw): integrate emqx-conf 2021-11-16 09:58:37 +08:00
Zaiming Shi b96a106463 style: make elvis happy 2021-11-10 22:54:58 +01:00
Zaiming Shi 9c1972020c test: fix flaky test emqx_stomp_SUITE:t_rest_clienit_inf 2021-11-10 22:51:18 +01:00
lafirest e8f6035c34
feat(emqx_lwm2m): add some lwm2m api (#6047) 2021-11-10 14:20:33 +08:00
Ilya Averyanov e37ecc10a6 style(behaviour attrs): unify behaviour declarations 2021-10-21 15:10:59 +03:00
k32 8e58699ff5
Merge pull request #5937 from k32/mria
feat(mria): Replace ekka_mnesia with mria
2021-10-20 13:15:23 +02:00
JianBo He 9d4268e5e6 test(gw): ensure subscription established 2021-10-20 10:40:35 +08:00
JianBo He 7c04dbc585 test(gw): eliminate side effect between tests 2021-10-20 10:40:35 +08:00
JianBo He 2416fa4e13 chore(gw): return 204 if no authn config 2021-10-20 10:40:35 +08:00
JianBo He 46e0609544 test(gw): add clients HTTP-API tests 2021-10-20 10:40:35 +08:00
JianBo He 6f0d0ab473 test(gw): eliminate side effect between tests 2021-10-20 10:40:35 +08:00
JianBo He 1cf833e1c0 test(gw): ensure emqx_authn starting state 2021-10-20 10:40:35 +08:00
JianBo He 7b211d35b8 test(gw): add basic tests for http-api 2021-10-20 10:40:35 +08:00
JianBo He e56cbd8a30 chore(gw): refine test case 2021-10-20 10:40:35 +08:00
k32 e14a62d4d6 chore(mria): ekka_mnesia:start/stop -> mria:start/stop 2021-10-18 22:04:05 +02:00
k32 ae2056da1b chore(mria): Fix clear_table and ro_transaction calls 2021-10-18 22:04:05 +02:00
Tobias Lindahl aa19c2a908 chore: Remove emqx_ct_helpers as dependency 2021-10-15 10:40:57 +02:00
lafirest 3524942766 fix: change all ~s in io format to ~ts
we should use unicode to replace latin1
2021-10-12 15:09:24 +08:00
Zaiming Shi 7e9d7c4858 test(proper): move emqx_ct_proper_types to local repo
previously provided by emqx-ct-helpers
2021-10-11 15:28:12 +02:00
JianBo He 45ca168216 test(gw): fix bad test cases 2021-09-30 15:51:02 +08:00
lafirest acb5c693ba
Merge pull request #5767 from lafirest/fix/time_unit
fix(schema): fix some time unit in schema
2021-09-26 15:35:27 +08:00
JianBo He 8e78d29325 chore(gw): improve emqx_gateway_schema 2021-09-26 15:19:55 +08:00
JianBo He 5ad1a8c232 chore(gw): fix test case errors 2021-09-26 15:19:55 +08:00
JianBo He b55a1f62c3 test(gw): more cases for emqx_gateway_conf 2021-09-26 15:19:55 +08:00
JianBo He d163e99d58 chore(gw): add cases for emqx_gateway_conf 2021-09-26 15:19:55 +08:00
JianBo He f68dfff0d6 refactor(gw): refactor config hot-upgrade mechnism 2021-09-26 15:19:55 +08:00
JianBo He a9e32ac106 chore(gw): fix gatway enable/1 not working 2021-09-26 15:19:55 +08:00
JianBo He d8176f4378 chore(gw): pass listener id into listener params 2021-09-26 15:19:55 +08:00
lafirest e31e175e47 fix(schema): fix some time unit in schema 2021-09-26 14:38:53 +08:00
JianBo He 2fe96a3ad0 chore(gw-lwm2m): format emqx_lwm2m_tlv_SUITE 2021-09-17 18:13:57 +08:00
JianBo He 6da1196244 chore(gw-lwm2m): refine emqx_tlv_SUITE cases 2021-09-17 18:13:57 +08:00
lafirest 24eb0ac7bb
Merge pull request #5721 from lafirest/test/coap_case
test(emqx_coap): add some test case
2021-09-17 09:46:50 +08:00
lafirest acbbbbcd24 test(emqx_lwm2m): remove the lwm2m_coap dependency 2021-09-14 11:20:53 +08:00
lafirest 99566f12bb test(emqx_coap): add some test case 2021-09-14 11:11:30 +08:00
lafirest b8d4c12008 test(emqx_lwm2m): add some time intervals between test operations 2021-09-10 14:42:29 +08:00
lafirest 5693981b54
Merge pull request #5699 from lafirest/feat/lwm2m_api
refactor(emqx_lwm2m): refactor lwm2m api use new rest framework
2021-09-10 10:34:18 +08:00
JianBo He e94e09075c refactor(gw): keep listeners conf tree compliance with core 2021-09-09 17:33:04 +08:00
lafirest 60914697b2 refactor(emqx_lwm2m): refactor lwm2m api use new rest framework 2021-09-09 16:37:14 +08:00
lafirest 9ad9f619c1
Merge pull request #5676 from lafirest/feat/coap_api
feat(emqx_coap): add emqx_coap_api
2021-09-08 22:23:22 +08:00
Jim Moen 4e5d781d21 fix: Words spelling fix. 2021-09-08 11:39:56 +08:00
lafirest 89f48f89eb feat(emqx_coap): add emqx_coap_api
1. add a request api for emqx_coap
2. fix some emqx_coap logic error
2021-09-07 19:20:52 +08:00
lafirest 35cc0d972d
Merge pull request #5660 from lafirest/fix/emqx_lwm2m
fix(emqx_lwm2m): fix some error and incomplete function
2021-09-07 16:15:17 +08:00
zhouzb 627de1d58c fix(test): fix test case 2021-09-07 10:29:45 +08:00
lafirest caee51f92a fix(emqx_lwm2m): fix some error and incomplete function 2021-09-07 09:59:07 +08:00
lafirest 7075f3260e refactor(emqx_lwm2m): port lwm2m into emqx_gateway framework 2021-08-31 20:01:47 +08:00
JianBo He 9c855ba8c2 chore(gw): cleanup the massive schema defination 2021-08-27 18:23:12 +08:00
JianBo He 630e0fb8cb test(gw): fix bad test cases 2021-08-18 09:26:48 +08:00
JianBo He be4d2495f0 refactor(gw): single instance support only 2021-08-18 09:26:48 +08:00
JianBo He 1b2f732f13 chore(gw): fix zone name 2021-08-05 09:47:17 +08:00
JianBo He b16cf44bf6 refactor(gw-lwm2m): refine lwm2m 2021-08-04 10:10:22 +08:00
JianBo He c986f89319 test(gw): use emqx_config:init_load/2 2021-07-30 15:42:03 +08:00
Zaiming Shi 4836d0a1fc test(exproto): delete unused code 2021-07-29 16:30:29 +02:00
zhanghongtong 4c5b75f281 chore: rename acl to authz
Signed-off-by: zhanghongtong <rory-z@outlook.com>
2021-07-26 16:10:33 +08:00
JianBo He d35d0d7834 test(gw): refine sn tests 2021-07-24 10:19:05 +08:00
JianBo He 7f1d245a8f test(gw): refine exproto tests 2021-07-24 10:19:05 +08:00
JianBo He 5f47ceb118 refactor(gw-exproto): move exproto into gateway 2021-07-24 10:19:05 +08:00
Shawn c2e7acc1f1 fix(test): change application:set_env/3 to emqx_config:put/2 2021-07-23 10:56:20 +08:00
JianBo He f22384669e chore(gw): temporarily comment out asleep/awake tests 2021-07-21 16:09:48 +08:00
JianBo He 61473b8a5b test(gw): fix the mqtt-sn frame tests 2021-07-21 16:09:48 +08:00
JianBo He 21796314f3 test(gw): fix bad test cases 2021-07-21 16:09:48 +08:00
JianBo He 980c7d91db chore(gw): fix mqtt-sn test cases 2021-07-15 10:35:28 +08:00
JianBo He d2430e70a8 refactor(gw): move mqtt-sn to gateway 2021-07-15 10:35:28 +08:00
JianBo He 56cdd469ff
feat(gateway): The prototype for emqx-gateway application
* feat(gateway): add gateway application

* chore(gateway): add normalize confs function

* refactor: move emqx-stomp to emqx-gateway subdir

* chore(gateway): fix some bad function defination

* chore(gateway): rename type to gwid

* chore(gw-stomp): upgrade the implementation to suppport gateway instance

* feat(gw-stomp): add reconnect mechanism

* refactor(stomp): upgrade connection&channel module to latest

* refactor(stomp): more details for handle_in/out

* refactor(stomp): get it up and running

* chore(gw): load some modules by default

* refactor: upgrade the emqx-gateway schema module

* test(stomp): fix testcases for stomp gateway

* chore(gw): remove needless lines

* chore(gateway): correct a lot of specs

* chore(gw): add a draft for metrics

* chore(gw): add metrics process

* fix(gw): fix cm process monitor

* test(gw): add test cases for gateway-regitry

* feat(gw): add metrics/cli for gateway

* fix(gw): fix xref errors

* chore(gw): pretty gateway metrics print format

* chore(gw-stomp): generate clientid by default

* chore(gw): more reliable

* chore(gw): rename gwid -> type

* chore(gw): impl the update logic

* chore(gw): some format improvement

* chore(gw): adapts the hocon configs

* fix(gw): fix xref errors

* test(gw): update configurations for tests

* chore(gw): ignore diaylzer warnings

* fix(gw): fix bad function call

* chore(gw): remove needless comments
2021-07-02 20:17:40 +08:00