diff --git a/src/lib/contracts.ts b/src/lib/contracts.ts index 5e99a1b7..da57a4b5 100644 --- a/src/lib/contracts.ts +++ b/src/lib/contracts.ts @@ -32,7 +32,7 @@ type ContractRequirements = { const contractRequirementVersions: ContractRequirements = {}; -export function intialiseContractRequirements(opts: { +export function initializeContractRequirements(opts: { supervisorVersion: string; deviceType: string; l4tVersion?: string; diff --git a/src/lib/legacy.ts b/src/lib/legacy.ts index 73a1ae8a..7aa93b1a 100644 --- a/src/lib/legacy.ts +++ b/src/lib/legacy.ts @@ -6,7 +6,6 @@ import * as config from '../config'; import * as db from '../db'; import * as volumeManager from '../compose/volume-manager'; import * as serviceManager from '../compose/service-manager'; -import * as deviceState from '../device-state'; import * as applicationManager from '../compose/application-manager'; import { StatusError, @@ -62,7 +61,6 @@ async function createVolumeFromLegacyData( */ export async function normaliseLegacyDatabase() { await apiBinder.initialized(); - await deviceState.initialized(); if (apiBinder.balenaApi == null) { throw new InternalInconsistencyError( @@ -268,15 +266,11 @@ export async function fromV2TargetState( } /** - * Convert v2 to v3 target apps. If local is false - * it will query the API to get the app uuid + * Retrieves the appUuid for an app from balena API + * @param appId */ -export async function fromV2TargetApps( - apps: TargetAppsV2, - local = false, -): Promise { +const getUUIDFromAPI = async (appId: number) => { await apiBinder.initialized(); - await deviceState.initialized(); if (apiBinder.balenaApi == null) { throw new InternalInconsistencyError( @@ -285,22 +279,30 @@ export async function fromV2TargetApps( } const { balenaApi } = apiBinder; - const getUUIDFromAPI = async (appId: number) => { - const appDetails = await balenaApi.get({ - resource: 'application', - id: appId, - options: { - $select: ['uuid'], - }, - }); - if (!appDetails || !appDetails.uuid) { - throw new StatusError(404, `No app with id ${appId} found on the API.`); - } + const appDetails = await balenaApi.get({ + resource: 'application', + id: appId, + options: { + $select: ['uuid'], + }, + }); - return appDetails.uuid; - }; + if (!appDetails || !appDetails.uuid) { + throw new StatusError(404, `No app with id ${appId} found on the API.`); + } + return appDetails.uuid; +}; + +/** + * Convert v2 to v3 target apps. If local is false + * it will query the API to get the app uuid + */ +export async function fromV2TargetApps( + apps: TargetAppsV2, + local = false, +): Promise { return ( ( await Promise.all( diff --git a/src/supervisor.ts b/src/supervisor.ts index 3d741d41..bdd03168 100644 --- a/src/supervisor.ts +++ b/src/supervisor.ts @@ -8,7 +8,7 @@ import * as v1 from './device-api/v1'; import * as v2 from './device-api/v2'; import logMonitor from './logging/monitor'; -import { intialiseContractRequirements } from './lib/contracts'; +import { initializeContractRequirements } from './lib/contracts'; import { normaliseLegacyDatabase } from './lib/legacy'; import * as osRelease from './lib/os-release'; import log from './lib/supervisor-console'; @@ -42,7 +42,7 @@ export class Supervisor { const conf = await config.getMany(startupConfigFields); - intialiseContractRequirements({ + initializeContractRequirements({ supervisorVersion: version, deviceType: await config.get('deviceType'), l4tVersion: await osRelease.getL4tVersion(), diff --git a/test/integration/device-state.spec.ts b/test/integration/device-state.spec.ts index 015e9bef..0cef38f8 100644 --- a/test/integration/device-state.spec.ts +++ b/test/integration/device-state.spec.ts @@ -8,7 +8,7 @@ import * as deviceState from '~/src/device-state'; import { appsJsonBackup, loadTargetFromFile } from '~/src/device-state/preload'; import { TargetState } from '~/src/types'; import { promises as fs } from 'fs'; -import { intialiseContractRequirements } from '~/lib/contracts'; +import { initializeContractRequirements } from '~/lib/contracts'; import { testfs } from 'mocha-pod'; import { createDockerImage } from '~/test-lib/docker-helper'; @@ -21,7 +21,7 @@ describe('device-state', () => { // Set the device uuid await config.set({ uuid: 'local' }); - intialiseContractRequirements({ + initializeContractRequirements({ supervisorVersion: '11.0.0', deviceType: 'intel-nuc', }); diff --git a/test/integration/lib/contracts.spec.ts b/test/integration/lib/contracts.spec.ts index 5ed7d6bd..7a4be20d 100644 --- a/test/integration/lib/contracts.spec.ts +++ b/test/integration/lib/contracts.spec.ts @@ -5,7 +5,7 @@ import * as semver from 'semver'; import * as constants from '~/lib/constants'; import { containerContractsFulfilled, - intialiseContractRequirements, + initializeContractRequirements, validateContract, } from '~/lib/contracts'; import * as osRelease from '~/lib/os-release'; @@ -14,7 +14,7 @@ import * as fsUtils from '~/lib/fs-utils'; describe('lib/contracts', () => { before(() => { - intialiseContractRequirements({ + initializeContractRequirements({ supervisorVersion, deviceType: 'intel-nuc', l4tVersion: '32.2', @@ -436,7 +436,7 @@ describe('L4T version detection', () => { execStub.restore(); } seedExec(version); - intialiseContractRequirements({ + initializeContractRequirements({ supervisorVersion, deviceType: 'intel-nuc', l4tVersion: await osRelease.getL4tVersion(),