Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions src/services/modules/upgrade/upgrade-assert.services.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {isNullish} from '@dfinity/utils';
import {satelliteBuildType, type SatelliteParameters} from '@junobuild/admin';
import {cyan, yellow} from 'kleur';
import {cyan, magenta, yellow} from 'kleur';
import type {AssertWasmModule, UpgradeWasm} from '../../../types/upgrade';
import {isHeadless} from '../../../utils/process.utils';
import {NEW_CMD_LINE, confirmAndExit} from '../../../utils/prompt.utils';
Expand Down Expand Up @@ -59,10 +59,11 @@ export const assertSatelliteBuildType = async ({
};

export const assertUpgradeHash = async ({
moduleId,
hash,
reset
}: Required<Pick<UpgradeWasm, 'hash' | 'reset'>>) => {
}: Required<Pick<UpgradeWasm, 'hash' | 'reset'>> & {moduleId: string}) => {
await confirmAndExit(
`The Wasm hash for the upgrade is ${cyan(hash)}.${NEW_CMD_LINE}Start upgrade${reset ? ' and reset' : ''} now?`
`Upgrade module ${cyan(moduleId)} with Wasm hash ${magenta(hash)}${NEW_CMD_LINE}Start upgrade${reset ? ' and reset' : ''} now?`
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ import {NEW_CMD_LINE} from '../../../utils/prompt.utils';
import {logUpgradeResult, readUpgradeOptions} from '../../../utils/upgrade.utils';
import {selectVersion, upgradeWasmJunoCdn, upgradeWasmLocal} from './upgrade.services';

type MissionControl = Omit<MissionControlParameters, 'missionControlId'> &
Required<Pick<MissionControlParameters, 'missionControlId'>>;

export const upgradeMissionControl = async (args?: string[]) => {
const missionControl = await getCliMissionControl();

Expand Down Expand Up @@ -56,7 +59,7 @@ const updateMissionControlRelease = async ({
missionControlParameters
}: {
args?: string[];
missionControlParameters: MissionControlParameters;
missionControlParameters: MissionControl;
}): Promise<{success: boolean; err?: unknown}> => {
const currentVersion = await missionControlVersion({
missionControl: missionControlParameters
Expand Down Expand Up @@ -87,6 +90,7 @@ const updateMissionControlRelease = async ({
return await upgradeWasmJunoCdn({
version,
assetKey: 'mission_control',
moduleId: missionControlParameters.missionControlId,
upgrade: upgradeMissionControlWasm
});
};
Expand All @@ -95,7 +99,7 @@ const upgradeMissionControlCustom = async ({
missionControlParameters,
args
}: {
missionControlParameters: MissionControlParameters;
missionControlParameters: MissionControl;
args?: string[];
}): Promise<{success: boolean; err?: unknown}> => {
const src = nextArg({args, option: '-s'}) ?? nextArg({args, option: '--src'});
Expand All @@ -119,6 +123,7 @@ const upgradeMissionControlCustom = async ({
return await upgradeWasmLocal({
src,
assetKey: 'mission_control',
moduleId: missionControlParameters.missionControlId,
upgrade: upgradeMissionControlWasm
});
};
10 changes: 7 additions & 3 deletions src/services/modules/upgrade/upgrade.orbiter.services.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ import {
upgradeWasmLocal
} from './upgrade.services';

type Orbiter = Required<Pick<OrbiterParameters, 'orbiterId'>> &
Omit<OrbiterParameters, 'orbiterId'>;

export const upgradeOrbiters = async (args?: string[]) => {
const authOrbiters = await getCliOrbiters();

Expand Down Expand Up @@ -59,7 +62,7 @@ const upgradeOrbiterCustom = async ({
orbiterParameters,
args
}: {
orbiterParameters: OrbiterParameters;
orbiterParameters: Orbiter;
args?: string[];
}): Promise<{success: boolean; err?: unknown}> => {
const src = nextArg({args, option: '-s'}) ?? nextArg({args, option: '--src'});
Expand All @@ -86,6 +89,7 @@ const upgradeOrbiterCustom = async ({
return await upgradeWasmLocal({
src,
assetKey: 'orbiter',
moduleId: orbiterParameters.orbiterId,
upgrade: upgradeOrbiterWasm,
reset
});
Expand All @@ -94,8 +98,7 @@ const upgradeOrbiterCustom = async ({
const updateOrbiterRelease = async ({
args,
...orbiterParameters
}: Required<Pick<OrbiterParameters, 'orbiterId'>> &
Omit<OrbiterParameters, 'orbiterId'> & {args?: string[]}): Promise<{
}: Orbiter & {args?: string[]}): Promise<{
success: boolean;
err?: unknown;
}> => {
Expand Down Expand Up @@ -131,6 +134,7 @@ const updateOrbiterRelease = async ({
return await upgradeWasmJunoCdn({
version,
assetKey: 'orbiter',
moduleId: orbiterParameters.orbiterId,
upgrade: upgradeOrbiterWasm,
reset
});
Expand Down
42 changes: 32 additions & 10 deletions src/services/modules/upgrade/upgrade.satellite.services.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ import {
upgradeWasmLocal
} from './upgrade.services';

type Satellite = Omit<SatelliteParameters, 'satelliteId'> &
Required<Pick<SatelliteParameters, 'satelliteId'>>;

export const upgradeSatellite = async (args?: string[]) => {
const {satellite} = await assertConfigAndLoadSatelliteContext();
const {satelliteId} = satellite;
Expand Down Expand Up @@ -56,7 +59,7 @@ const upgradeSatelliteCustom = async ({
satellite,
args
}: {
satellite: SatelliteParameters;
satellite: Satellite;
args?: string[];
}): Promise<{success: boolean; err?: unknown}> => {
const src = nextArg({args, option: '-s'}) ?? nextArg({args, option: '--src'});
Expand All @@ -74,36 +77,50 @@ const upgradeSatelliteCustom = async ({

export const upgradeSatelliteWithSrc = async ({
src,
satellite,
...rest
}: {
satellite: SatelliteParameters;
satellite: Satellite;
src: string;
args?: string[];
}): Promise<{success: boolean; err?: unknown}> => {
const upgrade = async (params: UpgradeWasmParams): Promise<{success: boolean; err?: unknown}> => {
return await upgradeWasmLocal({src, assetKey: 'satellite', ...params});
return await upgradeWasmLocal({
src,
assetKey: 'satellite',
moduleId: satellite.satelliteId,
...params
});
};

return await upgradeSatelliteWithUpgradeFn({
...rest,
satellite,
upgradeFn: upgrade
});
};

export const upgradeSatelliteWithCdn = async ({
cdn,
satellite,
...rest
}: {
satellite: SatelliteParameters;
satellite: Satellite;
cdn: UpgradeCdn;
args?: string[];
}): Promise<{success: boolean; err?: unknown}> => {
const upgrade = async (params: UpgradeWasmParams): Promise<{success: boolean; err?: unknown}> => {
return await upgradeWasmCdn({cdn, assetKey: 'satellite', ...params});
return await upgradeWasmCdn({
cdn,
assetKey: 'satellite',
moduleId: satellite.satelliteId,
...params
});
};

return await upgradeSatelliteWithUpgradeFn({
...rest,
satellite,
upgradeFn: upgrade
});
};
Expand All @@ -113,7 +130,7 @@ const upgradeSatelliteWithUpgradeFn = async ({
args,
upgradeFn
}: {
satellite: SatelliteParameters;
satellite: Satellite;
args?: string[];
upgradeFn: (params: UpgradeWasmParams) => Promise<{success: boolean; err?: unknown}>;
}): Promise<{success: boolean; err?: unknown}> => {
Expand All @@ -138,14 +155,14 @@ const upgradeSatelliteRelease = async ({
satellite,
args
}: {
satellite: SatelliteParameters;
satellite: Satellite;
args?: string[];
}): Promise<{success: boolean; err?: unknown}> => {
const currentVersion = await satelliteVersion({
satellite
});

const displayHint = `satellite "${await satelliteKey(satellite.satelliteId ?? '')}"`;
const displayHint = `satellite "${await satelliteKey(satellite.satelliteId)}"`;
const version = await selectVersion({currentVersion, assetKey: SATELLITE_WASM_NAME, displayHint});

if (isNullish(version)) {
Expand All @@ -155,7 +172,12 @@ const upgradeSatelliteRelease = async ({
const {noSnapshot, preClearChunks} = readUpgradeOptions(args);

const upgrade = async (params: UpgradeWasmParams): Promise<{success: boolean; err?: unknown}> => {
return await upgradeWasmJunoCdn({version, assetKey: 'satellite', ...params});
return await upgradeWasmJunoCdn({
version,
assetKey: 'satellite',
moduleId: satellite.satelliteId,
...params
});
};

return await executeUpgradeSatellite({
Expand All @@ -176,7 +198,7 @@ const executeUpgradeSatellite = async ({
preClearChunks,
noSnapshot
}: {
satellite: SatelliteParameters;
satellite: Satellite;
args?: string[];
currentVersion: string;
preClearChunks: boolean;
Expand Down
18 changes: 12 additions & 6 deletions src/services/modules/upgrade/upgrade.services.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,13 @@ const executeUpgradeWasm = async ({
hash,
assert,
reset = false,
assetKey
}: {assetKey: AssetKey} & UpgradeWasm) => {
assetKey,
moduleId
}: {assetKey: AssetKey; moduleId: string} & UpgradeWasm) => {
await assert?.({wasmModule: wasm});

if (isNotHeadless()) {
await assertUpgradeHash({hash, reset});
await assertUpgradeHash({hash, reset, moduleId});
}

console.log('');
Expand Down Expand Up @@ -87,10 +88,12 @@ export const upgradeWasmLocal = async ({
upgrade,
reset,
assert,
assetKey
assetKey,
moduleId
}: {
src: string;
assetKey: AssetKey;
moduleId: string;
} & UpgradeWasmParams): Promise<{
success: boolean;
err?: unknown;
Expand All @@ -111,7 +114,7 @@ export const upgradeWasmLocal = async ({

spinner.stop();

await executeUpgradeWasm({upgrade, wasm, hash, reset, assert, assetKey});
await executeUpgradeWasm({upgrade, wasm, hash, reset, assert, assetKey, moduleId});

return {success: true};
} catch (err: unknown) {
Expand All @@ -128,6 +131,7 @@ export const upgradeWasmJunoCdn = async ({
}: {
version: string;
assetKey: AssetKey;
moduleId: string;
cdn?: UpgradeCdn;
} & UpgradeWasmParams): Promise<{
success: boolean;
Expand All @@ -147,12 +151,14 @@ export const upgradeWasmJunoCdn = async ({

export const upgradeWasmCdn = async ({
assetKey,
moduleId,
upgrade,
assert,
reset,
cdn
}: {
assetKey: AssetKey;
moduleId: string;
cdn: UpgradeCdn;
} & UpgradeWasmParams): Promise<{
success: boolean;
Expand Down Expand Up @@ -187,7 +193,7 @@ export const upgradeWasmCdn = async ({

spinner.stop();

await executeUpgradeWasm({upgrade, wasm, hash, reset, assert, assetKey});
await executeUpgradeWasm({upgrade, wasm, hash, reset, assert, assetKey, moduleId});

return {success: true};
} catch (err: unknown) {
Expand Down