github.com/manicqin/nomad@v0.9.5/ui/mirage/factories/job-version.js (about)

     1  import { Factory } from 'ember-cli-mirage';
     2  
     3  import faker from 'nomad-ui/mirage/faker';
     4  
     5  const REF_TIME = new Date();
     6  
     7  export default Factory.extend({
     8    stable: faker.random.boolean,
     9    submitTime: () => faker.date.past(2 / 365, REF_TIME) * 1000000,
    10    diff() {
    11      return generateDiff(this.jobId);
    12    },
    13  
    14    jobId: null,
    15    version: 0,
    16  
    17    // ID is used for record tracking within Mirage,
    18    // but Nomad uses the JobID as the version ID.
    19    tempVersionId() {
    20      return this.job.id;
    21    },
    22  
    23    // Directive to restrict any related deployments from having a 'running' status
    24    noActiveDeployment: false,
    25  
    26    // Directive to restrict any related deployments from having a status other than 'running'
    27    activeDeployment: false,
    28  
    29    afterCreate(version, server) {
    30      const args = [
    31        'deployment',
    32        version.noActiveDeployment && 'notActive',
    33        version.activeDeployment && 'active',
    34        {
    35          jobId: version.jobId,
    36          namespace: version.job.namespace,
    37          versionNumber: version.version,
    38        },
    39      ].compact();
    40      server.create(...args);
    41    },
    42  });
    43  
    44  export function generateDiff(id) {
    45    return {
    46      Fields: null,
    47      ID: id,
    48      Objects: null,
    49      TaskGroups: [
    50        {
    51          Fields: [
    52            {
    53              Annotations: null,
    54              Name: 'Count',
    55              New: '2',
    56              Old: '4',
    57              Type: 'Edited',
    58            },
    59          ],
    60          Name: 'cache',
    61          Objects: [
    62            {
    63              Fields: [
    64                {
    65                  Annotations: null,
    66                  Name: 'Attempts',
    67                  New: '15',
    68                  Old: '10',
    69                  Type: 'Edited',
    70                },
    71                {
    72                  Annotations: null,
    73                  Name: 'Delay',
    74                  New: '25000000000',
    75                  Old: '25000000000',
    76                  Type: 'None',
    77                },
    78                {
    79                  Annotations: null,
    80                  Name: 'Interval',
    81                  New: '900000000000',
    82                  Old: '900000000000',
    83                  Type: 'None',
    84                },
    85                {
    86                  Annotations: null,
    87                  Name: 'Mode',
    88                  New: 'delay',
    89                  Old: 'delay',
    90                  Type: 'None',
    91                },
    92              ],
    93              Name: 'RestartPolicy',
    94              Objects: null,
    95              Type: 'Edited',
    96            },
    97          ],
    98          Tasks: [
    99            {
   100              Annotations: null,
   101              Fields: null,
   102              Name: 'redis',
   103              Objects: [
   104                {
   105                  Fields: [
   106                    {
   107                      Annotations: null,
   108                      Name: 'CPU',
   109                      New: '500',
   110                      Old: '500',
   111                      Type: 'None',
   112                    },
   113                    {
   114                      Annotations: null,
   115                      Name: 'DiskMB',
   116                      New: '0',
   117                      Old: '0',
   118                      Type: 'None',
   119                    },
   120                    {
   121                      Annotations: null,
   122                      Name: 'IOPS',
   123                      New: '0',
   124                      Old: '0',
   125                      Type: 'None',
   126                    },
   127                    {
   128                      Annotations: null,
   129                      Name: 'MemoryMB',
   130                      New: '512',
   131                      Old: '256',
   132                      Type: 'Edited',
   133                    },
   134                  ],
   135                  Name: 'Resources',
   136                  Objects: null,
   137                  Type: 'Edited',
   138                },
   139                {
   140                  Fields: [
   141                    {
   142                      Annotations: null,
   143                      Name: 'MaxFileSizeMB',
   144                      New: '15',
   145                      Old: '10',
   146                      Type: 'Edited',
   147                    },
   148                    {
   149                      Annotations: null,
   150                      Name: 'MaxFiles',
   151                      New: '10',
   152                      Old: '10',
   153                      Type: 'None',
   154                    },
   155                  ],
   156                  Name: 'LogConfig',
   157                  Objects: null,
   158                  Type: 'Edited',
   159                },
   160                {
   161                  Fields: [
   162                    {
   163                      Annotations: null,
   164                      Name: 'AddressMode',
   165                      New: 'auto',
   166                      Old: 'auto',
   167                      Type: 'None',
   168                    },
   169                    {
   170                      Annotations: null,
   171                      Name: 'Name',
   172                      New: 'redis-cache',
   173                      Old: 'redis-cache',
   174                      Type: 'None',
   175                    },
   176                    {
   177                      Annotations: null,
   178                      Name: 'PortLabel',
   179                      New: 'db',
   180                      Old: 'db',
   181                      Type: 'None',
   182                    },
   183                  ],
   184                  Name: 'Service',
   185                  Objects: [
   186                    {
   187                      Fields: [
   188                        {
   189                          Annotations: null,
   190                          Name: 'Command',
   191                          New: '',
   192                          Old: '',
   193                          Type: 'None',
   194                        },
   195                        {
   196                          Annotations: null,
   197                          Name: 'InitialStatus',
   198                          New: '',
   199                          Old: '',
   200                          Type: 'None',
   201                        },
   202                        {
   203                          Annotations: null,
   204                          Name: 'Interval',
   205                          New: '10000000000',
   206                          Old: '10000000000',
   207                          Type: 'None',
   208                        },
   209                        {
   210                          Annotations: null,
   211                          Name: 'Method',
   212                          New: '',
   213                          Old: '',
   214                          Type: 'None',
   215                        },
   216                        {
   217                          Annotations: null,
   218                          Name: 'Name',
   219                          New: 'alive',
   220                          Old: 'alive',
   221                          Type: 'None',
   222                        },
   223                        {
   224                          Annotations: null,
   225                          Name: 'Path',
   226                          New: '',
   227                          Old: '',
   228                          Type: 'None',
   229                        },
   230                        {
   231                          Annotations: null,
   232                          Name: 'PortLabel',
   233                          New: '',
   234                          Old: '',
   235                          Type: 'None',
   236                        },
   237                        {
   238                          Annotations: null,
   239                          Name: 'Protocol',
   240                          New: '',
   241                          Old: '',
   242                          Type: 'None',
   243                        },
   244                        {
   245                          Annotations: null,
   246                          Name: 'TLSSkipVerify',
   247                          New: 'false',
   248                          Old: 'false',
   249                          Type: 'None',
   250                        },
   251                        {
   252                          Annotations: null,
   253                          Name: 'Timeout',
   254                          New: '3000000000',
   255                          Old: '2000000000',
   256                          Type: 'Edited',
   257                        },
   258                        {
   259                          Annotations: null,
   260                          Name: 'Type',
   261                          New: 'tcp',
   262                          Old: 'tcp',
   263                          Type: 'None',
   264                        },
   265                      ],
   266                      Name: 'Check',
   267                      Objects: null,
   268                      Type: 'Edited',
   269                    },
   270                  ],
   271                  Type: 'Edited',
   272                },
   273              ],
   274              Type: 'Edited',
   275            },
   276          ],
   277          Type: 'Edited',
   278          Updates: null,
   279        },
   280      ],
   281      Type: 'Edited',
   282    };
   283  }