Commit Graph

276 Commits

Author SHA1 Message Date
Thales Macedo Garitezi c70a47bba6
refactor(mix): undo the `bin/emqx` script split into helper files 2021-12-30 13:45:13 -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
Thales Macedo Garitezi ecbb28fedf
Merge pull request #6540 from emqx/fix-bin-vm-args
fix(bin_emqx): remove `vm_args` backup in `install`

The `install_upgrade.escript` depended on being able to retrieve the
`vm_args` argument from `init`, but that options has been removed
recently.  Since this backup was unused, we also remove it here.

Also, the `cuttlefish` script reference is removed, since it is no longer 
present in the release.
2021-12-28 11:27:02 -03:00
Thales Macedo Garitezi 5c615e583f
fix(install_upgrade): remove `cuttlefish` reference
This file is not present in the current release anymore.
2021-12-28 09:09:21 -03:00
Thales Macedo Garitezi dd36bef3bb
fix(install_upgrade): remove `vm_args` backup in `install`
The `install_upgrade.escript` depended on being able to retrieve the
`vm_args` argument from `init`, but that options has been removed
recently.  Since this backup was unused, we also remove it here.
2021-12-28 09:07:40 -03:00
Thales Macedo Garitezi f93f90c9ea
fix: portable shebangs 2021-12-28 08:21:51 -03:00
Thales Macedo Garitezi 360a00622b
chore(mix): copy more files required by relup 2021-12-27 16:07:38 -03:00
Zaiming (Stone) Shi 68eb13d478 fix: portable shebang 2021-12-27 15:45:12 +01:00
Thales Macedo Garitezi 0655572f64
chore(mix): fix: use Elixir's own rpc-eval call for "eval" 2021-12-24 11:40:30 -03:00
Thales Macedo Garitezi f3bbcd2c79
chore(nodetool): always print result 2021-12-24 08:21:21 -03:00
Thales Macedo Garitezi 67cca5d3a1
chore(mix): use the same script in mix release as in rebar release
Surprisingly enough, by doing small cirurgical changes in the existing
EMQX control scripts, we are able to get it running with Elixir and
with existing functionalities (`console`, `remote_console`, `start`,
`stop`, `ctl`, `foreground`, `eval`).
2021-12-23 17:20:04 -03:00
Thales Macedo Garitezi 014b6d3cfd
chore(shellcheck): fix shellcheck linting warnings 2021-12-22 15:43:43 -03:00
Thales Macedo Garitezi 62024854e5
chore(mix): wrap produced script and set required variables
We create a shim script that calls the one produced by Mix Release,
creating and setting the required configurations.
2021-12-22 15:15:19 -03:00
Thales Macedo Garitezi a5939790c5
refactor(bin): extract common script functionalities into separate files
In order for us to reuse most of the functionalities implemented in
`bin/eqmx` also in the Elixir release script, common variable and
function definitions are extracted in separated bash files that can be
sourced by both Rebar and Elixir release scripts.
2021-12-22 10:35:06 -03:00
Shawn c3eab16182 fix(boot_script): wait until the emqx running 2021-12-21 19:50:36 +08:00
Shawn 08da5f5267 fix(boot_script): LD_LIBRARY_PATH: unbound variable 2021-12-21 16:53:06 +08:00
Zaiming (Stone) Shi a681079ba7 refactor: remove special env override from schema
EMQX_NODE_NAME and EMQX_NODE_COOKIE are translated into
EMQX_NODE__NAME and EMQX_NODE__COOKIE
2021-12-06 08:00:42 +01:00
Zaiming (Stone) Shi 2a3f58f8ed chore: add a comment in bin/emqx to warn the config overlay 2021-12-06 08:00:42 +01:00
zhongwencool f697028b70
Fix ping not return pong (#6285)
* fix: ./bin/emqx ping return pong

* chore: waiting longer for logger flush log to disk

* fix: change swagger page's limit from 100 to 1000

* chore: type wrong

* fix: sync log to disk by logger_disk_log_h:filesync
2021-11-26 17:02:45 +08:00
Zaiming Shi 79d9f55dd6 build: copy only libcrypto and libtinfo 2021-11-22 15:46:38 +01:00
Zaiming (Stone) Shi fc7eb21083
Merge pull request #6158 from Spycsh/window-space
fix: fix starting error when path contains space
2021-11-20 08:47:26 +01:00
William Yang 8f01a8de8c fix: source emqx_vars in node_dump tool 2021-11-17 11:45:48 +01:00
William Yang b1fcab24cc fix(node_dump): locate log dir for package installation 2021-11-16 20:33:28 +01:00
Spycsh 356137dbb4 fix: fix starting error when path contains space 2021-11-12 21:52:42 +01:00
Zaiming Shi 00d3a832ba chore(bin/emqx): delete unused cookie file chown 2021-11-12 14:56:14 +01:00
Zaiming (Stone) Shi c89132e968
Merge pull request #6117 from zmstone/chore-safer-bash-flags
refactor bin/emqx
2021-11-12 07:48:09 +01:00
Zaiming Shi e484fcc8c3 chore(bin/emqx): write sensible log if node not initialized 2021-11-10 21:15:54 +01:00
Zaiming Shi 160825095a chore(bin/emqx): add more usage prints 2021-11-10 20:19:38 +01:00
Shawn e8cb8a3aa4 fix(relup): configs for plugins are missing after relup 2021-11-10 09:32:49 +08:00
Zaiming Shi cf06ceb921 chore(bin/emqx): fix a typo in bash function 2021-11-09 23:00:53 +01:00
Zaiming Shi 25248a9e21 chore(bin/emqx): delete boot file start option
we have never tested using alternative boot file to start EMQ X
drop it
2021-11-09 23:00:53 +01:00
Zaiming Shi 9b9a070168 chore(bin/emqx): add default values for bash vars 2021-11-09 23:00:53 +01:00
Zaiming Shi 1480bb6158 chore(bin/emqx): delete RELX_CONFIG_PATH
this variable is to allow setting sys.config by user
however this feature is now broken because the
we always generate app.<time>.config
2021-11-09 23:00:53 +01:00
Zaiming Shi a27b452fe7 chore(bin/emqx): bash set -o 2021-11-09 22:59:09 +01:00
Zaiming Shi fdc4bb06d3 build: copy dynamic libs for zip package 2021-11-08 17:16:05 +01:00
Zaiming Shi ee817cfa6f fix(bin/emqx): mnesia dir name after node 2021-11-08 13:34:12 +01:00
zhongwencool d784e63b9f
emqx_conf (#5939)
* feat(emqx_conf): move conf manager for emqx_machine to emqx_conf

* chore(emqx_conf): change emqx:get_config/2 to emqx_conf:get/2

* fix: common test failed

* fix: badmatch by typo wrong key

* fix(emqx_conf): get the wrong core nodes

* fix(emqx_conf): get core node's tnx_id not latest tnx_id

* fix: add ro_transation when copy conf file

* fix: delete debug info

* fix: change ekka_rlog to mria_rlog

* fix: remove cluster_rpc from emqx_machine.

* fix: don't call ekka:start/0 explicitly

* fix: ekka should be start in emqx_machine
2021-10-21 18:08:51 +08:00
Spycsh c3b980fde9 chore: fix Windows compilation process 2021-09-27 21:24:10 +08:00
Zaiming Shi c2cf6b79b3 fix(bin/emqx): print pid info after wait 2021-09-27 11:36:04 +02:00
Zaiming Shi a17b3ad6ae chore(bin/emqx): print pid info if failed to stop 2021-09-27 10:34:21 +02:00
Zaiming Shi 01ce32094c refactor(bin/emax): delete cold_eval 2021-09-10 07:28:12 +02:00
Zaiming Shi cca3a4414f fix(bin/emqx): do not try to find vm.args file for cold_eval 2021-09-10 07:28:12 +02:00
Zaiming Shi 6f99f14540 feat(bin/emqx): add cold_eval nodetool command 2021-09-10 07:27:01 +02:00
zhongwencool 468102f462 chore: replace recon by obsserver_cli 1.7.0 2021-08-27 13:55:49 +08:00
Zaiming Shi 31b1646611 feat: inspect parent pid if emqx pid enters defunct state 2021-08-10 00:24:16 +02:00
Zaiming Shi 1a80b9dc47 fix: bin/emqx change use ps -p to check if pid is running 2021-08-09 22:46:31 +02:00
Zaiming Shi cd92f73ca1 test: add debug print 2021-08-09 22:09:11 +02:00
Zaiming Shi f1262e04bf feat: log error if timed out waiting after init:stop 2021-08-09 10:28:30 +02:00
Zaiming Shi 668ecbe97b fix: improve node stop wait loop 2021-08-09 10:28:04 +02:00
Zaiming Shi 9f3063a823 refactor: bin/emqx call fucntions for error logs 2021-08-09 10:28:04 +02:00
Zaiming Shi 562ce1a81b feat: bin/emqx pass down DEBUG if su exec 2021-08-08 11:14:20 +02:00
Zaiming Shi bc23ff5e47 feat: add graceful shutdown
prior to this cahnge emqx node shutdown is done by init:stop
which might have undesired stop order of the applications

in this change, emqx_machine_terminator is added to stop apps
in defined order and then terminate the node in infinite loop
2021-08-05 14:11:58 +02:00
Zaiming Shi 522d8e0a4a refactor(config): split config and schema 2021-08-04 08:36:10 +02:00
Zaiming (Stone) Shi 3d0cb11682
Merge pull request #5374 from zmstone/chore-delete-emqx-name-and-emqx-host-env-var
chore: delete EMQX_NAME and EMQX_HOST env variables
2021-08-03 17:08:50 +02:00
Zaiming Shi 2fd0742d2b refactor(emqx_ctl): simplify emqx_ctl 2021-08-02 20:35:24 +02:00
Zaiming Shi 8d687e50fd chore: delete EMQX_NAME and EMQX_HOST env variables 2021-07-31 12:02:38 +02:00
Zaiming (Stone) Shi cb2909dfbf
Merge pull request #5369 from zmstone/fix-boot-log
fix(bin/emqx): fix boot log
2021-07-31 08:53:15 +02:00
Zaiming Shi 2e3c98dd55 fix(bin/emqx): fix boot log
prior to this fix the logger message (syslog) has the name and pid
missing.
with this change, the programe name, and its boot command is logged
to syslog, so the console boot is cleaner
2021-07-31 00:29:53 +02:00
Zaiming Shi d68589e0cb feat(boot): make possible to boot on short name 2021-07-27 22:16:10 +02:00
Zaiming Shi 02206dd428 fix(bin/emqx): delete stale todo 2021-07-27 20:33:29 +02:00
Shawn f8f7493352 fix(test): set RETRY_INTERVAL and MAX_TOPIC_ALIAS for paho test 2021-07-17 17:36:01 +08:00
Shawn 4d279e47d8 chore(merge): merge code from master 2021-07-17 01:20:57 +08:00
William Yang 3a7d0c3e84 fix(script): emqx die if call_hocon failed 2021-07-16 23:16:51 +08:00
Shawn 8e32d5314d
Merge branch 'master' into emqx_config 2021-07-14 09:33:58 +08:00
zhanghongtong 54c776ebdf fix(emqx-edge): fix sed error when emqx-edge start 2021-07-12 14:22:47 +08:00
Zaiming (Stone) Shi 6b3cfd7c5d
fix(boot): boot exit on config error (#5200)
* fix(hocon): fail on hocon command errors

call_hocon bash function respects exit code

* fix(bin/emax): get dist_port config from hocon

after config file refactoring (to hocon format) the grep pattern
no longer works

* fix(bin/emqx): set -o pipefail

* feat(bin/emqx): add a DEBUG option
2021-07-10 08:51:35 +08:00
Shawn 0ac2492b36 fix(config): read app env 'config_files' to get the path to emqx.conf 2021-07-08 19:27:36 +08:00
Shawn db38137d5c feat(config): apply new config struct to emqx_alarm 2021-07-01 15:00:59 +08:00
Shawn d2c50baf93 fix(config): set console_handler.enable to turewhen start from console 2021-06-30 19:24:37 +08:00
Zaiming Shi 2919623563 chore(bin/emqx): print env override when generating config 2021-06-18 09:02:25 +08:00
Zaiming Shi 6edfb9a6c5 fix(nodetool): add_pathz -> add_patha 2021-06-15 14:48:09 +02:00
Zaiming Shi c3bbe2c6b6 refactor(bin/emqx): invoke hocon_cli from nodetool
nodetool has all lib paths set up correctly by reading the
persisted RELEASES file

calling hocon escript directly has two problems:
1. it may not be able to find the beams compiled
2. if we use ERL_LIBS, it may find the version after hot beam upgrade
2021-06-15 14:12:34 +02:00
Zaiming Shi 855705d830 chore(emqx_ctl): delete stale env variable 2021-06-15 12:35:08 +02:00
Zaiming Shi 49f844b1dd feat(bin/emqx): simlified config generation commands 2021-06-15 12:35:08 +02:00
Zaiming (Stone) Shi 65a660aaea
Merge pull request #4903 from emqx/resolve-master-dev/v5.0-conflict-release-version
Auto-pull-request-on-2021-05-31
2021-06-05 15:31:21 +02:00
Zaiming (Stone) Shi 5dab6985c1
Merge branch 'dev/v5.0' into resolve-master-dev/v5.0-conflict-release-version 2021-06-05 11:51:02 +02:00
Turtle 99c22eb2a8 fix(relup): fix relup badfun 2021-06-05 13:56:27 +08:00
z8674558 9c6276a654 chore(bin/emqx): support license conf option 2021-06-04 22:10:16 +09:00
z8674558 b4eb0c4df6 chore(bin/emqx): use hocon get 2021-06-03 17:03:08 +09:00
z8674558 47f7b35a60 chore(bin/emqx): add todo on hocon 2021-06-01 17:06:09 +09:00
Zaiming Shi 5546d24b6d refactor: always use hocon to generate config
previously we supports skipping config generation if USE_CUTTLEFISH
not set to true.
it has never been tested (at least not in automated tests)
now it's time to drop it.
2021-06-01 17:06:09 +09:00
z8674558 4b174b0277 feat(conf): use hocon schema 2021-06-01 17:05:52 +09:00
Zaiming Shi d4dcf94da6 fix(emqx.cmd): windows boot 2021-05-18 20:30:48 +08:00
Zaiming Shi a1162249b5 fix(nodetool): find release in releases 2021-05-13 22:57:44 +02:00
Zaiming Shi 53291ac3ff fix(nodetool): add path from RELEASES file 2021-05-13 21:59:08 +08:00
Zaiming Shi 873459a07f fix(emqx_ctl): ensure env variables are exported 2021-05-11 14:25:46 +02:00
Zaiming Shi 3aba50605a chore(nodetool): ensure correct lib dirs
Prioro to this change, ekka lib dir was added by inspecting
the ekka lib version in persisted RELEASES file.
However, this file may not be the true version if a hot
upgrade failed in the middle.
In this fix, it reads the per-version emqx.rel file
content to load lib paths.
2021-05-10 12:04:22 +02:00
k32 eb0488828b fix(node_dump): Remove bashisms from node_dump script 2021-05-06 14:19:09 +02:00
k32 cb3dce598c feat(node_dump): Add an option to set max log file age 2021-05-06 14:19:09 +02:00
k32 5302459a36 fix(node_dump): Please shellcheck 2021-05-06 14:19:09 +02:00
k32 f3083601ff fix(node_dump): Avoid collecting old log files 2021-05-06 14:19:09 +02:00
k32 1db8483bb3 feat(node_dump): Hide `secret' configuration keys
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2021-05-06 14:19:09 +02:00
k32 e6c85dfb04 fix(node_dump): Attempt to censor passwords 2021-05-06 14:19:09 +02:00
k32 d913a7d20d feat(node_dump): Create a node dump script 2021-05-06 14:19:09 +02:00
Zaiming Shi 2a9a5e74d7 fix(bin/emqx): print cuttlefish error 2021-04-10 08:48:13 +00:00
Yudai Kiyofuji e3a5f65c88
feat(config): print override env (#4517) 2021-04-09 16:28:01 +02:00
Zaiming Shi a8a9bda484 chore(bin/emqx): Fix typo 2021-04-02 15:53:19 +08:00
z8674558 299d489ef9 refactor(bin/emqx): use cuttlefish `get` to get values from .conf 2021-04-02 08:42:58 +02:00
Zaiming Shi d4c6b6b926 chore(scripts): ensure no space in cookie 2021-03-29 09:40:10 +02:00
Zaiming Shi a898f6be1e chore(scripts): boot commands also need node name and cookie 2021-03-24 16:21:15 +01:00
Zaiming Shi 6476a5ea92 fix(script): nodetool use remsh prefixed node name 2021-03-24 16:21:15 +01:00
Zaiming Shi 4ee0dbdea4 fix(scripts): Finds node name and cookie from vm.args
For node name and cookie overriden from environment variable
the only way to find it from another shell is to inspect
the vm.args file.

For node boot commands, the vm.args file may not have been created
yet, so we need to inspect node name in emqx.conf
2021-03-24 16:21:15 +01:00
zhanghongtong b732d87da9 chore(script): delete emqx_env 2021-03-23 23:08:56 +08:00
zhanghongtong 106b738a89 chore(script): make emqx work with docker entrypoint 2021-03-23 23:08:56 +08:00
Zaiming Shi 78afdd8b57 chore(script): make emqx_ctl work with docker entrypoint 2021-03-23 22:44:37 +08:00
Zaiming Shi 09c4f6eef0 chore(boot): Do not ps -ef inspect node name
In case there are multiple nodes running
the current code (before this commit) will fail

If we choose to fix, it may stop the wrong node
2021-03-23 14:48:03 +01:00
Zaiming Shi 178404c821 chore(build): add rebar_mix plugin 2021-03-19 12:22:43 +01:00
Zaiming Shi 96bd561790 feat(windows): Support environment variable override for windows 2021-03-16 11:26:17 +01:00
Zaiming Shi b629a6c58c chore(scripts): fix typo for var names 2021-03-09 20:22:48 +01:00
turtleDeng 115397523d
chore(build): add more enterprise build support (#4302) 2021-03-08 20:47:31 +08:00
Zaiming Shi 5d71e51985 fix(config): Do not allow customizing cuttlefish env override prefix
We have quite a few EMQX_ prefixed variables used in bash scripts
having to meta-programming bash is not quite readable
2021-03-02 15:29:44 +01:00
Zaiming Shi fc03d7aea9 fix(config): use config value default log.to for daemon mode 2021-03-02 15:28:13 +01:00
Zaiming Shi 6b2949e2c1 chore(config): Change default log_to config
By default log to file.
When start from console or forgreground, only log to console.
Only log to file for package builds.
2021-03-02 14:05:04 +01:00
Zaiming Shi 7bf5bb26e7 fix(scripts): Ensure ekka in ERL_LIBS for remote nodes 2021-03-02 18:55:55 +08:00
Zaiming Shi 98b319a0c0
Merge pull request #4190 from zmstone/refactor-assing-names-to-listeners
feat(listeners): Add identifier to listeners
2021-02-19 07:50:27 +01:00
Zaiming Shi 64cfaf4385 improve(print): io:format error message without indentation
Avoid squeezing lines to the right.
2021-02-19 07:45:37 +01:00
z8674558 74b7ea34d9 feat(bin): let cuttlefish read env var 2021-02-19 01:09:06 +09:00
Yudai Kiyofuji aadd1ba11a
add shellcheck to ci (#4126)
* chore(shell): disable some shellcheck

* refactor(shell): fix shellcheck

* test(ci): add shellcheck
2021-02-04 16:51:48 +09:00
Zaiming Shi d13a33463f chore(bin/emqx): set program name 2021-01-29 09:42:35 +08:00
Zaiming Shi cf23d9efe9 chore(bin/emqx): Do not rely on beam.smp program name 2021-01-29 09:42:35 +08:00
Zaiming Shi cbc07d9937 fix(bin/emqx): Fix the boot file path for start_clean 2021-01-15 09:31:01 +01:00
Zaiming Shi 084ce97d41 fix(rel): rel_vsn renamed to release_version 2020-12-08 22:28:46 +01:00
terry-xiaoyu 151d820058 feature(project): change to rebar3 umbrella project 2020-10-31 11:07:25 +08:00
Ery Lee 1e02cd1363 rm bin and fix README 2012-12-26 14:44:19 +08:00
erylee 425bc2157e add auth support 2012-12-22 16:42:32 +08:00
erylee efc1d9f424 add bin/ and some files 2012-12-21 17:33:21 +08:00