class Kaname::CLI
Public Instance Methods
apply()
click to toggle source
# File lib/kaname/cli.rb, line 25 def apply adapter = if options[:dryrun] Kaname::Adapter::ReadOnly.new else Kaname::Adapter::ReadAndWrite.new end if Kaname::Resource.yaml(options[:filename]) diffs = Hashdiff.diff(adapter.users_hash, Kaname::Resource.yaml) diffs.each do |diff| resource = diff[1].split('.') if resource.size == 1 # "user" if diff[0] == "+" user = adapter.create_user(resource[0], diff[2]['email']) diff[2]["tenants"].each do |tenant, role| adapter.create_user_role(tenant, user, role) end else adapter.delete_user(resource[0]) end elsif resource.size == 3 # "user.tenants.foo" user_hash = adapter.find_user(resource[0]) case diff[0] when "+" adapter.create_user_role(resource[2], user_hash, diff[2]) when "-" adapter.delete_user_role(resource[2], user_hash, diff[2]) when "~" adapter.change_user_role(resource[2], user_hash, diff[2], diff[3]) end else # "user.tenants" # XXX end end else puts "Please put you keystone configuration file named keystone.yml to current directory." end end
diff()
click to toggle source
# File lib/kaname/cli.rb, line 65 def diff puts Diffy::Diff.new(YAML.dump(Kaname::Adapter::ReadOnly.new.users_hash), YAML.dump(Kaname::Resource.yaml)) end
dump()
click to toggle source
# File lib/kaname/cli.rb, line 70 def dump puts YAML.dump(Kaname::Adapter::ReadOnly.new.users_hash) end
password()
click to toggle source
# File lib/kaname/cli.rb, line 9 def password puts "current_user: #{Kaname::Config.username}" print "type your current password: " old_password = STDIN.noecho(&:gets).strip puts print "type your new password: " new_password = STDIN.noecho(&:gets).strip puts Kaname::Adapter::ReadAndWrite.new.update_user_password(old_password, new_password) end