From: martyntaylor <[email protected]>
---
src/app/controllers/pool_controller.rb | 39 +++++++++++++++++++++++++++++--
src/app/views/pool/quota.html.erb | 2 +
src/config/environment.rb | 3 +-
3 files changed, 40 insertions(+), 4 deletions(-)
diff --git a/src/app/controllers/pool_controller.rb
b/src/app/controllers/pool_controller.rb
index 632d0cb..204eb80 100644
--- a/src/app/controllers/pool_controller.rb
+++ b/src/app/controllers/pool_controller.rb
@@ -151,13 +151,15 @@ class PoolController < ApplicationController
def new_quota
@pool = Pool.find(params[:id])
- require_privilege(Privilege::POOL_MODIFY, @pool)
+ require_privilege(Privilege::QUOTA_MODIFY, @pool)
end
def create_quota
+ #TODO Should be in Transaction
+ @pool = Pool.find(params[:pool][:id])
+
if !Quota.exists?(@pool.quota_id)
- @pool = Pool.find(params[:pool][:id])
- require_privilege(Privilege::POOL_MODIFY, @pool)
+ require_privilege(Privilege::QUOTA_MODIFY, @pool)
@quota = Quota.new(params[:quota])
@quota.save!
@@ -165,10 +167,41 @@ class PoolController < ApplicationController
@pool.quota_id = @quota
@pool.save!
+ flash[:notice] = "Quota Created!"
redirect_to :action => 'quota', :id => @pool
else
errors.add("quota_id", "There already exists a quota for this pool")
+ render :action => :new_quota
+ end
+ end
+
+ def edit_quota
+ @pool = Pool.find(params[:id])
+ @quota = Quota.find(@pool.quota_id)
+ require_privilege(Privilege::QUOTA_MODIFY, @pool)
+ end
+
+ def update_quota
+ @pool = Pool.find(params[:pool][:id])
+ require_privilege(Privilege::QUOTA_MODIFY, @pool)
+
+ #TODO Should check to make sure that the new quota values greater than the
current usage
+ @quota = Quota.find(@pool.quota_id)
+ if @quota.update_attributes(params[:quota])
+ flash[:notice] = "Quota updated!"
+ redirect_to :controller => 'pool', :action => 'quota', :id => @pool
+ else
+ render :action => :edit_quota
end
end
+ def delete_quota
+ @pool = Pool.find(params[:id])
+ @quota = Quota.find(@pool.quota_id)
+ require_privilege(Privilege::QUOTA_MODIFY, @pool)
+ if @quota.delete
+ flash[:notice] = "Quota Deleted!"
+ redirect_to :controller => 'pool', :action => 'quota', :id => @pool
+ end
+ end
end
\ No newline at end of file
diff --git a/src/app/views/pool/quota.html.erb
b/src/app/views/pool/quota.html.erb
index 09b227e..8320fd1 100644
--- a/src/app/views/pool/quota.html.erb
+++ b/src/app/views/pool/quota.html.erb
@@ -53,4 +53,6 @@
</tr>
</tbody>
</table>
+ <%= link_to "Edit", {:controller => "pool", :action => "edit_quota", :id =>
@pool}, :class=>"actionlink"%>
+ <%= link_to "Delete", {:controller => "pool", :action => "delete_quota", :id
=> @pool}, :class=>"actionlink"%>
<% end %>
\ No newline at end of file
diff --git a/src/config/environment.rb b/src/config/environment.rb
index 9f0fa4f..eefd3a4 100644
--- a/src/config/environment.rb
+++ b/src/config/environment.rb
@@ -43,7 +43,7 @@ Rails::Initializer.run do |config|
config.gem "gettext", :lib => "gettext_rails"
config.gem "gettext", :lib => "gettext_activerecord"
config.gem "authlogic"
- config.gem "deltacloud-cliesrc/config/environment.rbnt", :lib => "deltacloud"
+ config.gem "deltacloud-client", :lib => "deltacloud"
config.gem "haml"
config.gem "will_paginate"
@@ -77,4 +77,5 @@ Rails::Initializer.run do |config|
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales',
'*.{rb,yml}')]
# config.i18n.default_locale = :de
+
end
--
1.6.6.1
_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel