Skip to content

Commit

Permalink
show kubernetes limits on project page
Browse files Browse the repository at this point in the history
  • Loading branch information
grosser committed Dec 29, 2017
1 parent 4585429 commit ae98712
Show file tree
Hide file tree
Showing 8 changed files with 42 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,21 @@ def create
end

def index
limits = ::Kubernetes::UsageLimit.all
@projects = limits.map(&:project).uniq.compact.sort_by(&:name)
if project_id = params[:project_id]
@project = Project.find_by_param!(project_id)
limits = @project.kubernetes_usage_limits
else
limits = ::Kubernetes::UsageLimit.all
@projects = limits.map(&:project).uniq.compact.sort_by(&:name)

if project_id = params.dig(:search, :project_id).presence
limits = limits.where(project_id: project_id)
end
if project_id = params.dig(:search, :project_id).presence
limits = limits.where(project_id: project_id)
end

if scope_type_and_id = params.dig(:search, :scope_type_and_id).presence
scope_type, scope_id = GroupScope.split(scope_type_and_id)
limits = limits.where(scope_type: scope_type, scope_id: scope_id)
if scope_type_and_id = params.dig(:search, :scope_type_and_id).presence
scope_type, scope_id = GroupScope.split(scope_type_and_id)
limits = limits.where(scope_type: scope_type, scope_id: scope_id)
end
end

@env_deploy_group_array = Environment.env_deploy_group_array
Expand Down
1 change: 1 addition & 0 deletions plugins/kubernetes/app/decorators/project_decorator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
has_many :kubernetes_releases, class_name: 'Kubernetes::Release'
has_many :kubernetes_roles, class_name: 'Kubernetes::Role', dependent: :destroy
has_many :kubernetes_deploy_group_roles, class_name: 'Kubernetes::DeployGroupRole'
has_many :kubernetes_usage_limits, class_name: 'Kubernetes::UsageLimit'

scope :with_kubernetes_roles, -> { where(id: Kubernetes::Role.not_deleted.pluck('distinct project_id')) }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
<%= render 'samson_kubernetes/role_navigation' if @project %>

<div class="table table-hover table-condensed">

<table class="table">
<tr>
<% unless @project %>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,25 @@
<%= page_title "Kubernetes Limits" %>
<% if @project %>
<%= render 'projects/header', project: @project, tab: 'kubernetes' %>
<% else %>
<%= page_title "Kubernetes Limits" %>

<%= search_form do %>
<%= search_select :project_id, [['All', '']] + @projects.map { |p| [p.name, p.id] }, live: true, size: 3 %>
<%= search_select :scope_type_and_id, @env_deploy_group_array, live: true, size: 3, label: "Scope" %>
<%= search_form do %>
<%= search_select :project_id, [['All', '']] + @projects.map { |p| [p.name, p.id] }, live: true, size: 3 %>
<%= search_select :scope_type_and_id, @env_deploy_group_array, live: true, size: 3, label: "Scope" %>
<% end %>

<br/>
<% end %>

<br/>
<section class="tabs kubernetes-section clearfix">
<%= render 'samson_kubernetes/role_navigation' if @project %>

<section class="clearfix tabs">
<div class="table table-hover table-condensed">

<table class="table">
<tr>
<th>Project</th>
<% unless @project %>
<th>Project</th>
<% end %>
<th>Scope</th>
<th>CPU</th>
<th>Memory</th>
Expand All @@ -21,7 +28,9 @@

<% @usage_limits.each do |usage_limit| %>
<tr>
<td><%= usage_limit.project ? link_to(usage_limit.project.name, usage_limit.project) : 'All' %></td>
<% unless @project %>
<td><%= usage_limit.project ? link_to(usage_limit.project.name, usage_limit.project) : 'All' %></td>
<% end %>
<td><%= usage_limit.scope ? usage_limit.scope.name : 'All' %></td>
<td><%= usage_limit.cpu.to_f %></td>
<td><%= usage_limit.memory %> Mi</td>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
["Releases", project_kubernetes_releases_path],
["Roles", project_kubernetes_roles_path],
["Resources", project_kubernetes_deploy_group_roles_path(@project)],
["Limits", project_kubernetes_usage_limits_path(@project)],
] %>

<ul class="nav nav-tabs">
Expand Down
1 change: 1 addition & 0 deletions plugins/kubernetes/config/routes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
end
end
resources :releases, only: [:index, :show]
resources :usage_limits, only: [:index]
end
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
as_a_viewer do
describe "#index" do
before do
kubernetes_deploy_group_roles(:test_pod1_resque_worker).update_column(:project_id, 123) # one different to test filtering
# one different to test filtering
kubernetes_deploy_group_roles(:test_pod1_resque_worker).update_column(:project_id, 123)
end

it "renders" do
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,12 @@
assert_template :index
end

it "renders as project tab" do
get :index, params: {project_id: project}
assert_template :index
assigns(:usage_limits).map(&:id).must_equal [usage_limit.id]
end

it "sorts" do
get :index
assigns(:usage_limits).map(&:id).must_equal [other.id, usage_limit.id]
Expand Down

0 comments on commit ae98712

Please sign in to comment.