1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Fix crash when finding CRD's preferred version

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2021-11-12 16:55:47 -05:00
parent 085d08cefd
commit 840270622e
3 changed files with 12 additions and 6 deletions

View File

@ -153,11 +153,7 @@ export class CustomResourceDefinition extends KubeObject {
// Prefer the modern `versions` over the legacy `version` // Prefer the modern `versions` over the legacy `version`
if (this.spec.versions) { if (this.spec.versions) {
for (const version of this.spec.versions) { for (const version of this.spec.versions) {
/** if (version.storage) {
* If the version is not served then 404 errors will occur
* We should also prefer the storage version
*/
if (version.served && version.storage) {
return version; return version;
} }
} }

View File

@ -129,6 +129,15 @@ export class CrdResources extends React.Component<Props> {
}), }),
crdInstance.getAge(), crdInstance.getAge(),
]} ]}
renderFailedToLoadDetails={() => {
if (!crd.getPreferedVersion().served) {
return (
<p>Prefered version is not served.</p>
);
}
return undefined;
}}
/> />
); );
} }

View File

@ -97,6 +97,7 @@ export interface ItemListLayoutProps<I extends ItemObject> {
// other // other
customizeRemoveDialog?: (selectedItems: I[]) => Partial<ConfirmDialogParams>; customizeRemoveDialog?: (selectedItems: I[]) => Partial<ConfirmDialogParams>;
renderFooter?: (parent: ItemListLayout<I>) => React.ReactNode; renderFooter?: (parent: ItemListLayout<I>) => React.ReactNode;
renderFailedToLoadDetails?: () => React.ReactNode;
filterCallbacks?: ItemsFilters<I>; filterCallbacks?: ItemsFilters<I>;
} }
@ -322,7 +323,7 @@ export class ItemListLayout<I extends ItemObject> extends React.Component<ItemLi
renderNoItems() { renderNoItems() {
if (this.failedToLoad) { if (this.failedToLoad) {
return <NoItems>Failed to load items.</NoItems>; return <NoItems>Failed to load items.{this.props.renderFailedToLoadDetails?.()}</NoItems>;
} }
if (!this.isReady) { if (!this.isReady) {