Add applications state v2 endpoint

Change-type: minor
Signed-off-by: Cameron Diver <cameron@resin.io>
This commit is contained in:
Cameron Diver 2018-05-31 17:56:37 +01:00
parent 049398eec0
commit cf85ae524b
No known key found for this signature in database
GPG Key ID: 69264F9C923F55C1
3 changed files with 24 additions and 6 deletions

View File

@ -1,6 +1,7 @@
import { EventEmitter } from 'events';
import { ServiceAction } from './device-api/common';
import { DeviceApplicationState } from './types/state';
import Images = require('./compose/images');
import ServiceManager = require('./compose/service-manager');
@ -45,7 +46,8 @@ export class ApplicationManager extends EventEmitter {
public executeStepAction(serviceAction: ServiceAction, opts: Options): Promise<void>;
public getStatus(): Promise<DeviceApplicationState>;
}
export default ApplicationManager;

View File

@ -1,11 +1,11 @@
import * as Bluebird from 'bluebird';
import { Response, Request, Router } from 'express';
import { Request, Response, Router } from 'express';
import * as _ from 'lodash';
import ApplicationManager from '../application-manager';
import { doPurge, doRestart, serviceAction } from './common';
import { ApplicationManager } from '../application-manager';
import { appNotFoundMessage, serviceNotFoundMessage } from '../lib/messages';
import Service from '../types/service';
import { doPurge, doRestart, serviceAction } from './common';
export function createV2Api(router: Router, applications: ApplicationManager) {
@ -26,7 +26,7 @@ export function createV2Api(router: Router, applications: ApplicationManager) {
res.status(404).send(appNotFoundMessage);
return;
}
const service = _.find(app.services, { imageId });
const service = _.find(app.services, { imageId }) as Service | null;
if (service == null) {
res.status(404).send(serviceNotFoundMessage);
return;

16
src/types/state.ts Normal file
View File

@ -0,0 +1,16 @@
export interface DeviceApplicationState {
local: {
[appId: string]: {
services: {
[serviceId: string]: {
status: string;
releaseId: number;
download_progress: number | null;
};
};
};
};
// TODO
dependent: any;
commit: string;
}