Commit Graph

61 Commits (27c9a525f617b9db4a2b4a39e3cd0569270cf7f7)

Author SHA1 Message Date
Luka Vandervelden 27c9a525f6 Service#root, Environment#root. 2019-10-26 14:00:11 +02:00
Luka Vandervelden 1f9264f97b Improved `service del`, `service stop`, grooming. 2019-10-25 18:40:27 +02:00
Luka Vandervelden 21e6943868 service del-environment 2019-10-25 17:59:53 +02:00
Luka Vandervelden 1bc9181caa Internal changes in gen-config.
Most data are now read from service files instead of the process’
environment. Some environment variables are still being used to identify
the target service, however.
2019-10-25 15:14:56 +02:00
Luka Vandervelden fe4bce0a44 gen-config: grooming 2019-10-25 13:21:22 +02:00
Luka Vandervelden add94be507 `service del` takes service ids as parameters 2019-10-25 13:15:44 +02:00
Luka Vandervelden bf2075be9e get-port has a proper CLI. 2019-10-25 13:10:20 +02:00
Luka Vandervelden e4741daeb3 service status: full id used in lists at all times. 2019-10-25 12:36:30 +02:00
Luka Vandervelden 5501c62f56 New environments don’t have a `name` field in their specs. 2019-10-25 12:35:30 +02:00
Luka Vandervelden 0fa6ec01c9 Environment#name is obtained from filename and not specs. 2019-10-25 12:34:21 +02:00
Luka Vandervelden 479dffc6a0 Fixes and improves `service show`’s CLI. 2019-10-25 12:28:39 +02:00
Luka Vandervelden a3c32905ee ServiceDefinition#name based on filename and not specs. 2019-10-25 12:24:25 +02:00
Luka Vandervelden bdeb23c275 Better handling of commands. 2019-10-24 20:31:38 +02:00
Luka Vandervelden 3ca16cfcce `service help` updated slightly. 2019-10-24 18:52:30 +02:00
Luka Vandervelden f085cac64e `service list` removed. 2019-10-24 18:50:23 +02:00
Luka Vandervelden de2b124d09 service add-environment <name>, bugfixes. 2019-10-24 18:29:22 +02:00
Luka Vandervelden c6dd306361 service: service add <service-id> [token=provider [...]] 2019-10-24 17:55:01 +02:00
Luka Vandervelden 60dc0917d4 get-port: / characters are replaced internally. 2019-10-24 15:48:03 +02:00
Luka Vandervelden 5ab14d4ee4 service: providers are identified by full ids internally. 2019-10-24 15:41:53 +02:00
Luka Vandervelden 440fde06f8 service: $SERVICE_ID is the long service id 2019-10-24 15:29:22 +02:00
Luka Vandervelden 035420cc9a gen-config: port() gets its output chomp’d. 2019-10-24 14:57:29 +02:00
Luka Vandervelden 10dcca2392 gen-config: random_password(id, name) 2019-10-24 14:29:35 +02:00
Luka Vandervelden 46eb8fa9c4 Exception catching. 2019-10-24 12:59:19 +02:00
Luka Vandervelden 925a8ee0fd `service status`: improved UI 2019-10-24 12:55:30 +02:00
Luka Vandervelden f40dbccc1f Template directories are Makefile-configured. 2019-10-24 00:41:55 +02:00
Luka Vandervelden 75d5fd7874 `status` can take several parameters or none. 2019-10-23 19:38:08 +02:00
Luka Vandervelden 6a0e35eecf gen-config binary added. 2019-10-20 18:09:43 +02:00
Luka Vandervelden 2dfcfcb979 Updates for configuration generation. 2019-10-20 18:05:31 +02:00
Luka Vandervelden 6237a9bb10 PID directory created as needed. 2019-10-19 18:43:40 +02:00
Luka Vandervelden 365e780055 Does not raise on missing directories. 2019-10-19 18:40:47 +02:00
Luka Vandervelden 794ffe16fa Bugfixes related to a dependency’s API changes. 2019-10-19 18:24:38 +02:00
Luka Vandervelden 3c20783f91 Updated dependencies and code for new Crystal version. 2019-10-19 18:08:34 +02:00
Luka Vandervelden c042a8eb84 CACHE_DIRECTORY in config.cr. 2019-10-19 18:01:29 +02:00
Luka Vandervelden 75e500adcf SpecFileParser update. 2019-08-15 17:29:52 +02:00
Luka Vandervelden 4eefe465f4 Providers are auto-guessed when adding services. 2019-08-10 22:29:11 +02:00
Luka Vandervelden 9e7921a803 `service add` can be specified token providers. 2019-08-10 22:02:11 +02:00
Luka Vandervelden efe2c0e964 Complete removal of YAML files. 2019-08-10 17:16:24 +02:00
Luka Vandervelden 3769303ad5 WIP support for .spec service files. 2019-08-08 17:12:23 +02:00
Luka Vandervelden 5dd27e1101 Priviledges management.
- `service status` does not require priviledges anymore… if the
    `status` binary is owned by root and has the setuid and setguid
    flags. Hopefully, that binary only checks that a service’s process
    exists.
2019-06-10 14:32:30 +02:00
Luka Vandervelden fbeece112a Bugfix.
Bug was revealed through manual integration testing. Checks used to be
ran as unpriviledged user instead of the actual service command (duh~).
2019-06-10 00:39:15 +02:00
Luka Vandervelden 15aa28ea86 errno errors reported as such. 2019-06-10 00:38:54 +02:00
Luka Vandervelden 38329bb15e project.zsh added and generated configuration. 2019-06-09 23:35:34 +02:00
Luka Vandervelden 5eb0849abd Project organisation for WIP separate binaries.
- The idea would be to allow running specific commands from SUID
    binaries when unpriviledged users should be able to run them. Such
    commands include getting services status, which need root
    priviledges to be implemented but shouldn’t be required by users.
  - Because the repository now builds several binaries, src/main.cr is
    now src/service.cr and a WIP src/status.cr has been added.
  - The `status` binary will likely be installed in libexec in the
    future, with the SUID bit set.
2019-06-09 18:08:59 +02:00
Luka Vandervelden 8a6829d803 Running daemons as a different user is now possible. 2019-06-09 17:14:18 +02:00
Luka Vandervelden 61c9f33f89 Sources split. 2019-06-09 16:59:05 +02:00
Luka Vandervelden 21f8d2d7d2 Service definitions can export environment variables. 2019-06-09 15:20:36 +02:00
Luka Vandervelden 5b864dcb58 evaluate()’s substitutions are now global. 2019-06-09 15:09:30 +02:00
Luka Vandervelden 73abf06a65 Improved checks.
- Environments can have checks, that are run before the service’s
    checks.
  - Directories can now be checked as well as files.
  - Failing checks now stop the start process with a Service::Exception.
  - Some variable substitution is done in check commands and tests.
  - Some environment variables related to the environment to run the
    service in are also exported.
2019-06-09 14:54:34 +02:00
Luka Vandervelden b17a258bc8 Improved error management on environment reading. 2019-06-09 13:51:29 +02:00
Luka Vandervelden 52e4bce548 “Native” environment type renamed to “Prefix”. 2019-06-09 13:50:49 +02:00