Skip to content

Commit

Permalink
Rendering status for servers and deployments in middleware topology
Browse files Browse the repository at this point in the history
Status of middleware servers and deployments are set when building
topology view. This renders the status in tooltips in related
topology nodes and also renders status colors.

Regarding colors:
- For middleware servers, when status is:
  * Down => red
  * Running => green
  * Reload required => amber
  * Starting => blue
- For deployments:
  * Enabled => green
  * Disabled => amber

This is the first step to cover ManageIQ/manageiq-providers-hawkular#5
  • Loading branch information
israel-hdez committed Jun 6, 2017
1 parent 4f15973 commit fa401f2
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 7 deletions.
6 changes: 6 additions & 0 deletions app/assets/javascripts/services/topology_service.js
Original file line number Diff line number Diff line change
Expand Up @@ -177,16 +177,22 @@ ManageIQ.angular.app.service('topologyService', function() {
case "Running":
case "Succeeded":
case "Valid":
case "Enabled":
return "success";
case "NotReady":
case "Failed":
case "Error":
case "Unreachable":
case "Down":
return "error";
case 'Warning':
case 'Waiting':
case 'Pending':
case 'Disabled':
case 'Reload required':
return "warning";
case 'Starting':
return "information";
case 'Unknown':
case 'Terminated':
return "unknown";
Expand Down
4 changes: 4 additions & 0 deletions app/assets/stylesheets/topology.css
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@ _:-ms-lang(x), _:-webkit-full-screen, kubernetes-topology-icon svg /* Edge hack
stroke: #bbb;
}

.kube-topology g circle.information {
stroke: #00c;
}

.topology .canvas {
position: absolute;
}
Expand Down
7 changes: 6 additions & 1 deletion app/services/middleware_topology_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,12 @@ def build_entity_data(entity)
data[:icon] = ActionController::Base.helpers.image_path(entity.decorate.try(:fileicon))
end

if entity.kind_of?(Vm)
case entity
when MiddlewareServer
data[:status] = entity.properties['Calculated Server State'].underscore.humanize if entity.properties['Calculated Server State']
when MiddlewareDeployment
data[:status] = entity.status.capitalize if entity.status
when Vm
data[:status] = entity.power_state.capitalize
data[:provider] = entity.ext_management_system.name
end
Expand Down
15 changes: 9 additions & 6 deletions spec/services/middleware_topology_service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
:feed => '70c798a0-6985-4f8a-a525-012d8d28e8a3',
:ems_ref => long_id_0,
:nativeid => 'Local~~',
:ext_management_system => ems_hawkular)
:ext_management_system => ems_hawkular,
:properties => { 'Calculated Server State' => 'running' })
end

it "topology contains the expected structure and content" do
Expand All @@ -29,13 +30,15 @@
:middleware_server => mw_server,
:ems_ref => long_id_2,
:name => "hawkular-wildfly-agent-download.war",
:nativeid => long_id_4)
:nativeid => long_id_4,
:status => 'Enabled')

mw_deployment2 = MiddlewareDeployment.create(:ext_management_system => ems_hawkular,
:middleware_server => mw_server,
:ems_ref => long_id_1,
:name => "hawkular-command-gateway-war.war",
:nativeid => long_id_5)
:nativeid => long_id_5,
:status => 'Disabled')

mw_datasource = MiddlewareDatasource.create(:ext_management_system => ems_hawkular,
:middleware_server => mw_server,
Expand All @@ -60,7 +63,7 @@

expect(subject[:items]).to include(
"MiddlewareServer" + mw_server.compressed_id.to_s => {:name => mw_server.name,
:status => "Unknown",
:status => "Running",
:kind => "MiddlewareServer",
:display_kind => "MiddlewareServer",
:miq_id => mw_server.id,
Expand All @@ -69,15 +72,15 @@

expect(subject[:items]).to include(
"MiddlewareDeployment" + mw_deployment1.compressed_id.to_s => {:name => mw_deployment1.name,
:status => "Unknown",
:status => "Enabled",
:kind => "MiddlewareDeployment",
:display_kind => "MiddlewareDeploymentWar",
:miq_id => mw_deployment1.id}
)

expect(subject[:items]).to include(
"MiddlewareDeployment" + mw_deployment2.compressed_id.to_s => {:name => mw_deployment2.name,
:status => "Unknown",
:status => "Disabled",
:kind => "MiddlewareDeployment",
:display_kind => "MiddlewareDeploymentWar",
:miq_id => mw_deployment2.id}
Expand Down

0 comments on commit fa401f2

Please sign in to comment.