[Ovirt-devel] [PATCH server] fixed some problems with create/delete storage volume functionality.
Scott Seago
sseago at redhat.com
Mon May 4 18:47:56 UTC 2009
One of the recent refactoring rounds seems to have broken the 'new storage volume' functionality. It looks like the necessary before_filters weren't being executed.
Signed-off-by: Scott Seago <sseago at redhat.com>
---
src/app/controllers/storage_volume_controller.rb | 39 ++++++++++++---------
1 files changed, 22 insertions(+), 17 deletions(-)
diff --git a/src/app/controllers/storage_volume_controller.rb b/src/app/controllers/storage_volume_controller.rb
index b6b0593..d4a2561 100644
--- a/src/app/controllers/storage_volume_controller.rb
+++ b/src/app/controllers/storage_volume_controller.rb
@@ -22,19 +22,16 @@ class StorageVolumeController < ApplicationController
def new
@return_to_workflow = params[:return_to_workflow] || false
if params[:storage_pool_id]
- @storage_pool = StoragePool.find(params[:storage_pool_id])
unless @storage_pool.user_subdividable
- #fixme: proper error page for popups
- redirect_to :controller => 'dashboard'
+ html_error_page("User-created storage volumes are not supported on this pool")
return
end
- new_volume_internal(@storage_pool,
- { :storage_pool_id => params[:storage_pool_id]})
+ @storage_volume = StorageVolume.factory(@storage_pool.get_type_label,
+ { :storage_pool_id =>
+ params[:storage_pool_id]})
else
- @source_volume = StorageVolume.find(params[:source_volume_id])
unless @source_volume.supports_lvm_subdivision
- #fixme: proper error page for popups
- redirect_to :controller => 'dashboard'
+ html_error_page("LVM is not supported for this storage volume")
return
end
lvm_pool = @source_volume.lvm_storage_pool
@@ -47,7 +44,8 @@ class StorageVolumeController < ApplicationController
lvm_pool.source_volumes << @source_volume
lvm_pool.save!
end
- new_volume_internal(lvm_pool, { :storage_pool_id => lvm_pool.id})
+ @storage_volume = StorageVolume.factory(lvm_pool.get_type_label,
+ { :storage_pool_id => lvm_pool.id})
@storage_volume.lv_owner_perms='0744'
@storage_volume.lv_group_perms='0744'
@storage_volume.lv_mode_perms='0744'
@@ -99,7 +97,7 @@ class StorageVolumeController < ApplicationController
format.html { render :layout => 'selection' }
format.json do
attr_list = []
- attr_list << :id if (@storage_pool.user_subdividable and authorized?(Privilege::MODIFY)
+ attr_list << :id if (@storage_pool.user_subdividable and authorized?(Privilege::MODIFY))
attr_list += [:display_name, :size_in_gb, :get_type_label]
json_list(@storage_pool.storage_volumes, attr_list)
end
@@ -109,8 +107,6 @@ class StorageVolumeController < ApplicationController
end
def destroy
- @storage_volume = StorageVolume.find(params[:id])
- set_perms(@storage_volume.storage_pool.hardware_pool)
unless authorized?(Privilege::MODIFY) and @storage_volume.storage_pool.user_subdividable
handle_auth_error("You do not have permission to delete this storage volume.")
else
@@ -123,6 +119,16 @@ class StorageVolumeController < ApplicationController
end
end
+ def pre_new
+ if params[:storage_pool_id]
+ @storage_pool = StoragePool.find(params[:storage_pool_id])
+ set_perms(@storage_pool.hardware_pool)
+ else
+ @source_volume = StorageVolume.find(params[:source_volume_id])
+ set_perms(@source_volume.storage_pool.hardware_pool)
+ end
+ end
+
def pre_create
volume = params[:storage_volume]
unless type = params[:storage_type]
@@ -132,14 +138,13 @@ class StorageVolumeController < ApplicationController
set_perms(@storage_volume.storage_pool.hardware_pool)
authorize_admin
end
-
- private
- def new_volume_internal(storage_pool, new_params)
- @storage_volume = StorageVolume.factory(storage_pool.get_type_label, new_params)
+ # will go away w/ svc layer
+ def pre_edit
+ @storage_volume = StorageVolume.find(params[:id])
set_perms(@storage_volume.storage_pool.hardware_pool)
- authorize_admin
end
+ private
def delete_volume_internal(volume)
begin
name = volume.display_name
--
1.6.0.6
More information about the ovirt-devel
mailing list