From 7bddfdef1b5415eebbbb4d86af6f4c0ab9748b60 Mon Sep 17 00:00:00 2001 From: Scott Schneider Date: Thu, 30 Apr 2015 19:16:27 -0700 Subject: [PATCH] Store token metadata in vmpooler__vm__ Redis hash --- lib/vmpooler/api/v1.rb | 11 +++++++++-- spec/vmpooler/api/v1_spec.rb | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/vmpooler/api/v1.rb b/lib/vmpooler/api/v1.rb index 5ff6019..2ef4e50 100644 --- a/lib/vmpooler/api/v1.rb +++ b/lib/vmpooler/api/v1.rb @@ -308,8 +308,15 @@ module Vmpooler backend.hset('vmpooler__active__' + key, vm, Time.now) backend.hset('vmpooler__vm__' + vm, 'checkout', Time.now) - if Vmpooler::API.settings.config[:auth] and has_valid_token? and config['vm_lifetime_auth'].to_i > 0 - backend.hset('vmpooler__vm__' + vm, 'lifetime', config['vm_lifetime_auth'].to_i) + if Vmpooler::API.settings.config[:auth] and has_valid_token? + backend.hset('vmpooler__vm__' + vm, 'token:token', request.env['HTTP_X_AUTH_TOKEN']) + backend.hset('vmpooler__vm__' + vm, 'token:user', + backend.hget('vmpooler__token__' + request.env['HTTP_X_AUTH_TOKEN'], 'user') + ) + + if config['vm_lifetime_auth'].to_i > 0 + backend.hset('vmpooler__vm__' + vm, 'lifetime', config['vm_lifetime_auth'].to_i) + end end result[key] ||= {} diff --git a/spec/vmpooler/api/v1_spec.rb b/spec/vmpooler/api/v1_spec.rb index 2b7ce03..687c865 100644 --- a/spec/vmpooler/api/v1_spec.rb +++ b/spec/vmpooler/api/v1_spec.rb @@ -177,6 +177,7 @@ describe Vmpooler::API::V1 do app.settings.set :redis, redis allow(redis).to receive(:exists).and_return '1' + allow(redis).to receive(:hget).with('vmpooler__token__abcdefghijklmnopqrstuvwxyz012345', 'user').and_return 'jdoe' allow(redis).to receive(:hset).and_return '1' allow(redis).to receive(:sadd).and_return '1' allow(redis).to receive(:scard).and_return '5'