github.com/Ilhicas/nomad@v1.0.4-0.20210304152020-e86851182bc3/ui/mirage/factories/task.js (about) 1 import { Factory } from 'ember-cli-mirage'; 2 import faker from 'nomad-ui/mirage/faker'; 3 import { generateResources } from '../common'; 4 5 const DRIVERS = ['docker', 'java', 'rkt', 'qemu', 'exec', 'raw_exec']; 6 7 export default Factory.extend({ 8 createRecommendations: false, 9 10 // Hidden property used to compute the Summary hash 11 groupNames: [], 12 13 // Set in the TaskGroup factory 14 volumeMounts: [], 15 16 JobID: '', 17 18 name: id => `task-${faker.hacker.noun().dasherize()}-${id}`, 19 driver: () => faker.helpers.randomize(DRIVERS), 20 21 originalResources: generateResources, 22 resources: function() { 23 // Generate resources the usual way, but transform to the old 24 // shape because that's what the job spec uses. 25 const resources = this.originalResources; 26 return { 27 CPU: resources.Cpu.CpuShares, 28 MemoryMB: resources.Memory.MemoryMB, 29 DiskMB: resources.Disk.DiskMB, 30 }; 31 }, 32 33 Lifecycle: i => { 34 const cycle = i % 6; 35 36 if (cycle === 0) { 37 return null; 38 } else if (cycle === 1) { 39 return { Hook: 'prestart', Sidecar: false }; 40 } else if (cycle === 2) { 41 return { Hook: 'prestart', Sidecar: true }; 42 } else if (cycle === 3) { 43 return { Hook: 'poststart', Sidecar: false }; 44 } else if (cycle === 4) { 45 return { Hook: 'poststart', Sidecar: true }; 46 } else if (cycle === 5) { 47 return { Hook: 'poststop' }; 48 } 49 }, 50 51 afterCreate(task, server) { 52 if (task.createRecommendations) { 53 const recommendations = []; 54 55 if (faker.random.number(10) >= 1) { 56 recommendations.push(server.create('recommendation', { task, resource: 'CPU' })); 57 } 58 59 if (faker.random.number(10) >= 1) { 60 recommendations.push(server.create('recommendation', { task, resource: 'MemoryMB' })); 61 } 62 63 task.save({ recommendationIds: recommendations.mapBy('id') }); 64 } 65 }, 66 });