class Chef::Knife::UserTarUpload
Public Class Methods
upload_users(tar_file)
click to toggle source
# File lib/chef/knife/user_tar_upload.rb, line 27 def self.upload_users(tar_file) current_users = Chef::User.list.keys users_loader = Chef::Knife::Core::ObjectLoader.new(Chef::User, ui) tar_file.web_users.each do |web_user_path| unless users_loader.find_file("users", web_user_path).nil? user_hash = Yajl::Parser.parse(IO.read(web_user_path)) end user = Chef::User.from_hash(user_hash) # Update existing users, otherwise save the new user if current_users.include? user.name user.update else user.save end ui.info("Updated User : #{user.name}") end end
Public Instance Methods
run()
click to toggle source
# File lib/chef/knife/user_tar_upload.rb, line 14 def run #Get Arguments if @name_args.size != 1 ui.info("Please specify a tar path") show_usage exit 1 end tar_file = Chef::TarFile.new(@name_args.first) UserTarUpload.upload_users tar_file end