Return-Path: X-Original-To: apmail-deltacloud-dev-archive@www.apache.org Delivered-To: apmail-deltacloud-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E9C0DDE97 for ; Thu, 6 Sep 2012 12:20:43 +0000 (UTC) Received: (qmail 81760 invoked by uid 500); 6 Sep 2012 12:20:43 -0000 Delivered-To: apmail-deltacloud-dev-archive@deltacloud.apache.org Received: (qmail 81531 invoked by uid 500); 6 Sep 2012 12:20:43 -0000 Mailing-List: contact dev-help@deltacloud.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@deltacloud.apache.org Delivered-To: mailing list dev@deltacloud.apache.org Received: (qmail 81275 invoked by uid 99); 6 Sep 2012 12:20:38 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Sep 2012 12:20:38 +0000 X-ASF-Spam-Status: No, hits=-5.0 required=5.0 tests=RCVD_IN_DNSWL_HI,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of mfojtik@redhat.com designates 209.132.183.28 as permitted sender) Received: from [209.132.183.28] (HELO mx1.redhat.com) (209.132.183.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Sep 2012 12:20:30 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q86CK9jJ006511 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 6 Sep 2012 08:20:09 -0400 Received: from dhcp-29-121.brq.redhat.com (dhcp-29-121.brq.redhat.com [10.34.29.121]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id q86CK6KU002454 for ; Thu, 6 Sep 2012 08:20:08 -0400 From: mfojtik@redhat.com To: dev@deltacloud.apache.org Subject: [PATCH core 3/4] Core: Removed 'root_url' mappings from all servers Date: Thu, 6 Sep 2012 14:20:55 +0200 Message-Id: <1346934060-86354-3-git-send-email-mfojtik@redhat.com> In-Reply-To: <1346934060-86354-1-git-send-email-mfojtik@redhat.com> References: <1346934060-86354-1-git-send-email-mfojtik@redhat.com> X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 From: Michal Fojtik * All servers are now internally mapped on '/' URL. * Rack::Builder maps servers on proper frontend URI. * This obsolete 'route_for' and 'root_url' helpers * This allow to use Sinatra 'url' helper to generate absolute URLs Signed-off-by: Michal fojtik --- server/lib/cimi/helpers.rb | 2 -- server/lib/cimi/server.rb | 4 ++-- server/lib/deltacloud/collections/addresses.rb | 2 +- server/lib/deltacloud/collections/buckets.rb | 6 +++--- server/lib/deltacloud/collections/firewalls.rb | 2 +- server/lib/deltacloud/collections/instances.rb | 2 +- server/lib/deltacloud/collections/keys.rb | 2 +- .../lib/deltacloud/collections/storage_volumes.rb | 2 +- server/lib/deltacloud/helpers.rb | 8 +------- server/lib/deltacloud/server.rb | 19 ++++++++----------- 10 files changed, 19 insertions(+), 30 deletions(-) diff --git a/server/lib/cimi/helpers.rb b/server/lib/cimi/helpers.rb index 2dba3be..bf268f8 100644 --- a/server/lib/cimi/helpers.rb +++ b/server/lib/cimi/helpers.rb @@ -70,8 +70,6 @@ module CIMI::Collections set :views, root + '/views/cimi' set :public_folder, root + '/public' - Sinatra::Rabbit.set :root_path, "#{config.root_url}/" - error do report_error end diff --git a/server/lib/cimi/server.rb b/server/lib/cimi/server.rb index 0c78a2a..cbb6486 100644 --- a/server/lib/cimi/server.rb +++ b/server/lib/cimi/server.rb @@ -45,8 +45,8 @@ module CIMI include CIMI::Collections include CIMI::Model - get Deltacloud[:cimi].root_url do - redirect Deltacloud[:cimi].root_url + '/cloudEntryPoint', 301 + get '/' do + redirect url('/cloudEntryPoint'), 301 end end diff --git a/server/lib/deltacloud/collections/addresses.rb b/server/lib/deltacloud/collections/addresses.rb index 622a949..664b80d 100644 --- a/server/lib/deltacloud/collections/addresses.rb +++ b/server/lib/deltacloud/collections/addresses.rb @@ -18,7 +18,7 @@ module Deltacloud::Collections set :capability, lambda { |m| driver.respond_to? m } - get route_for('/addresses/:id/associate') do + get '/addresses/:id/associate' do @address = driver.address(credentials, params ) @instances = driver.instances(credentials) respond_to do |format| diff --git a/server/lib/deltacloud/collections/buckets.rb b/server/lib/deltacloud/collections/buckets.rb index bb2a805..1b00033 100644 --- a/server/lib/deltacloud/collections/buckets.rb +++ b/server/lib/deltacloud/collections/buckets.rb @@ -24,7 +24,7 @@ module Deltacloud::Collections new_route_for :buckets - get route_for('/buckets/:bucket/%s' % NEW_BLOB_FORM_ID) do + get '/buckets/:bucket/%s' % NEW_BLOB_FORM_ID do @bucket_id = params[:bucket] respond_to do |format| format.html {haml :"blobs/new"} @@ -32,7 +32,7 @@ module Deltacloud::Collections end - head route_for('/buckets/:bucket/:blob') do + head '/buckets/:bucket/:blob' do @blob_id = params[:blob] @blob_metadata = driver.blob_metadata(credentials, {:id => params[:blob], 'bucket' => params[:bucket]}) if @blob_metadata @@ -49,7 +49,7 @@ module Deltacloud::Collections end end - put route_for("/buckets/:bucket/:blob") do + put "/buckets/:bucket/:blob" do if(env["BLOB_SUCCESS"]) #ie got a 200ok after putting blob content_type = env["CONTENT_TYPE"] content_type ||= "" diff --git a/server/lib/deltacloud/collections/firewalls.rb b/server/lib/deltacloud/collections/firewalls.rb index 0046cf3..47ab68f 100644 --- a/server/lib/deltacloud/collections/firewalls.rb +++ b/server/lib/deltacloud/collections/firewalls.rb @@ -22,7 +22,7 @@ module Deltacloud::Collections check_features :for => lambda { |c, f| driver.class.has_feature?(c, f) } - get route_for('/firewalls/:id/new_rule') do + get '/firewalls/:id/new_rule' do @firewall_name = params[:id] respond_to do |format| format.html {haml :"firewalls/new_rule" } diff --git a/server/lib/deltacloud/collections/instances.rb b/server/lib/deltacloud/collections/instances.rb index 742b16a..f7d2646 100644 --- a/server/lib/deltacloud/collections/instances.rb +++ b/server/lib/deltacloud/collections/instances.rb @@ -31,7 +31,7 @@ module Deltacloud::Collections @keys = driver.keys(credentials) if driver.class.has_feature? :instances, :authentication_key end - get route_for('/instances/:id/run') do + get '/instances/:id/run' do respond_to do |format| @instance = driver.instances(credentials, :id => params[:id]).first format.html {haml :"instances/run_command" } diff --git a/server/lib/deltacloud/collections/keys.rb b/server/lib/deltacloud/collections/keys.rb index bb9859d..fa1b3e0 100644 --- a/server/lib/deltacloud/collections/keys.rb +++ b/server/lib/deltacloud/collections/keys.rb @@ -21,7 +21,7 @@ module Deltacloud::Collections set :capability, lambda { |m| driver.respond_to? m } check_features :for => lambda { |c, f| driver.class.has_feature?(c, f) } - get route_for('/keys/new') do + get '/keys/new' do respond_to do |format| format.html { haml :"keys/new" } end diff --git a/server/lib/deltacloud/collections/storage_volumes.rb b/server/lib/deltacloud/collections/storage_volumes.rb index 99f99f2..53d646d 100644 --- a/server/lib/deltacloud/collections/storage_volumes.rb +++ b/server/lib/deltacloud/collections/storage_volumes.rb @@ -21,7 +21,7 @@ module Deltacloud::Collections new_route_for(:storage_volumes) - get route_for("/storage_volumes/:id/attach_instance") do + get "/storage_volumes/:id/attach_instance" do @instances = driver.instances(credentials) respond_to do |format| format.html{ haml :"storage_volumes/attach"} diff --git a/server/lib/deltacloud/helpers.rb b/server/lib/deltacloud/helpers.rb index 6566c59..872c239 100644 --- a/server/lib/deltacloud/helpers.rb +++ b/server/lib/deltacloud/helpers.rb @@ -49,8 +49,6 @@ module Deltacloud::Collections set :views, root + '/views' set :public_folder, root + '/public' - Sinatra::Rabbit.set :root_path, "#{config.root_url}/" - error do report_error end @@ -73,7 +71,7 @@ module Deltacloud::Collections end def self.new_route_for(route, &block) - get route_for('/' + route.to_s + '/new') do + get '/' + route.to_s + '/new' do instance_eval(&block) if block_given? respond_to do |format| format.html do @@ -87,9 +85,5 @@ module Deltacloud::Collections Sinatra::Rabbit.set :check_features, opts[:for] end - def self.route_for(url) - "#{settings.root_url}#{url}" - end - end end diff --git a/server/lib/deltacloud/server.rb b/server/lib/deltacloud/server.rb index c60edfa..fcd24d9 100644 --- a/server/lib/deltacloud/server.rb +++ b/server/lib/deltacloud/server.rb @@ -36,7 +36,6 @@ module Deltacloud use Deltacloud[:deltacloud].logger unless RUBY_PLATFORM == 'java' use Rack::Date use Rack::ETag - use Rack::MatrixParams use Rack::DriverSelect use Rack::Accept use Rack::MediaType @@ -46,7 +45,7 @@ module Deltacloud set :config, Deltacloud[:deltacloud] - get Deltacloud.config[:deltacloud].root_url + '/?' do + get '/' do if params[:force_auth] return [401, 'Authentication failed'] unless driver.valid_credentials?(credentials) end @@ -57,24 +56,22 @@ module Deltacloud end end - options Deltacloud.config[:deltacloud].root_url + '/?' do + options '/' do headers 'Allow' => supported_collections { |c| c.collection_name }.join(',') end - post Deltacloud.config[:deltacloud].root_url + '/?' do + post '/' do param_driver, param_provider = params["driver"], params["provider"] if param_driver - redirect "#{Deltacloud.config[:deltacloud].root_url}\;driver=#{param_driver}", 301 + redirect "#{root_url};driver=#{param_driver}", 301 elsif param_provider && param_provider != "default" -#FIXME NEEDS A BETTER WAY OF GRABBING CURRENT DRIVER FROM MATRIX PARAMS... - current_matrix_driver = env['HTTP_REFERER'] ? env["HTTP_REFERER"].match(/\;(driver)=(\w*).*$/i) : nil - if current_matrix_driver - redirect "#{Deltacloud.config[:deltacloud].root_url}\;driver=#{$2}\;provider=#{param_provider}", 301 + if request.referrer and request.referrer[/\;(driver)=(\w*).*$/i] + redirect "#{root_url};driver=#{$2}\;provider=#{param_provider}", 301 else - redirect "#{Deltacloud.config[:deltacloud].root_url}\;provider=#{param_provider}", 301 + redirect "#{root_url};provider=#{param_provider}", 301 end else - redirect "#{Deltacloud.config[:deltacloud].root_url}", 301 + redirect url('/'), 301 end end -- 1.7.10.2