blob: 7f61fb53b911d98dfb974c1f28cd99dfc325386b [file] [log] [blame]
Iftekharul Islama1d238f2018-02-26 12:29:45 -06001<loader loading="dataService.loading || loading"></loader>
Dixsie Wolmerse3681082019-06-21 13:48:06 -05002<div id="power-operations" class="power-operations">
3 <div class="row column">
4 <h1>Server power operations</h1>
5 <div class="power__current-status page-header">
6 <h2 class="inline">Current status</h2>
7 <div class="power__status-log inline float-right">
8 Last power operation at
9 <span class="courier-bold">{{ powerTime | localeDate }}</span>
10 </div>
Michael Davis19475752017-02-23 18:30:23 -060011 </div>
Dixsie Wolmerse3681082019-06-21 13:48:06 -050012 </div>
13 <!-- Power Indicator Bar -->
14 <div class="row column">
15 <div id="power-indicator-bar" class="power__indicator-bar"
16 ng-class="{'power__state-on': dataService.server_state == 'Running', 'power__state-off': dataService.server_state == 'Off', 'power__state-indet': dataService.server_state == 'Standby', 'power__state-error': dataService.server_state == 'Quiesced'}">
17 <p class="inline">
18 {{ dataService.hostname }} - {{ dataService.server_id }}
19 </p>
20 <h3 class="power__state inline no-margin h3">
21 <span>{{ dataService.server_state | quiescedToError }}</span>
22 </h3>
Michael Davis19475752017-02-23 18:30:23 -060023 </div>
Dixsie Wolmerse3681082019-06-21 13:48:06 -050024 </div>
25 <div class="row column">
26 <!-- Boot Settings Column -->
27 <div class="large-4 columns boot-options-wrapper">
28 <form id="host-boot-settings" name="hostBootSettings" class="host-boot-settings" novalidate>
29 <h2 class="subhead boot-options">Host OS boot settings</h2>
30 <div class="boot-settings-form">
31 <div class="boot-options">
32 <label for="boot-selected">
33 Boot setting override</label>
Yoshie Muranaka5dac9e12019-09-23 12:01:36 -070034 <select name="bootSelected"
35 id="boot-selected"
36 ng-disabled="dataService.server_unreachable || bootOverrideError"
37 ng-model="boot.BootSourceOverrideTarget"
38 ng-change="onChangeBootSetting()">
Dixsie Wolmerse3681082019-06-21 13:48:06 -050039 <option class="courier-bold" value="{{bootSource}}" ng-repeat="bootSource in bootSources">
40 {{ bootSource }}
41 </option>
42 </select>
43 <div class="boot-options one-time-boot-setting">
44 <div class="align-self-center">
45 <label class="control-check" id="one-time-label"> <span class="inline boot-checkbox">Enable one time boot</span>
Yoshie Muranaka5dac9e12019-09-23 12:01:36 -070046 <input type="checkbox"
47 name="oneTime"
48 ng-disabled="dataService.server_unreachable ||
49 bootOverrideError ||
50 boot.BootSourceOverrideTarget =='None'"
51 ng-model="boot.oneTimeBootEnabled"/>
Dixsie Wolmerse3681082019-06-21 13:48:06 -050052 <span class="control__indicator"> </span>
53 </label>
54 </div>
55 </div>
Michael Davis19475752017-02-23 18:30:23 -060056 </div>
Dixsie Wolmerse3681082019-06-21 13:48:06 -050057 <!-- TPM Required -->
58 <div class="boot-options one-time-boot-setting">
59 <div class="boot-options">
60 <h3 class="content-label">
61 TPM required policy</h3>
62 <p> Enable to ensure the system only boots when the TPM is functional. </p>
63 <!-- Toggle component -->
64 <div class="toggle-container">
65 <div class="toggle">
66 <input
67 id="toggle__switch-round"
68 class="toggle-switch toggle-switch__round-flat"
69 name="toggle"
70 type="checkbox"
71 tabindex="0"
72 ng-model="TPMToggle.TPMEnable"
73 ng-disabled="dataService.server_unreachable"
74 />
75 <label for="toggle__switch-round" tabindex="0"
76 >TPM required policy is {{ TPMToggle.TPMEnable ? "On" : "Off" }}</label
77 >
78 </div>
79 <span>
80 {{ TPMToggle.TPMEnable ? "On" : "Off" }}
81 </span>
82 </div>
83 </div>
84 </div>
85 <!-- form actions -->
86 <div class="boot-form-actions">
87 <button type="submit" class="btn btn-primary" ng-click="saveBootSettings();saveTPMPolicy();hostBootSettings.$setPristine()" ng-disabled="dataService.server_unreachable || hostBootSettings.$pristine;">
88 Save
89 </button>
90 <button type="reset" class="btn btn-secondary" ng-disabled="dataService.server_unreachable || hostBootSettings.$pristine" ng-click="resetForm();hostBootSettings.$setPristine()">
91 Cancel
92 </button>
93 </div>
94 </form>
95 </div>
96 </div>
97 <!-- Power Operations Column -->
98 <div class="large-8 columns operations-wrapper">
99 <h2 class="subhead boot-operations">Operations</h2>
100 <!-- Pending one time boot alert -->
101 <div class="alert-warning"
102 ng-if="boot.oneTimeBootEnabled" ng-hide="dataService.server_state == 'Unreachable'">
103 <div class="pending-icon">
104 <icon file="icon-pending.svg"></icon>
105 </div>
106 <p class="alert-pending">
107 Pending one time boot. Next boot will be performed with the
108 specified one time boot settings. Subsequent boots will be performed
109 with the default settings.
110 </p>
111 </div>
112 <!-- Pending reboot warning -->
113 <p ng-show="operationPending">
114 There are no power operations to display while power operation is in
115 progress. When complete, any new power operations will be displayed
116 here.
117 </p>
118 <div ng-show="!operationPending">
119 <!-- Power on displays only when server is off -->
120 <div class="row column" ng-show="dataService.server_state == 'Off'"
121 ng-class="{disabled: dataService.server_unreachable}">
122 <button id="power__power-on" class="btn btn-primary inline" ng-click="powerOn()" role="button"
123 ng-disabled="dataService.server_unreachable">
124 Power on
125 </button>
126 </div>
127 <!-- Reboot/shutdown column -->
128 <div
129 ng-show="dataService.server_state !== 'Off'">
130 <div class="reboot__operations">
131 <form id="reboot-form" name="rebootForm" class="reboot-form">
132 <fieldset>
133 <legend class="boot-operations">Reboot server</legend>
134 <label class="control-radio">Orderly - OS shuts down, then server reboots
135 <input type="radio" name="radioReboot"
136 ng-model="defaultRebootSetting" value="warm-reboot" />
137 <span class="control__indicator control__indicator-on"></span>
138 </label>
139 <label class="control-radio">Immediate - Server reboots without OS shutting down; may cause data corruption
140 <input type="radio" name="radioReboot"
141 ng-model="defaultRebootSetting" value="cold-reboot" />
142 <span class="control__indicator control__indicator-on"></span>
143 </label>
144 </fieldset>
145 <div>
146 <button class="btn-primary" ng-click="rebootConfirmModal()" type="submit" ng-disabled="dataService.server_unreachable">
147 Reboot
Yoshie Muranaka5ff98782019-07-18 15:36:39 -0500148 </button>
Dixsie Wolmerse3681082019-06-21 13:48:06 -0500149 </div>
150 </form>
151 </div>
152 <!-- Shutdown Field Row -->
153 <div class="shutdown__operations">
154 <form id="shutdown-form" name="shutdownForm" class="shutdown-form">
155 <fieldset>
156 <legend class="boot-operations">Shutdown server</legend>
157 <label class="control-radio">Orderly - OS shuts down, then server shuts down
158 <input type="radio" name="radioShutdown" ng-model="defaultShutdownSetting"
159 value='warm-shutdown' />
160 <span class="control__indicator control__indicator-on"></span>
161 </label>
162 <label class="control-radio">Immediate - Server shuts down without OS shutting down; may cause data corruption
163 <input type="radio" name="radioShutdown" ng-model="defaultShutdownSetting"
164 value='cold-shutdown' />
165 <span class="control__indicator control__indicator-on"></span>
166 </label>
167 </fieldset>
168 <div>
169 <button class="btn-primary" ng-click="shutdownConfirmModal()" type="submit" ng-disabled="dataService.server_unreachable">
170 Shut down
171 </button>
Yoshie Muranaka5ff98782019-07-18 15:36:39 -0500172 </div>
Dixsie Wolmerse3681082019-06-21 13:48:06 -0500173 </form>
174 </div>
Michael Davis19475752017-02-23 18:30:23 -0600175 </div>
Dixsie Wolmerse3681082019-06-21 13:48:06 -0500176 </div>
177 </div>
178</div>