@spotinst/spinnaker-deck
Version:
Spinnaker-Deck service, forked with support to Spotinst
230 lines (227 loc) • 9.92 kB
HTML
<div class="details-panel" ng-class="{ disabled: ctrl.serverGroup.isDisabled || ctrl.serverGroup.disabled}">
<div class="header" ng-if="ctrl.state.loading">
<div class="close-button">
<a class="btn btn-link" ui-sref="^">
<span class="glyphicon glyphicon-remove"></span>
</a>
</div>
<div class="horizontal center middle">
<loading-spinner size="'small'"></loading-spinner>
</div>
</div>
<div class="header" ng-if="!ctrl.state.loading">
<div class="close-button">
<a class="btn btn-link" ui-sref="^">
<span class="glyphicon glyphicon-remove"></span>
</a>
</div>
<div class="header-text horizontal middle">
<cloud-provider-logo provider="ctrl.serverGroup.type" height="'36px'" width="'36px'"></cloud-provider-logo>
<h3 class="horizontal middle space-between flex-1" select-on-dbl-click>{{ctrl.serverGroup.name}}</h3>
</div>
<div class="actions">
<div class="dropdown" uib-dropdown dropdown-append-to-body>
<button type="button" class="btn btn-sm btn-primary dropdown-toggle" uib-dropdown-toggle>
Server Group Actions <span class="caret"></span>
</button>
<ul class="dropdown-menu" uib-dropdown-menu role="menu">
<li ng-if="ctrl.canStopServerGroup()">
<a href ng-click="ctrl.stopServerGroup()"> Stop </a>
</li>
<li ng-if="ctrl.canStartServerGroup()">
<a href ng-click="ctrl.startServerGroup()"> Start </a>
</li>
<li ng-if="ctrl.serverGroup.disabled">
<a href ng-click="ctrl.enableServerGroup()"> Enable </a>
</li>
<li ng-if="!ctrl.serverGroup.disabled && ctrl.canDisableServerGroup()">
<a href ng-click="ctrl.disableServerGroup()"> Disable </a>
</li>
<li
ng-if="!ctrl.serverGroup.disabled && !ctrl.canDisableServerGroup()"
uib-tooltip="You cannot disable a server group if it is the
only server group receiving traffic from a load balancer."
class="disabled"
>
<a href> Disable </a>
</li>
<li ng-if="ctrl.canDestroyServerGroup()">
<a href ng-click="ctrl.destroyServerGroup()">Destroy</a>
</li>
<li
ng-if="!ctrl.canDestroyServerGroup()"
uib-tooltip="You cannot destroy a server group if it is the only server group
receiving traffic from a load balancer. You may be able to delete
this server group's load balancer."
class="disabled"
>
<a href>Destroy</a>
</li>
<li
uib-tooltip="It is not possible to clone an App Engine server group's full
launch configuration. However, clicking this button will allow
you to deploy into this server group's cluster."
>
<a href ng-click="ctrl.cloneServerGroup()">Clone</a>
</li>
</ul>
</div>
</div>
</div>
<div class="content" ng-if="!ctrl.state.loading">
<div class="band band-info" ng-if="ctrl.serverGroup.isDisabled || ctrl.serverGroup.disabled">Disabled</div>
<server-group-running-tasks-details
server-group="ctrl.serverGroup"
application="ctrl.app"
></server-group-running-tasks-details>
<collapsible-section heading="Server Group Information" expanded="true">
<dl class="dl-horizontal dl-narrow">
<dt>Created</dt>
<dd>{{ctrl.serverGroup.createdTime | timestamp}}</dd>
<dt>In</dt>
<dd><account-tag account="ctrl.serverGroup.account"></account-tag></dd>
<dt>Region</dt>
<dd>{{ctrl.serverGroup.region}}</dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup"
key="env"
label="Environment"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd component="ctrl.serverGroup" key="instanceClass"></appengine-conditional-dt-dd>
</dl>
</collapsible-section>
<collapsible-section heading="Size" expanded="true">
<dl class="dl-horizontal dl-narrow" ng-if="ctrl.serverGroup.capacity.min === ctrl.serverGroup.capacity.max">
<dt>Min/Max</dt>
<dd>{{ctrl.serverGroup.capacity.min}}</dd>
<dt>Current</dt>
<dd>{{ctrl.serverGroup.instances.length}}</dd>
</dl>
<dl class="dl-horizontal dl-narrow" ng-if="ctrl.serverGroup.capacity.min !== ctrl.serverGroup.capacity.max">
<dt>Min</dt>
<dd>{{ctrl.serverGroup.capacity.min}}</dd>
<dt>Max</dt>
<dd>{{ctrl.serverGroup.capacity.max}}</dd>
<dt>Current</dt>
<dd>{{ctrl.serverGroup.instances.length}}</dd>
</dl>
</collapsible-section>
<collapsible-section heading="Health" expanded="true">
<dl class="dl-horizontal dl-narrow" ng-if="ctrl.serverGroup">
<dt>Instances</dt>
<dd>
<health-counts container="ctrl.serverGroup.instanceCounts" class="pull-left"></health-counts>
</dd>
</dl>
</collapsible-section>
<collapsible-section heading="DNS" expanded="true">
<dl class="dl-narrow">
<appengine-component-url-details component="ctrl.serverGroup"></appengine-component-url-details>
</dl>
</collapsible-section>
<collapsible-section heading="Scaling Policy" expanded="true" ng-if="ctrl.serverGroup.scalingPolicy">
<dl>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy"
key="type"
></appengine-conditional-dt-dd>
<!--MANUAL SCALING PROPERTIES-->
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy"
key="instances"
></appengine-conditional-dt-dd>
<!--BASIC SCALING PROPERTIES-->
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy"
key="idleTimeout"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy"
key="maxInstances"
></appengine-conditional-dt-dd>
<!--AUTOMATIC SCALING PROPERTIES-->
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy"
key="coolDownPeriod"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy"
key="maxConcurrentRequests"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy"
key="maxTotalInstances"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy"
key="minTotalInstances"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy"
key="maxIdleInstances"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy"
key="minIdleInstances"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy"
key="maxPendingLatency"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy"
key="minPendingLatency"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy.cpuUtilization"
key="aggregationWindowLength"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy.cpuUtilization"
key="targetUtilization"
label="Target CPU Utilization"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy.diskUtilization"
key="targetReadBytesPerSecond"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy.diskUtilization"
key="targetReadOpsPerSecond"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy.diskUtilization"
key="targetWriteBytesPerSecond"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy.diskUtilization"
key="targetWriteOpsPerSecond"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy.networkUtilization"
key="targetReceivedBytesPerSecond"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy.networkUtilization"
key="targetReceivedPacketsPerSecond"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy.networkUtilization"
key="targetSentBytesPerSecond"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy.networkUtilization"
key="targetSentPacketsPerSecond"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy.requestUtilization"
key="targetConcurrentRequests"
></appengine-conditional-dt-dd>
<appengine-conditional-dt-dd
component="ctrl.serverGroup.scalingPolicy.requestUtilization"
key="targetRequestCountPerSecond"
></appengine-conditional-dt-dd>
</dl>
</collapsible-section>
</div>
</div>