mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Catch and display errors for release details (#3905)
This commit is contained in:
parent
329f4706c0
commit
5a25c44de6
@ -43,8 +43,8 @@ export async function listReleases(pathToKubeconfig: string, namespace?: string)
|
||||
});
|
||||
|
||||
return output;
|
||||
} catch ({ stderr }) {
|
||||
throw stderr;
|
||||
} catch (error) {
|
||||
throw error?.stderr || error;
|
||||
}
|
||||
}
|
||||
|
||||
@ -72,8 +72,8 @@ export async function installChart(chart: string, values: any, name: string | un
|
||||
namespace
|
||||
}
|
||||
};
|
||||
} catch ({ stderr }) {
|
||||
throw stderr;
|
||||
} catch (error) {
|
||||
throw error?.stderr || error;
|
||||
} finally {
|
||||
await fse.unlink(fileName);
|
||||
}
|
||||
@ -93,8 +93,8 @@ export async function upgradeRelease(name: string, chart: string, values: any, n
|
||||
log: stdout,
|
||||
release: getRelease(name, namespace, cluster)
|
||||
};
|
||||
} catch ({ stderr }) {
|
||||
throw stderr;
|
||||
} catch (error) {
|
||||
throw error?.stderr || error;
|
||||
} finally {
|
||||
await fse.unlink(fileName);
|
||||
}
|
||||
@ -111,8 +111,8 @@ export async function getRelease(name: string, namespace: string, cluster: Clust
|
||||
release.resources = await getResources(name, namespace, cluster);
|
||||
|
||||
return release;
|
||||
} catch ({ stderr }) {
|
||||
throw stderr;
|
||||
} catch (error) {
|
||||
throw error?.stderr || error;
|
||||
}
|
||||
}
|
||||
|
||||
@ -122,8 +122,8 @@ export async function deleteRelease(name: string, namespace: string, pathToKubec
|
||||
const { stdout } = await promiseExec(`"${helm}" delete ${name} --namespace ${namespace} --kubeconfig ${pathToKubeconfig}`);
|
||||
|
||||
return stdout;
|
||||
} catch ({ stderr }) {
|
||||
throw stderr;
|
||||
} catch (error) {
|
||||
throw error?.stderr || error;
|
||||
}
|
||||
}
|
||||
|
||||
@ -139,8 +139,8 @@ export async function getValues(name: string, { namespace, all = false, pathToKu
|
||||
const { stdout } = await promiseExec(`"${helm}" get values ${name} ${all ? "--all" : ""} --output yaml --namespace ${namespace} --kubeconfig ${pathToKubeconfig}`);
|
||||
|
||||
return stdout;
|
||||
} catch ({ stderr }) {
|
||||
throw stderr;
|
||||
} catch (error) {
|
||||
throw error?.stderr || error;
|
||||
}
|
||||
}
|
||||
|
||||
@ -150,8 +150,8 @@ export async function getHistory(name: string, namespace: string, pathToKubeconf
|
||||
const { stdout } = await promiseExec(`"${helm}" history ${name} --output json --namespace ${namespace} --kubeconfig ${pathToKubeconfig}`);
|
||||
|
||||
return JSON.parse(stdout);
|
||||
} catch ({ stderr }) {
|
||||
throw stderr;
|
||||
} catch (error) {
|
||||
throw error?.stderr || error;
|
||||
}
|
||||
}
|
||||
|
||||
@ -161,8 +161,8 @@ export async function rollback(name: string, namespace: string, revision: number
|
||||
const { stdout } = await promiseExec(`"${helm}" rollback ${name} ${revision} --namespace ${namespace} --kubeconfig ${pathToKubeconfig}`);
|
||||
|
||||
return stdout;
|
||||
} catch ({ stderr }) {
|
||||
throw stderr;
|
||||
} catch (error) {
|
||||
throw error?.stderr || error;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -41,7 +41,7 @@ export class HelmApiRoute {
|
||||
|
||||
respondJson(response, chart);
|
||||
} catch (error) {
|
||||
respondText(response, error, 422);
|
||||
respondText(response, error?.toString() || "Error getting chart", 422);
|
||||
}
|
||||
}
|
||||
|
||||
@ -53,7 +53,7 @@ export class HelmApiRoute {
|
||||
|
||||
respondJson(response, values);
|
||||
} catch (error) {
|
||||
respondText(response, error, 422);
|
||||
respondText(response, error?.toString() || "Error getting chart values", 422);
|
||||
}
|
||||
}
|
||||
|
||||
@ -66,7 +66,7 @@ export class HelmApiRoute {
|
||||
respondJson(response, result, 201);
|
||||
} catch (error) {
|
||||
logger.debug(error);
|
||||
respondText(response, error, 422);
|
||||
respondText(response, error?.toString() || "Error installing chart", 422);
|
||||
}
|
||||
}
|
||||
|
||||
@ -79,7 +79,7 @@ export class HelmApiRoute {
|
||||
respondJson(response, result);
|
||||
} catch (error) {
|
||||
logger.debug(error);
|
||||
respondText(response, error, 422);
|
||||
respondText(response, error?.toString() || "Error updating chart", 422);
|
||||
}
|
||||
}
|
||||
|
||||
@ -92,7 +92,7 @@ export class HelmApiRoute {
|
||||
respondJson(response, result);
|
||||
} catch (error) {
|
||||
logger.debug(error);
|
||||
respondText(response, error, 422);
|
||||
respondText(response, error?.toString() || "Error rolling back chart", 422);
|
||||
}
|
||||
}
|
||||
|
||||
@ -105,7 +105,7 @@ export class HelmApiRoute {
|
||||
respondJson(response, result);
|
||||
} catch(error) {
|
||||
logger.debug(error);
|
||||
respondText(response, error, 422);
|
||||
respondText(response, error?.toString() || "Error listing release", 422);
|
||||
}
|
||||
}
|
||||
|
||||
@ -118,7 +118,7 @@ export class HelmApiRoute {
|
||||
respondJson(response, result);
|
||||
} catch (error) {
|
||||
logger.debug(error);
|
||||
respondText(response, error, 422);
|
||||
respondText(response, error?.toString() || "Error getting release", 422);
|
||||
}
|
||||
}
|
||||
|
||||
@ -132,7 +132,7 @@ export class HelmApiRoute {
|
||||
respondText(response, result);
|
||||
} catch (error) {
|
||||
logger.debug(error);
|
||||
respondText(response, error, 422);
|
||||
respondText(response, error?.toString() || "Error getting release values", 422);
|
||||
}
|
||||
}
|
||||
|
||||
@ -145,7 +145,7 @@ export class HelmApiRoute {
|
||||
respondJson(response, result);
|
||||
} catch (error) {
|
||||
logger.debug(error);
|
||||
respondText(response, error, 422);
|
||||
respondText(response, error?.toString() || "Error getting release history", 422);
|
||||
}
|
||||
}
|
||||
|
||||
@ -158,7 +158,7 @@ export class HelmApiRoute {
|
||||
respondJson(response, result);
|
||||
} catch (error) {
|
||||
logger.debug(error);
|
||||
respondText(response, error, 422);
|
||||
respondText(response, error?.toString() || "Error deleting release", 422);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,6 +26,11 @@
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.loading-error {
|
||||
color: red;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.status {
|
||||
@include release-status-bgs;
|
||||
}
|
||||
|
||||
@ -56,12 +56,13 @@ interface Props {
|
||||
|
||||
@observer
|
||||
export class ReleaseDetails extends Component<Props> {
|
||||
@observable details: IReleaseDetails;
|
||||
@observable details: IReleaseDetails | null = null;
|
||||
@observable values = "";
|
||||
@observable valuesLoading = false;
|
||||
@observable showOnlyUserSuppliedValues = true;
|
||||
@observable saving = false;
|
||||
@observable releaseSecret: Secret;
|
||||
@observable error?: string = undefined;
|
||||
|
||||
componentDidMount() {
|
||||
disposeOnUnmount(this, [
|
||||
@ -96,9 +97,13 @@ export class ReleaseDetails extends Component<Props> {
|
||||
|
||||
async loadDetails() {
|
||||
const { release } = this.props;
|
||||
|
||||
this.details = null;
|
||||
this.details = await getRelease(release.getName(), release.getNs());
|
||||
|
||||
try {
|
||||
this.details = null;
|
||||
this.details = await getRelease(release.getName(), release.getNs());
|
||||
} catch (error) {
|
||||
this.error = `Failed to get release details: ${error}`;
|
||||
}
|
||||
}
|
||||
|
||||
async loadValues() {
|
||||
@ -237,11 +242,18 @@ export class ReleaseDetails extends Component<Props> {
|
||||
|
||||
renderContent() {
|
||||
const { release } = this.props;
|
||||
const { details } = this;
|
||||
|
||||
if (!release) return null;
|
||||
|
||||
if (!details) {
|
||||
if (this.error) {
|
||||
return (
|
||||
<div className="loading-error">
|
||||
{this.error}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
if (!this.details) {
|
||||
return <Spinner center/>;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user