summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGunnar Mills <gmills@us.ibm.com>2018-02-23 10:12:39 -0600
committerGunnar Mills <gmills@us.ibm.com>2018-02-28 16:37:31 -0600
commit902c38ca3432e57884b6662404d1c68098ea1cef (patch)
treeed92fccdb057a4af75a063af6fa0238c2e75ade4
parent25fdeb8e3b26ae37d244bf0a54fa36c3b7789c1c (diff)
downloadphosphor-webui-902c38ca3432e57884b6662404d1c68098ea1cef.tar.gz
phosphor-webui-902c38ca3432e57884b6662404d1c68098ea1cef.zip
Add additional "Image States"
Added the following Activation States or as they are known on the GUI, "Image States": "NotReady", "Invalid", "Activating", and "Failed". Instead of having a variable for each state, these "Image States" are now tracked under one variable. Also, moved to looking at the value of "Activation", github.com/openbmc/phosphor-dbus-interfaces/blob/master/xyz/openbmc_project/Software/Activation.interface.yaml#L17, so if more states are added in the future they will be picked up. Resolves openbmc/openbmc#2928 Tested: Verified when I activated an image I see the "Activating" state. Change-Id: I1f5e408ebe31f3eb6c3f0417d6605bff06c9ac19 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
-rw-r--r--app/common/directives/firmware-list.html16
-rw-r--r--app/common/services/api-utils.js25
2 files changed, 19 insertions, 22 deletions
diff --git a/app/common/directives/firmware-list.html b/app/common/directives/firmware-list.html
index c53a417..0be4625 100644
--- a/app/common/directives/firmware-list.html
+++ b/app/common/directives/firmware-list.html
@@ -21,23 +21,21 @@
</div>
</div>
<div class="table__body">
- <div class="table__row" ng-class="firmware.functional ? 'firmware__primary' : ''" ng-repeat="firmware in firmwares|filter:filterBy|orderBy:'+Priority'">
+ <div class="table__row" ng-class="firmware.activationStatus == 'Functional' ? 'firmware__primary' : ''" ng-repeat="firmware in firmwares|filter:filterBy|orderBy:'+Priority'">
<div class="table__cell">
<span class="table__cell-label">Boot priority:</span>
<div class="icon icon__up-arrow" aria-hidden="true" ng-class="{'icon-as-spacer':$first}"
ng-click="!$first && changePriority(firmware.imageId, firmware.Priority, firmware.Priority - 1)"
- ng-show="firmware.activationFlags.functional || firmware.activationFlags.ready">
+ ng-show="firmware.activationStatus == 'Functional' || firmware.activationStatus == 'Ready'">
<span class="accessible-text">firmware up in priority</span></div>
<div class="icon icon__down-arrow" aria-hidden="true" ng-class="{'icon-as-spacer':$last}"
ng-click="!$last && changePriority(firmware.imageId, firmware.Priority, firmware.Priority + 1)"
- ng-hide="firmware.activationFlags.ready">
+ ng-hide="firmware.activationStatus == 'Ready'">
<span class="accessible-text">firmware down in priority</span></div>
</div>
<div class="table__cell firmware__active">
<span class="table__cell-label">Image state:</span>
- <span ng-if="firmware.activationFlags.functional">Functional</span>
- <span ng-if="firmware.activationFlags.active">Active</span>
- <span ng-if="firmware.activationFlags.ready">Ready</span>
+ <span>{{firmware.activationStatus}}</span>
</div>
<div class="table__cell firmware__version" ng-class="{'active':firmware.isExtended}">
<span class="table__cell-label">Version:</span>{{firmware.Version}}
@@ -59,10 +57,10 @@
</div>
<div class="table__cell">
<span class="table__cell-label">Action:</span>
- <button class="firmware__action-link" ng-show="firmware.activationFlags.ready" ng-click="activate(firmware.imageId)">Activate</button>
- <button class="firmware__action-link" ng-show="!firmware.functional" ng-click="delete(firmware.imageId)">Delete</button>
+ <button class="firmware__action-link" ng-show="firmware.activationStatus == 'Ready'" ng-click="activate(firmware.imageId)">Activate</button>
+ <button class="firmware__action-link" ng-show="firmware.activationStatus != 'Functional'" ng-click="delete(firmware.imageId)">Delete</button>
</div>
</div>
</div>
</div>
-</div> \ No newline at end of file
+</div>
diff --git a/app/common/services/api-utils.js b/app/common/services/api-utils.js
index 9b619bd..6268f8c 100644
--- a/app/common/services/api-utils.js
+++ b/app/common/services/api-utils.js
@@ -608,10 +608,7 @@ window.angular && (function (angular) {
var json = JSON.stringify(response.data);
var content = JSON.parse(json);
var data = [];
- var active = false;
- var functional = false;
- var ready = false;
- var activationStatus = {active: false, ready: false, functional: false};
+ var activationStatus = "";
var isExtended = false;
var bmcActiveVersion = "";
var hostActiveVersion = "";
@@ -646,11 +643,14 @@ window.angular && (function (angular) {
for(var key in content.data){
if(content.data.hasOwnProperty(key) && content.data[key].hasOwnProperty('Version')){
-
- functional = (content.data[key].Priority == 0);
- active = !functional && (/\.Active$/).test(content.data[key].Activation);
- ready = (/\.Ready$/).test(content.data[key].Activation);
- activationStatus = {functional: functional, active: active, ready: ready};
+ // If the image is "Functional" use that for the
+ // activation status, else use the value of "Activation"
+ // github.com/openbmc/phosphor-dbus-interfaces/blob/master/xyz/openbmc_project/Software/Activation.interface.yaml
+ activationStatus = content.data[key].Activation.split(".").pop();
+ if (content.data[key].Priority == 0)
+ {
+ activationStatus = "Functional";
+ }
imageType = content.data[key].Purpose.split(".").pop();
isExtended = content.data[key].hasOwnProperty('ExtendedVersion') && content.data[key].ExtendedVersion != "";
if(isExtended){
@@ -658,8 +658,7 @@ window.angular && (function (angular) {
}
data.push(Object.assign({
path: key,
- functional: functional,
- activationFlags: activationStatus,
+ activationStatus: activationStatus,
imageId: key.split("/").pop(),
imageType: imageType,
isExtended: isExtended,
@@ -670,11 +669,11 @@ window.angular && (function (angular) {
data: {key: key, value: content.data[key]}
}, content.data[key]));
- if(functional && imageType == 'BMC'){
+ if(activationStatus == 'Functional' && imageType == 'BMC'){
bmcActiveVersion = content.data[key].Version;
}
- if(functional && imageType == 'Host'){
+ if(activationStatus == 'Functional' && imageType == 'Host'){
hostActiveVersion = content.data[key].Version;
}
}
OpenPOWER on IntegriCloud