lib/nexussw/lxd/transport/mixins/helpers/users.rb in lxd-common-0.9.5 vs lib/nexussw/lxd/transport/mixins/helpers/users.rb in lxd-common-0.9.6
- old
+ new
@@ -5,14 +5,16 @@
class Transport
module Mixins
module Helpers
module UsersMixin
def user(user_nameorid, options = {})
+ return unless user_nameorid
passwd = read_file options[:passwd_file] || '/etc/passwd'
# rework into .split(':') if this gets more complicated
@uid = user_nameorid.is_a?(String) ? passwd[/^#{user_nameorid}:[^:]*:([^:]*):/, 1] : user_nameorid
@username = user_nameorid.is_a?(String) ? user_nameorid : passwd[/^([^:]*):[^:]*:#{user_nameorid}:/, 1]
+ raise "User not found (#{user_nameorid}) while attempting to set transport identity" unless @uid && @username
# gotcha: we're always setting the default group here, but it's changeable by the user, afterwards
# so if `user` gets called again, and the caller wants an alternative gid, the caller will need to re-set the gid
@gid = passwd[/^[^:]*:[^:]*:#{uid}:([^:]*):/, 1]
end