[PATCH conductor 3/3] Adds XML format for Provider Accounts API - show

pblaho at redhat.com pblaho at redhat.com
Thu Jul 12 14:37:49 UTC 2012


From: Petr Blaho <pblaho at redhat.com>

https://www.aeolusproject.org/redmine/issues/3498

Adds block for XML format.
Refactored detail of Provider Account XML template.
---
 .../controllers/provider_accounts_controller.rb    |    7 +++++--
 src/app/views/provider_accounts/_detail.xml.haml   |   13 +++++++++++++
 src/app/views/provider_accounts/_list.xml.haml     |   16 ++--------------
 src/app/views/provider_accounts/show.xml.haml      |    2 ++
 4 files changed, 22 insertions(+), 16 deletions(-)
 create mode 100644 src/app/views/provider_accounts/_detail.xml.haml
 create mode 100644 src/app/views/provider_accounts/show.xml.haml

diff --git a/src/app/controllers/provider_accounts_controller.rb b/src/app/controllers/provider_accounts_controller.rb
index ce0d2ab..82698fe 100644
--- a/src/app/controllers/provider_accounts_controller.rb
+++ b/src/app/controllers/provider_accounts_controller.rb
@@ -35,7 +35,7 @@ class ProviderAccountsController < ApplicationController
     @tab_captions = [t('provider_accounts.tab_captions.properties'), t('provider_accounts.tab_captions.credentials'), t('provider_accounts.tab_captions.history'), t('provider_accounts.tab_captions.permissions')]
     @provider_account = ProviderAccount.find(params[:id])
     @title = t('provider_accounts.show.account', :name => @provider_account.name)
-    @provider = Provider.find(params[:provider_id])
+    @provider = Provider.find_by_id(params[:provider_id])
     @realms = @provider_account.realms.
                                 apply_filters(:preset_filter_id => params[:provider_realms_preset_filter],
                                               :search_filter => params[:provider_realms_search])
@@ -58,6 +58,7 @@ class ProviderAccountsController < ApplicationController
         end
         render :partial => @details_tab and return
       end
+      format.xml { render 'show', :locals => { :provider_account => @provider_account, :with_credentials => true } }
     end
   end
 
@@ -215,7 +216,9 @@ class ProviderAccountsController < ApplicationController
   end
 
   def load_provider
-    @provider = Provider.list_for_user(current_session, current_user, Privilege::VIEW).find(params[:provider_id]) if params[:provider_id]
+    if params[:provider_id]
+      @provider = Provider.list_for_user(current_session, current_user, Privilege::VIEW).find(params[:provider_id])
+    end
   end
 
   def load_accounts
diff --git a/src/app/views/provider_accounts/_detail.xml.haml b/src/app/views/provider_accounts/_detail.xml.haml
new file mode 100644
index 0000000..cf2984c
--- /dev/null
+++ b/src/app/views/provider_accounts/_detail.xml.haml
@@ -0,0 +1,13 @@
+%provider_account{:id => provider_account.id, :href => api_provider_account_url(provider_account)}
+  -provider = provider_account.provider
+  -provider_type = provider.provider_type
+  %name= provider_account.name
+  %provider{:id => provider.id, :href => api_provider_url(provider)}= provider.name
+  %provider_type= provider_type.deltacloud_driver
+  -if local_assigns[:with_credentials]
+    = content_tag(provider_type.deltacloud_driver + '_credentials') do
+      = render 'credentials', :creds_label_hash => provider_account.creds_label_hash
+  -if provider_account.priority
+    %priority= provider_account.priority
+  %quota_used= number_to_percentage provider_account.quota.percentage_used, :precision => 0
+  %quota= provider_account.quota.maximum_running_instances or t('provider_accounts.properties.unlimited')
diff --git a/src/app/views/provider_accounts/_list.xml.haml b/src/app/views/provider_accounts/_list.xml.haml
index e964eb9..033d24c 100644
--- a/src/app/views/provider_accounts/_list.xml.haml
+++ b/src/app/views/provider_accounts/_list.xml.haml
@@ -1,16 +1,4 @@
 !!! XML
 %provider_accounts
-  - provider_accounts.each do |pa|
-    %provider_account{:id => pa.id, :href => api_provider_account_url(pa)}
-      -provider = pa.provider
-      -provider_type = provider.provider_type
-      %name= pa.name
-      %provider{:id => provider.id, :href => api_provider_url(provider)}= provider.name
-      %provider_type= provider_type.deltacloud_driver
-      -if local_assigns[:with_credentials]
-        = content_tag(provider_type.deltacloud_driver + '_credentials') do
-          = render 'credentials', :creds_label_hash => pa.creds_label_hash
-      -if pa.priority
-        %priority= pa.priority
-      %quota_used= number_to_percentage pa.quota.percentage_used, :precision => 0
-      %quota= pa.quota.maximum_running_instances or t('provider_accounts.properties.unlimited')
+  - provider_accounts.each do |provider_account|
+    =render 'detail', :provider_account => provider_account, :with_credentials => with_credentials
diff --git a/src/app/views/provider_accounts/show.xml.haml b/src/app/views/provider_accounts/show.xml.haml
new file mode 100644
index 0000000..037cf4e
--- /dev/null
+++ b/src/app/views/provider_accounts/show.xml.haml
@@ -0,0 +1,2 @@
+!!! XML
+=render 'detail', :provider_account => provider_account, :with_credentials => with_credentials
-- 
1.7.7.6




More information about the aeolus-devel mailing list