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