[PATCH conductor 2/2] Modifies XML output of Provider/Prov.Account index

pblaho at redhat.com pblaho at redhat.com
Wed Sep 5 02:57:02 UTC 2012


From: Petr Blaho <pblaho at redhat.com>

This modifies templates and controllers for Provider and ProviderAccount
XML output for index action - removes all nodes except basic ones with
href and id attributes.

https://www.aeolusproject.org/redmine/issues/3759
---
 .../controllers/provider_accounts_controller.rb    |    4 +-
 src/app/controllers/providers_controller.rb        |    2 +-
 src/app/views/provider_accounts/_detail.xml.haml   |   33 ++++++++++---------
 src/app/views/provider_accounts/_list.xml.haml     |    2 +-
 src/app/views/provider_accounts/show.xml.haml      |    2 +-
 src/app/views/providers/_list.xml.haml             |    9 +++--
 6 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/src/app/controllers/provider_accounts_controller.rb b/src/app/controllers/provider_accounts_controller.rb
index 1abc022..ca28c6e 100644
--- a/src/app/controllers/provider_accounts_controller.rb
+++ b/src/app/controllers/provider_accounts_controller.rb
@@ -27,7 +27,7 @@ class ProviderAccountsController < ApplicationController
       #xml list of provider_accounts for aeolus-image, aeolus-image could work with prov. accounts list for givent provider
       #to resemble html views logic, so this route could be removed (provider_accounts could be user only as nested resource)
       #format.xml { render :text => ProviderAccount.xml_export(@provider_accounts) }
-      format.xml { render :partial => 'list.xml', :locals => { :provider_accounts => @provider_accounts, :with_credentials => false, :with_quota => false } }
+      format.xml { render :partial => 'list.xml', :locals => { :provider_accounts => @provider_accounts, :with_credentials => false, :with_quota => false, :with_data => false } }
     end
   end
 
@@ -58,7 +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, :with_quota => true } }
+      format.xml { render 'show', :locals => { :provider_account => @provider_account, :with_data => true, :with_credentials => true, :with_quota => true } }
     end
   end
 
diff --git a/src/app/controllers/providers_controller.rb b/src/app/controllers/providers_controller.rb
index 3b6ec23..ae3531a 100644
--- a/src/app/controllers/providers_controller.rb
+++ b/src/app/controllers/providers_controller.rb
@@ -40,7 +40,7 @@ class ProvidersController < ApplicationController
     respond_to do |format|
       format.html
       format.js { render :partial => 'list' }
-      format.xml { render :partial => 'list.xml' }
+      format.xml { render :partial => 'list.xml' , :locals => { :with_data => false }}
     end
   end
 
diff --git a/src/app/views/provider_accounts/_detail.xml.haml b/src/app/views/provider_accounts/_detail.xml.haml
index ca7ce3c..e8b7617 100644
--- a/src/app/views/provider_accounts/_detail.xml.haml
+++ b/src/app/views/provider_accounts/_detail.xml.haml
@@ -1,17 +1,18 @@
 %provider_account{:id => provider_account.id, :href => api_provider_account_url(provider_account)}
-  -provider = provider_account.provider
-  -provider_type = provider.provider_type
-  %label= 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('credentials') do
-      = render 'credentials', :creds_hash => provider_account.credentials_hash
-  -if provider_account.priority
-    %priority= provider_account.priority
-  -if local_assigns[:with_quota]
-    %quota_used= number_to_percentage provider_account.quota.percentage_used, :precision => 0
-    -if provider_account.quota.maximum_running_instances
-      %quota{ :maximum_running_instances => provider_account.quota.maximum_running_instances }
-    -else
-      %quota{ :maximum_running_instances => t('provider_accounts.properties.unlimited') }
+  -if local_assigns[:with_data]
+    -provider = provider_account.provider
+    -provider_type = provider.provider_type
+    %label= 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('credentials') do
+        = render 'credentials', :creds_hash => provider_account.credentials_hash
+    -if provider_account.priority
+      %priority= provider_account.priority
+    -if local_assigns[:with_quota]
+      %quota_used= number_to_percentage provider_account.quota.percentage_used, :precision => 0
+      -if provider_account.quota.maximum_running_instances
+        %quota{ :maximum_running_instances => provider_account.quota.maximum_running_instances }
+      -else
+        %quota{ :maximum_running_instances => 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 9c4dc38..8323435 100644
--- a/src/app/views/provider_accounts/_list.xml.haml
+++ b/src/app/views/provider_accounts/_list.xml.haml
@@ -1,4 +1,4 @@
 !!! XML
 %provider_accounts
   - provider_accounts.each do |provider_account|
-    =render 'detail', :provider_account => provider_account, :with_credentials => with_credentials, :with_quota => with_quota
+    =render 'detail', :provider_account => provider_account, :with_credentials => with_credentials, :with_quota => with_quota, :with_data => with_data
diff --git a/src/app/views/provider_accounts/show.xml.haml b/src/app/views/provider_accounts/show.xml.haml
index 323a0a0..dc732cd 100644
--- a/src/app/views/provider_accounts/show.xml.haml
+++ b/src/app/views/provider_accounts/show.xml.haml
@@ -1,2 +1,2 @@
 !!! XML
-=render 'detail', :provider_account => provider_account, :with_credentials => with_credentials, :with_quota => with_quota
+=render 'detail', :provider_account => provider_account, :with_data => true, :with_credentials => with_credentials, :with_quota => with_quota
diff --git a/src/app/views/providers/_list.xml.haml b/src/app/views/providers/_list.xml.haml
index 22ec920..72e20da 100644
--- a/src/app/views/providers/_list.xml.haml
+++ b/src/app/views/providers/_list.xml.haml
@@ -2,7 +2,8 @@
 %providers
   - @providers.each do |p|
     %provider{:id => p.id, :href => api_provider_url(p)}
-      %name= p.name
-      %url= p.url
-      %provider_type= p.provider_type.deltacloud_driver
-      %deltacloud_provider= p.deltacloud_provider
+      -if local_assigns[:with_data]
+        %name= p.name
+        %url= p.url
+        %provider_type= p.provider_type.deltacloud_driver
+        %deltacloud_provider= p.deltacloud_provider
-- 
1.7.7.6




More information about the aeolus-devel mailing list