From 07e566eb43c1c88769033655713182849b3ccafd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Font=C3=A1n=20Mui=C3=B1os?= Date: Wed, 22 Jul 2009 13:55:08 +0000 Subject: [PATCH] UploadImage and changed RegisterImage git-svn-id: http://svn.opennebula.org/one/trunk@725 3034c82b-c49b-4eb3-8279-a7acafdc01c0 --- src/oca/ec2/eco.rb | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/oca/ec2/eco.rb b/src/oca/ec2/eco.rb index 85015f2249..060fd24bd2 100644 --- a/src/oca/ec2/eco.rb +++ b/src/oca/ec2/eco.rb @@ -134,7 +134,8 @@ def authenticate(params) halt 401, "User does not exist" if !user - signature_params=params.reject {|key,value| key=='Signature' } + signature_params=params.reject {|key,value| + key=='Signature' or key=='file' } canonical=EC2.canonical_string(signature_params, CONFIG[:server]) signature=EC2.encode(user[:password], canonical, false) @@ -146,10 +147,29 @@ before do end +def upload_image(params) + user=get_user(params['AWSAccessKeyId']) + file=params["file"] + + # tmpfile where the file is stored + f_tmp=file[:tempfile] + img=$repoman.add(user[:id], f_tmp.path) + f_tmp.unlink + + @img_id=img.uuid + + erb :register_image +end + def register_image(params) user=get_user(params['AWSAccessKeyId']) + uuid=params['ImageLocation'] + + img=$repoman.get(uuid) + + halt 404, 'Image not found' if !img + halt 401, 'Not permited to use image' if user[:id]!=img[:owner] - img=$repoman.add(user[:id], params["ImageLocation"]) @img_id=img.uuid erb :register_image @@ -220,6 +240,8 @@ post '/' do pp params case params['Action'] + when 'UploadImage' + upload_image(params) when 'RegisterImage' register_image(params) when 'DescribeImages'