github.com/hernad/nomad@v1.6.112/ui/mirage/factories/service.js (about) 1 /** 2 * Copyright (c) HashiCorp, Inc. 3 * SPDX-License-Identifier: MPL-2.0 4 */ 5 6 import { Factory } from 'ember-cli-mirage'; 7 import faker from 'nomad-ui/mirage/faker'; 8 import { provide } from '../utils'; 9 import { dasherize } from '@ember/string'; 10 import { DATACENTERS } from '../common'; 11 import { pickOne } from '../utils'; 12 13 export default Factory.extend({ 14 id: () => faker.random.uuid(), 15 address: () => faker.internet.ip(), 16 createIndex: () => faker.random.number(), 17 modifyIndex: () => faker.random.number(), 18 name: () => faker.random.uuid(), 19 serviceName: (id) => `${dasherize(faker.hacker.noun())}-${id}-service`, 20 datacenter: faker.helpers.randomize(DATACENTERS), 21 port: faker.random.number({ min: 5000, max: 60000 }), 22 tags: () => { 23 if (!faker.random.boolean()) { 24 return provide( 25 faker.random.number({ min: 0, max: 2 }), 26 faker.hacker.noun.bind(faker.hacker.noun) 27 ); 28 } else { 29 return null; 30 } 31 }, 32 33 afterCreate(service, server) { 34 if (!service.namespace) { 35 const namespace = pickOne(server.db.jobs)?.namespace || 'default'; 36 service.update({ 37 namespace, 38 }); 39 } 40 41 if (!service.node) { 42 const node = pickOne(server.db.nodes); 43 service.update({ 44 nodeId: node.id, 45 }); 46 } 47 48 if (server.db.jobs.findBy({ id: 'service-haver' })) { 49 if (!service.jobId) { 50 service.update({ 51 jobId: 'service-haver', 52 }); 53 } 54 if (!service.allocId) { 55 const servicedAlloc = (server.db.allocations.filter( 56 (a) => a.jobId === 'service-haver' 57 ) || [])[0]; 58 if (servicedAlloc) { 59 service.update({ 60 allocId: servicedAlloc.id, 61 }); 62 } 63 } 64 } 65 }, 66 });