| <template> |
| <b-container fluid="xl"> |
| <page-title /> |
| <div class="quicklinks-section"> |
| <overview-quick-links /> |
| </div> |
| <b-row> |
| <b-col> |
| <page-section :section-title="$t('pageOverview.bmcInformation')"> |
| <b-row> |
| <b-col> |
| <dl> |
| <dt>{{ $t('pageOverview.firmwareVersion') }}</dt> |
| <dd>{{ bmcFirmwareVersion }}</dd> |
| </dl> |
| </b-col> |
| </b-row> |
| </page-section> |
| <b-row> |
| <b-col> |
| <page-section |
| :section-title="$t('pageOverview.networkInformation')" |
| > |
| <overview-network /> |
| </page-section> |
| </b-col> |
| </b-row> |
| </b-col> |
| <b-col> |
| <page-section :section-title="$t('pageOverview.serverInformation')"> |
| <b-row> |
| <b-col sm="6"> |
| <dl> |
| <dt>{{ $t('pageOverview.model') }}</dt> |
| <dd>{{ serverModel }}</dd> |
| </dl> |
| </b-col> |
| <b-col sm="6"> |
| <dl> |
| <dt>{{ $t('pageOverview.manufacturer') }}</dt> |
| <dd>{{ serverManufacturer }}</dd> |
| </dl> |
| </b-col> |
| <b-col sm="6"> |
| <dl> |
| <dt>{{ $t('pageOverview.serialNumber') }}</dt> |
| <dd>{{ serverSerialNumber }}</dd> |
| </dl> |
| </b-col> |
| <b-col sm="6"> |
| <dl> |
| <dt>{{ $t('pageOverview.firmwareVersion') }}</dt> |
| <dd>{{ hostFirmwareVersion }}</dd> |
| </dl> |
| </b-col> |
| </b-row> |
| </page-section> |
| <page-section :section-title="$t('pageOverview.powerConsumption')"> |
| <b-row> |
| <b-col sm="6"> |
| <dl> |
| <dt>{{ $t('pageOverview.powerConsumption') }}</dt> |
| <dd v-if="powerConsumptionValue == null"> |
| {{ $t('global.status.notAvailable') }} |
| </dd> |
| <dd v-else>{{ powerConsumptionValue }} W</dd> |
| </dl> |
| </b-col> |
| <b-col sm="6"> |
| <dl> |
| <dt>{{ $t('pageOverview.powerCap') }}</dt> |
| <dd v-if="powerCapValue == null"> |
| {{ $t('global.status.disabled') }} |
| </dd> |
| <dd v-else>{{ powerCapValue }} W</dd> |
| </dl> |
| </b-col> |
| </b-row> |
| </page-section> |
| </b-col> |
| </b-row> |
| <page-section :section-title="$t('pageOverview.highPriorityEvents')"> |
| <overview-events /> |
| </page-section> |
| </b-container> |
| </template> |
| |
| <script> |
| import OverviewQuickLinks from './OverviewQuickLinks'; |
| import OverviewEvents from './OverviewEvents'; |
| import OverviewNetwork from './OverviewNetwork'; |
| import PageTitle from '@/components/Global/PageTitle'; |
| import PageSection from '@/components/Global/PageSection'; |
| import { mapState } from 'vuex'; |
| import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin'; |
| |
| export default { |
| name: 'Overview', |
| components: { |
| OverviewQuickLinks, |
| OverviewEvents, |
| OverviewNetwork, |
| PageTitle, |
| PageSection, |
| }, |
| mixins: [LoadingBarMixin], |
| data() { |
| return { |
| firmwareStoreModuleName: this.$store.hasModule('firmwareSingleImage') |
| ? 'firmwareSingleImage' |
| : 'firmware', |
| }; |
| }, |
| computed: { |
| ...mapState({ |
| server: (state) => state.system.systems[0], |
| powerCapValue: (state) => state.powerControl.powerCapValue, |
| powerConsumptionValue: (state) => |
| state.powerControl.powerConsumptionValue, |
| serverManufacturer() { |
| if (this.server) return this.server.manufacturer || '--'; |
| return '--'; |
| }, |
| serverModel() { |
| if (this.server) return this.server.model || '--'; |
| return '--'; |
| }, |
| serverSerialNumber() { |
| if (this.server) return this.server.serialNumber || '--'; |
| return '--'; |
| }, |
| hostFirmwareVersion() { |
| if (this.server) return this.server.firmwareVersion || '--'; |
| return '--'; |
| }, |
| }), |
| bmcFirmwareVersion() { |
| return this.$store.getters[ |
| `${this.firmwareStoreModuleName}/bmcFirmwareCurrentVersion` |
| ]; |
| }, |
| }, |
| created() { |
| this.startLoader(); |
| const quicklinksPromise = new Promise((resolve) => { |
| this.$root.$on('overview::quicklinks::complete', () => resolve()); |
| }); |
| const networkPromise = new Promise((resolve) => { |
| this.$root.$on('overview::network::complete', () => resolve()); |
| }); |
| const eventsPromise = new Promise((resolve) => { |
| this.$root.$on('overview::events::complete', () => resolve()); |
| }); |
| Promise.all([ |
| this.$store.dispatch('system/getSystem'), |
| this.$store.dispatch( |
| `${this.firmwareStoreModuleName}/getFirmwareInformation` |
| ), |
| this.$store.dispatch('powerControl/getPowerControl'), |
| quicklinksPromise, |
| networkPromise, |
| eventsPromise, |
| ]).finally(() => this.endLoader()); |
| }, |
| }; |
| </script> |
| |
| <style lang="scss" scoped> |
| .quicklinks-section { |
| margin-bottom: $spacer * 2; |
| margin-left: $spacer * -1; |
| } |
| |
| dd { |
| white-space: nowrap; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| } |
| </style> |