github.com/hernad/nomad@v1.6.112/ui/mirage/factories/deployment.js (about)

     1  /**
     2   * Copyright (c) HashiCorp, Inc.
     3   * SPDX-License-Identifier: MPL-2.0
     4   */
     5  
     6  import { Factory, trait } from 'ember-cli-mirage';
     7  import faker from 'nomad-ui/mirage/faker';
     8  import { provide } from '../utils';
     9  
    10  const UUIDS = provide(100, faker.random.uuid.bind(faker.random));
    11  const DEPLOYMENT_STATUSES = [
    12    'running',
    13    'successful',
    14    'paused',
    15    'failed',
    16    'cancelled',
    17  ];
    18  
    19  export default Factory.extend({
    20    id: (i) => (i / 100 >= 1 ? `${UUIDS[i]}-${i}` : UUIDS[i]),
    21  
    22    jobId: null,
    23    versionNumber: null,
    24    groupDesiredTotal: null,
    25  
    26    status: () => faker.helpers.randomize(DEPLOYMENT_STATUSES),
    27    statusDescription: () => faker.lorem.sentence(),
    28  
    29    notActive: trait({
    30      status: faker.helpers.randomize(DEPLOYMENT_STATUSES.without('running')),
    31    }),
    32  
    33    active: trait({
    34      status: 'running',
    35    }),
    36  
    37    afterCreate(deployment, server) {
    38      const job = server.db.jobs.find(deployment.jobId);
    39      const groups = job.taskGroupIds.map((id) => {
    40        let summary = server.create('deployment-task-group-summary', {
    41          deployment,
    42          name: server.db.taskGroups.find(id).name,
    43          desiredCanaries: 1,
    44          promoted: false,
    45        });
    46        if (deployment.groupDesiredTotal) {
    47          summary.update({
    48            desiredTotal: deployment.groupDesiredTotal,
    49          });
    50        }
    51        return summary;
    52      });
    53  
    54      deployment.update({
    55        deploymentTaskGroupSummaryIds: groups.mapBy('id'),
    56      });
    57    },
    58  });