Iftekharul Islam | 1acb412 | 2017-11-02 13:20:32 -0500 | [diff] [blame] | 1 | <loader loading="loading"></loader> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 2 | <div class="row column"> |
Michael Davis | 706b75b | 2017-08-18 16:40:03 -0500 | [diff] [blame] | 3 | <h1>Firmware</h1> |
Michael Davis | 43366db | 2017-05-15 18:12:35 -0500 | [diff] [blame] | 4 | <div class="column small-12 page-header"> |
Michael Davis | 706b75b | 2017-08-18 16:40:03 -0500 | [diff] [blame] | 5 | <h2 class="inline h4">Manage BMC and server firmware</h2> |
Michael Davis | 43366db | 2017-05-15 18:12:35 -0500 | [diff] [blame] | 6 | </div> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 7 | </div> |
| 8 | <div class="row column"> |
Gunnar Mills | 74b0540 | 2018-03-15 12:43:28 -0500 | [diff] [blame] | 9 | <p>Use the following tables to manage firmware image files. The image file that is listed at the top, the image with the highest boot priority, is used the next time that the device is booted. To change the boot priority for the image, click the arrow icons.</p> |
Michael Davis | b27188e | 2017-07-27 14:35:00 -0500 | [diff] [blame] | 10 | <p><a ng-click="gotoAnchor()">Scroll down to upload an image file</a> to transfer a new firmware image to the BMC. After uploading a new image, Activate it to make it available for use.</p> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 11 | </div> |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 12 | <firmware-list title="BMC images" version="bmcActiveVersion" firmwares="firmwares" filter-by="filters.bmc"></firmware-list> |
| 13 | <firmware-list title="Server images" version="hostActiveVersion" firmwares="firmwares" filter-by="filters.host"></firmware-list> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 14 | <div class="row column" id="upload"> |
Michael Davis | 43366db | 2017-05-15 18:12:35 -0500 | [diff] [blame] | 15 | <div class="column small-12 page-header"> |
Michael Davis | b27188e | 2017-07-27 14:35:00 -0500 | [diff] [blame] | 16 | <h2 class="inline h3 bold">Specify image file location</h2> |
Michael Davis | 43366db | 2017-05-15 18:12:35 -0500 | [diff] [blame] | 17 | </div> |
| 18 | <form id="firmware__upload-form" role="form" class="firmware__upload-form"> |
Michael Davis | b27188e | 2017-07-27 14:35:00 -0500 | [diff] [blame] | 19 | <p>Specify an image file located on your workstation or a TFTP server. An image file may contain firmware images for the server, BMC, or other hardware devices. Each image that you upload will be unpacked from the image file and added to the appropriate list above.</p> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 20 | <div class=" column firmware__upload-station"> |
Michael Davis | b27188e | 2017-07-27 14:35:00 -0500 | [diff] [blame] | 21 | <h3 class="h4 bold">Upload image file from workstation</h3> |
| 22 | <p>Select the image file saved on the workstation storage medium to upload to the server BMC.</p> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 23 | <label for="file-upload" class="inline firmware__upload-chooser"> |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 24 | <input id="file-upload" type="file" file="file" class="hide" onchange="angular.element(this).scope().fileNameChanged()"/> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 25 | <span class="button btn-secondary inline">Choose a file</span> |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 26 | <span class="inline firmware__upload-file-name"><span ng-if="!file">No file chosen</span><span ng-if="file.name !== undefined">{{file.name}}</span></span> |
Michael Davis | 43366db | 2017-05-15 18:12:35 -0500 | [diff] [blame] | 27 | </label> |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 28 | <input type="button" value="Upload firmware" class="inline button btn-primary float-right" ng-click="upload()"/> |
| 29 | <div class="inline uploading" ng-show="uploading">Upload in progress...</div> |
CamVan Nguyen | f97adb9 | 2018-04-27 13:33:04 -0500 | [diff] [blame] | 30 | <p class="download_success" ng-show="upload_success" role="alert">{{file ? '' : 'Upload complete. Check image tables above.'}}</p> |
Michael Davis | 43366db | 2017-05-15 18:12:35 -0500 | [diff] [blame] | 31 | </div> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 32 | <div class=" column firmware__upload-tftp"> |
Michael Davis | b27188e | 2017-07-27 14:35:00 -0500 | [diff] [blame] | 33 | <h3 class="h4 bold">Download image file from TFTP server</h3> |
| 34 | <p>Specify both the TFTP server IP address and the image file name stored on it to download to the server BMC.</p> |
Michael Davis | 43366db | 2017-05-15 18:12:35 -0500 | [diff] [blame] | 35 | <fieldset> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 36 | <div class="row"> |
| 37 | <div class="column small-12 large-4"> |
Michael Davis | b27188e | 2017-07-27 14:35:00 -0500 | [diff] [blame] | 38 | <label for="tftp-ip">TFTP Server IP address</label> |
Iftekharul Islam | 1acb412 | 2017-11-02 13:20:32 -0500 | [diff] [blame] | 39 | <input name="tftp-ip" id="tftp-ip" type="text" ng-model="download_host"/> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 40 | </div> |
| 41 | <div class="column small-12 large-4"> |
| 42 | <label for="tftp-file-name">File name</label> |
Iftekharul Islam | 1acb412 | 2017-11-02 13:20:32 -0500 | [diff] [blame] | 43 | <input name="tftp-file-name" id="tftp-file-name" type="text" ng-model="download_filename"/> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 44 | </div> |
| 45 | <div class="column small-12 large-4"> |
Iftekharul Islam | 1acb412 | 2017-11-02 13:20:32 -0500 | [diff] [blame] | 46 | <input type="button" value="Download firmware" class="inline button btn-primary float-right" ng-click="download()"/> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 47 | </div> |
| 48 | </div> |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 49 | <div class="inline uploading" ng-show="downloading">Downloading in progress...</div> |
Gunnar Mills | 6d7b4a8 | 2018-04-02 15:25:36 -0500 | [diff] [blame] | 50 | <p class="download_error error-msg" ng-show="download_error_msg" role="alert">{{download_error_msg}}</p> |
CamVan Nguyen | 58301ec | 2018-04-20 21:33:01 -0500 | [diff] [blame] | 51 | <p class="download_success" ng-show="download_success" role="alert">Download complete. Check image tables above.</p> |
Michael Davis | 43366db | 2017-05-15 18:12:35 -0500 | [diff] [blame] | 52 | </fieldset> |
| 53 | </div> |
Michael Davis | 43366db | 2017-05-15 18:12:35 -0500 | [diff] [blame] | 54 | </form> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 55 | </div> |
| 56 | |
| 57 | <!-- Firmware modals --> |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 58 | <section class="modal" aria-hidden="true" aria-labelledby="modalTitle" aria-describedby="modalDescription" role="dialog" ng-class="{'active': display_error}"> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 59 | <div class="modal__upload-fail" role="document"> |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 60 | <div class="screen-reader-offscreen modal-description">{{error.modal_title}}</div><!-- accessibility only; used for screen readers --> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 61 | <div class="page-header "> |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 62 | <span class="icon icon__warning inline"><span class="accessible-text" role="alert">{{error.type}}</span></span> |
| 63 | <h1 class="modal-title h4 inline">{{error.title}}</h1> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 64 | </div> |
| 65 | <div class="modal__content"> |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 66 | <p>{{error.desc}}</p> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 67 | </div> |
| 68 | <div class="modal__button-wrapper"> |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 69 | <button class="inline btn-primary" ng-click="display_error = false;">Close</button> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 70 | </div> |
| 71 | </div> |
| 72 | </section> |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 73 | |
Iftekharul Islam | 1acb412 | 2017-11-02 13:20:32 -0500 | [diff] [blame] | 74 | <section class="modal" aria-hidden="true" aria-labelledby="modalTitle" aria-describedby="modalDescription" role="dialog" ng-class="{'active': confirm_priority}"> |
| 75 | <div class="modal__tftp-unreachable" role="document"> |
| 76 | <div class="screen-reader-offscreen modal-description">Update image priority</div><!-- accessibility only; used for screen readers --> |
| 77 | <div class="page-header "> |
| 78 | <span class="icon icon__warning inline"><span class="accessible-text" role="alert">Warning</span></span> |
| 79 | <h1 class="modal-title h4 inline">Change image priority</h1> |
| 80 | </div> |
| 81 | <div class="modal__content"> |
Gunnar Mills | 6473a41 | 2018-03-01 16:19:37 -0600 | [diff] [blame] | 82 | <p>Change firmware {{priority_image_version}} priority?</p> |
Iftekharul Islam | 1acb412 | 2017-11-02 13:20:32 -0500 | [diff] [blame] | 83 | </div> |
| 84 | <div class="modal__button-wrapper"> |
| 85 | <button class="inline btn-secondary" ng-click="confirm_priority=false;">Cancel</button> |
| 86 | <button class="inline btn-primary" ng-click="confirmChangePriority()">Continue</button> |
| 87 | </div> |
| 88 | </div> |
| 89 | </section> |
| 90 | |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 91 | <section class="modal" aria-hidden="true" aria-labelledby="modalTitle" aria-describedby="modalDescription" role="dialog" ng-class="{'active': confirm_delete}"> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 92 | <div class="modal__tftp-unreachable" role="document"> |
| 93 | <div class="screen-reader-offscreen modal-description">Delete firmware image</div><!-- accessibility only; used for screen readers --> |
| 94 | <div class="page-header "> |
| 95 | <span class="icon icon__warning inline"><span class="accessible-text" role="alert">Warning</span></span> |
| 96 | <h1 class="modal-title h4 inline">Delete image</h1> |
| 97 | </div> |
| 98 | <div class="modal__content"> |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 99 | <p>Delete firmware {{delete_image_version}}?</p> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 100 | </div> |
| 101 | <div class="modal__button-wrapper"> |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 102 | <button class="inline btn-secondary" ng-click="confirm_delete=false;">Cancel</button> |
| 103 | <button class="inline btn-primary" ng-click="confirmDeleteImage()">Continue</button> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 104 | </div> |
| 105 | </div> |
| 106 | </section> |
Iftekharul Islam | c016139 | 2017-06-14 15:46:15 -0500 | [diff] [blame] | 107 | |
Gunnar Mills | e7f8397 | 2018-03-21 11:03:35 -0500 | [diff] [blame] | 108 | <section class="modal" aria-hidden="true" aria-labelledby="modalTitle" aria-describedby="modalDescription" role="dialog" ng-class="{'active': activate_confirm}"> |
| 109 | <div class="modal__activate" role="document"> |
| 110 | <div class="screen-reader-offscreen modal-description">Activate modal</div><!-- accessibility only; used for screen readers --> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 111 | <div class="page-header "> |
| 112 | <h1 class="modal-title h4"><span class="icon icon__info"><svg xmlns="http://www.w3.org/2000/svg" |
| 113 | viewBox="0 0 32 32"><path |
| 114 | d="M18 14h-6v2h1v6h-2v2h8v-2h-2z"/><circle cx="16" cy="10" r="2"/><path |
| 115 | d="M16 2C8.269 2 2 8.269 2 16s6.269 14 14 14 14-6.269 14-14S23.731 2 16 2zm0 26C9.383 28 4 22.617 4 16S9.383 4 16 4s12 5.383 12 12-5.383 12-12 12z"/></svg></span> |
Gunnar Mills | ee6efd8 | 2018-03-21 15:31:56 -0500 | [diff] [blame] | 116 | <!-- We call "Host" firmware "server" firmware --> |
| 117 | Confirm {{activate_image_type == 'Host' ? 'server' : activate_image_type}} firmware file activation |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 118 | </h1> |
| 119 | </div> |
| 120 | <div class="modal__content"> |
Gunnar Mills | ee6efd8 | 2018-03-21 15:31:56 -0500 | [diff] [blame] | 121 | <div ng-switch on="activate_image_type"> |
Gunnar Mills | 6d9ef5a | 2018-03-26 15:34:31 -0500 | [diff] [blame] | 122 | <p ng-switch-when="BMC">When you activate the BMC firmware file, {{activate_image_version}}, the BMC must be rebooted before it will operate with the new firmware code. Note that when you reboot the BMC, the BMC will be unavailable for several minutes and you must log in again.</p> |
beccabroek | c3abaa9 | 2018-08-14 13:47:18 -0500 | [diff] [blame] | 123 | <p ng-switch-when="Host">When you activate the server firmware file, {{activate_image_version}}, the new firmware will not operate until the next time the server boots.</p> |
Gunnar Mills | ee6efd8 | 2018-03-21 15:31:56 -0500 | [diff] [blame] | 124 | </div> |
| 125 | <form ng-if="activate_image_type == 'BMC'"> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 126 | <fieldset> |
| 127 | <div class="row column"> |
Gunnar Mills | e7f8397 | 2018-03-21 11:03:35 -0500 | [diff] [blame] | 128 | <label class="control-radio bold" for="activate-without-reboot">Activate firmware file without rebooting BMC |
Gunnar Mills | 6d9ef5a | 2018-03-26 15:34:31 -0500 | [diff] [blame] | 129 | <input type="radio" name="activate-without-reboot" id="activate-without-reboot" ng-model="activate.reboot" ng-value="false"/> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 130 | <span class="control__indicator control__indicator-on"></span> |
| 131 | </label> |
| 132 | </div> |
Gunnar Mills | 6d9ef5a | 2018-03-26 15:34:31 -0500 | [diff] [blame] | 133 | <div class="row column"> |
| 134 | <label class="control-radio bold" for="activate-with-reboot">Activate firmware file and automatically reboot BMC |
| 135 | <input type="radio" name="activate-with-reboot" id="activate-with-reboot" ng-model="activate.reboot" ng-value="true"/> |
| 136 | <span class="control__indicator control__indicator-on"></span> |
| 137 | </label> |
| 138 | </div> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 139 | </fieldset> |
| 140 | </form> |
beccabroek | c3abaa9 | 2018-08-14 13:47:18 -0500 | [diff] [blame] | 141 | <form ng-if="activate_image_type == 'Host'"> |
| 142 | <fieldset> |
| 143 | <div class="row column"> |
| 144 | <label class="control-radio bold" for="activate-host-without-reboot">Activate firmware file without {{isServerOff() ? "booting" : "rebooting"}} server |
| 145 | <input type="radio" name="activate-host-without-reboot" id="activate-host-without-reboot" ng-model="activate.reboot" ng-value="false"/> |
| 146 | <span class="control__indicator control__indicator-on"></span> |
| 147 | </label> |
| 148 | </div> |
| 149 | <div class="row column"> |
| 150 | <label class="control-radio bold" for="activate-host-with-reboot">Activate firmware file and automatically {{isServerOff() ? "boot" : "reboot"}} server |
| 151 | <input type="radio" name="activate-host-with-reboot" id="activate-host-with-reboot" ng-model="activate.reboot" ng-value="true"/> |
| 152 | <span class="control__indicator control__indicator-on"></span> |
| 153 | </label> |
| 154 | </div> |
| 155 | </fieldset> |
| 156 | </form> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 157 | </div> |
| 158 | <div class="modal__button-wrapper"> |
Gunnar Mills | e7f8397 | 2018-03-21 11:03:35 -0500 | [diff] [blame] | 159 | <button class="inline btn-secondary" ng-click="activate_confirm=false;">Cancel</button> |
| 160 | <button class="inline btn-primary" ng-click="activateConfirmed()">Continue</button> |
Michael Davis | 9486f54 | 2017-05-30 15:35:31 -0500 | [diff] [blame] | 161 | </div> |
| 162 | </div> |
| 163 | </section> |
Gunnar Mills | 51b0388 | 2018-03-21 13:24:04 -0500 | [diff] [blame] | 164 | <div class="modal-overlay" tabindex="-1" ng-class="{'active': (display_error || activate_confirm)}"></div> |