Fix inconsistent power status

The webui was using a websocket to subscribe the events from BMC for
server status and logging.
It uses a debouncer of 2.5 to limit the events, however, it causes the
loss of the events, so the power change status event could be missed by
the webui, causing the `Power` status is not really consistent.

There was an issue in the property change handler as well that it
assumes the `CurrentHostState` is there. However, certain event could be
fired without `CurrentHostState` change, e.g. the "ForceWarmReboot" will
get an host event of `RequestedHostTransition` without
`CurrentHostState`'s change, the code will get an undefined
`CurrentHostState` and the `Power` status becomes undetermined.

Remove the 2.5 debouncer, and only set the power status when
`CurrentHostState` is really received to fix the issue.

Tested: Verify the `Power` status is consistent with the server status.

Signed-off-by: Lei YU <yulei.sh@bytedance.com>
Change-Id: I732069fff954a2b8b1de4848115641903a8bc904
1 file changed
tree: 02c8d1dc64524d53ed9626c4faab429cbdbd6fac
  1. .github/
  2. docs/
  3. public/
  4. src/
  5. tests/
  6. .browserslistrc
  7. .env.ibm
  8. .env.intel
  9. .eslintrc.js
  10. .gitattributes
  11. .gitignore
  12. .npmrc
  13. .shellcheck
  14. babel.config.js
  15. CONTRIBUTING.md
  16. format-code.sh
  17. jest.config.js
  18. LICENSE
  19. MAINTAINERS
  20. package-lock.json
  21. package.json
  22. postcss.config.js
  23. README.md
  24. run-ci
  25. vue.config.js
README.md

webui-vue

webui-vue is a web-based user interface for the OpenBMC firmware stack built on Vue.js.

Hold on... What happened to phosphor-webui?

phosphor-webui was built on AngularJS and AngularJS goes End of Life June 30, 2021, this repository is its replacement.

When will this new Vue.js application reach feature parity with phosphor-webui?

Several, mostly minor, features remain for feature parity. See GitHub Issues label:phosphor-webui-feature-parity for the complete list.

Why will this application be better?

As mentioned, this application is built using Vue.js, a modern open-source Model-View-ViewModel JavaScript framework supported by an active community and strong documentation. It has been architected to allow organizations to easily update the theme to support their brand. This rewrite takes advantage of front-end development best practices and does not suffer from some of the anti-patterns that exist in phosphor-webui today.

Should I switch to webui-vue from phosphor-webui?

That is up to you. Several companies have switched.

webui-vue although still missing a few features that were in phosphor-webui, as mentioned above, has the following additional features:

  • Ability to easily theme to meet brand guidelines
  • Accessibility
  • Full Redfish
  • Improved user experience based on user feedback
  • Language translation-ready
  • Modern front-end framework with an active community and future development roadmap

How can I get involved?

Documentation

The documentation for coding standards and components is located in the docs directory. It is created using the VuePress static site generator. Information about how to write documentation can be found on the VuePress website.