After talking with Scott, it sounds like we need to think through the User permissions a bit more before implementing them here. Therefore, for now, I'm sending a simplified version of my earlier patch, which merely shows the deployment owner's name, but does not link to it.
This doesn't complete #1081 as written, but it will at least move us forward until we sort out how we want to handle permissions linking to other Users.
-- Matt
--- .../resources/deployments_controller.rb | 7 +++++-- src/app/views/resources/deployments/_list.haml | 12 ++++++++++++ src/features/deployment.feature | 15 +++++++++++++++ src/features/step_definitions/deployment_steps.rb | 5 +++++ 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 src/features/deployment.feature create mode 100644 src/features/step_definitions/deployment_steps.rb
diff --git a/src/app/controllers/resources/deployments_controller.rb b/src/app/controllers/resources/deployments_controller.rb index 3e76bb0..dbac19c 100644 --- a/src/app/controllers/resources/deployments_controller.rb +++ b/src/app/controllers/resources/deployments_controller.rb @@ -22,12 +22,15 @@ class Resources::DeploymentsController < ApplicationController private def load_deployments @url_params = params + @deployments = Deployment.paginate(:all, + :page => params[:page] || 1, + :order => (params[:order_field] || 'name') +' '+ (params[:order_dir] || 'asc') + ) @header = [ { :name => "Deployment name", :sort_attr => :name }, { :name => "Deployable", :sortable => false }, - { :name => "Deployment Owner", :sort_attr => "owner.last_name"}, + { :name => "Owner", :sort_attr => "owner.login"}, { :name => "Running Since", :sort_attr => :running_since }, - { :name => "Heath Metric", :sort_attr => :health }, { :name => "Pool", :sort_attr => "pool.name" } ] end diff --git a/src/app/views/resources/deployments/_list.haml b/src/app/views/resources/deployments/_list.haml index 6f62520..7db9988 100644 --- a/src/app/views/resources/deployments/_list.haml +++ b/src/app/views/resources/deployments/_list.haml @@ -18,3 +18,15 @@
%table = sortable_table_header @header + - @deployments.each do |deployment| + %tr + %td + = link_to deployment.name, resources_deployment_path(deployment) + %td + = link_to deployment.deployable.name, image_factory_deployable_path(deployment.deployable) + %td + = deployment.owner.login + %td + = deployment.created_at + %td + = link_to deployment.pool.name, resources_pool_path(deployment.pool) \ No newline at end of file diff --git a/src/features/deployment.feature b/src/features/deployment.feature new file mode 100644 index 0000000..3f96e64 --- /dev/null +++ b/src/features/deployment.feature @@ -0,0 +1,15 @@ +Feature: Manage Deployments + In order to manage my cloud infrastructure + As a user + I want to manage my deployments + + Background: + Given I am an authorised user + And I am logged in + + Scenario: List deployments + Given I am on the homepage + And there is a deployment named "MySQL Cluster" belonging to "Databases" owned by "bob" + When I go to the resources deployments page + Then I should see "MySQL Cluster" + And I should see "bob" diff --git a/src/features/step_definitions/deployment_steps.rb b/src/features/step_definitions/deployment_steps.rb new file mode 100644 index 0000000..82eeb12 --- /dev/null +++ b/src/features/step_definitions/deployment_steps.rb @@ -0,0 +1,5 @@ +Given /^there is a deployment named "([^"]*)" belonging to "([^"]*)" owned by "([^"]*)"$/ do |deployment_name, deployable_name, owner_name| + user = Factory.build(:user, :login => owner_name) + deployable = Deployable.create!(:name => deployable_name) + deployable.deployments.create!({:name => deployment_name, :pool => Pool.first, :owner => user}) +end
On 04/20/2011 12:21 AM, Matt Wagner wrote:
.../resources/deployments_controller.rb | 7 +++++-- src/app/views/resources/deployments/_list.haml | 12 ++++++++++++ src/features/deployment.feature | 15 +++++++++++++++ src/features/step_definitions/deployment_steps.rb | 5 +++++ 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 src/features/deployment.feature create mode 100644 src/features/step_definitions/deployment_steps.rb
diff --git a/src/app/controllers/resources/deployments_controller.rb b/src/app/controllers/resources/deployments_controller.rb index 3e76bb0..dbac19c 100644 --- a/src/app/controllers/resources/deployments_controller.rb +++ b/src/app/controllers/resources/deployments_controller.rb @@ -22,12 +22,15 @@ class Resources::DeploymentsController< ApplicationController private def load_deployments @url_params = params
- @deployments = Deployment.paginate(:all,
:page => params[:page] || 1,
:order => (params[:order_field] || 'name') +' '+ (params[:order_dir] || 'asc')
- ) @header = [ { :name => "Deployment name", :sort_attr => :name }, { :name => "Deployable", :sortable => false },
{ :name => "Deployment Owner", :sort_attr => "owner.last_name"},
{ :name => "Owner", :sort_attr => "owner.login"}, { :name => "Running Since", :sort_attr => :running_since },
end{ :name => "Heath Metric", :sort_attr => :health }, { :name => "Pool", :sort_attr => "pool.name" } ]
diff --git a/src/app/views/resources/deployments/_list.haml b/src/app/views/resources/deployments/_list.haml index 6f62520..7db9988 100644 --- a/src/app/views/resources/deployments/_list.haml +++ b/src/app/views/resources/deployments/_list.haml @@ -18,3 +18,15 @@
%table = sortable_table_header @header
- @deployments.each do |deployment|
- %tr
%td
= link_to deployment.name, resources_deployment_path(deployment)
%td
= link_to deployment.deployable.name, image_factory_deployable_path(deployment.deployable)
%td
= deployment.owner.login
%td
= deployment.created_at
%td
= link_to deployment.pool.name, resources_pool_path(deployment.pool)
\ No newline at end of file diff --git a/src/features/deployment.feature b/src/features/deployment.feature new file mode 100644 index 0000000..3f96e64 --- /dev/null +++ b/src/features/deployment.feature @@ -0,0 +1,15 @@ +Feature: Manage Deployments
- In order to manage my cloud infrastructure
- As a user
- I want to manage my deployments
- Background:
- Given I am an authorised user
- And I am logged in
- Scenario: List deployments
- Given I am on the homepage
- And there is a deployment named "MySQL Cluster" belonging to "Databases" owned by "bob"
- When I go to the resources deployments page
- Then I should see "MySQL Cluster"
- And I should see "bob"
diff --git a/src/features/step_definitions/deployment_steps.rb b/src/features/step_definitions/deployment_steps.rb new file mode 100644 index 0000000..82eeb12 --- /dev/null +++ b/src/features/step_definitions/deployment_steps.rb @@ -0,0 +1,5 @@ +Given /^there is a deployment named "([^"]*)" belonging to "([^"]*)" owned by "([^"]*)"$/ do |deployment_name, deployable_name, owner_name|
- user = Factory.build(:user, :login => owner_name)
- deployable = Deployable.create!(:name => deployable_name)
- deployable.deployments.create!({:name => deployment_name, :pool => Pool.first, :owner => user})
+end
ACK
aeolus-devel@lists.fedorahosted.org