From 5347ec4a62df0ff2d76cb422d4115ec5b3adfd99 Mon Sep 17 00:00:00 2001 From: Luka Vandervelden Date: Sat, 4 Jan 2020 16:15:44 +0100 Subject: [PATCH] spec-defined users and groups. --- src/service/service.cr | 8 +++++++- src/service/service_definition.cr | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/service/service.cr b/src/service/service.cr index 7d3dbbc..57b561c 100644 --- a/src/service/service.cr +++ b/src/service/service.cr @@ -670,9 +670,15 @@ class Service @context.services.select(&.consumes?(token, self)) end - def user_name + def default_user_name full_id.sub('/', '.') end + def user_name + @reference.user || default_user_name + end + def group_name + @reference.group || default_user_name + end def get_uid_gid passwd = Passwd.new("/etc/passwd", "/etc/group") diff --git a/src/service/service_definition.cr b/src/service/service_definition.cr index 85155ce..d47b641 100644 --- a/src/service/service_definition.cr +++ b/src/service/service_definition.cr @@ -81,6 +81,7 @@ class ServiceDefinition getter readiness_check_command : String? getter directory : String? getter user : String? + getter group : String? getter provides : String? getter consumes : Array(Consumes) getter environment_variables : Array(String) @@ -101,6 +102,7 @@ class ServiceDefinition @readiness_check_command = specs["readiness-check-command"]?.try &.as_s @directory = specs["directory"]?.try &.as_s @user = specs["user"]?.try &.as_s + @group = specs["group"]?.try &.as_s @provides = specs["provides"]?.try &.as_a_or_s.map { |x| Provides.new x } || Array(Provides).new @consumes = specs["consumes"]?.try &.as_a_or_s.map { |x| Consumes.new x } || Array(Consumes).new @environment_variables = specs["environment-variables"]?.try &.as_a_or_s || Array(String).new