[Ovirt-devel] PATCH: constrain storage_pool to avoid duplicate targets
Hugh O. Brock
hbrock at redhat.com
Thu May 1 13:05:59 UTC 2008
On Wed, Apr 30, 2008 at 07:42:30PM -0500, steve linabery wrote:
> Hi Ovirt,
>
> This little patch attempts to do the following:
> 0) Add a flash notice when storage pool creation fails and redirect to
> storage/show
> 1) Use validates_uniqueness_of in isci and nfs storage pool classes
> 2) Add a "FIXME" to storage/new.rhtml and storage/new2.rhtml so that
> the tip will stop breaking my page flow :)
>
> I think 1) is sufficient for avoiding both duplicate storage pool
> targets as well as duplicate storage volumes, since afaict volumes are
> only detected/created after pools.
Looks good... but what's the "FIXME" for below?
--H
> diff --git a/wui/src/app/controllers/storage_controller.rb b/wui/src/app/controllers/storage_controller.rb
> index c977fcb..4784581 100644
> --- a/wui/src/app/controllers/storage_controller.rb
> +++ b/wui/src/app/controllers/storage_controller.rb
> @@ -104,6 +104,9 @@ class StorageController < ApplicationController
> else
> render :action => 'new'
> end
> + else
> + flash[:notice] = 'Storage Pool creation failed.'
> + redirect_to :controller => @storage_pool.hardware_pool.get_controller, :action => 'show', :id => @storage_pool.hardware_pool_id
> end
> end
>
> diff --git a/wui/src/app/models/iscsi_storage_pool.rb b/wui/src/app/models/iscsi_storage_pool.rb
> index 8164e7c..9cc104d 100644
> --- a/wui/src/app/models/iscsi_storage_pool.rb
> +++ b/wui/src/app/models/iscsi_storage_pool.rb
> @@ -18,6 +18,9 @@
> # also available at http://www.gnu.org/copyleft/gpl.html.
>
> class IscsiStoragePool < StoragePool
> +
> + validates_uniqueness_of :ip_addr, :scope => [:port, :target]
> +
> def label_components
> "#{target}"
> end
> diff --git a/wui/src/app/models/nfs_storage_pool.rb b/wui/src/app/models/nfs_storage_pool.rb
> index 30608cd..3704cc0 100644
> --- a/wui/src/app/models/nfs_storage_pool.rb
> +++ b/wui/src/app/models/nfs_storage_pool.rb
> @@ -18,6 +18,9 @@
> # also available at http://www.gnu.org/copyleft/gpl.html.
>
> class NfsStoragePool < StoragePool
> +
> + validates_uniqueness_of :ip_addr, :scope => :export_path
> +
> def label_components
> "#{export_path}"
> end
> diff --git a/wui/src/app/views/storage/new.rhtml b/wui/src/app/views/storage/new.rhtml
> index 9dbc240..80d4941 100644
> --- a/wui/src/app/views/storage/new.rhtml
> +++ b/wui/src/app/views/storage/new.rhtml
> @@ -22,7 +22,9 @@
> </div>
>
> <div class="data-table-column">
> - <strong>Choose From Storage in <%= @hardware_pool.parent.name %></strong>
> +<strong>FIX ME: hardware_pool parent attribute</strong>
> +<!-- <strong>Choose From Storage in < @hardware_pool.parent.name ></strong>
> +-->
What are we missing here?
Thanks,
--Hugh
More information about the ovirt-devel
mailing list