summaryrefslogtreecommitdiffhomepage
path: root/tools (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2024-09-16tools/unitctl: rename app -> apps, fix readmeGabor Javorszky3-4/+5
Signed-off-by: Gabor Javorszky <g.javorszky@f5.com>
2024-09-16tools/unitctl: whitespace fixesGabor Javorszky1-5/+17
Signed-off-by: Gabor Javorszky <g.javorszky@f5.com>
2024-09-16unitctl: Don't track unit-openapi/.openapi-generator/Andrew Clayton3-156/+1
The two files under unit-openapi/.openapi-generator/, FILES and VERSIONS are auto-generated. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2024-08-01tools/unitctl: make application directory configurableAva Hahn4-12/+23
* default behavior is now a read write application mount * use can specify a flag (-r) to mount app dir as read only Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-08-01tools/unitctl: reword freeform message for outputGabor Javorszky1-6/+6
2024-08-01tools/unitctl: make json-pretty default output fmtGabor Javorszky1-2/+2
2024-08-01tools/unitctl: remove (default) from option textGabor Javorszky1-6/+6
2024-07-29tools/unitctl: update readmeAva Hahn1-6/+8
Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-07-29tools/unitctl: update readmeAva Hahn1-10/+84
Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-07-29build(deps): bump openssl from 0.10.64 to 0.10.66 in /tools/unitctldependabot[bot]1-4/+4
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.64 to 0.10.66. - [Release notes](https://github.com/sfackler/rust-openssl/releases) - [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.64...openssl-v0.10.66) --- updated-dependencies: - dependency-name: openssl dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
2024-07-08tools/unitctl: Enable Multi Socket SupportAva Hahn12-202/+282
This commit refactors the CLI code to accept multiple instances of the control socket flag. All subcommands except for edit and save now support being run against multiple specified instances of unitd. * control_socket_addresses CLI field is now a vector * centralize error related logic into the error module * wait_for_socket now returns a vector of sockets. all sockets in vector are waited upon and validated * extraneous code is removed * applications, execute, import, listeners, and status commands all run against N control sockets now * edit and save commands return error when run against a single control socket Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-06-19tools/unitctl: unitctl exportAva Hahn7-22/+130
* new subcommand for "export" in CLI * new cmd submodule for exporting config tarballs * logic to also output to stdout * README additions * limitations documented Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-06-18tools/unitctl: implement application subcommandAva Hahn14-136/+251
* application subcommand UI schema * application subcommand handler * additions to unit-client-rs to expose application API * elaborate on OpenAPI error handling * adds wasm and wasi app schemas to OpenAPI Schema * updates tools/unitctl OpenAPI library * many linter fixes * README.md updates Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-06-18tools/unitc: Redirect stderr for curl feature testLiam Crilly1-1/+1
[ Tweaked subject prefix - Andrew ] Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2024-06-12Tools: improved error handling for unitcLiam Crilly1-24/+52
This patch does a number of things to help when failing to apply a new configuration. * The error body from the Unit control API is displayed which can have useful troubleshooting information (when the version of curl supports it). * When using the EDIT option, the temporary file with unapplied changes is preserved so that the user can edit it again without losing their work. * Editing JavaScript modules no longer requires that module to have been enabled. * Failure to apply edited JavaScript modules now rolls-back to the previous configuration instead of deleting the module. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2024-05-20tools/unitctl: Replace format! with .to_string()Gabor Javorszky1-1/+1
2024-05-20tools/unitctl: Replace matching image name to matching commandGabor Javorszky1-3/+4
Closes #1254 Matching to the `unitd` command is a far more reliable way to filtering docker instances that are running Unit.
2024-05-14ci: Add unit testing to unitctl CI workflowAva Hahn1-0/+1
* fix a few misspellings in unitctl CI workflow * add unit testing job * exclude unitd integration test from unit tests * add workflow dispatch trigger * add calls to get workflow dispatch version Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-05-09Add unitctl build and release CIDylan Arbour1-0/+1
Adds a GitHub Actions workflow that builds and releases unitctl binaries when a tag prefixed with `unitctl/` is pushed. Binaries are built on pull-requests that change any files within `tools/unitctl`, on `master` branch pushes and when `unitctl/` prefixed tags are pushed.
2024-05-08tools/unitctl: enable passing IP addresses to the 'instances new' commandAva Hahn7-81/+235
* use path seperator constant from rust std package * pass a ControlSocket into deploy_new_container instead of a string * parse and validate a ControlSocket from argument to instances new * conditionally mount control socket only if its a unix socket * use create_image in a way that actually pulls nonpresent images * possibly override container command if TCP socket passed in * handle more weird error cases * add a ton of validation cases in the CLI command handler * add a nice little progress bar :) Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-05-08tools/unitctl: clean up control socket implsAva Hahn1-87/+87
Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-05-08tools/unitctl: Update host_path() to account for OSX special behaviourAva Hahn2-9/+32
Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-05-08tools/unitctl: Improve quality of life on osxAva Hahn2-9/+23
* unit-client-rs Mac build fix * elaborate in Readme on build requirements with examples for Mac users. Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-05-08tools/unitctl: Readme fixesAva Hahn1-12/+12
* fix Unit spelling in Readme * remove trailiing whitespace Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-05-08tools/unitctl: temporarily ignore issues with autogenerated readmeAva Hahn1-0/+1
Suggested-by: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-05-08tools/unitctl: Add new functionality to README.md and fmt codeAva Hahn6-108/+140
Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-05-08tools/unitctl: Add Docker deployment functionalityAva Hahn3-10/+108
* add UnitdDockerError type * write complete procedure to deploy unit via docker * additional tweaks verifying it fails peacefully * print important information in client Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-05-08tools/unitctl: API Plumbing for docker deploymentsAva Hahn4-27/+91
* refactored "instance" command out of enum * plumbed through function stub from client library * error handling Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-05-08tools/unitctl: Initial Docker ProceduresAva Hahn17-185/+990
* move UnitdProcess serialization logic into UnitdProcess * filter out docker processes from process output on Linux * initial implementation of a UnitdContainer type * initial implementation of a docker container search for unitd * pull out custom openapi future executor and use same tokio runtime as docker client * refactor openapi client to not manage its own tokio runtime * process mount points per docker container * correctly output docker container info in relevant unitd instances * create UnitdProcess from UnitdContainer * UnitdProcess now owns UnitdContainer * get and parse container details from docker API * introduce procedure to rewrite file paths based on docker container mounts * test path rewrite facilities * apply path rewrite to unix socket Signed-off-by: Ava Hahn <a.hahn@f5.com>
2024-04-30tools: Add unitctl section to the READMETaryn Musgrave1-0/+12
Co-developed-by: Ava Hahn <a.hahn@f5.com> Signed-off-by: Ava Hahn <a.hahn@f5.com> [ Tweak subject and cli => unitctl in README - Andrew ] Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2024-04-30tools: Add unitctl CLIAva Hahn54-0/+7212
* Pull in entire unit-rust-sdk project * not included: CLA, COC, License * not included: duplicate openapi spec * not included: CI workflows * not included: changelog tooling * not included: commitsar tooling * not included: OpenAPI Web UI feature * update links in unitctl manpage * remove IDE configuration from .gitignore * rename Containerfile.debian to Dockerfile * simplify call to uname * keep Readmes and Makefiles to 80 character lines * outline specifically how to build unitctl for any desired target, and where to then find the binary for use * remove a section on the vision of the CLI which was superfluous given the state of completeness of the code and its use in unit * remove out of date feature proposals from readme * makefile: do not run when Rustup is not present * bump mio version to latest * generate openapi client library on demand * generate-openapi only runs when not present * generate-openapi now a dependency of binary build targets * deleted autogenerated code * reverted readme and Cargo document to autogenerated state * add additional build requirement to Readme Co-developed-by: Elijah Zupancic <e.zupancic@f5.com> Signed-off-by: Elijah Zupancic <e.zupancic@f5.com> Signed-off-by: Ava Hahn <a.hahn@f5.com> Reviewed-by: Andrew Clayton <a.clayton@nginx.com> # non rust stuff [ tools/cli => tools/unitctl and subject tweak - Andrew ] Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2024-02-20Updated copyright notice.Andrei Zeliankou2-2/+2
2024-02-20Tools: setup-unit: ctl edit: Append suffix to tmp file nameAlejandro Colomar1-1/+6
This allows the editor(1) to enable syntax highlighting. See suffixes(7). Cc: Liam Crilly <liam@nginx.com> Reviewed-by: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-02-20Tools: setup-unit: Fix error messageAlejandro Colomar1-1/+1
Reviewed-by: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-02-20Tools: setup-unit: ctl edit: Print file name on errorAlejandro Colomar1-0/+9
When editing the configuration in-place, it's easy to make a mistake. If the configuration is wrong, it will be passed to the control socket, which will reject it, keeping the old configuration. Those manual edits would be lost, which can make it very uncomfortable to edit in-place. By printing the name of the temporary file, we allow the user to recover the changes. Cc: Liam Crilly <liam@nginx.com> Reviewed-by: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-02-20Tools: setup-unit: Pass --fail-with-body to curl(1)Alejandro Colomar1-1/+1
Suggested-by: Liam Crilly <liam@nginx.com> Reviewed-by: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-02-20Tools: setup-unit: De-duplicate codeAlejandro Colomar1-78/+22
Centralize handling of the ssh(1) tunnel in the ctl command. This is possible now that we do the cleanup with trap(1). Reviewed-by: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-02-20Tools: setup-unit: Use trap(1) to handle cleanupAlejandro Colomar1-20/+33
This allows listening to command exit statuses. Before this change, we had to ignore the exit status of curl(1) (and a few other commands), since otherwise the script would go kaboom and not cleanup the ssh(1) tunnels. Fixes: 543d478e1236 ("Tools: setup-unit: ctl: added "edit" subcommand.") Fixes: 3778877eb3be ("Tools: Added subcommands to setup-unit.") Reviewed-by: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-02-20Tools: Fix typo in tools/README.mdDan Callahan1-1/+1
As suggested by @lcrilly
2024-02-19Tools: disambiguate unitc control socket detectionLiam Crilly1-2/+2
Now that unitd has multiple --control* startup options, locating the address of the control socket requires additional precision. Signed-off-by: Liam Crilly <liam.crilly@nginx.com> Acked-by: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2024-01-23Tools: setup-unit: -hh: Add short-cut for the advanced helpAlejandro Colomar1-5/+5
I hate having to type so much just for the useful help. Reviewed-by: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-01-23Tools: setup-unit: -hh: The advanced commands aren't experimentalAlejandro Colomar1-2/+1
I've been using them for a long time, and they are quite useful and stable. Let's say they're advanced instead of experimental. Reviewed-by: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-01-23Tools: setup-unit: -hh: Add missing documentation for 'restart'Alejandro Colomar1-1/+5
Reviewed-by: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-01-16White space formatting fixesAndrei Zeliankou2-7/+7
Closes: <https://github.com/nginx/unit/pull/1062>
2023-10-18Tools: unitc remote mode edit fix.Liam Crilly1-2/+2
Previously, the edit method created a temporary file that was then sent to curl(1) as --data-binary @filename.tmp. This did not work with remote instances because the temporary file is not on the remote host. The edit method now passes the configuration to curl(1) using stdin, the same way as for all other configuration changes.
2023-10-16Tools: unitc Docker mode.Liam Crilly2-21/+43
Introduces a new remote host scheme docker:// that specifies a local container ID. By default, the control socket is assumed to be in the default location, as per the Docker Official Images for Unit. If not, the path to the control socket can be appended to the container ID.
2023-10-10Tools: unitc YAML mode.Liam Crilly2-7/+55
Added --format option to manage configuration in other formats. Initially, YAML is the only supported conversion format. JSON/YAML conversion is performed with yq(1). Suggested by: Torstein Krause Johansen <https://github.com/skybert> Closes: #958 <https://github.com/nginx/unit/issues/958>
2023-10-03Tools: unitc quiet mode fix for macOS.Liam Crilly1-1/+1
head -c 0 does not work on macOS (invalid byte count) but tail(1) is happy to accept zero bytes, and does not have a performance penalty.
2023-06-30Tools: setup-unit: ctl: added "edit" subcommand.Alejandro Colomar1-0/+112
Almost equivalent to b42f6b1d ("Tools: unitc edit mode for interactive configuration."), implemented by Liam in tools/unitc. I chose to give preference to vi(1) over vim(1) because Debian has vi(1) as part of update-alternatives(1), so that sysadmins can configure it to be a symlink to their favourite vi(1) implementation or variant. We're ignoring the errors of the commands due to having the SSH tunnel open. I should fix the script to use traps to close the tunnel on any error, so we don't leak tunnels. Then, we'll be able to not ignore curl(1) or editor errors. That will also probably allow moving the tunneling code to the ctl command, thus deduplicating code. Cc: Liam Crilly <liam@nginx.com> Cc: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Alejandro Colomar <alx@nginx.com>
2023-06-27Tools: setup-unit: restart: added -l and -s flags.Alejandro Colomar1-2/+46
Add flags for cleaning the log file and state dir. Reviewed-by: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Alejandro Colomar <alx@nginx.com>