outposts: include outposts build hash in state
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
parent
c249b55ff5
commit
d03b0b8152
|
@ -1,4 +1,6 @@
|
||||||
"""Outpost API Views"""
|
"""Outpost API Views"""
|
||||||
|
from os import environ
|
||||||
|
|
||||||
from dacite.core import from_dict
|
from dacite.core import from_dict
|
||||||
from dacite.exceptions import DaciteError
|
from dacite.exceptions import DaciteError
|
||||||
from django_filters.filters import ModelMultipleChoiceFilter
|
from django_filters.filters import ModelMultipleChoiceFilter
|
||||||
|
@ -12,6 +14,7 @@ from rest_framework.response import Response
|
||||||
from rest_framework.serializers import JSONField, ModelSerializer, ValidationError
|
from rest_framework.serializers import JSONField, ModelSerializer, ValidationError
|
||||||
from rest_framework.viewsets import ModelViewSet
|
from rest_framework.viewsets import ModelViewSet
|
||||||
|
|
||||||
|
from authentik import ENV_GIT_HASH_KEY
|
||||||
from authentik.core.api.providers import ProviderSerializer
|
from authentik.core.api.providers import ProviderSerializer
|
||||||
from authentik.core.api.used_by import UsedByMixin
|
from authentik.core.api.used_by import UsedByMixin
|
||||||
from authentik.core.api.utils import PassiveSerializer, is_dict
|
from authentik.core.api.utils import PassiveSerializer, is_dict
|
||||||
|
@ -98,8 +101,12 @@ class OutpostHealthSerializer(PassiveSerializer):
|
||||||
last_seen = DateTimeField(read_only=True)
|
last_seen = DateTimeField(read_only=True)
|
||||||
version = CharField(read_only=True)
|
version = CharField(read_only=True)
|
||||||
version_should = CharField(read_only=True)
|
version_should = CharField(read_only=True)
|
||||||
|
|
||||||
version_outdated = BooleanField(read_only=True)
|
version_outdated = BooleanField(read_only=True)
|
||||||
|
|
||||||
|
build_hash = CharField(read_only=True, required=False)
|
||||||
|
build_hash_should = CharField(read_only=True, required=False)
|
||||||
|
|
||||||
|
|
||||||
class OutpostFilter(FilterSet):
|
class OutpostFilter(FilterSet):
|
||||||
"""Filter for Outposts"""
|
"""Filter for Outposts"""
|
||||||
|
@ -146,6 +153,8 @@ class OutpostViewSet(UsedByMixin, ModelViewSet):
|
||||||
"version": state.version,
|
"version": state.version,
|
||||||
"version_should": state.version_should,
|
"version_should": state.version_should,
|
||||||
"version_outdated": state.version_outdated,
|
"version_outdated": state.version_outdated,
|
||||||
|
"build_hash": state.build_hash,
|
||||||
|
"build_hash_should": environ.get(ENV_GIT_HASH_KEY, ""),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
return Response(OutpostHealthSerializer(states, many=True).data)
|
return Response(OutpostHealthSerializer(states, many=True).data)
|
||||||
|
|
|
@ -23525,7 +23525,15 @@ components:
|
||||||
version_outdated:
|
version_outdated:
|
||||||
type: boolean
|
type: boolean
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
build_hash:
|
||||||
|
type: string
|
||||||
|
readOnly: true
|
||||||
|
build_hash_should:
|
||||||
|
type: string
|
||||||
|
readOnly: true
|
||||||
required:
|
required:
|
||||||
|
- build_hash
|
||||||
|
- build_hash_should
|
||||||
- last_seen
|
- last_seen
|
||||||
- version
|
- version
|
||||||
- version_outdated
|
- version_outdated
|
||||||
|
|
|
@ -32,6 +32,13 @@ export class OutpostHealthElement extends LitElement {
|
||||||
if (!this.outpostHealth) {
|
if (!this.outpostHealth) {
|
||||||
return html`<ak-spinner></ak-spinner>`;
|
return html`<ak-spinner></ak-spinner>`;
|
||||||
}
|
}
|
||||||
|
let versionString = this.outpostHealth.version;
|
||||||
|
if (this.outpostHealth.buildHash) {
|
||||||
|
versionString = `${versionString} (build ${this.outpostHealth.buildHash.substring(
|
||||||
|
0,
|
||||||
|
8,
|
||||||
|
)})`;
|
||||||
|
}
|
||||||
return html` <ul>
|
return html` <ul>
|
||||||
<li>
|
<li>
|
||||||
<ak-label color=${PFColor.Green}>
|
<ak-label color=${PFColor.Green}>
|
||||||
|
@ -44,7 +51,7 @@ export class OutpostHealthElement extends LitElement {
|
||||||
>${t`${this.outpostHealth.version}, should be ${this.outpostHealth.versionShould}`}
|
>${t`${this.outpostHealth.version}, should be ${this.outpostHealth.versionShould}`}
|
||||||
</ak-label>`
|
</ak-label>`
|
||||||
: html`<ak-label color=${PFColor.Green}
|
: html`<ak-label color=${PFColor.Green}
|
||||||
>${t`Version: ${this.outpostHealth.version || ""}`}
|
>${t`Version: ${versionString}`}
|
||||||
</ak-label>`}
|
</ak-label>`}
|
||||||
</li>
|
</li>
|
||||||
</ul>`;
|
</ul>`;
|
||||||
|
|
Reference in a new issue