mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
fixes / responding to comments
Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
parent
e966c1149d
commit
bfacb86438
@ -363,11 +363,7 @@ utils.describeIf(minikubeReady(TEST_NAMESPACE))("Minikube based tests", () => {
|
||||
|
||||
await kubeApiServerRow.click();
|
||||
await frame.waitForSelector(".Drawer", { state: "visible" });
|
||||
|
||||
const podLogsIcon = await frame.waitForSelector(".Drawer .drawer-title .Icon >> text=subject");
|
||||
|
||||
await podLogsIcon.click();
|
||||
|
||||
await frame.waitForSelector(".Drawer .drawer-title .Icon >> text=subject").then(button => button.click());
|
||||
await frame.waitForSelector(".Dock.isOpen");
|
||||
|
||||
// Check if controls are available
|
||||
|
||||
@ -319,4 +319,5 @@ export const DESCRIPTORS = {
|
||||
export const CONSTANTS = {
|
||||
defaultUpdateChannel,
|
||||
updateChannels,
|
||||
defaultEditorConfig,
|
||||
};
|
||||
|
||||
@ -29,7 +29,7 @@ import { kubeConfigDefaultPath } from "../kube-helpers";
|
||||
import { appEventBus } from "../event-bus";
|
||||
import path from "path";
|
||||
import { ObservableToggleSet, toJS } from "../../renderer/utils";
|
||||
import { defaultEditorConfig, DESCRIPTORS, EditorConfiguration, KubeconfigSyncValue, UserPreferencesModel, CONSTANTS } from "./preferences-helpers";
|
||||
import { CONSTANTS, DESCRIPTORS, EditorConfiguration, KubeconfigSyncValue, UserPreferencesModel } from "./preferences-helpers";
|
||||
import logger from "../../main/logger";
|
||||
import { getPath } from "../utils/getPath";
|
||||
|
||||
@ -90,7 +90,7 @@ export class UserStore extends BaseStore<UserStoreModel> /* implements UserStore
|
||||
/**
|
||||
* Monaco editor configs
|
||||
*/
|
||||
@observable editorConfiguration: EditorConfiguration = defaultEditorConfig;
|
||||
@observable editorConfiguration: EditorConfiguration = CONSTANTS.defaultEditorConfig;
|
||||
|
||||
/**
|
||||
* The set of file/folder paths to be synced
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
|
||||
export * from "./dock";
|
||||
|
||||
// registered dock-tab view components
|
||||
// Registered React components to handle contents per {DockTab.kind}
|
||||
export * from "./terminal-window";
|
||||
export * from "./create-resource";
|
||||
export * from "./edit-resource";
|
||||
@ -33,5 +33,13 @@
|
||||
|
||||
.InstallChartDone {
|
||||
--flex-gap: #{$padding * 1.5};
|
||||
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 1;
|
||||
background: black;
|
||||
padding: $padding * 2;
|
||||
}
|
||||
|
||||
@ -51,7 +51,7 @@ export class TerminalWindow extends React.Component<Props> {
|
||||
]);
|
||||
}
|
||||
|
||||
activate(tabId: TabId = dockStore.selectedTabId) {
|
||||
activate(tabId: TabId) {
|
||||
if (this.terminal) this.terminal.detach(); // detach previous
|
||||
this.terminal = TerminalStore.getInstance().getTerminal(tabId);
|
||||
this.terminal.attachTo(this.elem);
|
||||
|
||||
@ -43,7 +43,6 @@ export class UpgradeChartStore extends DockTabStore<IChartUpgradeData> {
|
||||
|
||||
async init() {
|
||||
super.init();
|
||||
await releaseStore.loadFromContextNamespaces();
|
||||
|
||||
this.dispose.push(
|
||||
dockStore.onTabChange(({ tabId }) => this.loadData(tabId), {
|
||||
@ -53,20 +52,17 @@ export class UpgradeChartStore extends DockTabStore<IChartUpgradeData> {
|
||||
);
|
||||
}
|
||||
|
||||
hasValues(tabId: TabId) {
|
||||
return this.values.has(tabId);
|
||||
}
|
||||
|
||||
async loadData(tabId: TabId) {
|
||||
await this.whenReady;
|
||||
|
||||
await Promise.all([
|
||||
return Promise.all([
|
||||
!releaseStore.isLoaded && releaseStore.loadFromContextNamespaces(),
|
||||
this.loadValues(tabId),
|
||||
this.loadVersions(tabId),
|
||||
]);
|
||||
}
|
||||
|
||||
getRelease(tabId: TabId) {
|
||||
getRelease(tabId: TabId): HelmRelease | null {
|
||||
const releaseName = this.getData(tabId)?.releaseName;
|
||||
|
||||
if (!releaseName) return null;
|
||||
@ -75,34 +71,44 @@ export class UpgradeChartStore extends DockTabStore<IChartUpgradeData> {
|
||||
}
|
||||
|
||||
@action
|
||||
private async loadVersions(tabId: TabId) {
|
||||
private async loadVersions(tabId: TabId): Promise<IChartVersion[]> {
|
||||
try {
|
||||
const { releaseName } = this.getData(tabId);
|
||||
|
||||
this.versions.clear();
|
||||
console.info(`[UPGRADE-CHART]: loading versions for release "${releaseName}"`);
|
||||
const versions = await helmChartStore.getVersions(releaseName);
|
||||
|
||||
this.versions.replace(versions);
|
||||
|
||||
return versions;
|
||||
} catch (error) {
|
||||
console.error(`[UPGRADE-CHART]: loading versions has failed: ${error}`);
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
@action
|
||||
private async loadValues(tabId: TabId, { forceReload = false } = {}) {
|
||||
if (this.hasValues(tabId) && !forceReload) {
|
||||
return;
|
||||
private async loadValues(tabId: TabId): Promise<string> {
|
||||
if (this.values.has(tabId)) {
|
||||
return this.values.get(tabId); // use cached values
|
||||
}
|
||||
|
||||
try {
|
||||
this.values.delete(tabId);
|
||||
const { releaseName, releaseNamespace } = this.getData(tabId);
|
||||
|
||||
console.info(`[UPGRADE-CHART]: loading values for release "${releaseName}"`);
|
||||
|
||||
const values = await getReleaseValues(releaseName, releaseNamespace, true);
|
||||
|
||||
this.values.set(tabId, values);
|
||||
|
||||
return values;
|
||||
} catch (error) {
|
||||
console.error(`[UPGRADE-CHART]: loading values has failed: ${error}`);
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
getTabByRelease(releaseName: string): DockTab | null {
|
||||
|
||||
@ -42,8 +42,6 @@ export class UpgradeChart extends React.Component<Props> {
|
||||
makeObservable(this);
|
||||
}
|
||||
|
||||
@observable selectedVersion: IChartVersion;
|
||||
|
||||
get tabId() {
|
||||
return this.props.tabId;
|
||||
}
|
||||
@ -52,22 +50,45 @@ export class UpgradeChart extends React.Component<Props> {
|
||||
return upgradeChartStore.getRelease(this.tabId);
|
||||
}
|
||||
|
||||
@computed get versions(): SelectOption<IChartVersion>[] {
|
||||
return upgradeChartStore.versions.map(version => ({ value: version }));
|
||||
@observable selectedVersion: IChartVersion | undefined;
|
||||
|
||||
@computed get releaseVersion(): IChartVersion {
|
||||
return this.getChartVersionByRelease(this.release);
|
||||
}
|
||||
|
||||
get value() {
|
||||
@computed get chartVersionOptions(): SelectOption<IChartVersion>[] {
|
||||
return upgradeChartStore.versions.map(version => ({
|
||||
value: version,
|
||||
disabled: this.selectedVersion == this.releaseVersion,
|
||||
}));
|
||||
}
|
||||
|
||||
@computed get chartValues(): string {
|
||||
return upgradeChartStore.values.get(this.tabId);
|
||||
}
|
||||
|
||||
getChartVersionByRelease(release: HelmRelease): IChartVersion | undefined {
|
||||
return upgradeChartStore.versions.find(({ version, repo }) => (
|
||||
release?.getChart() == repo &&
|
||||
release?.getVersion() === version
|
||||
));
|
||||
}
|
||||
|
||||
upgrade = async () => {
|
||||
const { version, repo } = this.selectedVersion;
|
||||
const releaseName = this.release.getName();
|
||||
const releaseNs = this.release.getNs();
|
||||
const { releaseVersion, selectedVersion, release, chartValues } = this;
|
||||
const newVersionNotSelected = !selectedVersion || selectedVersion == releaseVersion;
|
||||
|
||||
if (!release || newVersionNotSelected) {
|
||||
throw new Error(`You have not selected new version for "${releaseVersion}"`); // skip: nothing to upgrade
|
||||
}
|
||||
|
||||
const { version, repo } = selectedVersion;
|
||||
const releaseName = release.getName();
|
||||
const releaseNs = release.getNs();
|
||||
|
||||
await releaseStore.update(releaseName, releaseNs, {
|
||||
chart: this.release.getChart(),
|
||||
values: this.value,
|
||||
chart: release.getChart(),
|
||||
values: chartValues,
|
||||
repo, version,
|
||||
});
|
||||
|
||||
@ -86,8 +107,7 @@ export class UpgradeChart extends React.Component<Props> {
|
||||
};
|
||||
|
||||
render() {
|
||||
const { release, versions, selectedVersion } = this;
|
||||
const currentVersion = release.getVersion();
|
||||
const { release, chartVersionOptions } = this;
|
||||
|
||||
return (
|
||||
<InfoPanel
|
||||
@ -97,16 +117,16 @@ export class UpgradeChart extends React.Component<Props> {
|
||||
submittingMessage="Updating.."
|
||||
controls={
|
||||
<div className="upgrade flex gaps align-center">
|
||||
<span>Release</span> <Badge label={release.getName()}/>
|
||||
<span>Namespace</span> <Badge label={release.getNs()}/>
|
||||
<span>Version</span> <Badge label={currentVersion}/>
|
||||
<span>Release</span> <Badge label={release?.getName()}/>
|
||||
<span>Namespace</span> <Badge label={release?.getNs()}/>
|
||||
<span>Version</span> <Badge label={release?.getVersion()}/>
|
||||
<span>Upgrade version</span>
|
||||
<Select
|
||||
className="chart-version"
|
||||
menuPlacement="top"
|
||||
themeName="outlined"
|
||||
value={selectedVersion ?? versions[0]}
|
||||
options={versions}
|
||||
value={this.selectedVersion ?? this.releaseVersion}
|
||||
options={chartVersionOptions}
|
||||
formatOptionLabel={this.formatVersionLabel}
|
||||
onChange={({ value }: SelectOption<IChartVersion>) => this.selectedVersion = value}
|
||||
/>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user