UNPKG

43.7 kBSource Map (JSON)View Raw
1{"version":3,"sources":["applet-manager.ts"],"names":[],"mappings":"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","file":"applet-manager.js","sourcesContent":["import * as crypto from 'crypto';\nimport * as _ from 'underscore';\nimport * as fs from 'fs';\nimport * as os from 'os';\nimport * as path from 'path';\nimport * as request from 'request-promise';\nimport { Docker } from 'docker-cli-js';\nimport { CronJob } from 'cron';\nimport * as uuid from 'uuid/v5';\n\nimport * as sbase from '@nodeswork/sbase';\nimport * as logger from '@nodeswork/logger';\nimport { NodesworkError } from '@nodeswork/utils';\nimport * as applet from '@nodeswork/applet';\n\nimport * as errors from './errors';\nimport {\n findPort,\n localStorage,\n LocalStorage,\n sleep,\n} from './utils';\nimport { app, server } from './server';\nimport { connectSocket } from './socket';\nimport { nam } from './def';\nimport { containerProxyUrl } from './paths';\n\nimport compareVersion = require('compare-version');\n\nconst latestVersion: (p: string) => Promise<string> = require('latest-version');\nconst LOG = logger.getLogger();\nconst APPLET_MANAGER_KEY = 'appletManager';\n\nconst containerVersion = require('../package.json').version;\nconst isRunning: (pid: number) => boolean = require('is-running');\nconst machineId: () => string = require('node-machine-id').machineIdSync;\nconst UUID_NAMESPACE = '5daabcd8-f17e-568c-aa6f-da9d92c7032c';\nconst NAME_REGEX = /^na-(\\w+)-([0-9.]+)-([\\w-]+)_([0-9.]+)-(\\w+)$/;\n\nexport interface AuthOptions {\n email: string;\n password: string;\n deviceName: string;\n}\n\nexport interface AppletManagerOptions {\n appPath: string;\n nodesworkServer: string;\n port: number;\n debug?: boolean;\n dev?: boolean;\n\n // Automatically load or generated.\n pid?: number;\n token?: string;\n}\n\nexport class AppletManager implements nam.INAM {\n\n ls: LocalStorage;\n docker: Docker = new Docker();\n network: Network;\n containerProxy: ContainerProxy;\n cronJobs: WorkerCronJob[] = [];\n\n constructor(private options: AppletManagerOptions) {\n if (this.options.debug) {\n LOG.level = 'debug';\n }\n\n const configPath = path.join(options.appPath, 'config.json');\n\n LOG.debug('Load configuration from configPath', configPath);\n\n this.ls = localStorage(configPath);\n\n let amOptions = this.ls.getItemSync(APPLET_MANAGER_KEY);\n let running = false;\n\n if (amOptions == null) {\n amOptions = this.options;\n LOG.debug('Initialize Applet Manager Options to local:', amOptions);\n this.ls.setItemSync(APPLET_MANAGER_KEY, amOptions);\n } else {\n LOG.debug('Got Applet Manager Options from local:', amOptions);\n if (amOptions.pid) {\n running = isRunning(amOptions.pid);\n }\n this.options.token = amOptions.token;\n }\n\n if (running && (this.options.appPath !== amOptions.appPath ||\n this.options.nodesworkServer !== amOptions.nodesworkServer ||\n this.options.port !== amOptions.port)) {\n throw new NodesworkError(\n 'Configuration does not match with existing Applet Manager',\n {\n newOption: this.options,\n runningOption: _.pick(\n amOptions, 'appPath', 'nodesworkServer', 'port'\n ),\n },\n );\n }\n\n if (running) {\n this.options.pid = amOptions.pid;\n this.options.token = amOptions.token;\n } else {\n this.options.pid = null;\n }\n }\n\n authenticated(): boolean {\n return this.options.token != null;\n }\n\n /**\n * Authenticate the container by email and password.\n *\n * @throws UNAUTHENTICATED_ERROR\n */\n async authenticate(options: AuthOptions): Promise<void> {\n try {\n const resp = await request.post({\n baseUrl: this.options.nodesworkServer,\n uri: '/v1/u/user/login',\n body: {\n email: options.email,\n password: options.password,\n },\n json: true,\n jar: true,\n });\n LOG.debug('Login successfully');\n } catch (e) {\n if (e.name === 'RequestError') {\n throw new NodesworkError('Server is not available', {\n path: this.options.nodesworkServer + '/v1/u/user/login',\n }, e);\n } else if (e.statusCode === 401) {\n throw new NodesworkError('Wrong password');\n } else if (e.statusCode === 422) {\n throw new NodesworkError('Wrong email');\n } else {\n throw e;\n }\n }\n\n try {\n const mid = machineId();\n LOG.debug('Got machine id:', mid);\n\n const deviceIdentifier = crypto.createHash('md5')\n .update(mid)\n .update(options.email)\n .digest('hex');\n let operatingSystem: string = ({\n Darwin: 'MacOS',\n Windows_NT: 'Windows',\n Linux: 'Linux',\n } as any)[os.type()];\n\n const device = {\n deviceType: 'UserDevice',\n deviceIdentifier,\n os: operatingSystem,\n osVersion: os.release(),\n containerVersion,\n name: options.deviceName,\n };\n\n LOG.debug('Collected device information:', device);\n\n const resp = await request.post({\n baseUrl: this.options.nodesworkServer,\n uri: '/v1/u/devices',\n body: device,\n json: true,\n jar: true,\n });\n\n LOG.debug('Device registered successfully', resp);\n\n this.options.token = resp.token;\n this.ls.setItemSync(APPLET_MANAGER_KEY, this.options);\n LOG.debug('Save token to local', this.options);\n\n await this.updateDevice();\n } catch (e) {\n if (e.name === 'RequestError') {\n throw new NodesworkError('Server is not available', {\n path: this.options.nodesworkServer + '/v1/u/user/login',\n }, e);\n } else {\n throw e;\n }\n }\n return;\n }\n\n isStarted(): boolean {\n return this.options.pid != null;\n }\n\n /**\n * Start the container.\n *\n * @throws UNAUTHENTICATED_ERROR\n */\n async startServer() {\n if (this.options.pid != null) {\n console.log('daemon has already started');\n return;\n }\n\n if (this.options.token == null) {\n throw errors.UNAUTHENTICATED_ERROR;\n }\n\n await this.checkEnvironment();\n\n // Start the applet manager.\n this.options.pid = process.pid;\n this.ls.setItemSync(APPLET_MANAGER_KEY, this.options);\n app.appletManager = this;\n server.listen(this.options.port);\n connectSocket(this.options.nodesworkServer, this.options.token, this);\n LOG.info(`Server is started at http://localhost:${this.options.port}`);\n await this.updateDevice();\n }\n\n /**\n * Stop the container.\n *\n * @throws UNAUTHENTICATED_ERROR\n */\n async stopServer() {\n // Stop the applet manager.\n if (this.options.pid) {\n process.kill(this.options.pid);\n this.options.pid = null;\n await sleep(1000);\n }\n }\n\n async install(options: nam.AppletImage) {\n const docker = new Docker();\n const cmd = `build -t ${imageName(options)} --build-arg package=${options.packageName} --build-arg version=${options.version} docker/${options.naType}/${options.naVersion}`;\n\n LOG.debug('Execute command to install applet', { cmd });\n try {\n const result = await docker.command(cmd);\n LOG.debug('Execute build command log', result);\n await this.updateDevice();\n } catch (e) {\n throw e;\n }\n }\n\n async images(): Promise<nam.AppletImage[]> {\n const docker = new Docker();\n const images = await docker.command('images');\n return _.chain(images.images)\n .filter((image) => {\n const [na, naType, naVersion, ...others] = image.repository.split('-');\n return na === 'na' && (\n naType === 'npm'\n ) && (\n naVersion === '8.3.0'\n );\n })\n .map((image) => {\n const [na, naType, naVersion, ...others] = image.repository.split('-');\n return {\n naType,\n naVersion,\n packageName: others.join('-'),\n version: image.tag,\n };\n })\n .value();\n }\n\n async run(options: nam.AppletRunOptions) {\n await this.checkEnvironment();\n\n const uniqueName = this.name(options);\n\n const rmCmd = `rm ${uniqueName}`;\n LOG.debug('Execute command to rm applet', { cmd: rmCmd });\n try {\n const docker = new Docker();\n const result = await docker.command(rmCmd);\n LOG.debug('Execute build command log', result);\n } catch (e) {\n LOG.debug('Container does not exist');\n }\n\n const image = imageName(options);\n const cmd = `run --name ${uniqueName} --network nodeswork -d -e ${applet.constants.environmentKeys.APPLET_ID}=${options.appletId} -e ${applet.constants.environmentKeys.APPLET_TOKEN}=${options.appletToken} ${image}`;\n\n LOG.debug('Execute command to run applet', { cmd });\n\n try {\n const docker = new Docker();\n const result = await docker.command(cmd);\n LOG.debug('Execute run command result', result);\n await this.updateDevice();\n } catch (e) {\n LOG.error('Execute run command failed', e);\n throw e;\n }\n }\n\n async kill(options: nam.AppletImage) {\n const uniqueName = `na-npm-${options.packageName}_${options.version}`;\n const cmd = `stop ${uniqueName}`;\n\n LOG.debug('Execute command to run applet', { cmd });\n\n try {\n const docker = new Docker();\n const result = await docker.command(cmd);\n LOG.debug('Execute build command log', result);\n await this.updateDevice();\n } catch (e) {\n throw e;\n }\n }\n\n async ps(): Promise<nam.AppletStatus[]> {\n await this.checkEnvironment();\n\n const psResult = await this.docker.command('ps');\n const psApplets = _.chain(psResult.containerList)\n .map((container) => {\n const image = parseAppletImage(container.names);\n if (image == null) {\n return null;\n }\n const port = parseMappingPort(container.ports) || 28900;\n return _.extend(\n image,\n { port, status: container.status },\n );\n })\n .filter(_.identity)\n .value();\n\n const networkResults = Object.values((\n await this.docker.command('network inspect nodeswork')\n ).object[0].Containers);\n\n return _.filter(psApplets, (psApplet) => {\n const appletName = this.name(psApplet);\n const networkResult = _.find(networkResults, (result) => {\n return result.Name === appletName;\n });\n\n if (networkResult == null) {\n LOG.warn(\n `Applet ${appletName} is running but not in the correct network`,\n );\n return false;\n }\n psApplet.ip = networkResult.IPv4Address.split('/')[0];\n return true;\n });\n }\n\n async refreshWorkerCrons() {\n const self = this;\n try {\n const userApplets = await request.get({\n headers: {\n 'device-token': this.options.token,\n },\n baseUrl: this.options.nodesworkServer,\n uri: '/v1/d/user-applets',\n json: true,\n jar: true,\n });\n const newJobs: WorkerCronJob[] = _\n .chain(userApplets)\n .map((ua) => {\n const appletConfig = ua.config.appletConfig;\n const image: nam.AppletImage = {\n naType: appletConfig.naType,\n naVersion: appletConfig.naVersion,\n packageName: appletConfig.packageName,\n version: appletConfig.version,\n };\n return _.map(appletConfig.workers, (workerConfig: any) => {\n const worker: nam.Worker = {\n handler: workerConfig.handler,\n name: workerConfig.name,\n };\n return {\n jobUUID: uuid([\n ua.applet._id,\n ua._id,\n image.naType,\n image.naVersion,\n image.packageName,\n image.version,\n worker.handler,\n worker.name,\n ].join(':'), UUID_NAMESPACE),\n appletId: ua.applet._id,\n userApplet: ua._id,\n image,\n worker,\n schedule: workerConfig.schedule,\n };\n });\n })\n .flatten()\n .filter((x) => x.schedule != null)\n .value();\n\n LOG.debug('Fetch applets for current device successfully');\n\n for (const cron of this.cronJobs) {\n const u = _.find(newJobs, (newJob) => newJob.jobUUID === cron.jobUUID);\n if (u == null) {\n cron.cronJob.stop();\n LOG.info(\n 'Stop cron job successfully', _.omit(cron, 'cronJob'),\n );\n }\n }\n for (const newJob of newJobs) {\n const cron = _.find(this.cronJobs, (c) => newJob.jobUUID === c.jobUUID);\n if (cron == null) {\n const cronJob = (function (c: WorkerCronJob): WorkerCronJob {\n try {\n c.cronJob = new CronJob({\n cronTime: c.schedule,\n onTick: async () => {\n LOG.debug('Run cron job', _.omit(c, 'cronJob'));\n try {\n await self.executeCronJob(c);\n LOG.info(\n 'Run cron job successfully', _.omit(c, 'cronJob'),\n );\n } catch (e) {\n LOG.error(\n 'Run cron job failed', e, _.omit(c, 'cronJob'),\n );\n }\n },\n start: true,\n });\n } catch (e) {\n LOG.error('Create cron job failed', _.omit(c, 'cronJob'));\n }\n LOG.info('Create cron job successfully', _.omit(c, 'cronJob'));\n return c;\n })(newJob);\n this.cronJobs.push(cronJob);\n }\n }\n } catch (e) {\n throw e;\n }\n }\n\n async executeCronJob(job: WorkerCronJob): Promise<any> {\n try {\n const accounts = await request.get({\n headers: {\n 'device-token': this.options.token,\n },\n baseUrl: this.options.nodesworkServer,\n uri: `/v1/d/user-applets/${job.userApplet}/accounts`,\n json: true,\n jar: true,\n });\n LOG.debug('Fetch accounts successfully', accounts);\n const payload = {\n accounts,\n };\n const result = await this.work({\n route: {\n appletId: job.appletId,\n naType: job.image.naType,\n naVersion: job.image.naVersion,\n packageName: job.image.packageName,\n version: job.image.version,\n },\n worker: job.worker,\n payload,\n });\n LOG.info(\n 'Execute cron job successfully.', {\n job: _.omit(job, 'cronJob'),\n result,\n },\n );\n } catch (e) {\n throw e;\n }\n }\n\n async work(options: nam.WorkOptions): Promise<any> {\n LOG.debug('Get work request', options);\n const requestOptions: nam.RequestOptions = {\n appletId: options.route.appletId,\n naType: options.route.naType,\n naVersion: options.route.naVersion,\n packageName: options.route.packageName,\n version: options.route.version,\n uri: `/workers/${options.worker.handler}/${options.worker.name}`,\n method: 'POST',\n body: options.payload,\n };\n return await this.request(requestOptions);\n }\n\n async request<T>(\n options: nam.RequestOptions,\n ): Promise<nam.RequestResponse | T> {\n LOG.info('Get request', { options });\n const routeAddress = await this.route(options);\n if (routeAddress == null) {\n throw new NodesworkError('Applet is not running');\n }\n\n const headers = _.extend({}, options.headers);\n headers[sbase.constants.headers.request.NODESWORK_FORWARDED_TO] = (\n routeAddress.route\n );\n const requestOptions = {\n uri: routeAddress.target + options.uri,\n method: options.method,\n proxy: routeAddress.target,\n body: options.body,\n headers,\n json: true,\n };\n LOG.debug('Request options', requestOptions);\n const resp = await request(requestOptions);\n LOG.debug('Request response', resp);\n return resp;\n }\n\n async operateAccount(options: nam.AccountOperateOptions): Promise<any> {\n const requestOptions = {\n uri: `/v1/d/applets/${options.appletId}/accounts/${options.accountId}/operate`,\n baseUrl: this.options.nodesworkServer,\n body: options.body,\n headers: {\n 'device-token': this.options.token,\n },\n json: true,\n jar: true,\n };\n return await request.post(requestOptions);\n }\n\n async route(options: nam.RouteOptions): Promise<nam.Route> {\n if (this.options.dev) {\n try {\n const devServer = await request({\n uri: 'http://localhost:28900/sstats',\n json: true,\n });\n if (devServer.applet &&\n devServer.applet.packageName === options.packageName &&\n compareVersion(devServer.applet.packageVersion, options.version) >= 0) {\n return {\n route: 'localhost:28900',\n target: 'http://localhost:28900',\n };\n }\n } catch (e) {\n // Fallback\n }\n }\n\n return {\n route: `${this.name(options)}:28900`,\n target: containerProxyUrl,\n };\n }\n\n async updateDevice() {\n if (this.options.token == null) {\n throw errors.UNAUTHENTICATED_ERROR;\n }\n\n const installedApplets = await this.images();\n const runningApplets = await this.ps();\n\n try {\n const resp = await request.post({\n headers: {\n 'device-token': this.options.token,\n },\n baseUrl: this.options.nodesworkServer,\n uri: '/v1/d/devices',\n body: {\n installedApplets,\n runningApplets,\n },\n json: true,\n jar: true,\n });\n LOG.debug('Update device successfully');\n } catch (e) {\n throw e;\n }\n await this.refreshWorkerCrons();\n }\n\n async checkEnvironment() {\n // Step 1: Check network configuration\n const networks = await this.docker.command('network ls');\n const targetNetwork = _.find(\n networks.network, (c: any) => c.name === 'nodeswork',\n );\n\n if (targetNetwork == null) {\n LOG.debug('network is not setup, creating');\n await this.docker.command('network create nodeswork');\n }\n\n const inspect = await this.docker.command('network inspect nodeswork');\n LOG.debug('inspecting network', inspect.object[0]);\n\n const IPAMConfig = inspect.object[0].IPAM.Config[0];\n\n this.network = {\n subnet: IPAMConfig.Subnet,\n gateway: IPAMConfig.Gateway,\n containers: inspect.object[0].Containers,\n };\n\n LOG.debug('Network configuration', this.network);\n\n // Step 2: Check pre installed containers\n // Step 2.1: Check proxy container\n\n const containers = await this.docker.command('ps');\n const proxyContainer = _.find(\n containers.containerList,\n (container: any) => container.names === 'nodeswork-container-proxy',\n );\n\n if (proxyContainer == null) {\n LOG.debug('Container proxy is not running, starting');\n await this.installContainerProxy();\n } else {\n const version = proxyContainer.image.split(':')[1];\n const lVersion = await latestVersion('@nodeswork/container-proxy');\n this.containerProxy = {\n version,\n latestVersion: lVersion,\n };\n }\n\n const proxyInNetwork = _.find(this.network.containers, (container: any) => {\n return container.Name === 'nodeswork-container-proxy';\n });\n\n if (proxyInNetwork == null) {\n LOG.debug('Proxy container is not in network');\n await this.docker.command(`network connect nodeswork nodeswork-container-proxy`);\n }\n\n LOG.debug('Container Proxy configuration', this.containerProxy);\n\n LOG.debug('Environment setup correctly');\n }\n\n private name(options: nam.RouteOptions): string {\n return `na-${options.naType}-${options.naVersion}-${options.packageName}_${options.version}-${options.appletId}`;\n }\n\n private async installContainerProxy() {\n const version = await latestVersion('@nodeswork/container-proxy');\n LOG.debug('Fetched latest version container-proxy', { version });\n\n const output = await this.docker.command(\n `build -t nodeswork-container-proxy:${version} docker/container-proxy --build-arg version=${version}`,\n );\n LOG.debug('Building container proxy', output);\n\n try {\n await this.docker.command(`rm nodeswork-container-proxy`);\n } catch (e) {\n LOG.debug('Remove container proxy error', e);\n }\n\n try {\n // sudo ifconfig lo0 alias 172.16.222.111\n await this.docker.command(`run --name nodeswork-container-proxy -d -e NAM_HOST=172.16.222.111:28310 -e SUB_NET=${this.network.subnet} -p 28320:28320 nodeswork-container-proxy:${version}`);\n } catch (e) {\n LOG.debug('Remove container proxy error', e);\n }\n\n this.containerProxy = { version, latestVersion: version };\n }\n}\n\nfunction imageName(image: nam.AppletImage): string {\n return `na-${image.naType}-${image.naVersion}-${image.packageName}\\\n:${image.version}`;\n}\n\nfunction parseAppletImage(name: string): nam.RouteOptions {\n const result = NAME_REGEX.exec(name);\n if (result == null) {\n return null;\n }\n return {\n naType: result[1],\n naVersion: result[2],\n packageName: result[3],\n version: result[4],\n appletId: result[5],\n };\n}\n\nfunction parseMappingPort(ports: string): number {\n return parseInt(ports.split(':')[1]);\n}\n\nexport interface Network {\n subnet: string;\n gateway: string;\n containers: object[];\n}\n\nexport interface ContainerProxy {\n version: string;\n latestVersion: string;\n}\n\nexport interface WorkerCronJob {\n jobUUID: string;\n userApplet: string;\n appletId: string;\n image: nam.AppletImage;\n worker: nam.Worker;\n schedule: string;\n cronJob?: CronJob;\n}\n"],"sourceRoot":"/Users/yizhen/workspace/nw/nam/src"}
\No newline at end of file