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