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 },
- { :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
ACK