On Wed, May 05, 2010 at 05:39:26PM -0400, Mohammed Morsi wrote:
> ---
> src/app/controllers/cloud_accounts_controller.rb | 28
> ++++++++++++++++++++++
> src/app/controllers/provider_controller.rb | 4 +-
> src/app/models/cloud_account.rb | 7 +++++
> src/app/views/cloud_accounts/_form.html.erb | 12 +++++++++
> src/app/views/cloud_accounts/edit.html.erb | 10 ++++++++
> src/app/views/provider/accounts.html.erb | 4 +++
> src/app/views/provider/new_account.html.erb | 13 ++--------
> 7 files changed, 66 insertions(+), 12 deletions(-)
> create mode 100644 src/app/views/cloud_accounts/_form.html.erb
> create mode 100644 src/app/views/cloud_accounts/edit.html.erb
>
> diff --git a/src/app/controllers/cloud_accounts_controller.rb
> b/src/app/controllers/cloud_accounts_controller.rb
> index 26c1a63..05e024e 100644
> --- a/src/app/controllers/cloud_accounts_controller.rb
> +++ b/src/app/controllers/cloud_accounts_controller.rb
> @@ -66,5 +66,33 @@ class CloudAccountsController < ApplicationController
> redirect_to :controller => "pool", :action => 'show', :id => @pool.id
> end
>
> + def edit
> + @cloud_account = CloudAccount.find(params[:id])
> + @provider = @cloud_account.provider
> + require_privilege(Privilege::ACCOUNT_MODIFY,@provider)
> + end
>
> + def update
> + @cloud_account = CloudAccount.find(params[:cloud_account][:id])
> + require_privilege(Privilege::ACCOUNT_MODIFY,@cloud_account.provider)
> + if @cloud_account.update_attributes(params[:cloud_account])
> + flash[:notice] = "Cloud Account updated!"
> + redirect_to :controller => 'provider', :action => 'accounts', :id =>
> @cloud_account.provider.id
> + else
> + render :action => :edit
> + end
> + end
> +
> + def destroy
> + acct = CloudAccount.find(params[:id])
> + provider = acct.provider
> + require_privilege(Privilege::ACCOUNT_MODIFY,provider)
> + if acct.destroyable?
> + CloudAccount.destroy(params[:id])
> + flash[:notice] = "Cloud Account destroyed"
> + else
> + flash[:notice] = "Cloud Account could not be destroyed"
> + end
> + redirect_to :controller => 'provider', :action => 'accounts', :id =>
> provider.id
> + end
> end
> diff --git a/src/app/controllers/provider_controller.rb
> b/src/app/controllers/provider_controller.rb
> index 0252a26..23b5ba0 100644
> --- a/src/app/controllers/provider_controller.rb
> +++ b/src/app/controllers/provider_controller.rb
> @@ -74,8 +74,8 @@ class ProviderController < ApplicationController
>
> def create_account
> require_privilege(Privilege::ACCOUNT_MODIFY)
> - @acct = CloudAccount.find_or_create(params[:account])
> - @provider = Provider.find(params[:account][:provider_id])
> + @acct = CloudAccount.find_or_create(params[:cloud_account])
> + @provider = Provider.find(params[:cloud_account][:provider_id])
> @provider.cloud_accounts << @acct
> redirect_to :action => 'accounts', :id => @provider.id
> end
> diff --git a/src/app/models/cloud_account.rb b/src/app/models/cloud_account.rb
> index 62cecc3..1d6b3e9 100644
> --- a/src/app/models/cloud_account.rb
> +++ b/src/app/models/cloud_account.rb
> @@ -38,6 +38,13 @@ class CloudAccount < ActiveRecord::Base
> :include => [:role],
> :order => "permissions.id ASC"
>
> +
> + before_destroy {|entry| entry.destroyable? }
> +
> + def destroyable?
> + self.instances.empty?
> + end
> +
> def connect
> begin
> return DeltaCloud.new(username, password, provider.url)
> diff --git a/src/app/views/cloud_accounts/_form.html.erb
> b/src/app/views/cloud_accounts/_form.html.erb
> new file mode 100644
> index 0000000..9b7b176
> --- /dev/null
> +++ b/src/app/views/cloud_accounts/_form.html.erb
> @@ -0,0 +1,12 @@
> +<fieldset>
> +<legend>Account</legend>
> +<%= hidden_field :cloud_account, :id %>
> +<%= hidden_field :cloud_account, :provider_id, :value => @provider.id %>
> +<ul>
> +<% if @cloud_account.nil? %>
> +<li><label>UserName<span>UserName for the account you wish to connect to
> this pool.</span></label><%= text_field :cloud_account, :username %></li>
> +<% end %>
> +<li><label>Password<span>Password for the account you wish to connect to
> this pool.</span></label><%=password_field :cloud_account, :password %></li>
> +</ul>
> +</fieldset>
> +<%= submit_tag "Save", :class => "submit" %>
> diff --git a/src/app/views/cloud_accounts/edit.html.erb
> b/src/app/views/cloud_accounts/edit.html.erb
> new file mode 100644
> index 0000000..3ae86aa
> --- /dev/null
> +++ b/src/app/views/cloud_accounts/edit.html.erb
> @@ -0,0 +1,10 @@
> +<div class="dcloud_form">
> + <%= error_messages_for 'cloud_account' %>
> +
> + <h2>Edit Cloud Account</h2><br />
> +
> + <% form_for @cloud_account, :url => { :action => 'update' } do |form| -%>
> + <%= render :partial => 'form' %>
> + <% end %>
> +
> +</div>
> diff --git a/src/app/views/provider/accounts.html.erb
> b/src/app/views/provider/accounts.html.erb
> index 595443d..a763a33 100644
> --- a/src/app/views/provider/accounts.html.erb
> +++ b/src/app/views/provider/accounts.html.erb
> @@ -5,12 +5,16 @@
> <thead>
> <tr>
> <th scope="col">Username</th>
> + <th scope="col"></th>
> + <th scope="col"></th>
> </tr>
> </thead>
> <tbody>
> <%[email protected]_accounts.each {|acct| %>
> <tr>
> <td><%= acct.username %></td>
> + <td><%= link_to "Edit", {:controller => 'cloud_accounts',
> :action => 'edit', :id => acct.id} if has_account_modify?(@provider)
> %></td>
> + <td><%= link_to "Delete", {:controller => 'cloud_accounts',
> :action => 'destroy', :id => acct.id} if has_account_modify?(@provider) &&
> acct.destroyable? %></td>
> </tr>
> <% } %>
> </tbody>
> diff --git a/src/app/views/provider/new_account.html.erb
> b/src/app/views/provider/new_account.html.erb
> index b9ae229..eed474f 100644
> --- a/src/app/views/provider/new_account.html.erb
> +++ b/src/app/views/provider/new_account.html.erb
> @@ -4,15 +4,8 @@
>
> <h2>Create an Account for this Provider</h2><br />
>
> - <% form_tag :action => 'create_account' do -%>
> - <fieldset>
> - <legend>Account</legend>
> - <ul>
> - <li><label>UserName<span>UserName for the account you wish to connect to
> this pool.</span></label><%= text_field :account, :username %></li>
> - <li><label>Password<span>Password for the account you wish to connect to
> this pool.</span></label><%=password_field :account, :password %></li>
> - </ul>
> - <%=hidden_field :account, :provider_id, :value => @provider.id %>
> - </fieldset>
> - <%= submit_tag "Save", :class => "submit" %>
> + <% form_tag :action => 'create_account' do |form| -%>
> + <%= render :partial => 'cloud_accounts/form' %>
> <% end %>
> +
> </div>
> --
> 1.6.2.5
>
> _______________________________________________
> deltacloud-devel mailing list
> [email protected]
> https://fedorahosted.org/mailman/listinfo/deltacloud-devel
WFM. ACK.
Steve
_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel