Display docker version (#5989)

This commit is contained in:
Joakim Sørensen 2020-06-18 11:54:21 +02:00 committed by GitHub
parent 5cbffb23fd
commit 16c604937e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 54 additions and 3 deletions

View File

@ -14,7 +14,9 @@ import {
createHassioSession, createHassioSession,
fetchHassioHomeAssistantInfo, fetchHassioHomeAssistantInfo,
fetchHassioSupervisorInfo, fetchHassioSupervisorInfo,
fetchHassioInfo,
HassioHomeAssistantInfo, HassioHomeAssistantInfo,
HassioInfo,
HassioPanelInfo, HassioPanelInfo,
HassioSupervisorInfo, HassioSupervisorInfo,
} from "../../src/data/hassio/supervisor"; } from "../../src/data/hassio/supervisor";
@ -75,6 +77,8 @@ class HassioMain extends ProvideHassLitMixin(HassRouterPage) {
@property() private _hostInfo: HassioHostInfo; @property() private _hostInfo: HassioHostInfo;
@property() private _hassioInfo?: HassioInfo;
@property() private _hassOsInfo?: HassioHassOSInfo; @property() private _hassOsInfo?: HassioHassOSInfo;
@property() private _hassInfo: HassioHomeAssistantInfo; @property() private _hassInfo: HassioHomeAssistantInfo;
@ -147,6 +151,7 @@ class HassioMain extends ProvideHassLitMixin(HassRouterPage) {
hass: this.hass, hass: this.hass,
narrow: this.narrow, narrow: this.narrow,
supervisorInfo: this._supervisorInfo, supervisorInfo: this._supervisorInfo,
hassioInfo: this._hassioInfo,
hostInfo: this._hostInfo, hostInfo: this._hostInfo,
hassInfo: this._hassInfo, hassInfo: this._hassInfo,
hassOsInfo: this._hassOsInfo, hassOsInfo: this._hassOsInfo,
@ -156,6 +161,7 @@ class HassioMain extends ProvideHassLitMixin(HassRouterPage) {
el.hass = this.hass; el.hass = this.hass;
el.narrow = this.narrow; el.narrow = this.narrow;
el.supervisorInfo = this._supervisorInfo; el.supervisorInfo = this._supervisorInfo;
el.hassioInfo = this._hassioInfo;
el.hostInfo = this._hostInfo; el.hostInfo = this._hostInfo;
el.hassInfo = this._hassInfo; el.hassInfo = this._hassInfo;
el.hassOsInfo = this._hassOsInfo; el.hassOsInfo = this._hassOsInfo;
@ -169,12 +175,14 @@ class HassioMain extends ProvideHassLitMixin(HassRouterPage) {
return; return;
} }
const [supervisorInfo, hostInfo, hassInfo] = await Promise.all([ const [supervisorInfo, hostInfo, hassInfo, hassioInfo] = await Promise.all([
fetchHassioSupervisorInfo(this.hass), fetchHassioSupervisorInfo(this.hass),
fetchHassioHostInfo(this.hass), fetchHassioHostInfo(this.hass),
fetchHassioHomeAssistantInfo(this.hass), fetchHassioHomeAssistantInfo(this.hass),
fetchHassioInfo(this.hass),
]); ]);
this._supervisorInfo = supervisorInfo; this._supervisorInfo = supervisorInfo;
this._hassioInfo = hassioInfo;
this._hostInfo = hostInfo; this._hostInfo = hostInfo;
this._hassInfo = hassInfo; this._hassInfo = hassInfo;

View File

@ -3,6 +3,7 @@ import { HassioHassOSInfo, HassioHostInfo } from "../../src/data/hassio/host";
import { import {
HassioHomeAssistantInfo, HassioHomeAssistantInfo,
HassioSupervisorInfo, HassioSupervisorInfo,
HassioInfo,
} from "../../src/data/hassio/supervisor"; } from "../../src/data/hassio/supervisor";
import { import {
HassRouterPage, HassRouterPage,
@ -26,6 +27,8 @@ class HassioPanelRouter extends HassRouterPage {
@property({ attribute: false }) public supervisorInfo: HassioSupervisorInfo; @property({ attribute: false }) public supervisorInfo: HassioSupervisorInfo;
@property({ attribute: false }) public hassioInfo!: HassioInfo;
@property({ attribute: false }) public hostInfo: HassioHostInfo; @property({ attribute: false }) public hostInfo: HassioHostInfo;
@property({ attribute: false }) public hassInfo: HassioHomeAssistantInfo; @property({ attribute: false }) public hassInfo: HassioHomeAssistantInfo;
@ -54,6 +57,7 @@ class HassioPanelRouter extends HassRouterPage {
el.route = this.route; el.route = this.route;
el.narrow = this.narrow; el.narrow = this.narrow;
el.supervisorInfo = this.supervisorInfo; el.supervisorInfo = this.supervisorInfo;
el.hassioInfo = this.hassioInfo;
el.hostInfo = this.hostInfo; el.hostInfo = this.hostInfo;
el.hassInfo = this.hassInfo; el.hassInfo = this.hassInfo;
el.hassOsInfo = this.hassOsInfo; el.hassOsInfo = this.hassOsInfo;

View File

@ -10,6 +10,7 @@ import { HassioHassOSInfo, HassioHostInfo } from "../../src/data/hassio/host";
import { import {
HassioHomeAssistantInfo, HassioHomeAssistantInfo,
HassioSupervisorInfo, HassioSupervisorInfo,
HassioInfo,
} from "../../src/data/hassio/supervisor"; } from "../../src/data/hassio/supervisor";
import type { PageNavigation } from "../../src/layouts/hass-tabs-subpage"; import type { PageNavigation } from "../../src/layouts/hass-tabs-subpage";
import { HomeAssistant, Route } from "../../src/types"; import { HomeAssistant, Route } from "../../src/types";
@ -48,6 +49,8 @@ class HassioPanel extends LitElement {
@property({ attribute: false }) public supervisorInfo!: HassioSupervisorInfo; @property({ attribute: false }) public supervisorInfo!: HassioSupervisorInfo;
@property({ attribute: false }) public hassioInfo!: HassioInfo;
@property({ attribute: false }) public hostInfo!: HassioHostInfo; @property({ attribute: false }) public hostInfo!: HassioHostInfo;
@property({ attribute: false }) public hassInfo!: HassioHomeAssistantInfo; @property({ attribute: false }) public hassInfo!: HassioHomeAssistantInfo;
@ -61,6 +64,7 @@ class HassioPanel extends LitElement {
.hass=${this.hass} .hass=${this.hass}
.narrow=${this.narrow} .narrow=${this.narrow}
.supervisorInfo=${this.supervisorInfo} .supervisorInfo=${this.supervisorInfo}
.hassioInfo=${this.hassioInfo}
.hostInfo=${this.hostInfo} .hostInfo=${this.hostInfo}
.hassInfo=${this.hassInfo} .hassInfo=${this.hassInfo}
.hassOsInfo=${this.hassOsInfo} .hassOsInfo=${this.hassOsInfo}

View File

@ -19,6 +19,7 @@ import {
shutdownHost, shutdownHost,
updateOS, updateOS,
} from "../../../src/data/hassio/host"; } from "../../../src/data/hassio/host";
import { HassioInfo } from "../../../src/data/hassio/supervisor";
import { import {
showAlertDialog, showAlertDialog,
showConfirmationDialog, showConfirmationDialog,
@ -35,6 +36,8 @@ class HassioHostInfo extends LitElement {
@property() public hostInfo!: HassioHostInfoType; @property() public hostInfo!: HassioHostInfoType;
@property({ attribute: false }) public hassioInfo!: HassioInfo;
@property() public hassOsInfo!: HassioHassOSInfo; @property() public hassOsInfo!: HassioHassOSInfo;
@property() private _errors?: string; @property() private _errors?: string;
@ -54,6 +57,12 @@ class HassioHostInfo extends LitElement {
<td>System</td> <td>System</td>
<td>${this.hostInfo.operating_system}</td> <td>${this.hostInfo.operating_system}</td>
</tr> </tr>
${!this.hostInfo.features.includes("hassos")
? html`<tr>
<td>Docker version</td>
<td>${this.hassioInfo.docker}</td>
</tr>`
: ""}
${this.hostInfo.deployment ${this.hostInfo.deployment
? html` ? html`
<tr> <tr>

View File

@ -11,7 +11,10 @@ import {
HassioHassOSInfo, HassioHassOSInfo,
HassioHostInfo, HassioHostInfo,
} from "../../../src/data/hassio/host"; } from "../../../src/data/hassio/host";
import { HassioSupervisorInfo } from "../../../src/data/hassio/supervisor"; import {
HassioSupervisorInfo,
HassioInfo,
} from "../../../src/data/hassio/supervisor";
import "../../../src/layouts/hass-tabs-subpage"; import "../../../src/layouts/hass-tabs-subpage";
import { haStyle } from "../../../src/resources/styles"; import { haStyle } from "../../../src/resources/styles";
import { HomeAssistant, Route } from "../../../src/types"; import { HomeAssistant, Route } from "../../../src/types";
@ -31,9 +34,11 @@ class HassioSystem extends LitElement {
@property() public supervisorInfo!: HassioSupervisorInfo; @property() public supervisorInfo!: HassioSupervisorInfo;
@property({ attribute: false }) public hassioInfo!: HassioInfo;
@property() public hostInfo!: HassioHostInfo; @property() public hostInfo!: HassioHostInfo;
@property() public hassOsInfo!: HassioHassOSInfo; @property({ attribute: false }) public hassOsInfo!: HassioHassOSInfo;
public render(): TemplateResult | void { public render(): TemplateResult | void {
return html` return html`
@ -55,6 +60,7 @@ class HassioSystem extends LitElement {
></hassio-supervisor-info> ></hassio-supervisor-info>
<hassio-host-info <hassio-host-info
.hass=${this.hass} .hass=${this.hass}
.hassioInfo=${this.hassioInfo}
.hostInfo=${this.hostInfo} .hostInfo=${this.hostInfo}
.hassOsInfo=${this.hassOsInfo} .hassOsInfo=${this.hassOsInfo}
></hassio-host-info> ></hassio-host-info>

View File

@ -4,6 +4,20 @@ import { hassioApiResultExtractor, HassioResponse } from "./common";
export type HassioHomeAssistantInfo = any; export type HassioHomeAssistantInfo = any;
export type HassioSupervisorInfo = any; export type HassioSupervisorInfo = any;
export type HassioInfo = {
arch: string;
channel: string;
docker: string;
hassos?: string;
homeassistant: string;
hostname: string;
logging: string;
maching: string;
supervisor: string;
supported_arch: string[];
timezone: string;
};
export type HassioPanelInfo = PanelInfo< export type HassioPanelInfo = PanelInfo<
| undefined | undefined
| { | {
@ -38,6 +52,12 @@ export const fetchHassioSupervisorInfo = async (hass: HomeAssistant) => {
); );
}; };
export const fetchHassioInfo = async (hass: HomeAssistant) => {
return hassioApiResultExtractor(
await hass.callApi<HassioResponse<HassioInfo>>("GET", "hassio/info")
);
};
export const fetchHassioLogs = async ( export const fetchHassioLogs = async (
hass: HomeAssistant, hass: HomeAssistant,
provider: string provider: string