github.com/iqoqo/nomad@v0.11.3-0.20200911112621-d7021c74d101/ui/mirage/factories/csi-volume.js (about) 1 import { Factory } from 'ember-cli-mirage'; 2 import faker from 'nomad-ui/mirage/faker'; 3 import { pickOne } from '../utils'; 4 import { STORAGE_PROVIDERS } from '../common'; 5 6 const ACCESS_MODES = ['multi-node-single-writer']; 7 const ATTACHMENT_MODES = ['file-system']; 8 9 export default Factory.extend({ 10 id: i => `${faker.hacker.noun().dasherize()}-${i}`.toLowerCase(), 11 name() { 12 return this.id; 13 }, 14 15 externalId: () => `vol-${faker.random.uuid().split('-')[0]}`, 16 17 // Topologies is currently unused by the UI. This should 18 // eventually become dynamic. 19 topologies: () => [{ foo: 'bar' }], 20 21 accessMode: faker.helpers.randomize(ACCESS_MODES), 22 attachmentMode: faker.helpers.randomize(ATTACHMENT_MODES), 23 24 schedulable: faker.random.boolean, 25 provider: faker.helpers.randomize(STORAGE_PROVIDERS), 26 version: '1.0.1', 27 controllerRequired: faker.random.boolean, 28 controllersHealthy: () => faker.random.number(10), 29 controllersExpected() { 30 return this.controllersHealthy + faker.random.number(10); 31 }, 32 nodesHealthy: () => faker.random.number(10), 33 nodesExpected() { 34 return this.nodesHealthy + faker.random.number(10); 35 }, 36 37 afterCreate(volume, server) { 38 if (!volume.namespaceId) { 39 const namespace = server.db.namespaces.length ? pickOne(server.db.namespaces).id : null; 40 volume.update({ 41 namespace, 42 namespaceId: namespace, 43 }); 44 } else { 45 volume.update({ 46 namespace: volume.namespaceId, 47 }); 48 } 49 50 if (!volume.plugin) { 51 const plugin = server.db.csiPlugins.length ? pickOne(server.db.csiPlugins) : null; 52 volume.update({ 53 PluginId: plugin && plugin.id, 54 }); 55 } else { 56 volume.update({ 57 PluginId: volume.plugin.id, 58 }); 59 } 60 }, 61 });