github.com/hernad/nomad@v1.6.112/ui/mirage/factories/deployment.js (about) 1 /** 2 * Copyright (c) HashiCorp, Inc. 3 * SPDX-License-Identifier: MPL-2.0 4 */ 5 6 import { Factory, trait } from 'ember-cli-mirage'; 7 import faker from 'nomad-ui/mirage/faker'; 8 import { provide } from '../utils'; 9 10 const UUIDS = provide(100, faker.random.uuid.bind(faker.random)); 11 const DEPLOYMENT_STATUSES = [ 12 'running', 13 'successful', 14 'paused', 15 'failed', 16 'cancelled', 17 ]; 18 19 export default Factory.extend({ 20 id: (i) => (i / 100 >= 1 ? `${UUIDS[i]}-${i}` : UUIDS[i]), 21 22 jobId: null, 23 versionNumber: null, 24 groupDesiredTotal: null, 25 26 status: () => faker.helpers.randomize(DEPLOYMENT_STATUSES), 27 statusDescription: () => faker.lorem.sentence(), 28 29 notActive: trait({ 30 status: faker.helpers.randomize(DEPLOYMENT_STATUSES.without('running')), 31 }), 32 33 active: trait({ 34 status: 'running', 35 }), 36 37 afterCreate(deployment, server) { 38 const job = server.db.jobs.find(deployment.jobId); 39 const groups = job.taskGroupIds.map((id) => { 40 let summary = server.create('deployment-task-group-summary', { 41 deployment, 42 name: server.db.taskGroups.find(id).name, 43 desiredCanaries: 1, 44 promoted: false, 45 }); 46 if (deployment.groupDesiredTotal) { 47 summary.update({ 48 desiredTotal: deployment.groupDesiredTotal, 49 }); 50 } 51 return summary; 52 }); 53 54 deployment.update({ 55 deploymentTaskGroupSummaryIds: groups.mapBy('id'), 56 }); 57 }, 58 });