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  });