diff --git a/lib/puppet/parser/functions/docker_service_flags.rb b/lib/puppet/parser/functions/docker_service_flags.rb index 7ee5255..d6333fa 100644 --- a/lib/puppet/parser/functions/docker_service_flags.rb +++ b/lib/puppet/parser/functions/docker_service_flags.rb @@ -1,99 +1,99 @@ # frozen_string_literal: true require 'shellwords' # # docker_service_flags.rb # module Puppet::Parser::Functions # Transforms a hash into a string of docker swarm init flags newfunction(:docker_service_flags, type: :rvalue) do |args| opts = args[0] || {} flags = [] if opts['service_name'] && opts['service_name'].to_s != 'undef' flags << "'#{opts['service_name']}'" end if opts['detach'].to_s != 'false' flags << '--detach' end if opts['env'].is_a? Array opts['env'].each do |env| - flags << "--env #{env}" + flags << "--env '#{env}'" end end if opts['label'].is_a? Array opts['label'].each do |label| flags << "--label #{label}" end end if opts['mounts'].is_a? Array opts['mounts'].each do |mount| flags << "--mount #{mount}" end end if opts['networks'].is_a? Array opts['networks'].each do |network| flags << "--network #{network}" end end if opts['publish'].is_a? Array opts['publish'].each do |port| flags << "--publish #{port}" end elsif opts['publish'] && opts['publish'].to_s != 'undef' flags << "--publish '#{opts['publish']}'" end if opts['replicas'] && opts['replicas'].to_s != 'undef' flags << "--replicas '#{opts['replicas']}'" end if opts['tty'].to_s != 'false' flags << '--tty' end if opts['user'] && opts['user'].to_s != 'undef' flags << "--user '#{opts['user']}'" end if opts['workdir'] && opts['workdir'].to_s != 'undef' flags << "--workdir '#{opts['workdir']}'" end if opts['extra_params'].is_a? Array opts['extra_params'].each do |param| flags << param end end if opts['host_socket'] && opts['host_socket'].to_s != 'undef' flags << "-H '#{opts['host_socket']}'" end if opts['registry_mirror'].is_a? Array opts['registry_mirror'].each do |param| flags << "--registry-mirror='#{param}'" end elsif opts['registry_mirror'] && opts['registry_mirror'].to_s != 'undef' flags << "--registry-mirror='#{opts['registry_mirror']}'" end if opts['image'] && opts['image'].to_s != 'undef' flags << "'#{opts['image']}'" end if opts['command'].is_a? Array flags << opts['command'].join(' ') elsif opts['command'] && opts['command'].to_s != 'undef' flags << opts['command'].to_s end flags.flatten.join(' ') end end diff --git a/spec/helper/get_docker_service_flags.rb b/spec/helper/get_docker_service_flags.rb index 07b493c..c33daec 100644 --- a/spec/helper/get_docker_service_flags.rb +++ b/spec/helper/get_docker_service_flags.rb @@ -1,93 +1,93 @@ # frozen_string_literal: true require 'shellwords' def get_docker_service_flags(args) flags = [] if args['service_name'] && args['service_name'].to_s != 'undef' flags << "'#{args['service_name']}'" end if args['detach'].to_s != 'false' flags << '--detach' end if args['env'].is_a? Array args['env'].each do |env| - flags << "--env #{env}" + flags << "--env '#{env}'" end end if args['label'].is_a? Array args['label'].each do |label| flags << "--label #{label}" end end if args['mounts'].is_a? Array args['mounts'].each do |mount| flags << "--mount #{mount}" end end if args['networks'].is_a? Array args['networks'].each do |network| flags << "--network #{network}" end end if args['publish'].is_a? Array args['publish'].each do |port| flags << "--publish #{port}" end elsif args['publish'] && args['publish'].to_s != 'undef' flags << "--publish '#{args['publish']}'" end if args['replicas'] && args['replicas'].to_s != 'undef' flags << "--replicas '#{args['replicas']}'" end if args['tty'].to_s != 'false' flags << '--tty' end if args['user'] && args['user'].to_s != 'undef' flags << "--user '#{args['user']}'" end if args['workdir'] && args['workdir'].to_s != 'undef' flags << "--workdir '#{args['workdir']}'" end if args['extra_params'].is_a? Array args['extra_params'].each do |param| flags << param end end if args['host_socket'] && args['host_socket'].to_s != 'undef' flags << "-H '#{args['host_socket']}'" end if args['registry_mirror'].is_a? Array args['registry_mirror'].each do |param| flags << "--registry-mirror='#{param}'" end elsif args['registry_mirror'] && args['registry_mirror'].to_s != 'undef' flags << "--registry-mirror='#{args['registry_mirror']}'" end if args['image'] && args['image'].to_s != 'undef' flags << "'#{args['image']}'" end if args['command'].is_a? Array flags << args['command'].join(' ') elsif args['command'] && args['command'].to_s != 'undef' flags << args['command'].to_s end flags.flatten.join(' ') end