From 3aa83897493b283854fdd89e46d2a701a3f6b880 Mon Sep 17 00:00:00 2001 From: Scott Schneider Date: Tue, 30 Jun 2015 10:38:59 -0700 Subject: [PATCH] Discard/skip empty tags --- lib/vmpooler/api/v1.rb | 2 ++ spec/vmpooler/api/v1_spec.rb | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/lib/vmpooler/api/v1.rb b/lib/vmpooler/api/v1.rb index dfba6fb..8fdc590 100644 --- a/lib/vmpooler/api/v1.rb +++ b/lib/vmpooler/api/v1.rb @@ -499,6 +499,8 @@ module Vmpooler arg[tag] = arg[tag].match(filter).captures.join if arg[tag].match(filter) end + next if arg[tag].nil? or arg[tag].empty? + backend.hset('vmpooler__vm__' + params[:hostname], 'tag:' + tag, arg[tag]) backend.hset('vmpooler__tag__' + Date.today.to_s, params[:hostname] + ':' + tag, arg[tag]) end diff --git a/spec/vmpooler/api/v1_spec.rb b/spec/vmpooler/api/v1_spec.rb index 788bc24..7c17b82 100644 --- a/spec/vmpooler/api/v1_spec.rb +++ b/spec/vmpooler/api/v1_spec.rb @@ -323,6 +323,15 @@ describe Vmpooler::API::V1 do expect(last_response.status).to eq(200) end + it 'skips empty tags' do + put "#{prefix}/vm/testhost", '{"tags":{"tested_by":""}}' + + expect(last_response).to be_ok + expect(last_response.header['Content-Type']).to eq('application/json') + expect(last_response.body).to eq(JSON.pretty_generate({'ok' => true})) + expect(last_response.status).to eq(200) + end + it 'does not set tags if request body format is invalid' do put "#{prefix}/vm/testhost", '{"tags":{"tested"}}'